# 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)
## Installation
`modflow-devtools` is available on PyPI and can be installed with pip:
```shell
pip install modflow-devtools
```
Pytest, pytest plugins, and other optional 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 `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": "",
"name": "modflow-devtools",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "\"Joseph D. Hughes\" <modflow@usgs.gov>",
"keywords": "MODFLOW,development,utilities,groundwater,hydrogeology",
"author": "",
"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/d9/f4/1e5987c4e2c57b216a19df432ddf740a226fd8acf8756fd0bdf5b26af92c/modflow-devtools-1.4.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\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 optional 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 `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.4.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": "bd29952c6395c7b78806d298a53252c9e6e0b5e9aad71ab6a5037cef810f1420",
"md5": "71401bb86aa6b1c48f1f889601266c18",
"sha256": "090aabffe4712cf856c0faccb0a1b34d52cb4181b09a26ec41e59d92500e1a4b"
},
"downloads": -1,
"filename": "modflow_devtools-1.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "71401bb86aa6b1c48f1f889601266c18",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 24983,
"upload_time": "2024-02-19T16:19:17",
"upload_time_iso_8601": "2024-02-19T16:19:17.576877Z",
"url": "https://files.pythonhosted.org/packages/bd/29/952c6395c7b78806d298a53252c9e6e0b5e9aad71ab6a5037cef810f1420/modflow_devtools-1.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d9f41e5987c4e2c57b216a19df432ddf740a226fd8acf8756fd0bdf5b26af92c",
"md5": "9a24252564dd8ecc6afc9d837938adb0",
"sha256": "5a9460cbf43fa89c85103a26b318b2833ce323a41fee93ebdd8a1a2c70904132"
},
"downloads": -1,
"filename": "modflow-devtools-1.4.0.tar.gz",
"has_sig": false,
"md5_digest": "9a24252564dd8ecc6afc9d837938adb0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 24383,
"upload_time": "2024-02-19T16:19:19",
"upload_time_iso_8601": "2024-02-19T16:19:19.999208Z",
"url": "https://files.pythonhosted.org/packages/d9/f4/1e5987c4e2c57b216a19df432ddf740a226fd8acf8756fd0bdf5b26af92c/modflow-devtools-1.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-19 16:19:19",
"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"
}