# MODFLOW developer tools
[](https://github.com/MODFLOW-ORG/modflow-devtools/actions/workflows/ci.yml)
[](https://modflow-devtools.readthedocs.io/en/latest/?badge=latest)
[](https://img.shields.io/github/contributors/MODFLOW-ORG/modflow-devtools)
[](https://github.com/MODFLOW-ORG/modflow-devtools/tags/latest)
[](https://pypi.python.org/pypi/modflow-devtools)
[](https://pypi.python.org/pypi/modflow-devtools)
[](https://pypi.python.org/pypi/modflow-devtools)
[](https://pypi.python.org/pypi/modflow-devtools)
[](https://pypi.python.org/pypi/modflow-devtools)
[](https://anaconda.org/conda-forge/modflow-devtools/badges/license.svg)
[](https://anaconda.org/conda-forge/modflow-devtools)
[](https://anaconda.org/conda-forge/modflow-devtools)
<!-- 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 and related projects.
- [Features](#features)
- [Requirements](#requirements)
- [Installation](#installation)
- [Documentation](#documentation)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
## Features
* a minimal GitHub API client for release info/assets
* a `ZipFile` subclass that [preserves file permissions](https://stackoverflow.com/questions/39296101/python-zipfile-removes-execute-permissions-from-binaries) (workaround for [Python #15795](https://bugs.python.org/issue15795))
* pytest fixtures including "keepable" temporary directories and snapshot testing utilities
* pytest markers to skip test cases conditional on operating system, installed packages, or available executables
* a parser for MODFLOW 6 [definition files](https://modflow6.readthedocs.io/en/stable/_dev/dfn.html)
* a models API for streamlined access to MODFLOW 6 (and other) models in
- [`MODFLOW-ORG/modflow6-examples`](https://github.com/MODFLOW-ORG/modflow6-examples)
- [`MODFLOW-ORG/modflow6-testmodels`](https://github.com/MODFLOW-ORG/modflow6-testmodels)
- [`MODFLOW-ORG/modflow6-largetestmodels`](https://github.com/MODFLOW-ORG/modflow6-largetestmodels)
## Requirements
Python3.10+, dependency-free by default.
Several optional dependency groups are available, oriented around specific use cases:
- `dfn`: MF6 definition file parsing
- `test`: pytest fixtures/extensions
- `models`: example model access
## Installation
`modflow-devtools` is available on PyPI and can be installed with pip:
```shell
pip install modflow-devtools
```
To install an optional dependency group:
```shell
pip install "modflow-devtools[test]"
```
To install from source and set up a development environment please see the [developer documentation](DEVELOPER.md).
To use the `pytest` fixtures provided by `modflow-devtools`, add the following to a test file or `conftest.py` file:
```python
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](https://modflow-devtools.readthedocs.io/en/latest/).
For more info on MODFLOW 6 see [the USGS overview](https://water.usgs.gov/ogw/modflow/).
Raw data
{
"_id": null,
"home_page": null,
"name": "modflow-devtools",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "\"Joseph D. Hughes\" <modflow@usgs.gov>",
"keywords": "MODFLOW, development, groundwater, hydrogeology, utilities",
"author": null,
"author_email": "\"Joseph D. Hughes\" <modflow@usgs.gov>, Michael Reno <mreno@ucar.edu>, Mike Taves <mwtoews@gmail.com>, Wes Bonelli <wbonelli@ucar.edu>",
"download_url": "https://files.pythonhosted.org/packages/bb/36/368bdc8898be662ec14e2208bfa26fc10aa74e1b6206b3dfe3d3ee70e3d5/modflow_devtools-1.8.0.tar.gz",
"platform": null,
"description": "# MODFLOW developer tools\n\n[](https://github.com/MODFLOW-ORG/modflow-devtools/actions/workflows/ci.yml)\n[](https://modflow-devtools.readthedocs.io/en/latest/?badge=latest)\n[](https://img.shields.io/github/contributors/MODFLOW-ORG/modflow-devtools)\n[](https://github.com/MODFLOW-ORG/modflow-devtools/tags/latest)\n\n[](https://pypi.python.org/pypi/modflow-devtools)\n[](https://pypi.python.org/pypi/modflow-devtools)\n[](https://pypi.python.org/pypi/modflow-devtools)\n[](https://pypi.python.org/pypi/modflow-devtools)\n[](https://pypi.python.org/pypi/modflow-devtools)\n\n[](https://anaconda.org/conda-forge/modflow-devtools/badges/license.svg)\n[](https://anaconda.org/conda-forge/modflow-devtools)\n[](https://anaconda.org/conda-forge/modflow-devtools)\n\n<!-- START doctoc generated TOC please keep comment here to allow auto update -->\n<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->\n\nPython development tools for MODFLOW 6 and related projects.\n\n- [Features](#features)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Documentation](#documentation)\n\n<!-- END doctoc generated TOC please keep comment here to allow auto update -->\n\n## Features\n\n* a minimal GitHub API client for release info/assets\n* a `ZipFile` subclass that [preserves file permissions](https://stackoverflow.com/questions/39296101/python-zipfile-removes-execute-permissions-from-binaries) (workaround for [Python #15795](https://bugs.python.org/issue15795))\n* pytest fixtures including \"keepable\" temporary directories and snapshot testing utilities\n* pytest markers to skip test cases conditional on operating system, installed packages, or available executables\n* a parser for MODFLOW 6 [definition files](https://modflow6.readthedocs.io/en/stable/_dev/dfn.html)\n* a models API for streamlined access to MODFLOW 6 (and other) models in\n - [`MODFLOW-ORG/modflow6-examples`](https://github.com/MODFLOW-ORG/modflow6-examples)\n - [`MODFLOW-ORG/modflow6-testmodels`](https://github.com/MODFLOW-ORG/modflow6-testmodels)\n - [`MODFLOW-ORG/modflow6-largetestmodels`](https://github.com/MODFLOW-ORG/modflow6-largetestmodels)\n\n## Requirements\n\nPython3.10+, dependency-free by default.\n\nSeveral optional dependency groups are available, oriented around specific use cases:\n\n- `dfn`: MF6 definition file parsing\n- `test`: pytest fixtures/extensions\n- `models`: example model access\n\n## Installation\n\n`modflow-devtools` is available on PyPI and can be installed with pip:\n\n```shell\npip install modflow-devtools\n```\n\nTo install an optional dependency group:\n\n```shell\npip install \"modflow-devtools[test]\"\n```\n\nTo install from source and set up a development environment please see the [developer documentation](DEVELOPER.md).\n\nTo use the `pytest` fixtures provided by `modflow-devtools`, add the following to a test file or `conftest.py` file:\n\n```python\npytest_plugins = [ \"modflow_devtools.fixtures\" ]\n```\n\n**Note**: this must be a top-level `conftest.py`, which nested `conftest.py` files may then override or extend.\n\n## Documentation\n\nDocs are available at [modflow-devtools.readthedocs.io](https://modflow-devtools.readthedocs.io/en/latest/).\n\nFor more info on MODFLOW 6 see [the USGS overview](https://water.usgs.gov/ogw/modflow/).\n",
"bugtrack_url": null,
"license": "CC0",
"summary": "Python tools for MODFLOW development",
"version": "1.8.0",
"project_urls": {
"Bug Tracker": "https://github.com/MODFLOW-ORG/modflow-devtools/issues",
"Documentation": "https://modflow-devtools.readthedocs.io/en/latest/",
"Source Code": "https://github.com/MODFLOW-ORG/modflow-devtools"
},
"split_keywords": [
"modflow",
" development",
" groundwater",
" hydrogeology",
" utilities"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "825bc0add338e1460f05f2cb0f24fd85979a0af82c8544d09bd1a9088ec1e9c2",
"md5": "ef1ff62510a85975a27c9daf82db39ca",
"sha256": "3f4908f6ece5b2ec81131691b72469fbffc3d68076a731f28739980d6b00fe8b"
},
"downloads": -1,
"filename": "modflow_devtools-1.8.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ef1ff62510a85975a27c9daf82db39ca",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 291959,
"upload_time": "2025-10-29T01:39:03",
"upload_time_iso_8601": "2025-10-29T01:39:03.174083Z",
"url": "https://files.pythonhosted.org/packages/82/5b/c0add338e1460f05f2cb0f24fd85979a0af82c8544d09bd1a9088ec1e9c2/modflow_devtools-1.8.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "bb36368bdc8898be662ec14e2208bfa26fc10aa74e1b6206b3dfe3d3ee70e3d5",
"md5": "2204352870b81263521af8d36b5c3c1b",
"sha256": "d99713ff1e1fa00cf7c4b6dc0654492f4fd0ce13318ed8a65e801c4bd47754af"
},
"downloads": -1,
"filename": "modflow_devtools-1.8.0.tar.gz",
"has_sig": false,
"md5_digest": "2204352870b81263521af8d36b5c3c1b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 284816,
"upload_time": "2025-10-29T01:39:05",
"upload_time_iso_8601": "2025-10-29T01:39:05.225906Z",
"url": "https://files.pythonhosted.org/packages/bb/36/368bdc8898be662ec14e2208bfa26fc10aa74e1b6206b3dfe3d3ee70e3d5/modflow_devtools-1.8.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-29 01:39:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MODFLOW-ORG",
"github_project": "modflow-devtools",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "modflow-devtools"
}