# MODFLOW developer tools
[![CI](https://github.com/MODFLOW-USGS/modflow-devtools/actions/workflows/ci.yml/badge.svg)](https://github.com/MODFLOW-USGS/modflow-devtools/actions/workflows/ci.yml)
[![Documentation Status](https://readthedocs.org/projects/modflow-devtools/badge/?version=latest)](https://modflow-devtools.readthedocs.io/en/latest/?badge=latest)
[![GitHub contributors](https://img.shields.io/github/contributors/MODFLOW-USGS/modflow-devtools)](https://img.shields.io/github/contributors/MODFLOW-USGS/modflow-devtools)
[![GitHub tag](https://img.shields.io/github/tag/MODFLOW-USGS/modflow-devtools.svg)](https://github.com/MODFLOW-USGS/modflow-devtools/tags/latest)
[![PyPI License](https://img.shields.io/pypi/l/modflow-devtools)](https://pypi.python.org/pypi/modflow-devtools)
[![PyPI Status](https://img.shields.io/pypi/status/modflow-devtools.png)](https://pypi.python.org/pypi/modflow-devtools)
[![PyPI Format](https://img.shields.io/pypi/format/modflow-devtools)](https://pypi.python.org/pypi/modflow-devtools)
[![PyPI Version](https://img.shields.io/pypi/v/modflow-devtools.png)](https://pypi.python.org/pypi/modflow-devtools)
[![PyPI Versions](https://img.shields.io/pypi/pyversions/modflow-devtools.png)](https://pypi.python.org/pypi/modflow-devtools)
[![Anaconda License](https://anaconda.org/conda-forge/modflow-devtools/badges/license.svg)](https://anaconda.org/conda-forge/modflow-devtools/badges/license.svg)
[![Anaconda Version](https://anaconda.org/conda-forge/modflow-devtools/badges/version.svg)](https://anaconda.org/conda-forge/modflow-devtools)
[![Anaconda Updated](https://anaconda.org/conda-forge/modflow-devtools/badges/latest_release_date.svg)](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.
- [Use cases](#use-cases)
- [Requirements](#requirements)
- [Installation](#installation)
- [Documentation](#documentation)
<!-- 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](https://github.com/pytest-dev/pytest) extensions.
Utilities include:
* a minimal GitHub API client for retrieving release information and downloading 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))
* other release/distribution-related tools
Pytest features include:
- `--keep <path>` tempdir fixtures for [each scope](https://docs.pytest.org/en/stable/how-to/fixtures.html#scope-sharing-fixtures-across-classes-modules-packages-or-session)
- a [`--smoke` test](https://en.wikipedia.org/wiki/Smoke_testing_(software)) (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.
- [`pytest-dotenv`](https://github.com/quiqua/pytest-dotenv)
- [`pytest-xdist`](https://github.com/pytest-dev/pytest-xdist)
- [`syrupy`](https://github.com/tophat/syrupy)
## Installation
`modflow-devtools` is available on PyPI and can be installed with pip:
```shell
pip install modflow-devtools
```
Pytest, pytest plugins, and other testing-related dependencies can be installed with:
```shell
pip install "modflow-devtools[test]"
```
To install from source and set up a development environment please see the [developer documentation](DEVELOPER.md).
To import `pytest` fixtures in a project consuming `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.8",
"maintainer_email": "\"Joseph D. Hughes\" <modflow@usgs.gov>",
"keywords": "MODFLOW, development, utilities, groundwater, hydrogeology",
"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/c6/3f/029608199cc7bb15775d44cc6657409ffae7206fd3f7ee44c7884ca2b42c/modflow_devtools-1.6.0.tar.gz",
"platform": null,
"description": "# MODFLOW developer tools\n\n[![CI](https://github.com/MODFLOW-USGS/modflow-devtools/actions/workflows/ci.yml/badge.svg)](https://github.com/MODFLOW-USGS/modflow-devtools/actions/workflows/ci.yml)\n[![Documentation Status](https://readthedocs.org/projects/modflow-devtools/badge/?version=latest)](https://modflow-devtools.readthedocs.io/en/latest/?badge=latest)\n[![GitHub contributors](https://img.shields.io/github/contributors/MODFLOW-USGS/modflow-devtools)](https://img.shields.io/github/contributors/MODFLOW-USGS/modflow-devtools)\n[![GitHub tag](https://img.shields.io/github/tag/MODFLOW-USGS/modflow-devtools.svg)](https://github.com/MODFLOW-USGS/modflow-devtools/tags/latest)\n\n[![PyPI License](https://img.shields.io/pypi/l/modflow-devtools)](https://pypi.python.org/pypi/modflow-devtools)\n[![PyPI Status](https://img.shields.io/pypi/status/modflow-devtools.png)](https://pypi.python.org/pypi/modflow-devtools)\n[![PyPI Format](https://img.shields.io/pypi/format/modflow-devtools)](https://pypi.python.org/pypi/modflow-devtools)\n[![PyPI Version](https://img.shields.io/pypi/v/modflow-devtools.png)](https://pypi.python.org/pypi/modflow-devtools)\n[![PyPI Versions](https://img.shields.io/pypi/pyversions/modflow-devtools.png)](https://pypi.python.org/pypi/modflow-devtools)\n\n[![Anaconda License](https://anaconda.org/conda-forge/modflow-devtools/badges/license.svg)](https://anaconda.org/conda-forge/modflow-devtools/badges/license.svg)\n[![Anaconda Version](https://anaconda.org/conda-forge/modflow-devtools/badges/version.svg)](https://anaconda.org/conda-forge/modflow-devtools)\n[![Anaconda Updated](https://anaconda.org/conda-forge/modflow-devtools/badges/latest_release_date.svg)](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.\n\n- [Use cases](#use-cases)\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## Use cases\n\nThis is a small toolkit for developing MODFLOW 6, FloPy, and related projects. It includes standalone utilities and optional [Pytest](https://github.com/pytest-dev/pytest) extensions.\n\nUtilities include:\n\n* a minimal GitHub API client for retrieving release information and downloading 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* other release/distribution-related tools\n\nPytest features include:\n\n- `--keep <path>` tempdir fixtures for [each scope](https://docs.pytest.org/en/stable/how-to/fixtures.html#scope-sharing-fixtures-across-classes-modules-packages-or-session)\n- a [`--smoke` test](https://en.wikipedia.org/wiki/Smoke_testing_(software)) (abbrev. `-S`) CLI option shortcut\n- markers to skip test cases conditional on\n - operating system\n - Python packages installed\n - executables available on the PATH\n- test fixtures for example / test models in\n - `MODFLOW-USGS/modflow6-examples`\n - `MODFLOW-USGS/modflow6-testmodels`\n - `MODFLOW-USGS/modflow6-largetestmodels`\n\n## Requirements\n\nPython3.8+, dependency-free, but pairs well with `pytest` and select plugins, e.g.\n\n- [`pytest-dotenv`](https://github.com/quiqua/pytest-dotenv)\n- [`pytest-xdist`](https://github.com/pytest-dev/pytest-xdist)\n- [`syrupy`](https://github.com/tophat/syrupy)\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\nPytest, pytest plugins, and other testing-related dependencies can be installed with:\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 import `pytest` fixtures in a project consuming `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.6.0",
"project_urls": {
"Bug Tracker": "https://github.com/MODFLOW-USGS/modflow-devtools/issues",
"Documentation": "https://modflow-devtools.readthedocs.io/en/latest/",
"Source Code": "https://github.com/MODFLOW-USGS/modflow-devtools"
},
"split_keywords": [
"modflow",
" development",
" utilities",
" groundwater",
" hydrogeology"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f556d75ff7cfec6208196a059341d8f21438a90fbfac4cc8e52fe1318d61cf84",
"md5": "c7346c6a203ec94c3fbd257e11c2c5b6",
"sha256": "fe9ddd6d3b0c9d35de3fd0c6591fd8ba851e33c19ddaadc2a4a77e10577ce156"
},
"downloads": -1,
"filename": "modflow_devtools-1.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c7346c6a203ec94c3fbd257e11c2c5b6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 27256,
"upload_time": "2024-05-30T19:11:32",
"upload_time_iso_8601": "2024-05-30T19:11:32.619894Z",
"url": "https://files.pythonhosted.org/packages/f5/56/d75ff7cfec6208196a059341d8f21438a90fbfac4cc8e52fe1318d61cf84/modflow_devtools-1.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c63f029608199cc7bb15775d44cc6657409ffae7206fd3f7ee44c7884ca2b42c",
"md5": "2af85b938e0aac1576c41704bc75e01b",
"sha256": "a3aaee876eb54b7a84b48477034666c3a1438f23baa84b96367c7ddddc84c663"
},
"downloads": -1,
"filename": "modflow_devtools-1.6.0.tar.gz",
"has_sig": false,
"md5_digest": "2af85b938e0aac1576c41704bc75e01b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 26244,
"upload_time": "2024-05-30T19:11:33",
"upload_time_iso_8601": "2024-05-30T19:11:33.896595Z",
"url": "https://files.pythonhosted.org/packages/c6/3f/029608199cc7bb15775d44cc6657409ffae7206fd3f7ee44c7884ca2b42c/modflow_devtools-1.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-30 19:11:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MODFLOW-USGS",
"github_project": "modflow-devtools",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "modflow-devtools"
}