-
Notifications
You must be signed in to change notification settings - Fork 330
Release 3.9.2 #2450
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.2 #2450
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.1 reset
Following PRT's expectation of model coordinates, convert to model coords by default if the grid has georef info. Add `global_xy` option to disable this and emit global coords. Default is False. Note: method does get slow when it has to do the vertices conversion for lots of points. This can undoubtedly be optimized by first computing vertices in model coordinates or something along those lines. But I figured that was outside the scope for this PR.
* add support for empty fmi package * add support for buy package mapping * add autotest
This should fix the failing optional dependency CI tests. There are still failures afflicting the main CI tests, to be fixed shortly.
The upload-artifact action stopped uploading "hidden" files (any file whose path contains a leading "." in some element).
Ruff 0.9 changed some defaults, rerun the formatter.
Test compatibility of the MF6 code generation mechanism with various MF6 versions in a CI job, rather than a pytest script. I think we can just run it daily, since the develop branch is tested on commit. Before this there was a CI issue which may have been related to invoking pip in a subprocess, which this now avoids.
…Windows (#2408) This PR aims to address a behavior change in shutil.which (in Windows) introduced in python/cpython#127035. For more context, in test_run_model_exe_rel_path, the mf6 executable is copied to a relative path, ../bin/mf6 (without extension). Within the test, shutil.which is used to locate the executable path. However, with the new changes in shutil.which, by default, it would only search for the path with an extension in PATHEXT, excluding paths without extension.
Add extra_pkgs kwarg, which updates the mfnam_packages dictionary.
The `environment.yml` was missing a few optional/developer dependencies we've recently added to `pyproject.toml`. Bring the former into sync with the latter (and list packages in the same order). With luck, conda will eventually be able to consume `pyproject.toml` files, and we can remove `environment.yml`. More info at issue 10633 on the conda repo (not linking to avoid the crossref showing up there). There were some old pycharm cell format comments in the notebook scripts which jupytext didn't like, remove them. This should close #2253. To avoid similar situations in the future, don't skip notebooks due to missing dependencies in CI. We did this for convenient local testing, so tests can run without all optional dependencies, but CI should be strict.
…oat() (#2421) Minor cleanup. Use properties instead of attributes. Deprecate set_float() and replace usages with precision setter.
Exclude it from the smoke tests
Trialing uv to close #2416. Pixi is probably preferable, but for now, there is a blocker that I don't see a way around*. It's easy enough to switch once we are ready, and this gives us several CI benefits immediately: - faster - locked dependencies I left the rtd.yml and examples.yml workflows untouched for two reasons: - the model splitter needs pymetis, which is available for windows from conda-forge but not pypi - the pypi vtk for windows crashed on one of the notebooks These can be switched from micromamba to pixi later on, at which point we can consolidate on pixi for everything? *Pixi has no way to tell uv to prerelease=allow, which is currently necessary because VTK has no valid 9.4+ official distribution for ARM macs on PyPI at the moment. I'd hoped PyPI dependencies could be overridden by conda dependencies, but pixi still tries (and fails) to solve them all for PyPI even if add them to pixi.tool.dependencies.
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 7 to 8. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](dawidd6/action-download-artifact@v7...v8) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Since these are given to change, it seems sufficient to raise (as we do) if a corresponding asset doesn't exist.
* update Mf6Splitter: Add support for groundwater energy model * fix(split_multi_model): zero pad `model_labels` formatting string for creating exchanges * fixes issue where "multi-models" cannot be split if there are 10 or more new model domains in the splitting mask
…2431) Previously failed with shutil.SameFileError if you tried to regenerate classes using the existing set of DFNs e.g. python -m flopy.mf6.utils.generate_classes --dfnpath flopy/mf6/data/dfn --no-backup Now it will work.
Since exporting a transient array looks the same as exporting a normal array, I removed that cell. And commented out 2 more write statements that were each taking a while.
Following up on #2424. We probably want to be aware of dependency issues asap so we can set constraints. Locked deps seem more appropriate for applications than libraries.
Neglected in #2433
* Update(ModelTime): refactor ModelTime and add features * refactor call signature to accept perlen, nstp, and tsmult as parameters * added methods: - `set_start_datetime()`: allows user to set/reset the start_datetime - `set_time_units()`: allows user to set/reset the time_units - `timeunits_from_user_input()`: uses fuzzy string logic to parse user supplied time units - `datetime_from_user_input()`: converts many types of datetime representation to a standard datetime object - `get_totim()`: allows user to get the totim value at the end of a stress period or stress period/time step combination - `get_datetime()`: allows user to get the datetime value at the end of a stress period or stress period/time step combination - `intersect()`: method that allows for time intersection. Method accepts datetime representations or totim and returns either the zero based stress period or the stress period and time step combination * added testing for ModelTime * updated FloPy model classes for ModelTime changes * Linting * Update NetCdf for ModelTime changes * add get_datetime_string() method to ModelTime to format ISO 8601 compliant date times * Remove TemporalReference, replaced functionality with ModelTime * commit test_copy and test_usg updates * First pass of changes to ModelTime for review comments * Refactors `set` methods to property setters and added a `datetimes` property to get a list of datetimes at the end of each time step * updates to ModelTime based on review comments *update test_model_splitter * Update modeltime.py manually add new modeltime.py * Update test_modeltime.py manually add new version of test_modeltime.py * update ModelTime and start_datetime call in mbase * linting * fix spelling * Add skip rule for test_modeltime to spell checker, as code tests purposely misspelled unit names * Update typing in doc-strings
Fix #2440 and one more similar case
This PR does the following: - Changes the build backend from setuptools to hatch's hatchling. Why? - While both are PyPA projects, setuptools has some odd legacy concepts like MANIFEST.in and egg-info directories, that are not used with modern builds. It's an old system that is primarily maintained to maintain legacy behaviour and not to embrace modern enhancements. - Hatchling is a common and modern build backend, e.g. demonstrated as a default in guidelines. New features and plugins are actively developed for hatch and hatchling by Python core developers. - Use the hatch-fancy-pypi-readme plug-in to stitch content for the documentation in PyPI. (There is more potential to this plug-in, such as amending changelog info from each release). See preview via uvx hatch project metadata readme. - Remove the 'build' optional dependency (or extra), as this a prerequisite only for packaging builds, not an optional dependency. Builds can happen using several methods, e.g. python3 -m build or uv build or uvx hatch build etc. I've done some comparisons of the sdist (.tar.gz) and bdist (.whl) outputs, and the contents are nearly identical.
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.2
The release can be approved by merging this pull request into
master
. This will trigger a final job to publish the release to PyPI.