-
Notifications
You must be signed in to change notification settings - Fork 330
Release 3.9.3 #2509
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
Merged
Release 3.9.3 #2509
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Post release 3.9.2 reset
Fix #2459 and expand tests
This extends a bit further than #2457 to resolve #2455 to use the str and PathLib versions of exe paths in the method. It also improves the docstring and return typing info. But it also fixes autotest/test_mbase.py which was broken on Linux for paths that have mixed case to the repo. Paths don't need to be converted to lower() for equality comparisons, as this breaks mixed-case paths. The tests are written to compare pathlib objects, which works for the host path, e.g. Windows paths. This also catches a missing warning thrown in autotest/test_modflow.py.
Necessary as a result of MODFLOW-ORG/modflow6#2228
…2333) Reimplement createpackages.py with jinja. The aim is to match the old code generation capability without relying on mfstructure.py. This is a first step toward a leaner python representation of the mf6 input specification. Note: mfstructure.py is still used at runtime which will need to be unraveled in followup work. The new code generation machinery lives in flopy.mf6.utils.codegen. It includes a bunch of filters handling quirks of the generated classes which we can aim to eliminate in future. The templates should also get much simpler in future. The module now consumes TOML rather than legacy DFNs. modflow-devtools is used at code generation time to convert DFNs to TOML, then generate sources as before. The conversion happens behind the scenes and does not change anything for the user of the codegen utility. A new optional dependency group 'codegen' is introduced, with Jinja2 and modflow-devtools, which are required for the code generation utilities. These and some transitive dependencies (tomli/tomli_w) are added to environment.yml. Miscellaneous: - expand and add some mermaid diagrams to the MF6 module dev guide - minor fix in flopy/mf6/data/mfdatastorage.py to avoid referencing a variable before it exists - update DFNs as per MODFLOW-ORG/modflow6#2031
) * update(Mf6Splitter): change how node mapping is stored and loaded * `save_node_mapping` now writes a compressed `hdf5` file and stores additional modelgrid reconstruction information for original and split model representations * `load_node_mapping` changed to a static method that returns a Mf6Splitter object that can be used for array reconstruction * updated autotests * added example usage to `mf6_parallel_model_splitting_example.py` * json node mapping files no longer supported, user must rewrite node mapping files as hdf5 files. * linting * add h5py requirement to new tests * Added docstings to internal construct_modelgrid method * update docstings * try adding an explicit trap for grb in MF6Output to fix failing tests * revert unintentional model splitter changes * revert more model splitter changes * Add h5py to optional dependencies * add h5py to optional dependencies in environment.yml * Add support for ssm sources remapping * added boundname parsing to plot_bc
* chore: update python support policy in dev docs * revise phrasing Co-authored-by: Mike Taves <mwtoews@gmail.com> --------- Co-authored-by: Mike Taves <mwtoews@gmail.com>
#2473 flushed out some bad kper/kstp/totim/pertim values in the reversed headers, and some sloppy tests. Also remove unused utility functions. The reported error still needs a fix in followup.
Add a class method to reconstruct a ModelTime from an array of mf6 binary output file headers, and a method to reverse the time discretization. These are useful for binary file reversal.
Following up on #2475. Fixes #2473. #2480 was extracted from this changeset for tidiness. Up to now the reversal methods have worked for our backwards particle tracking examples, which have very simple time discretizations. But they didn't work in the general case — only for "symmetric" tdis with no time step multiplier. Fix several issues with binary output file reversal. Clean up and expand tests to include dis/disv/disu with both trivial and a couple non-trivial time discretizations. Make a small (but consequential) fix for #2481: when reversing we need to take the reciprocal of tsmult. Fix an issue with the ModelTime class perioddata property and add a pertim property like the totim property.
feat(grb): support reading data strings from binary grid file
feat(io): write fully gridded aux variables
…ecated DataFrame.append() call to pandas.concat() (#2491) Refactor deprecated DataFrame.append() call to pandas.concat()
* fix(model_splitter.py): add trap for obs packages in standard bc packages * fix indexing error in observation remapping routine * update testing syntax for ruff * change testing syntax for ruff * update test_package_observations
This reverts commit dcba9cf.
Revert "fix(evt): optional field mishandling"
fix(evt): optional field mishandling
Fix some CI failures. Same underlying root cause as MODFLOW-ORG/modflow6-examples#274. We need to get to the bottom of why meson 1.8.0 broke the mf5to6 converter build, and see if we can unpin meson upstream and here.
I think the environment file parser got stricter in a recent version of conda/mamba. Errant comma was tolerated before but no longer. Or we just haven't noticed the env was broken. Also fix the benchmarks CI, the job that collects the results needed seaborn.
Fix a problem in example notebook CI. The delete parameter to TemporaryDirectory was added in Python 3.12, but we still want to support >=3.10. Also the environment.yml still had a lower bound of 3.9, bump it.
* skip vtk/pyvista pathlines example on windows for now, I think one of the windows-latest (2025) image updates today broke something which pyvista/vtk/opengl rely on * switch mf6 CI tests to use the mf6 pixi environment, accommodating MODFLOW-ORG/modflow6-examples#275
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
* fix support for SSM file mapping * add ATS support * replace match/case statements in ModelTime with if/else
…ti-model simulations (#2507)
To avoid the dependency on a development branch of modflow-devtools, copy over the DFN parser, TOML conversion script, etc for now. Also include the necessary transitive dependencies. Workaround for 3.9.3's failure to launch.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
FloPy 3.9.3
The release can be approved by merging this pull request into
master
. This will trigger a final job to publish the release to PyPI.