Awesome
MODFLOW developer tools
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->Python development tools for MODFLOW 6.
<!-- END doctoc generated TOC please keep comment here to allow auto update -->Use cases
This is a small toolkit for developing MODFLOW 6, FloPy, and related projects. It includes standalone utilities and optional Pytest extensions.
Utilities include:
- a minimal GitHub API client for retrieving release information and downloading assets
- a
ZipFile
subclass that preserves file permissions (workaround for Python #15795) - other release/distribution-related tools
Pytest features include:
--keep <path>
tempdir fixtures for each scope- a
--smoke
test (abbrev.-S
) CLI option shortcut - markers to skip test cases conditional on
- operating system
- Python packages installed
- executables available on the PATH
- test fixtures for example / test models in
MODFLOW-USGS/modflow6-examples
MODFLOW-USGS/modflow6-testmodels
MODFLOW-USGS/modflow6-largetestmodels
Requirements
Python3.8+, dependency-free, but pairs well with pytest
and select plugins, e.g.
Installation
modflow-devtools
is available on PyPI and can be installed with pip:
pip install modflow-devtools
Pytest, pytest plugins, and other testing-related dependencies can be installed with:
pip install "modflow-devtools[test]"
To install from source and set up a development environment please see the developer documentation.
To import pytest
fixtures in a project consuming modflow-devtools
, add the following to a test file or conftest.py
file:
pytest_plugins = [ "modflow_devtools.fixtures" ]
Note: this must be a top-level conftest.py
, which nested conftest.py
files may then override or extend.
Documentation
Docs are available at modflow-devtools.readthedocs.io.
For more info on MODFLOW 6 see the USGS overview.