Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release: version 3.3.5 #1367

Merged
merged 106 commits into from
Mar 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
106 commits
Select commit Hold shift + click to select a range
d42bde1
doc: initialize development branch
jdhughes-usgs Aug 7, 2021
3273d5b
doc: update mf6 output tutorial (#1175)
jdhughes-usgs Aug 7, 2021
b76b340
binder: update binder yml (#1178)
jdhughes-usgs Aug 9, 2021
fdc4608
fix(grid, plotting): bugfixes for all grid instances and plotting cod…
jlarsen-usgs Aug 9, 2021
6d4e3b7
fix(loading mflist from file) (#1179)
jtwhite79 Aug 9, 2021
b511594
refactor: clean-up python 2 'next' and redundant '__future__' imports…
mwtoews Aug 10, 2021
b893017
fix(raster): rework raster threads to work on osx (#1180)
jdhughes-usgs Aug 10, 2021
0288f96
update(MF6Output): access list file object via <model>.output.list() …
jlarsen-usgs Aug 16, 2021
74289dc
fix(pakbase): specify dtype=bool for 0-d active array used for USG (#…
mwtoews Aug 16, 2021
a126f70
fix(modflow/mfriv) unstructured mfusg RIV package load check fix (#1184)
cnicol-gwlogic Aug 16, 2021
5974d80
feat(lak6): support none lake bedleak values (#1189)
jdhughes-usgs Aug 16, 2021
e523256
fix(plot/plot_bc) plot_bc fails with unstructured models (#1185)
cnicol-gwlogic Aug 16, 2021
d8eb356
update(python): set python 3.7 as minimum supported version (#1190)
jdhughes-usgs Aug 16, 2021
feea04e
refactor(numpy): remove support for numpy<1.15 (#1191)
mwtoews Aug 17, 2021
0d9faa3
Fix(MF6Output): fix add new obs package issue (#1193)
jlarsen-usgs Aug 17, 2021
771f1d1
refactor(plot): remove deprecated plot methods (#1192)
jdhughes-usgs Aug 17, 2021
41b038c
fix(pakbase) unstructured storage check (#1187) (#1194)
cnicol-gwlogic Aug 17, 2021
8402dca
refactor(thickness): remove deprecated dis and disu thickness propert…
jdhughes-usgs Aug 17, 2021
e9dff61
fix(Grid.saturated_thick): update saturated_thick to filter confining…
jlarsen-usgs Aug 18, 2021
5fcf970
refactor(SR): remove deprecated SpatialReference class (#1200)
jdhughes-usgs Aug 19, 2021
63ce93d
refactor(pakbase): generate heading from base class (#1196)
mwtoews Aug 19, 2021
be74751
refactor: replace OrderedDict with dict (#1201)
mwtoews Aug 20, 2021
806ee8f
refactor(reference): remove deprecated crs and epsgRef classes (#1202)
jdhughes-usgs Aug 20, 2021
bf4371e
refactor(deprecated): remove additional deprecated classes and functi…
jdhughes-usgs Aug 20, 2021
f0972e1
readme: update README.md badges and script to update badge branch (#1…
jdhughes-usgs Aug 20, 2021
86206ff
updates(zonbud, output_util, mfwel, OptionBlock): updates and bug fix…
jlarsen-usgs Aug 21, 2021
a267d15
refactor(zonebud): reapply OrderedDict to dict changes from PR #1201 …
jdhughes-usgs Aug 21, 2021
8ec8d09
fix(numpy): handle deprecation warnings from numpy 1.21 (#1211)
mwtoews Aug 23, 2021
cf9c24f
docs(readme): update mf6 quickstart to use plot_vector() (#1215)
langevin-usgs Aug 25, 2021
5d4324d
style: use f-strings to format str (#1212)
mwtoews Aug 30, 2021
c2a01df
fix(rename and comments): package rename code and comment propagation…
spaulins-usgs Sep 3, 2021
722224c
fix(shapefile_utils) unstructured shapefile export (#1220) (#1222)
cnicol-gwlogic Sep 4, 2021
12a062a
refactor: use print() instead of sys.stdout.write() (#1223)
mwtoews Sep 4, 2021
349ba26
refactor(exceptions): reduce redundancy, simplify message generation …
mwtoews Sep 4, 2021
81b17fa
refactor(exceptions): reclassify IOError as OSError or other type (#1…
mwtoews Sep 4, 2021
76dd4cb
[modflowpy/flopy] update(ModflowHob): Improve HOB file performance #1…
swfwmd Sep 7, 2021
452d9ab
docs: black formatting of mfhob
jdhughes-usgs Sep 7, 2021
779aa50
fix(numpy elementwise comparison): Fixed numpy FutureWarning. No elem…
spaulins-usgs Sep 13, 2021
6c0df00
feat(mf6): allow multi-package for stress package concentrations (SPC…
langevin-usgs Sep 16, 2021
047c9e6
fix(writing tas): fixed writing non-constant tas (#1244) (#1245)
spaulins-usgs Sep 22, 2021
706f6db
Update(Vtk): updates to Vtk class for MF6, HFB, and MODPATH (#1249)
jlarsen-usgs Sep 30, 2021
ccdb36a
fix(voronoi): VoronoiGrid class upgraded to better support irregular …
langevin-usgs Oct 1, 2021
658bf2c
fix(MFPackage): fix mfsim.nam relative paths (#1252)
jlarsen-usgs Oct 1, 2021
844c216
ci(voronoi): test script was not running (#1255)
langevin-usgs Oct 5, 2021
45df13a
feat(CellBudget): add support for full3D keyword (#1254)
jdhughes-usgs Oct 5, 2021
bb21686
refactor(Package): simplify __init__ in subclasses, remove "extra" (#…
mwtoews Oct 5, 2021
c95f96a
Think mg extent is x0,x1,y0,y1? (#1243)
briochh Oct 5, 2021
8f35966
refactor(netcdf): sync data, revise logger and exceptions (#1230)
mwtoews Oct 5, 2021
fe913fe
Fix(_mg_resync): Added checks to reset the modelgrid resync (#1258)
jlarsen-usgs Oct 6, 2021
459aacb
fix(MFFileMgmt.string_to_file_path): updated to support UNC paths (#1…
jlarsen-usgs Oct 6, 2021
376b323
feat(get_ts): added support to get_ts for HeadUFile (#1260)
rosskush Oct 9, 2021
7b97622
Refactor(mfusg), Feat(mfusgcln, mfusggnc) (#1261)
cnicol-gwlogic Oct 11, 2021
8ab73a9
refactor(imports): add function to import optional packages (#1262)
jdhughes-usgs Oct 13, 2021
fc09435
Fix(ModflowFhb): update datasets 4, 5, 6, 7, 8 loading routine for mu…
jlarsen-usgs Oct 15, 2021
0d21b92
fix(keystring records): fixed problem with keystring records containi…
spaulins-usgs Oct 16, 2021
71f6cc6
fixes(1247): Make flopy buildable with pyinstaller (#1248)
tim-mitchell Oct 20, 2021
c252a34
refactor(setup): prefer setup.cfg for package metadata, and other cha…
mwtoews Oct 21, 2021
fb0a3e6
ci: add workflow to test flopy-based MODFLOW 6 tests (#1272)
jdhughes-usgs Oct 21, 2021
a13056d
@spaulins-usgs fix(model/IMS registration and model relative path) (#…
spaulins-usgs Oct 22, 2021
c70aebb
ci: convert from nosetest to pytest (#1274)
jdhughes-usgs Oct 29, 2021
797ca8a
ci: convert addition autotests to use flopyTest testing framework (#1…
jdhughes-usgs Oct 30, 2021
2014dd8
ci: convert addition autotests to use flopyTest testing framework (#1…
jdhughes-usgs Nov 1, 2021
999efc5
Updates(MF6Output): Added budgetcsv method to .output attribute (#1275)
jlarsen-usgs Nov 1, 2021
528ac74
ci: refactor FlopyTestSetup testing class (#1283)
jdhughes-usgs Nov 2, 2021
1fa2402
fix(io): read comma separated list (#1285)
ougx Nov 2, 2021
3e770ec
update(CellBudgetFile, MF6Output): update to pass modelgrid to CellBu…
jlarsen-usgs Nov 9, 2021
0bf5a5e
fix(mfusg/str) (#1296)
cnicol-gwlogic Nov 11, 2021
d248734
ci: switch from conda to standard python and pip (#1293)
jdhughes-usgs Nov 12, 2021
76bd34e
update(Raster): added min and max resampling for hydrologic resamplin…
jlarsen-usgs Nov 12, 2021
220974a
fix(path): fix subdirectory path issues (#1298)
briochh Nov 18, 2021
976ad81
fix(geospatial_utils.py): added pyshp and shapely imports check to ge…
jlarsen-usgs Dec 3, 2021
bbdf008
fix(autotests): added pytest.ini to declare test naming convention (#…
jlarsen-usgs Dec 3, 2021
849f68e
fix(plot_pathline): sort projected pathline points by travel time ins…
jlarsen-usgs Dec 3, 2021
806d601
feat(Gridintersect): add shapetype kwarg (#1301)
dbrakenhoff Dec 3, 2021
fad0915
fix(array): getting array data (#1028) (#1290)
spaulins-usgs Dec 3, 2021
1ccbee3
linting with updated version of black (#1315)
jlarsen-usgs Dec 7, 2021
8ab2e8d
fix(UnstructuredGrid): load vertices for unstructured grids (#1312)
cnicol-gwlogic Dec 9, 2021
0432ce9
fix(paths): Path code made more robust so that non-standard model fol…
scottrp Dec 9, 2021
fb0955c
fix(filenames): fixed how spaces in filenames are handled (#1236) (#1…
spaulins-usgs Dec 16, 2021
c253bab
ci: update t058 to fix issue on macos with python 3.9 (#1320)
jdhughes-usgs Dec 20, 2021
e4efe8e
update(Gridgen): added keyword arguments for smoothing_level_vertical…
jlarsen-usgs Dec 29, 2021
24f142a
fix(voronoi): clean up voronoi examples and add error check (#1323)
langevin-usgs Jan 3, 2022
2eeaf1d
feat(multiple package instances): FloPy support for multiple instance…
spaulins-usgs Jan 7, 2022
831771d
ci: add separate windows workflow that uses miniconda (#1324)
jdhughes-usgs Jan 7, 2022
ee009fd
feat(inspect cells): new feature that returns model data associated w…
spaulins-usgs Jan 11, 2022
4067022
ci(diagnose): create failedTests artifact (#1327)
langevin-usgs Jan 14, 2022
eecd1ad
update(Grid.intersect): added optional z-coordinate to intersect() me…
jlarsen-usgs Jan 14, 2022
16b84e8
style(import): consistently use relative imports (#1330)
mwtoews Jan 21, 2022
dced106
fix(Raster): resample_to_grid failure no data masking failure with in…
jlarsen-usgs Jan 21, 2022
7ec884f
refactor(distutils): Version classes are deprecated, use internal cla…
mwtoews Jan 21, 2022
0616db5
fix(postprocessing): get_structured_faceflows fix to support 3d model…
langevin-usgs Jan 21, 2022
33e61b8
fix(cellid): Fixes some issues with flopy properly identifying cell i…
spaulins-usgs Jan 25, 2022
0ee7c88
fix(ModflowUtllaktab): utl-lak-tab.dfn is redundant to utl-laktab.dfn…
mwtoews Jan 27, 2022
a13f8b9
style(imports): use isort tool, remove unused imports (#1341)
mwtoews Feb 1, 2022
9cc6e3e
ci: Add isort to linting step (#1343)
jdhughes-usgs Feb 1, 2022
2160ba6
ci: restrict use of pyshp=2.2.0 until ci failure issue resolved (#1345)
jdhughes-usgs Feb 4, 2022
8ac31dd
update(MFBlockHeader): fix for extremely slow loading of package OBS …
jlarsen-usgs Feb 9, 2022
141baee
update(read_binary_data_from_file): update for binary layer files wit…
jlarsen-usgs Feb 14, 2022
89af81f
update(geometry.py): added __reversed__ to geometry objects (#1347)
jlarsen-usgs Feb 16, 2022
8e3edd9
update(contouring routines): updates for contour_array and export_con…
jlarsen-usgs Feb 16, 2022
b59f1fe
fix(tab files): fixed searching for tab file packages (#1337) (#1344)
scottrp Feb 16, 2022
e3d15ee
refactor(flake8): F821 for 'undefined name' errors (#1350)
mwtoews Feb 18, 2022
8663a34
feat(gwtgwt-mvt): add support for gwt-gwt with mover transport (#1356)
langevin-usgs Feb 18, 2022
aa0baac
feat(mvt): add simulation-level support for mover transport (#1357)
langevin-usgs Feb 18, 2022
14d4615
fix(exchange obs): fixed building of obs package for exchange package…
spaulins-usgs Feb 28, 2022
ab9219f
release: version 3.3.5
jdhughes-usgs Mar 8, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 6 additions & 6 deletions .docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@

# add flopy root directory to the python path
sys.path.insert(0, os.path.abspath(".."))
from flopy import __version__, __author__
from flopy import __author__, __version__

# -- determine if running on readthedocs ------------------------------------
on_rtd = os.environ.get('READTHEDOCS') == 'True'
on_rtd = os.environ.get("READTHEDOCS") == "True"

# -- determine if this version is a release candidate
with open("../README.md", "r") as f:
Expand All @@ -37,9 +37,9 @@
with open(rst_name, "w") as f:
for line in lines:
if line.startswith("**Documentation for version"):
line = "**Documentation for version {}".format(__version__)
line = f"**Documentation for version {__version__}"
if rc_text != "":
line += " --- {}".format(rc_text)
line += f" --- {rc_text}"
line += "**\n"
f.write(line)

Expand All @@ -64,7 +64,7 @@
)
authors = __author__.split(sep=",")
for author in authors:
line += " * {}\n".format(author.strip())
line += f" * {author.strip()}\n"
line += " * and others\n\n"
f.write(line)
elif line.startswith(tag_end):
Expand All @@ -91,7 +91,7 @@

# -- Project information -----------------------------------------------------
project = "flopy Documentation"
copyright = "2021, {}".format(__author__)
copyright = f"2021, {__author__}"
author = __author__

# The version.
Expand Down
13 changes: 8 additions & 5 deletions .docs/create_rstfiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
def create_section(f, title, filenames, upper_case=False):
if upper_case:
title = title.upper()
title = "{} Tutorials".format(title)
line = "{}\n".format(title) + len(title) * "-" + "\n\n"
title = f"{title} Tutorials"
line = f"{title}\n" + len(title) * "-" + "\n\n"
line += "Contents:\n\n.. toctree::\n :maxdepth: 2\n\n"
for filename in filenames:
line += " _notebooks/{}\n".format(filename)
line += f" _notebooks/{filename}\n"
line += "\n\n"
f.write(line)

Expand All @@ -19,8 +19,11 @@ def create_tutorial_rst():
tutorial_dict = {}
for dirpath, _, filenames in os.walk(pth):
key = os.path.basename(os.path.normpath(dirpath))
files = [filename.replace(".py", "") for filename in sorted(filenames)
if filename.endswith(".py")]
files = [
filename.replace(".py", "")
for filename in sorted(filenames)
if filename.endswith(".py")
]
if len(files) > 0:
tutorial_dict[key] = files

Expand Down
19 changes: 12 additions & 7 deletions .docs/create_tutorials.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,18 @@ def create_notebooks():
# get a list of python files
py_files = []
for dirpath, _, filenames in os.walk(pth):
py_files += [os.path.join(dirpath, filename) for filename in
sorted(filenames) if filename.endswith(".py")]
py_files += [
os.path.join(dirpath, filename)
for filename in sorted(filenames)
if filename.endswith(".py")
]
# sort the python files
py_files = sorted(py_files)

# copy the python files
for src in py_files:
dst = os.path.join(wpth, os.path.basename(src))
print("{} -> {}".format(src, dst))
print(f"{src} -> {dst}")
shutil.copyfile(src, dst)

# create and run notebooks
Expand All @@ -43,10 +46,12 @@ def create_notebooks():
os.makedirs(npth)

for filepath in py_files:
src = os.path.join(wpth,
os.path.basename(filepath).replace(".py", ".ipynb"))
dst = os.path.join(npth,
os.path.basename(filepath).replace(".py", ".ipynb"))
src = os.path.join(
wpth, os.path.basename(filepath).replace(".py", ".ipynb")
)
dst = os.path.join(
npth, os.path.basename(filepath).replace(".py", ".ipynb")
)
shutil.copyfile(src, dst)
shutil.rmtree(".working")

Expand Down
2 changes: 1 addition & 1 deletion .docs/main.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
FloPy Documentation
===================

**Documentation for version 3.3.4 --- release candidate**
**Documentation for version 3.3.5 --- release candidate**

Return to the Github `FloPy <https://github.com/modflowpy/flopy>`_ website where the code resides.

Expand Down
9 changes: 6 additions & 3 deletions .docs/pysrc/tutorial1.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import os
import sys

import numpy as np

import flopy

# Assign name and create modflow model object
Expand Down Expand Up @@ -52,10 +54,11 @@
mf.run_model()

import matplotlib.pyplot as plt

import flopy.utils.binaryfile as bf

plt.subplot(1, 1, 1, aspect="equal")
hds = bf.HeadFile(modelname + ".hds")
hds = bf.HeadFile(f"{modelname}.hds")
head = hds.get_data(totim=1.0)
levels = np.arange(1, 10, 1)
extent = (delr / 2.0, Lx - delc / 2.0, Ly - delc / 2.0, delc / 2.0)
Expand All @@ -66,12 +69,12 @@
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(1, 1, 1, aspect="equal")

hds = bf.HeadFile(modelname + ".hds")
hds = bf.HeadFile(f"{modelname}.hds")
times = hds.get_times()
head = hds.get_data(totim=times[-1])
levels = np.linspace(0, 10, 11)

cbb = bf.CellBudgetFile(modelname + ".cbc")
cbb = bf.CellBudgetFile(f"{modelname}.cbc")
kstpkper_list = cbb.get_kstpkper()
frf = cbb.get_data(text="FLOW RIGHT FACE", totim=times[-1])[0]
fff = cbb.get_data(text="FLOW FRONT FACE", totim=times[-1])[0]
Expand Down
13 changes: 8 additions & 5 deletions .docs/pysrc/tutorial2.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import os

import numpy as np

import flopy

# Model domain and grid definition
Expand Down Expand Up @@ -121,12 +123,13 @@

# Imports
import matplotlib.pyplot as plt

import flopy.utils.binaryfile as bf

# Create the headfile and budget file objects
headobj = bf.HeadFile(modelname + ".hds")
headobj = bf.HeadFile(f"{modelname}.hds")
times = headobj.get_times()
cbb = bf.CellBudgetFile(modelname + ".cbc")
cbb = bf.CellBudgetFile(f"{modelname}.cbc")

# Setup contour parameters
levels = np.linspace(0, 10, 11)
Expand Down Expand Up @@ -156,7 +159,7 @@
# Create the plot
f = plt.figure()
plt.subplot(1, 1, 1, aspect="equal")
plt.title("stress period " + str(iplot + 1))
plt.title(f"stress period {iplot + 1}")

modelmap = flopy.plot.PlotMapView(model=mf, layer=0)
qm = modelmap.plot_ibound()
Expand All @@ -181,13 +184,13 @@
zorder=9,
)
plt.text(wpt[0] + 25, wpt[1] - 25, "well", size=12, zorder=12)
plt.savefig("tutorial2-{}.png".format(iplot))
plt.savefig(f"tutorial2-{iplot}.png")

# Plot the head versus time
idx = (0, int(nrow / 2) - 1, int(ncol / 2) - 1)
ts = headobj.get_ts(idx)
plt.subplot(1, 1, 1)
ttl = "Head at cell ({0},{1},{2})".format(idx[0] + 1, idx[1] + 1, idx[2] + 1)
ttl = f"Head at cell ({idx[0] + 1},{idx[1] + 1},{idx[2] + 1})"
plt.title(ttl)
plt.xlabel("time")
plt.ylabel("head")
Expand Down
12 changes: 12 additions & 0 deletions .docs/tutorials.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,18 @@ Contents:
_notebooks/tutorial02_mf


.IPYNB_CHECKPOINTS Tutorials
----------------------------

Contents:

.. toctree::
:maxdepth: 2

_notebooks/tutorial01_mf-checkpoint
_notebooks/tutorial02_mf-checkpoint


SEAWAT Tutorials
----------------

Expand Down
36 changes: 0 additions & 36 deletions .flake8

This file was deleted.

111 changes: 111 additions & 0 deletions .github/workflows/ci-mf6.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: flopy mf6 CI

on:
schedule:
- cron: '0 8 * * *' # run at 8 AM UTC (12 am PST)
push:
branches:
- master
- develop
- 'release*'
pull_request:
branches: [master, develop]

jobs:

flopymf6CI:
name: mf6 flopy autotests
runs-on: ubuntu-latest
strategy:
fail-fast: false
defaults:
run:
shell: bash

steps:
# check out repo
- name: Checkout flopy repo
uses: actions/checkout@v2.3.4

- name: Get branch name
uses: nelonoel/branch-name@v1.0.1

- name: Setup Python 3.9
uses: actions/setup-python@v2.2.2
with:
python-version: 3.9

- name: Install Python 3.9 packages
run: |
python -m pip install --upgrade pip
pip install -r etc/requirements.pip.txt

- name: Install pymake, xmipy, modflowapi, and flopy
run: |
python -m pip install --upgrade pip
pip install https://github.com/modflowpy/flopy/zipball/develop
pip install https://github.com/modflowpy/pymake/zipball/master
pip install https://github.com/Deltares/xmipy/zipball/develop
pip install https://github.com/MODFLOW-USGS/modflowapi/zipball/develop
pip install . --use-feature=in-tree-build

- name: Setup symbolic links on Linux
run: |
sudo ln -fs /usr/bin/gfortran-10 /usr/local/bin/gfortran
sudo ln -fs /usr/bin/gcc-10 /usr/local/bin/gcc
sudo ln -fs /usr/bin/g++-10 /usr/local/bin/g++

- name: Print GNU compiler versions
run: |
gfortran --version
gcc --version
g++ --version

- name: Clone MODFLOW 6 repo
run: |
git clone https://github.com/MODFLOW-USGS/modflow6.git modflow6

- name: Update flopy MODFLOW 6 classes
working-directory: ./modflow6/autotest
run: |
python update_flopy.py

- name: Install meson
run: |
pip install meson ninja

- name: Setup modflow
working-directory: ./modflow6
run: |
meson setup builddir --buildtype=debugoptimized --prefix=$(pwd) --libdir=bin

- name: Build modflow
working-directory: ./modflow6
run: |
meson compile -C builddir

- name: Install modflow
working-directory: ./modflow6
run: |
meson install -C builddir

- name: Get executables
working-directory: ./modflow6/autotest
run: |
pytest -v --durations=0 get_exes.py

- name: Run pytest
working-directory: ./modflow6/autotest
run: |
pytest -v -n auto -k "test_gw" --durations=0 --cov=flopy --cov-report=xml

- name: Print coverage report before upload
working-directory: ./modflow6/autotest
run: |
coverage report

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v2.1.0
with:
directory: ./modflow6/autotest
file: coverage.xml
Loading