diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc8a00a..1ef68ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,7 +31,7 @@ jobs: - {os: macos-latest, FC: gcc, FC_V: 13, shell: bash} - {os: windows-latest, FC: gcc, FC_V: 13, shell: pwsh} # test latest python and intel-classic - - {os: ubuntu-latest, FC: intel-classic, FC_V: 2021.7, shell: bash} + - {os: ubuntu-22.04, FC: intel-classic, FC_V: 2021.7, shell: bash} - {os: macos-13, FC: intel-classic, FC_V: 2021.7, shell: bash} - {os: windows-2019, FC: intel-classic, FC_V: 2021.7, shell: pwsh} # test latest python and previous gcc @@ -55,7 +55,7 @@ jobs: uses: ts-graphviz/setup-graphviz@v2 - name: Setup pixi - uses: prefix-dev/setup-pixi@v0.8.1 + uses: prefix-dev/setup-pixi@v0.8.2 with: pixi-version: v0.34.0 manifest-path: "pixi.toml" @@ -66,7 +66,7 @@ jobs: pixi run postinstall - name: Setup ${{ matrix.FC }} ${{ matrix.FC_V }} on ${{ matrix.os }} - uses: fortran-lang/setup-fortran@main + uses: fortran-lang/setup-fortran@v1 with: compiler: ${{ matrix.FC }} version: ${{ matrix.FC_V }} @@ -125,7 +125,7 @@ jobs: - {os: macos-latest, FC: gcc, FC_V: 13, shell: bash} - {os: windows-latest, FC: gcc, FC_V: 13, shell: pwsh} # test latest python and intel - - {os: ubuntu-latest, FC: intel-classic, FC_V: 2021.7, shell: bash} + - {os: ubuntu-22.04, FC: intel-classic, FC_V: 2021.7, shell: bash} - {os: macos-13, FC: intel-classic, FC_V: 2021.7, shell: bash} - {os: windows-2019, FC: intel-classic, FC_V: 2021.7, shell: pwsh} defaults: @@ -146,7 +146,7 @@ jobs: uses: ts-graphviz/setup-graphviz@v2 - name: Setup pixi - uses: prefix-dev/setup-pixi@v0.8.1 + uses: prefix-dev/setup-pixi@v0.8.2 with: pixi-version: v0.34.0 manifest-path: "pixi.toml" @@ -157,7 +157,7 @@ jobs: pixi run postinstall - name: Setup ${{ matrix.FC }} ${{ matrix.FC_V }} on ${{ matrix.os }} - uses: fortran-lang/setup-fortran@main + uses: fortran-lang/setup-fortran@v1 with: compiler: ${{ matrix.FC }} version: ${{ matrix.FC_V }} diff --git a/.github/workflows/pymake-linting-install.yml b/.github/workflows/pymake-linting-install.yml index f30698f..e5afedb 100644 --- a/.github/workflows/pymake-linting-install.yml +++ b/.github/workflows/pymake-linting-install.yml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@v4 - name: Setup pixi - uses: prefix-dev/setup-pixi@v0.8.1 + uses: prefix-dev/setup-pixi@v0.8.2 with: pixi-version: v0.34.0 manifest-path: "pixi.toml" @@ -35,6 +35,9 @@ jobs: - name: Check format run: pixi run check-format + - name: Check spelling + run: pixi run check-spelling + pymake_setup: name: standard installation runs-on: ubuntu-latest diff --git a/.github/workflows/pymake-requests.yml b/.github/workflows/pymake-requests.yml index f96dc6d..330d132 100644 --- a/.github/workflows/pymake-requests.yml +++ b/.github/workflows/pymake-requests.yml @@ -31,7 +31,7 @@ jobs: uses: actions/checkout@v4 - name: Setup pixi - uses: prefix-dev/setup-pixi@v0.8.1 + uses: prefix-dev/setup-pixi@v0.8.2 with: pixi-version: v0.34.0 manifest-path: "pixi.toml" diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 741e235..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,6 +0,0 @@ -global-exclude .DS_Store *.pyc *.pyo *.pyd *.swp *.bak *~ .* *.sh *.yml *.md *.toml -exclude docs/* -exclude autotest/* -include pyproject.toml -include pymake/utils/usgsprograms.txt - diff --git a/README.md b/README.md index 60965be..1c4f963 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Python package for building MODFLOW-based programs from source files. -### Version 1.3.0 +### Version 1.4.0.dev0 [![PyPI Version](https://img.shields.io/pypi/v/mfpymake.png)](https://pypi.python.org/pypi/mfpymake) [![Anaconda Version](https://anaconda.org/conda-forge/mfpymake/badges/version.svg)](https://anaconda.org/conda-forge/mfpymake) @@ -101,7 +101,7 @@ options: List of extra source files to exclude from the compilation. excludefiles can be either a list of files or the name of a text file that contains a list of files. (default is None) -so, --sharedobject Create shared object or dll on Windows. (default is False) -ad APPDIR, --appdir APPDIR - Target path that overides path defined target path (default is None) + Target path that overrides path defined target path (default is None) -v, --verbose Verbose output to terminal. (default is False) --keep Keep existing executable. (default is False) --zip ZIP Zip built executable. (default is None) diff --git a/docs/build_apps.md b/docs/build_apps.md index f5c329a..d83e6f1 100644 --- a/docs/build_apps.md +++ b/docs/build_apps.md @@ -31,7 +31,7 @@ options: Additional C/C++ compiler flags. C/C++ compiler flags should be enclosed in quotes and start with a blank space or separated from the name (-cf or --cflags) with a equal sign (-cf='-O3'). (default is None) -ad APPDIR, --appdir APPDIR - Target path that overides path defined target path (default is None) + Target path that overrides path defined target path (default is None) -v, --verbose Verbose output to terminal. (default is False) --keep Keep existing executable. (default is False) --zip ZIP Zip built executable. (default is None) @@ -60,7 +60,7 @@ connection), unzips the distribution file, sets the pymake settings required to source files to build the program. MT3DMS will be downloaded from the University of Alabama and Triangle will be downloaded from [netlib.org](http://www.netlib.org/voronoi/triangle.zip). Optional command line arguments can be used to customize the build (`-fc`, `-cc`, `--fflags`, etc.). For example, MODFLOW 6 could be built using intel compilers and -an `O3` optimation level by specifying: +an `O3` optimization level by specifying: ```console make-program mf6 -fc=ifort --fflags='-O3' diff --git a/docs/getting_started.md b/docs/getting_started.md index e30c8c5..548a789 100644 --- a/docs/getting_started.md +++ b/docs/getting_started.md @@ -22,7 +22,7 @@ mfpymake -h ``` The help message identifies required positional arguments and optional -arguments that can be provided to overide default values. +arguments that can be provided to override default values. ``` usage: mfpymake [-h] [-fc {ifort,mpiifort,gfortran,none}] @@ -97,7 +97,7 @@ optional arguments: -so, --sharedobject Create shared object or dll on Windows. (default is False) -ad APPDIR, --appdir APPDIR - Target path that overides path defined target path + Target path that overrides path defined target path (default is None) -v, --verbose Verbose output to terminal. (default is False) --keep Keep existing executable. (default is False) diff --git a/pixi.lock b/pixi.lock index 1744dd1..a00b6a9 100644 --- a/pixi.lock +++ b/pixi.lock @@ -27,6 +27,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.27-h54b06d7_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-h5008d03_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.0-h59595ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/expat-2.6.4-h5888daf_0.conda @@ -50,10 +51,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-9.0.0-hda332d3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.27.0-pypyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda @@ -129,6 +132,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py39h3b40f6f_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pango-1.54.0-h3a902e7_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.0.0-py39h538c539_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda @@ -164,6 +168,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py39h8cd3c5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2025.1.15.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-15.1.0-py39h8cd3c5a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_1.conda @@ -216,6 +221,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cyrus-sasl-2.1.27-hf6b2984_7.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/dbus-1.13.6-h12b9eeb_3.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/double-conversion-3.3.0-h2f0025b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/expat-2.6.4-h5ad3122_0.conda @@ -239,10 +245,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gts-0.7.6-he293c15_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/harfbuzz-9.0.0-hbf49d6b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.27.0-pypyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-75.1-hf9b3779_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda @@ -318,6 +326,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pandas-2.2.3-py39h53ba5a5_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pango-1.54.0-hf175a2e_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.44-h070dd5b_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pillow-11.0.0-py39hb20fde8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda @@ -353,6 +362,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tornado-6.4.2-py39h3e3acee_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2025.1.15.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/unicodedata2-15.1.0-py39h060674a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_1.conda @@ -400,6 +410,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.0-py39h0d3c867_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.6.9-py39hd18e689_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_1.conda @@ -422,10 +433,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/gts-0.7.6-h53e17e3_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-10.1.0-h467a7e8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.27.0-pypyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda @@ -474,6 +487,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.2.3-py39h88a5ddd_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pango-1.54.0-hf94f63b_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-11.0.0-py39h6cf2171_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda @@ -507,6 +521,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.4.2-py39h80efdc8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2025.1.15.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-15.1.0-py39h296a897_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_1.conda @@ -533,6 +548,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.0-py39h85b62ae_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.6.9-py39hefdd603_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_1.conda @@ -555,10 +571,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gts-0.7.6-he42f4ea_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-10.1.0-h9df47df_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.27.0-pypyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda @@ -607,6 +625,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py39hc5ad87a_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pango-1.54.0-h73f1e88_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.44-h297a79d_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.0.0-py39h4ac03e3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda @@ -640,6 +659,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.2-py39hf3bc14e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2025.1.15.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-15.1.0-py39h57695bc_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.2.3-pyhd8ed1ab_1.conda @@ -667,6 +687,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.6.9-py39hf73967f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.0-h63175ca_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/execnet-2.1.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_1.conda @@ -688,10 +709,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/gts-0.7.6-h6b5321d_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-10.1.0-ha6ce084_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.27.0-pypyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda @@ -742,6 +765,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.2.3-py39h2366fc2_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pango-1.54.0-h286b592_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-11.0.0-py39h5ee314c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-24.3.1-pyh8b19718_2.conda @@ -777,6 +801,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.4.2-py39ha55e580_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2025.1.15.22-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-15.1.0-py39ha55e580_1.conda @@ -2014,6 +2039,22 @@ packages: license_family: BSD size: 70425 timestamp: 1686490368655 +- kind: conda + name: editables + version: '0.5' + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/editables-0.5-pyhd8ed1ab_1.conda + sha256: 8d4f908e670be360617d418c328213bc46e7100154c3742db085148141712f60 + md5: 2cf824fe702d88e641eec9f9f653e170 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 10828 + timestamp: 1733208220327 - kind: conda name: exceptiongroup version: 1.2.2 @@ -3153,6 +3194,29 @@ packages: license_family: MIT size: 1100980 timestamp: 1733707770488 +- kind: conda + name: hatchling + version: 1.27.0 + build: pypyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.27.0-pypyhd8ed1ab_0.conda + sha256: e83420f81390535774ac33b83d05249b8993e5376b76b4d461f83a77549e493d + md5: b85c18ba6e927ae0da3fde426c893cc8 + depends: + - editables >=0.3 + - importlib-metadata + - packaging >=21.3 + - pathspec >=0.10.1 + - pluggy >=1.0.0 + - python >=3.7 + - python >=3.8 + - tomli >=1.2.2 + - trove-classifiers + license: MIT + license_family: MIT + size: 56598 + timestamp: 1734311718682 - kind: conda name: hpack version: 4.0.0 @@ -3276,6 +3340,22 @@ packages: license_family: BSD size: 49765 timestamp: 1733211921194 +- kind: conda + name: importlib-metadata + version: 8.6.1 + build: pyha770c72_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda + sha256: 598951ebdb23e25e4cec4bbff0ae369cec65ead80b50bc08b441d8e54de5cf03 + md5: f4b39bf00c69f56ac01e020ebfac066c + depends: + - python >=3.9 + - zipp >=0.5 + license: Apache-2.0 + license_family: APACHE + size: 29141 + timestamp: 1737420302391 - kind: conda name: importlib-resources version: 6.4.5 @@ -7902,6 +7982,22 @@ packages: license: LGPL-2.1-or-later size: 423418 timestamp: 1734582521252 +- kind: conda + name: pathspec + version: 0.12.1 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda + sha256: 9f64009cdf5b8e529995f18e03665b03f5d07c0b17445b8badef45bde76249ee + md5: 617f15191456cc6a13db418a275435e5 + depends: + - python >=3.9 + license: MPL-2.0 + license_family: MOZILLA + size: 41075 + timestamp: 1733233471940 - kind: conda name: pcre2 version: '10.44' @@ -9537,6 +9633,21 @@ packages: license_family: Apache size: 641997 timestamp: 1732616121615 +- kind: conda + name: trove-classifiers + version: 2025.1.15.22 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2025.1.15.22-pyhd8ed1ab_0.conda + sha256: 4d5b3cebc751b4579eb8c6757a8eb3adac7ee9b146297674bf9958560c2c4fa8 + md5: 246846b15ba47e8684a7c88ce1de3e82 + depends: + - python >=3.9 + license: Apache-2.0 + license_family: Apache + size: 18583 + timestamp: 1737019814735 - kind: conda name: tzdata version: 2024b diff --git a/pixi.toml b/pixi.toml index d6f43bf..0f741a0 100644 --- a/pixi.toml +++ b/pixi.toml @@ -11,8 +11,9 @@ coverage = "*" filelock = "*" flaky = "*" flopy = "*" +hatchling = ">=1.27.0,<2" matplotlib = "*" -meson = "1.3.0" +meson = "*" modflow-devtools = "*" networkx = "*" ninja = "*" @@ -35,8 +36,10 @@ postinstall = "pip install --no-build-isolation --no-deps --disable-pip-version- # format check-lint = "ruff check ." check-format = "ruff format . --check" +check-spelling = "codespell" fix-style = "ruff check . --fix; ruff format ." + # build test = "meson test --verbose --no-rebuild -C" diff --git a/pymake/cmds/createjson.py b/pymake/cmds/createjson.py index 70034a7..95ad848 100755 --- a/pymake/cmds/createjson.py +++ b/pymake/cmds/createjson.py @@ -57,7 +57,7 @@ def main() -> None: }, "appdir": { "tag": ("-ad", "--appdir"), - "help": "code.json path that overides FPTH defined path. Default is None.", + "help": "code.json path that overrides FPTH defined path. Default is None.", "default": None, "choices": None, "action": None, diff --git a/pymake/config.py b/pymake/config.py index 99a8592..1af700c 100644 --- a/pymake/config.py +++ b/pymake/config.py @@ -1,6 +1,6 @@ __author__ = "Joseph D. Hughes" __date__ = "December 20, 2024" -__version__ = "1.3.0" +__version__ = "1.4.0.dev0" __maintainer__ = "Joseph D. Hughes" __email__ = "jdhughes@usgs.gov" __status__ = "Production" diff --git a/pymake/pymake.py b/pymake/pymake.py index 71e9d0e..ffa3874 100644 --- a/pymake/pymake.py +++ b/pymake/pymake.py @@ -620,6 +620,8 @@ def _set_extrafiles(self): "../../../src/Utilities/version.f90", "../../../src/Utilities/DevFeature.f90", "../../../src/Utilities/Message.f90", + "../../../src/Utilities/GridFileReader.f90", + "../../../src/Utilities/HashTable.f90", ] # evaluate extrafiles type diff --git a/pymake/pymake_base.py b/pymake/pymake_base.py index 966b6f2..abfe750 100644 --- a/pymake/pymake_base.py +++ b/pymake/pymake_base.py @@ -1332,10 +1332,7 @@ def _create_makefile( exe_name = os.path.splitext(os.path.basename(target))[0] # build heading - heading = ( - f"# makefile created by pymake (version {__version__}) " - f"for the '{exe_name}' executable.\n" - ) + heading = f"# makefile created by pymake for the '{exe_name}' executable.\n" # open makefile f = open(os.path.join(make_dir, "makefile"), "w") @@ -1353,6 +1350,7 @@ def _create_makefile( if srcdir2 is not None: dirs2 = [d[0].replace("\\", "/") for d in os.walk(srcdir2)] dirs = dirs + dirs2 + dirs = sorted(dirs) # source files in extrafiles files = _get_extra_exclude_files(extrafiles) diff --git a/pymake/pymake_parser.py b/pymake/pymake_parser.py index 68d05ad..a000fdf 100644 --- a/pymake/pymake_parser.py +++ b/pymake/pymake_parser.py @@ -211,7 +211,7 @@ def _get_standard_arg_dict(): }, "appdir": { "tag": ("-ad", "--appdir"), - "help": """Target path that overides path defined target + "help": """Target path that overrides path defined target path (default is None)""", "default": None, "choices": None, diff --git a/pymake/utils/_Popen_wrapper.py b/pymake/utils/_Popen_wrapper.py index 24ff952..ad41942 100644 --- a/pymake/utils/_Popen_wrapper.py +++ b/pymake/utils/_Popen_wrapper.py @@ -17,7 +17,7 @@ def _process_Popen_initialize(cmdlist, intelwin=False, cwd=None): boolean indicating is Intel compilers are being used on Windows and if stderr should be sent to the terminal cwd : str - path to execute Popen in (defaulr is None) + path to execute Popen in (default is None) Returns ------- diff --git a/pymake/utils/_compiler_switches.py b/pymake/utils/_compiler_switches.py index 74fdedf..402a038 100644 --- a/pymake/utils/_compiler_switches.py +++ b/pymake/utils/_compiler_switches.py @@ -44,7 +44,7 @@ def linker_update_environment(cc="gcc", fc="gfortran", verbose=False): def _check_gnu_switch_available(switch, compiler="gfortran", verbose=False): """Determine if a specified GNU compiler switch exists. Not all switches - will be detected, for example '-O2' adn '-fbounds-check=on'. + will be detected, for example '-O2' and '-fbounds-check=on'. Parameters ---------- @@ -174,7 +174,7 @@ def _get_optlevel(target, fc, cc, debug, fflags, cflags, osname=None): cc : str c or cpp compiler debug : bool - flag indicating is a debug executible will be built + flag indicating is a debug executable will be built fflags : list user provided list of fortran compiler flags cflags : list @@ -488,7 +488,7 @@ def _get_c_flags( pass elif cc in ["clang", "clang++"]: if sharedobject: - msg = "shared library not implement fo clang" + msg = "shared library not implement for clang" raise NotImplementedError(msg) if debug: flags += ["g"] @@ -1072,7 +1072,7 @@ def _darwin_syslibs(cc, fc, verbose=False): Returns ------- linker_str : str - additiona; linker flags for darwin systems. Default is None + additional; linker flags for darwin systems. Default is None """ linker_str = None if _get_osname() == "darwin": diff --git a/pymake/utils/usgsprograms.py b/pymake/utils/usgsprograms.py index 3aacc80..b3178b3 100644 --- a/pymake/utils/usgsprograms.py +++ b/pymake/utils/usgsprograms.py @@ -5,7 +5,7 @@ 2. Get data for a specific target 3. Get a dictionary with the data for all targets 4. Get the current version of a target -5. Get a list indicating if single and double precsion versions of the +5. Get a list indicating if single and double precision versions of the target application should be built 6. Functions to load, update, and export a USGS-style "code.json" json file containing information in the USGS application database @@ -314,7 +314,7 @@ def export_json( fpth : str Path for the json file to be created. Default is "code.json" appdir : str - path for code.json. Overides code.json path defined in fpth. + path for code.json. Overrides code.json path defined in fpth. Default is None. prog_data : dict User-specified program database. If prog_data is None, it will diff --git a/pymake/utils/usgsprograms.txt b/pymake/utils/usgsprograms.txt index 7e0cb3a..44d6766 100644 --- a/pymake/utils/usgsprograms.txt +++ b/pymake/utils/usgsprograms.txt @@ -1,26 +1,26 @@ -target , version, current, url , dirname , srcdir , standard_switch, double_switch, shared_object -mf6 , 6.6.0 , True , https://github.com/MODFLOW-USGS/modflow6/releases/download/6.6.0/mf6.6.0_linux.zip , mf6.6.0_linux , src , True , False , False -zbud6 , 6.6.0 , True , https://github.com/MODFLOW-USGS/modflow6/releases/download/6.6.0/mf6.6.0_linux.zip , mf6.6.0_linux , utils/zonebudget/src, True , False , False -libmf6 , 6.6.0 , True , https://github.com/MODFLOW-USGS/modflow6/releases/download/6.6.0/mf6.6.0_linux.zip , mf6.6.0_linux , srcbmi , True , False , True -mp7 , 7.2.001, True , https://water.usgs.gov/water-resources/software/MODPATH/modpath_7_2_001.zip , modpath_7_2_001 , source , True , False , False -mt3dms , 5.3.0 , True , https://github.com/MODFLOW-USGS/mt3dms/releases/download/2.0/mt3dms-2.0.zip , mt3dms-2.0 , true-binary , True , False , False -mt3dusgs , 1.1.0 , True , https://water.usgs.gov/water-resources/software/MT3D-USGS/mt3dusgs1.1.0.zip , mt3dusgs1.1.0 , src , True , False , False -vs2dt , 3.3 , True , https://water.usgs.gov/water-resources/software/VS2DI/vs2dt3_3.zip , vs2dt3_3 , include , True , False , False -triangle , 1.6 , True , https://github.com/MODFLOW-USGS/triangle/releases/download/1.0/triangle-1.0.zip , triangle-1.0 , src , True , False , False -gridgen , 1.0.02 , True , https://water.usgs.gov/water-resources/software/GRIDGEN/gridgen.1.0.02.zip , gridgen.1.0.02 , src , True , False , False -crt , 1.3.1 , True , https://water.usgs.gov/ogw/CRT/CRT_1.3.1.zip , CRT_1.3.1 , SOURCE , True , False , False -sutra , 4.0 , True , https://water.usgs.gov/water-resources/software/sutra/4.0/SUTRA_4_0_0.zip , SutraSuite , SUTRA_4_0/source , True , False , False -mf2000 , 1.19.01, True , https://water.usgs.gov/nrp/gwsoftware/modflow2000/mf2k1_19_01.tar.gz , mf2k.1_19 , src , True , False , False -mf2005 , 1.12.00, True , https://github.com/MODFLOW-USGS/mf2005/releases/download/v.1.12.00/MF2005.1_12u.zip , MF2005.1_12u , src , True , False , False -mfusg , 1.5 , True , https://water.usgs.gov/water-resources/software/MODFLOW-USG/mfusg1_5.zip , mfusg1_5 , src , True , False , False -zonbudusg , 1.5 , True , https://water.usgs.gov/water-resources/software/MODFLOW-USG/mfusg1_5.zip , mfusg1_5 , src/zonebudusg , True , False , False -swtv4 , 4.00.05, True , https://water.usgs.gov/water-resources/software/SEAWAT/swt_v4_00_05.zip , swt_v4_00_05 , source , False , True , False -mp6 , 6.0.1 , True , https://water.usgs.gov/water-resources/software/MODPATH/modpath.6_0_01.zip , modpath.6_0 , src , True , False , False -mflgr , 2.0.0 , True , https://water.usgs.gov/ogw/modflow-lgr/modflow-lgr-v2.0.0/mflgrv2_0_00.zip , mflgr.2_0 , src , True , False , False -zonbud3 , 3.01 , True , https://water.usgs.gov/water-resources/software/ZONEBUDGET/zonbud3_01.exe , Zonbud.3_01 , Src , True , False , False -mfnwt1.1.4 , 1.1.4 , False , https://water.usgs.gov/water-resources/software/MODFLOW-NWT/MODFLOW-NWT_1.1.4.zip , MODFLOW-NWT_1.1.4 , src , True , False , False -mfnwt , 1.3.0 , True , https://water.usgs.gov/water-resources/software/MODFLOW-NWT/MODFLOW-NWT_1.3.0.zip , MODFLOW-NWT , src , True , False , False -mfusg_gsi , 2.4.0 , True , https://www.gsienv.com/wp-content/uploads/2024/07/USG-Transport_Version-2.4.0.zip , USGT-v2-4-0-Source , . , True , False , False -mf6dev , 6.7.0.dev0 , False , https://github.com/MODFLOW-USGS/modflow6/archive/refs/heads/develop.zip , modflow6-develop , src , True , False , False -zbud6dev , 6.7.0.dev0 , False , https://github.com/MODFLOW-USGS/modflow6/archive/refs/heads/develop.zip , modflow6-develop , utils/zonebudget/src, True , False , False -libmf6dev , 6.7.0.dev0 , False , https://github.com/MODFLOW-USGS/modflow6/archive/refs/heads/develop.zip , modflow6-develop , srcbmi , True , False , True \ No newline at end of file +target , version , current, url , dirname , srcdir , standard_switch, double_switch, shared_object +mf6 , 6.6.1 , True , https://github.com/MODFLOW-USGS/modflow6/releases/download/6.6.1/mf6.6.1_linux.zip , mf6.6.1_linux , src , True , False , False +zbud6 , 6.6.1 , True , https://github.com/MODFLOW-USGS/modflow6/releases/download/6.6.1/mf6.6.1_linux.zip , mf6.6.1_linux , utils/zonebudget/src, True , False , False +libmf6 , 6.6.1 , True , https://github.com/MODFLOW-USGS/modflow6/releases/download/6.6.1/mf6.6.1_linux.zip , mf6.6.1_linux , srcbmi , True , False , True +mp7 , 7.2.001 , True , https://water.usgs.gov/water-resources/software/MODPATH/modpath_7_2_001.zip , modpath_7_2_001 , source , True , False , False +mt3dms , 5.3.0 , True , https://github.com/MODFLOW-USGS/mt3dms/releases/download/2.0/mt3dms-2.0.zip , mt3dms-2.0 , true-binary , True , False , False +mt3dusgs , 1.1.0 , True , https://water.usgs.gov/water-resources/software/MT3D-USGS/mt3dusgs1.1.0.zip , mt3dusgs1.1.0 , src , True , False , False +vs2dt , 3.3 , True , https://water.usgs.gov/water-resources/software/VS2DI/vs2dt3_3.zip , vs2dt3_3 , include , True , False , False +triangle , 1.6 , True , https://github.com/MODFLOW-USGS/triangle/releases/download/1.0/triangle-1.0.zip , triangle-1.0 , src , True , False , False +gridgen , 1.0.02 , True , https://water.usgs.gov/water-resources/software/GRIDGEN/gridgen.1.0.02.zip , gridgen.1.0.02 , src , True , False , False +crt , 1.3.1 , True , https://water.usgs.gov/ogw/CRT/CRT_1.3.1.zip , CRT_1.3.1 , SOURCE , True , False , False +sutra , 4.0 , True , https://water.usgs.gov/water-resources/software/sutra/4.0/SUTRA_4_0_0.zip , SutraSuite , SUTRA_4_0/source , True , False , False +mf2000 , 1.19.01 , True , https://water.usgs.gov/nrp/gwsoftware/modflow2000/mf2k1_19_01.tar.gz , mf2k.1_19 , src , True , False , False +mf2005 , 1.12.00 , True , https://github.com/MODFLOW-USGS/mf2005/releases/download/v.1.12.00/MF2005.1_12u.zip , MF2005.1_12u , src , True , False , False +mfusg , 1.5 , True , https://water.usgs.gov/water-resources/software/MODFLOW-USG/mfusg1_5.zip , mfusg1_5 , src , True , False , False +zonbudusg , 1.5 , True , https://water.usgs.gov/water-resources/software/MODFLOW-USG/mfusg1_5.zip , mfusg1_5 , src/zonebudusg , True , False , False +swtv4 , 4.00.05 , True , https://water.usgs.gov/water-resources/software/SEAWAT/swt_v4_00_05.zip , swt_v4_00_05 , source , False , True , False +mp6 , 6.0.1 , True , https://water.usgs.gov/water-resources/software/MODPATH/modpath.6_0_01.zip , modpath.6_0 , src , True , False , False +mflgr , 2.0.0 , True , https://water.usgs.gov/ogw/modflow-lgr/modflow-lgr-v2.0.0/mflgrv2_0_00.zip , mflgr.2_0 , src , True , False , False +zonbud3 , 3.01 , True , https://water.usgs.gov/water-resources/software/ZONEBUDGET/zonbud3_01.exe , Zonbud.3_01 , Src , True , False , False +mfnwt1.1.4 , 1.1.4 , False , https://water.usgs.gov/water-resources/software/MODFLOW-NWT/MODFLOW-NWT_1.1.4.zip , MODFLOW-NWT_1.1.4 , src , True , False , False +mfnwt , 1.3.0 , True , https://water.usgs.gov/water-resources/software/MODFLOW-NWT/MODFLOW-NWT_1.3.0.zip , MODFLOW-NWT , src , True , False , False +mfusg_gsi , 2.4.0 , True , https://www.gsienv.com/wp-content/uploads/2024/07/USG-Transport_Version-2.4.0.zip , USGT-v2-4-0-Source , . , True , False , False +mf6dev , 6.7.0.dev1 , False , https://github.com/MODFLOW-USGS/modflow6/archive/refs/heads/develop.zip , modflow6-develop , src , True , False , False +zbud6dev , 6.7.0.dev1 , False , https://github.com/MODFLOW-USGS/modflow6/archive/refs/heads/develop.zip , modflow6-develop , utils/zonebudget/src, True , False , False +libmf6dev , 6.7.0.dev1 , False , https://github.com/MODFLOW-USGS/modflow6/archive/refs/heads/develop.zip , modflow6-develop , srcbmi , True , False , True \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 816ba64..833b4cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,14 +1,11 @@ [build-system] -# Minimum requirements for the build system to execute -requires = [ - "setuptools>=61", - "wheel", -] -build-backend = "setuptools.build_meta" +requires = ["hatchling"] +build-backend = "hatchling.build" [project] name = "mfpymake" description = "pymake is a Python package to compile MODFLOW-based models." +readme = "README.md" authors = [ { name = "mfpymake Team", email = "modflow@usgs.gov" }, ] @@ -38,7 +35,8 @@ dependencies = [ "ninja", "pydotplus", ] -dynamic = ["version", "readme"] +dynamic = ["version"] + [project.optional-dependencies] lint = [ "cffconvert", @@ -60,35 +58,26 @@ test = [ "modflow-devtools", "flopy", ] + [project.scripts] mfpymake = "pymake.cmds.mfpymakecli:main" make-program = "pymake.cmds.build:main" make-code-json = "pymake.cmds.createjson:main" - [project.urls] Documentation = "https://mfpymake.readthedocs.io" "Release Notes" = "https://github.com/modflowpy/flopy/blob/develop/docs/version_changes.md" "Bug Tracker" = "https://github.com/modflowpy/pymake/issues" "Source Code" = "https://github.com/modflowpy/pymake" +[tool.hatch.build.targets.sdist] +only-include = ["pymake"] -[tool.setuptools] -include-package-data = true -zip-safe = false - -[tool.setuptools.dynamic] -version = { attr = "pymake.config.__version__" } -readme = { file = ["README.md"], content-type = "text/markdown" } +[tool.hatch.build.targets.wheel] +packages = ["pymake"] -[tool.setuptools.packages.find] -include = ["pymake", "pymake.*"] - -[tool.setuptools.package-data] -"pymake.utils" = ["usgsprograms.txt"] - -[tool.setuptools_scm] -fallback_version = "999" +[tool.hatch.version] +path = "pymake/config.py" [tool.ruff] line-length = 88 @@ -111,3 +100,9 @@ ignore = [ "RUF022", # Apply an isort-style sorting to `__all__` "UP015", # redundant open modes ] + +[tool.codespell] +ignore-words-list = [ + "Fo", + "nam", +] diff --git a/setup.py b/setup.py deleted file mode 100755 index bb7a18c..0000000 --- a/setup.py +++ /dev/null @@ -1,3 +0,0 @@ -from setuptools import setup - -setup(name="mfpymake") diff --git a/version.txt b/version.txt index 589268e..b58da95 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -1.3.0 \ No newline at end of file +1.4.0.dev0 \ No newline at end of file