Skip to content

Releases: yt-project/yt

yt-4.3.1

06 Apr 06:53
b112f8a
Compare
Choose a tag to compare

Summary

This is the first bugfix release in the yt 4.3.x series. It contains fixes to bugs discovered since the 4.3.0 release.

There are no new features or deprecations in this version, all users are encouraged to upgrade.

Python 3.9.2 to 3.12 is supported.

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

🌟 Highlights

This is our first release with compatibility for NumPy 2.0 and unyt 3.0
NumPy 2 and unyt 3 both contain nice features as well as breaking changes.
Upgrading them is now possible but remains optional for the time being: we still
support NumPy 1.19 and unyt 2.9 respectively.

🐛 Bug fixes

#4703 Fix broken urllib imports, by @neutrinoceros (issue #4700 by @yut23)
#4699 Make annotate_sphere and annotate_arrow safe when run after plot invalidation, by @chrishavlin (issue #4698 by @neutrinoceros)
#4722+#4724 Fix an incompatibility with unyt 3.0 (amu_cgs doesn't exist as a physical constant anymore), by @neutrinoceros (issue #4162)
#4725 Handle deprecation warnings from numpy 2.0.0dev0 (np.row_stack -> np.vstack and np.in1d -> np.isin), by @neutrinoceros
#4745 Avoid a deprecation warning in yt.load_sample on Python 3.12, by @neutrinoceros (issue #4689)
#4768 Switch to field tuples for default fields in particle_trajectories, by @mtryan83 (issue #4766)
#4792 Enforce Figure dpi in _show_mpl, by @chrishavlin (issue #4785 by @neutrinoceros)
#4802 Fix bug where race condition results in incorrect fields categorization when computing particle_trajectories, by @mtryan83
#4825 Use the validated center for YTCuttingPlane set_field_parameter, by @chrishavlin (issue #4823 by @biboyd)
#4829 Avoid usage of deprecated numpy.core namespace (numpy 2 compat), by @neutrinoceros
#4839 Fix geographic coordinate conversions, by @chrishavlin

🤖 Frontend-specific fixes

#4686 Minor bugfix in cholla frontend, by @mabruzzo
#4708 The f90nml package is optional to load RAMSES, by @cphyc
#4746 Avoid a noisy self-triggered warning about libconf being a hard dependency to load any enzo data, by @neutrinoceros
#4797 Correct domain_dimensions in non-fixed block size uniform grid FLASH output, by @acreyes
#4758 Allow boxlib frontend to read 1D cylindrical datasets by @yut23
#4805 Add support for Quokka datasets, by @yut23
#4801 Fix order of Athena++ cylindrical coords, by @forrestglines
#4815 Assign domain dims after updates in Athena, by @mattewturk
#4828 Fix parameter parsing for Castro and MAESTRO, by @yut23

📚Documentation

#4719 Fix notebook links, by @Xarthisius
#4743 Use axis_order kwarg in geo notebook, by @chrishavlin
#4776 Fix a broken docs example, by @neutrinoceros (issue #4774 by @xshaokun)

🧩 Build and testing

#4759 Update xarray integration test to use non-deprecated API, by @neutrinoceros
#4764 Enzo testing framework - ignore units for ShockTube tests, by @clairekope
#4778 Explicitly set minimum Python to 3.9.2, by @chrishavlin
#4784 Ignore deprecation warning from pandas (Pyarrow will become a required dependency), by @neutrinoceros
#4830 Ditch np.int_t, removed in numpy 2's C API (use np.int64_t instead), by @neutrinoceros
#4852 Migrate module-level setup/teardown functions to pytest, by @neutrinoceros (issue #4850)
#4859 Add support for numpy 2, by @neutrinoceros

Other fixes

#4753 Add info about supported simulation types in YTSimulationNotIdentified, by @neutrinoceros
#4819 Catch Py312+ warning when using ratarmount, by @cphyc (issue #4799 by @neutrinoceros)
#4806 Replace vendored version of numpy.trapz with supported API in numpy 2, by @neutrinoceros
#4835 Remove untested and broken notebook command from CLI, by @neutrinoceros

Full Changelog: yt-4.3.0...yt-4.3.1

yt-4.3.0

10 Oct 15:21
b04985d
Compare
Choose a tag to compare

Summary

This third feature release in the 4.x series.
Python 3.9 to 3.12 is supported.

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

🌟 Highlights

  • This is the first version with support to CPython 3.12.
  • We've resolved all remaining compatibility issues with Cython 3.0

🐛 Bug fixes

#4656 Fix future incompatiblities with unyt 3.0, by @neutrinoceros
#4646 + #4693 Make load_sample MPI-safe, by @chrishavlin (issues #4635 by @matthewturk and #4691 by @neutrinoceros)
#4672 Fix a bug where load_hdf5_file didn't pass bounding box to load_amr_grids, by @jzuhone
#4688 Don't access data_source to get units, by @matthewturk

🚀 New features

#4449 Add support for symlog colorbars with arbitrary bases, by @neutrinoceros (issue #4448)
#4455 Add support for passing field keys for colors and linewidth in streamline plot annotations, by @neutrinoceros (issue #4454)
#4527 Add QuadrilinearFieldInterpolator, by @brittonsmith
#4553 Store basic software info in png metadata, by @Xarthisius
#4556 Add option to include min/max limits on the color field for export_sketchfab, by @evenoconnor
#4658 Allow annotate_grids to force cmap to respect max_levels, by @zingale
#4642 + #4662 Make unused pixels actually transparent in all imshow-based 2D visualisations, by @neutrinoceros (issue #4639 by @vdbma)
#4481 Add the ability to set the transfer function label fontsize, by @zingale

♻️ Optimisations, refactors and quality of life improvements

#4501 Cleanup empty cache directory after a successful call to load_sample, by @neutrinoceros
#4551 Avoid double-copies of cmyt colormaps, by @neutrinoceros
#4539 Delay frontends initialization until yt.load is actually called, by @neutrinoceros
#4517 Delay rarely used imports (netcdf4, importlib, multiprocessing, tarfile, tomllib, tomli_w), by @neutrinoceros
#4579 ytdata: check for all_data in particle selection, by @chrishavlin
#4595 ytdata io: use data_file.start and .end index range, by @chrishavlin (issue #4565 by @Ecskrabacz10)
#4597 Reduce code duplication in IOHandler _read_particle_coords and _read_particle_fields, by @chrishavlin
#4496 Avoid unnecessary array copies through np.ndarray.astype where possible, by @neutrinoceros
#4275 Add information about missing optional dependencies as warnings and error messages in yt.load, by @neutrinoceros (issue #4274)
#4398 Enable querying FEM values from Python, by @matthewturk
#4584 More SPH field improvements, @jzuhone
#4673 Return the count from fill_mask_regular_grid, by @chrishavlin
#4641 Utilize readonly attributes, by @matthewturk

Typing

#4629 + #4667 Fix type-checking incompatibilities with matplotlib 3.8, by @neutrinoceros

Tests

#4508 Nest the pytest import in yt.testing, by @chrishavlin (issue #4507)
#4580 Run cookbook recipes in a deterministic order, by @neutrinoceros
#4677 Restore global state modified during tests, by @yut23

📚 Documentation

#4509 Improve docs for FieldValidator objects, by @chrishavlin
#4663 Updating documentation to use Sphinx-7.x, by @Xarthisius
#4674 Update ds9 region format, by @Xarthisius (issue #4591)
#3806 Update "how to release" docs, by @neutrinoceros (issue #3448 by @munkm)
#4684 Update support table for yt 4.3, by @neutrinoceros (issue #4671)

🤖 Frontends

#4562 Athena++ stretched grids support, by @jzuhone (issues #1585 by @Yurlungur, #3389 by @smressle, #3619 by @neutrinoceros and #4557 by @matthewturk)
#4572 Species handling for the stream frontend, by @jzuhone
#4470 + #4605 Update GIZMO frontend to handle newer GIZMO versions, by @mtryan83
#4424 Support for sinks in csv format for RAMSES frontend, by @Lenoble-lab

💣 Deprecations

#4519 Use builtin DeprecationWarnings, by @neutrinoceros (issue #4518)
#4634 + #4676 drop unmaintained install script, by @neutrinoceros and @chrishavlin (issue #4633)

🧩 Build and requirements

#4521 Drop support for matplotlib<3.5, by @neutrinoceros (issue #4379)
#4523 Stop building wheels for Windows 32, by @neutrinoceros (issue #4522)
#4607 Forbid deprecated numpy C API, by @neutrinoceros (issue #4606)
#4583 Explicitly specify build-backend, by @neutrinoceros
#4621 Simplify cartopy integration testing (using cartopy 0.22)
#4625 Add wheels for CPython 3.12
#4637 Migrate from oldest-supported-numpy to NPY_TARGET_VERSION, by @neutrinoceros (issue #4568)
#4659 Drop support for CPython 3.8, by @neutrinoceros (issue #4302)

Migration to Cython 3 (issue #4355): #4575, #4619, #4620, #4649, #4687. Patches by @neutrinoceros, @Xarthisius and @matthewturk

yt-4.2.2

25 Aug 12:06
9e2bf0e
Compare
Choose a tag to compare

Summary

This is the last planned bugfix release in the yt 4.2.x series. It contains fixes to bugs discovered since the 4.2.1 release.

There are no new features or deprecations in this version, all users are encouraged to upgrade.

Python 3.8 to 3.11 is supported.
The next planned release, yt 4.3.0, will support Python 3.12

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

🐛 Bug fixes

#4544 Fix docstring for load octree, by @matthewturk (issue #4542)
#4549 Fix marker plot annotation, by @neutrinoceros (issue #4548)
#4566 Update annotate_contours docs to avoid deprecated API, by @zingale
#4570 Fix fake_dataset periodicity attribute in FieldDetector, by @jzuhone
#4577 Fix fortran IO test for big-endian architectures, by @cphyc and @neutrinoceros (issue #4569 by @olebole)
#4585 Avoid deprecated numpy API in flash frontend (implicit conversion of 1-sized arrays to scalar types is deprecated in numpy 1.25), by @neutrinoceros
#4586 Avoid divide-by-zero runtime warning from np.log10 in AMRKDTree.get_brick_data, by @neutrinoceros
#4547 Fix initialization of max level in load_octree, by @matthewturk (issue #4545)
#4601 Fix string interpolation (units double-printing) in GridIndex, by @neutrinoceros
#4604 Skip out-of-bounds particles in ngp deposition, by @neutrinoceros (issue #4603)
#4631 Fix an UnboundLocalError in PhasePlot._setup_plots, by @neutrinoceros (issue #4617 by @chummels)
#4638 Fix a crash with certain combinations of kwargs for adding dimensionless derived fields to datasets, by @neutrinoceros (issue #4636 by @vdbma)
#4644 Fix error message when trying to use a feature that requires cartopy while it's missing, by @neutrinoceros (issue #4633)
#4640 Only call find_spec sometimes, by @matthewturk

🤖 Frontend-specific fixes

#4414 gadget hdf: reduce size 1 header arrays to scalar, by @chrishavlin (issue originally reported by Ben Oppenheimer)
#4533 Fix a regression preventing loading of fits datasets, by @neutrinoceros (issue #4532 by @yzhenggit)
#4536 Fix a regression preventing loading of pyne/moab datasets, by @neutrinoceros (issue #4535 by @ahnaf-tahmid-chowdhury)

📚Documentation

#4582 Fix string interpolation (units double-printing) in particle_filter cookbook recipe, by @neutrinoceros
#4592 Docs fixes, by @Xarthisius
#4599 Update documentation on off-axis projections for non-SPH particle data, by @neutrinoceros (issue #4528)

🧩 Build and testing

#4573 Set upper limit to runtime numpy, by @neutrinoceros
#4609 Sort input file list, by @bmwiedemann

Full Changelog: yt-4.2.1...yt-4.2.2

yt-4.2.1

17 Jun 10:41
4ef58b7
Compare
Choose a tag to compare

Summary

This is the first bugfix release in the yt 4.2.x series. It contains fixes to bugs discovered since the 4.2.0 release.

There are no new features or deprecations in this version, all users are encouraged to upgrade.

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

🐛 Bug fixes

#4465 Turn range into a list for keyframes, by @matthewturk
#4472 Fix overflows in ParticleBitmap hashing, by @neutrinoceros (issue #4471 by @weiguangcui)
#4479 Fix a confusing warning emitted when a dimensionless derived field is registered with implicit units, by @neutrinoceros (issue #4478)
#4463 Fix a bug where setting boolean parameters from the command line would break at runtime validation, by @neutrinoceros (issue #4462)
#4482 Fix off-axis particle projections with a weight field, by @jzuhone
#4485 Unlock annotate_timestamp callback for polar and spherical geometries, by @neutrinoceros
#4475 Avoid implicitly dropping default parameters in plot annotation methods, by @neutrinoceros
#4490 Fix confusing formatting in log message when allocating <10k particles, by @neutrinoceros
#4491 Fix a bug where ProfilePlot and PhasePlot would be improperly validated at initialization, by @neutrinoceros (issue #4489 by @gravertino)
#4492 Fix a bug where calling plot.render() would have no effect depending on internal state, by @neutrinoceros (issue #4489 by @gravertino)
#4498 Fix internal divide-by-zero warnings, by @neutrinoceros
#4505 Fix an issue where NormalPlot.sanitize_normal_vector would raise an error when receiving a numpy integer, by @neutrinoceros
#4503 Fix noisy warnings when setting custom norm for fields with set_log=False, by @neutrinoceros (issue #4502)
#4513 Fix cm1 chunk reader, by @matthewturk (issue #4512)

Full Changelog: yt-4.2.0...yt-4.2.1

yt 4.2.0

27 May 12:51
3c12d55
Compare
Choose a tag to compare

Summary

This is the second feature release in the yt 4.x series. It also comes with some important bug fixes.
Some deprecations are now expired, some minor backward incompatibilities are expected. Anything broken on purpose in this version should correspond to a warning in yt 4.1.x, anything beyond that should be considered a regression; please report any unexpected breaking change.

Python 3.8 to 3.11 is supported.

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

🌟 Highlights

  • Multiple improvements (detection, validation, uage) for EWAH files (#4307, #4426)
  • yt can now be installed with frontend specific optional dependencies with pip (#4272)
  • Plugin frontends can now seamlessly hook into yt.load() (#4285)
  • Off-axis projections are now supported for non-SPH particle (#4440)

🐛 Bug fixes

#4235 Migrate away from broken optional dependency (pyregion -> regions), by @neutrinoceros (issue #4234)
#4268 Implement lazy-loading (on-demand-import) for regions, by @neutrinoceros (issue #3320 by @cphyc)
#4316 Check for _unit_system_name in save_as_dataset, by @chrishavlin (issue #4315)
#4328 cell_widths validation for load_uniform_grid, by @chrishavlin
#4361 + #4422 Handle deprecation warnings from numpy 1.25, by @neutrinoceros
#4378 Fix typo in vector operations and enable plot modifications for spherical geometry, by @jisuoqing
#4381 Avoid setting basename attribute in EnzoDatasetInMemory._parse_parameter_file, by @chrishavlin
#4387 Add meter and millimeter to smallest units, by @matthewturk
#4404 Make sure find_lowest_subclasses doesn't add extra classes, by @yut23
#4417 Fix inconsistent units labelling between plot axis and colorbar, by @neutrinoceros (issue #4416)
#4426 More robust detection and checking of EWAH files, by @jzuhone
#4429 Fix confusing error message when yt fails to locate data, by @neutrinoceros
#4431 Allow smoothing of derived SPH fields onto covering grids, by @jzuhone
#4438 Raise exception when a file does not exist, by @cphyc (issue #4436)
#4443 Fix a bug in Dataset.print_stats() where length units would be printed twice, by @neutrinoceros

🚀 New features

#4175 Improvements to field_to_include specifications in create_firefly_object, by @mtryan83 (issue #4174)
#4198 + #4249 Automatically find EWAH files with increased index_order2, by @jzuhone (issue #3487 by @chummels)
#4205 Add upward directory lookup for local configuration file, by @neutrinoceros (issue #3953)
#4222 Two new features for writing FITS images, by @jzuhone
#4272 Add support for installing yt with cherry-picked, frontend specific optional dependencies with pip, by @neutrinoceros (issue #4272)
#4285 Automatically load external frontends in yt.load(), by @Xarthisius
#4307 Allow to store multiple bitmap indices in the ewah-sidecar, by @Xarthisius
#4343 Add reusable matplotlib stylesheet, by @neutrinoceros (issue #4342)
#4363 Add basename for loaders, by @jisuoqing
#4397 Allow hint keyword for yt.load to select superclasses, by @yut23
#4410 Export standard deviation to pandas DataFrames and AstroPy QTables, by @jzuhone
#4446 Whitelist the SPH star_formation_rate field, by @jzuhone
#4440 Off-axis (non-SPH) particle projections, by @jzuhone

experimental features

♻️ Optimisations and refactors

#4183 Ensure SpectralCubeCoordinateHandler is testable and tested, by @neutrinoceros (issue #4180)
#4195 Cleanup unused import statements in Cython files, by @neutrinoceros
#4196 Remove useless variables in Cython code, by @cphyc
#4200 Fix a missing type declaration in Cython file , by @neutrinoceros
#4210 Simplify/clarify inheritance hierarchy for yt.data_objects.unions.Union, by @neutrinoceros
#4226 Don't drop ImportError tracebacks for lazily-loaded optional dependencies, by @neutrinoceros (issue #4224)
#4242 Upgrade flake8-bugbear and fix newly detected errors, by @neutrinoceros
#4244 and #4309 Use an enum to represent dataset geometries, by @neutrinoceros
#4265 Delay expensive imports, by @neutrinoceros
#4292 and #4325 Migrate from pkg_resources to importlib.resources, by @neutrinoceros (issue #4287)
#4294 Minor refactor for PhasePlot._setup_plots, by @neutrinoceros
#4411 Rewrite find_lowest_subclasses to better match its intent, by @yut23
#4435 Simplify base CoordinateHandler implementation, by @neutrinoceros

Typing

#4227 Typing improvements using latest mypy (0.991), by @neutrinoceros
#4229 Add static typing to Dataset._get_field_info_helper, by @neutrinoceros
#4251 Add missing type hints, by @neutrinoceros
#4260 Use FieldKey type aliases instead of Tuple[str, str], by @neutrinoceros
#4277 Fix mypy warnings about unchecked hints, by @neutrinoceros

Tests

#4255 Add some missing test for stream grids with callables, by @chrishavlin
#4266 Add missing @requires_module("h5py") decorators, by @neutrinoceros
#4267 Uniformize YTException class hierarchy, by @neutrinoceros
#4310 Bump CI from Python 3.10 to 3.11, by @neutrinoceros
#4336 Enable dependabot autoupdates for GitHub workflows, by @neutrinoceros (issue #4333)
#4354 Minor updates to answer tests infra, by @Xarthisius

📚 Documentation

#4181 Cleanup calls to private methods _setup_plots in doctests, by @neutrinoceros
#4314 Fix docs typo in load_hdf5_file description, by @chrishavlin
#4332 Load unstructured mesh SlicePlot, by @chrishavlin
#4377 Fix typos, by @neutrinoceros
#4385 Fix example in docs and missing displacement for unstructured mesh, by @matthewturk
#4388 Fix field access in ytdata docs, by @brittonsmith
#4407 A few doc fixes from Sphinx make linkcheck, by @zingale
#4423 Some spelling fixes, by @zingale

🤖 Frontends

Frontend-specific improvements and bug fixes

[Arepo]
#4419 Small Arepo/Gadget enhancements, by @jzuhone

[Boxlib]
#4402 ENH: improve boxlib data type detection, by @yut23

[CHOLLA]
#4389 Avoiding issue for CHOLLA LightRay datasets, by @chummels

[FLASH, GAMER]
#4134 Enable exporting GAMER and FLASH datasets to octrees, by @matthewturk

[Gadget]
#4419 Small Arepo/Gadget enhancements, by @jzuhone

[Gizmo]
#4331 Fix an error when loading a non-cosmological dataset, by @jisuoqing

[MAESTROeX]
#4347 Fixed the detection of how temperature is defined, by @zingale

💣 Deprecations

Expired deprecations and known-breaking changes

#4106 Expire deprecations ended in yt 4.2, by @neutrinoceros

New deprecations

#4177 Deprecate calling yt.load with first argument passed as keyword, by @neutrinoceros
#4210 Deprecate Importing ParticleUnion from yt.data_objects.particle_unions, by @neutrinoceros
#4434 Deprecate numpy.testing reexports in yt.testing, by @neutrinoceros
#4439 Deprecate unnecessary functions in the yt.testing namespace, by @neutrinoceros

🧩 Requirements

  • Python 3.8 or newer is now required
  • numpy >= 1.17.5 or newer is now required
  • matplotlib >= 3.2.0 is now required
  • ewah-bool-utils >= 1.0.2 is now required (see #2711, by @themousepotato)
  • importlib-resources >= 1.3 is now required with Python < 3.9
  • typing-extensions >= 4.1.0 is now required with Python < 3.11
  • other constraints for optional/testing dependencies were lifted (see #4364, #4380, #4344)

Notes for downstream packagers and developers

  • ewah-bool-utils >= 1.0.2 is now required at build time
  • Cython>=0.29.33 is now required at build time. We have made constant progress towards compatibility with the future Cython 3.0 (#4357, #4359, #4365, #4373, #4374, #4375, #4376, #4386, #4390, #4392)
  • packaging metadata was migrated to pyproject.toml (#4271, #4273, #4276)

yt 4.1.4

21 Jan 10:07
8a6dca3
Compare
Choose a tag to compare

Summary

This is the fourth bugfix release in the yt 4.1.x series. It contains fixes to bugs discovered since the 4.1.3 release.

There are no new features or deprecations in this version, all users are encouraged to upgrade.

Python versions supported via our main distribution channels

Python version PyPI conda-forge
CPython 3.7
CPython 3.8
CPython 3.9
CPython 3.10
CPython 3.11

notes

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

🐛 Bug fixes

#4264 Fix calling PlotContainer.set_font to set font color, by @neutrinoceros (issue #4263)
#4281 Fix a regression in yt.load where '$HOME' and '~' path weren't expanded, by @neutrinoceros (issue #4280)
#4285 (partial) Fix issue #4286 SDF frontend breaks load() if target file lacks read permission, by @Xarthisius
#4297 (FLASH) Fix domain edges padding in reduced dimensions, by @neutrinoceros (issue #4296 by @jslavain)
#4265 (partial) Delay expensive imports, by @neutrinoceros

Documentation

#4261 Cleanup calls to private methods _setup_plots in cookbook , by @neutrinoceros

🧩 Build and testing

#4290 Upgrade setup-python GHA, by @Xarthisius

Full Changelog: yt-4.1.3...yt-4.1.4

yt 4.1.3

20 Dec 21:06
9d80a07
Compare
Choose a tag to compare

Summary

This is the third bugfix release in the yt 4.1.x series. It contains fixes to bugs discovered since the 4.1.2 release.
Most importantly, it reverts a unstable patch that was accidentally included in yt 4.1.2 (#4198).
EWAH files should now behave as in yt 4.1.1, and we're aiming at re-releasing the new behaviour (with fixes) in yt 4.2.0

There are no new features or deprecations in this version, all users are encouraged to upgrade.

Python versions supported via our main distribution channels

Python version PyPI conda-forge
CPython 3.7
CPython 3.8
CPython 3.9
CPython 3.10
CPython 3.11

notes

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

🐛 Bug fixes

#4231 Fix pixel size calculation for density option in particle projection plots and FITS images, by @jzuhone
#4239 Fix a broken docs example, by @neutrinoceros

🧩 Build and testing

#4247 ignore a deprecation warning triggered from cartopy, by @neutrinoceros
#4250 Revert "Backport PR #4198 on branch yt-4.1.x (Automatically find EWAH files with increased index_order2)", by @neutrinoceros
#4258 on branch yt-4.1.x, by @neutrinoceros

Full Changelog: yt-4.1.2...yt-4.1.3

yt 4.1.2

19 Nov 10:58
1f754d8
Compare
Choose a tag to compare

Summary

This is the second bugfix release in the yt 4.1.x series. It contains fixes to bugs discovered since the 4.1.1 release.
There are no new features or deprecations in this version, all users are encouraged to upgrade.

Python versions supported via our main distribution channels

Python version PyPI conda-forge
CPython 3.7
CPython 3.8
CPython 3.9
CPython 3.10
CPython 3.11

notes

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

🐛 Bug fixes

#4176 Make a MPL failure non-fatal for set_norm with old version of MPL, by @neutrinoceros
#4198 Automatically find EWAH files with increased index_order2, by @jzuhone
#4216 Fix compatibility between eps_writer and yt 4.1, by @neutrinoceros
#4211 Fix double counting of H nuclei in the Arepo frontend, by @jzuhone
#4221 Fix security issue (CVE-2007-4559), by @TrellixVulnTeam

🧩 Build and testing

#4186 Migrate OSX CI from osxfuse to macfuse, by @neutrinoceros
#4189 Resolve compatibility with pytest 7.2, by @neutrinoceros (issue #4188)
#4200 Fix a missing type declaration in Cython file, by @neutrinoceros
#4191 Add missing __init__.py files in Cholla and Chimera test folders, by @neutrinoceros (issue #4190 by @olebole)
#4206 Add libm to build for some Cython files, by @matthewturk (issue #4204 by @papoteur-mga)

Full Changelog: yt-4.1.1...yt-4.1.2

yt 4.1.1

17 Oct 17:07
f14af6b
Compare
Choose a tag to compare

Summary

This is the first bugfix release in the yt 4.1.x series.
It contains a couple of critical fixes to bugs discovered since the 4.1.0 release.
Most importantly, it resolves a memory leak that was affecting octree-based frontends (RAMSES and ART).
There are no new features or deprecations in this version, all users are encouraged to upgrade.

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

Note that binaries for Python 3.11 are only available via pip.

🐛 Bug fixes

#4160 hotfix iterative plot annotations, by @neutrinoceros (issue #4159)
#4164 Memory leak: free C++ memory before deallocing Python object, by @cphyc
#4156 (RAMSES) catch assertion errors with ill-written namelist files, by @cphyc

🧩 Requirements

#4155 ipywidget>=8.0.0 is now required (issue #4154)
#4163 and #4166: unyt>=3.0 is now forbidden (this is a temporary, and pre-emptive measure before unyt 3.0 is actually released)

Python 3.7 to 3.11 is supported

yt 4.1.0

07 Oct 14:11
f8efdf6
Compare
Choose a tag to compare

Summary

This is the first feature release in the yt 4.x series.
It contains about a year of work by many contributors, with many new features and improvements to the code base. It is also the first release to officially support Python 3.11
Some deprecations from yt < 4 are now expired, some minor backwards incompatibilities are expected. Anything broken on purpose in this version should correspond to a warning in yt 4.0.x, anything beyond that should be considered a regression; please report any unexpected breaking change.

How to upgrade

To upgrade from PyPI, run

python -m pip install --upgrade yt

or, with conda

conda update --channel conda-forge yt

Note that binaries for Python 3.11 are only available via pip.

🌟 Highlights

Newly supported data formats

yt 4.1 ships with 3 brand new frontends !

Improved loading for "ambiguous" data formats

yt.load sometimes raises YTAmbiguousDataType when more than one data format appears to be valid. Ideally this should never happen, but in some cases it is very frequent, in particular with BoxLib data, for which we support many hard-to-distinguish flavours.
In order to mitigate this issue, yt.load now accepts a hint keyword argument. For instance

yt.load("det_x_plt00000", hint="castro")

Stretched grid support

yt now has experimental support for "stretched" grid schemes (grids with arbitrarily varying cell width).
It is currently not compatible with AMR.

The following contains a non-exhaustive list of changes

🐛 Bug fixes

#2538 Combining set_zlim and set_unit methods doesn't work as expected (fixed in #3849, by @neutrinoceros )
#3901 Cannot plot data containing both finite and infinite values and use set_zlim (fixed in #3849, by @neutrinoceros)
#3986 Restore and fix flexible linear threshold guessing in symmetric logarithmic plots, by @chrishavlin (issue #3944)
#4021 Fix multiple issues with magnetic field derived fields definitions, by @neutrinoceros
#4075 Fix scaling in off-axis projections of filtered gas particles, by @jzuhone
#4098 Correcting deceptive typo in an error message, by @chummels
#4149 Fix a bug in the computation of metallicity for the generation of X-ray emission fields, by @geoyuqiu

🚀 New features

#3346 Allow to set units from config file, by @cphyc
#3421 Allow stream frontends to accept callables, by @matthewturk
#3443 Directly open compressed files1, by @cphyc
#3640 Add swap_axes, flip_horizontal and flip_vertical plot modifier methods, by @chrishavlin
#3666 Implement hint keyword argument for yt.load to help lifting ambiguities in data formats, by @neutrinoceros (issues #3510 by @mameehan5 and #3005 by @zingale)
#3686 Allow 'factor' argument in plot annotation methods to accept 2-tuples to distinguish x/y resolutions, by @neutrinoceros
#3756 Expose FRB filtering API, by @cphyc and @neutrinoceros
#3812 Allow for different normalizations of magnetic fields in CGS2, by @jzuhone (issue #3471 by @forrestglines)
#3822 Add support for varying colors in quiver annotations, by @neutrinoceros
#3940 Add "min" method to ProjectionPlot, by @rjfarber
#3489 yt.ProjectionPlot can now perform off-axis projections3, by @neutrinoceros (also #3723 and #3737)
#3817 Add support for VelocityCallback and MagFieldCallBack in spherical coordinates, by @neutrinoceros
#3989 Add support for projecting a field's standard deviation, by @jzuhone
#4063 Add data_source argument to covering grid, by @chrishavlin
#4119 Allow passing a dataset as a data source to ParticlePhasePlot, by @neutrinoceros
#4121 Add public API render methods to PlotContainer and FixedResolutionBuffer, by @neutrinoceros
#4142 ENH: add API to switch raytracing engine at runtime, by @neutrinoceros

experimental features

#2567 First cut at showing multiple transfer functions on VR, by @zingale
#2998 Enable variable cell widths for grid datasets #2998, by @matthewturk
#3849 Add ability to use colorbar norms other than linear, log and symlog, by @neutrinoceros (issue #3840)

♻️ Optimisations and refactors

Performance optimisations

#2416 Stop preallocating particles, by @matthewturk and @chrishavlin, issue #2383 by @zhafen
#3439 Cache _determine_fields for a given dataset by @Xarthisius
#3469 Optimise memory layout for particle oct container, by @themousepotato
#4029 Only compute field suggestions if YTFieldNotFound isn't caught, by @neutrinoceros
#3935 Import optional dependencies lazily4, by @neutrinoceros
#4025 Optimise startup time, by @neutrinoceros
#4037 First steps toward utilizing the octree infrastructure as an engine for block-structured data, by @BolunThompson
#4071 Optimise some grid selection operations by skipping unnecessary symbolic unit computations, by @yipihey
#4079 Optimise radius calculation, by @yipihey (+ #4091 by @brittonsmith)

User experience and developer experience improvements

#3065 Make Scene.save less verbose, by @neutrinoceros
#3436 Improve clarity of error message for region slicing with 2D dataset, by @neutrinoceros
#3495 Warn in case a Dataset subclass is redefined, by @neutrinoceros
#3519 Improve user input validation for PLViewerMPL._setup_origin, by @neutrinoceros
#3525 Allow direct dataset instantiation using the user path '~' glyph, consistently with yt.load, by @neutrinoceros
#3527 Improve formatting for YTUnidentifiedDataType exception, by @neutrinoceros
#3621 Improve verbosity of yt.enable_parallelism in case of error, by @neutrinoceros

Quality improvements and refactors

#3526 Particle reader cleanup, by @matthewturk
#3546 Setup basic type checking and fix existing type errors, by @neutrinoceros
#3617 Factorise coordinate handler, by @cphyc
#3624 Factorise code in halo containers, by @cphyc
#3626 Decouple yt.config from initialisation5, by @neutrinoceros
#3772 Avoid storing relative paths in Dataset attributes, by @neutrinoceros
#3920 Improve formatting consistency in YTException error messages, by @neutrinoceros
#3957 Refactor plot callbacks registration, by @neutrinoceros (issue #3945)
#3998 Update to fields used in Enzo answer testing, by @jwise77
#4116 Avoid subclassing builtin dict, by @neutrinoceros
#4057 Cleanup dead attribute Dataset.file_style, by @neutrinoceros
#4125 Stop using deprecated np.int, by @neutrinoceros
#4143 Updating Firefly-dependent areas to match API changes and PyPI packaging, by @mtryan83

📚 Documentation

#3395 and #3412 Avoid using pylab in docs, by @neutrinoceros
#3608 Document how Dataset._is_valid works, by @neutrinoceros (issue #1018 by @ngoldbaum)
#3627 Remove a false statement from yt.funcs.rootonly's docstring, by @neutrinoceros (issue #2054 by @DTHaydon)
#3642 Fix a broken example (change of api in the Athena frontend), by @neutrinoceros (issue #3641)
#3813 Update contribution guidelines, by @neutrinoceros (issue #2554 by @munkm)
#3926 Update broken link to re-licensing blog post, by @tracykteal
#3982 Fix broken annotate_particles example, by @chrishavlin (issue #3968 by @neutrinoceros)
#4080 Document plot callbacks extensibility, by @neutrinoceros (issue #4072)
#4124 Update instructions and redirections for installing cartopy, by @neutrinoceros
#4148 Add more info to magnetic fields documentation, by @jzuhone

🤖 Frontends

Frontend-specific improvements and bug fixes

[AMRVAC]
#3508 Optimise reading speed, by @neutrinoceros

[AREPO]
#3815 Add three new derived fields, by @jzuhone
#3258 New fields for Arepo and Gadget frontends, by @jzuhone
#4120 Add Arepo stellar photometric fields , by @jzuhone

[BoxLib]
#3515 Add a missing close statement, by @mameehan5
#4112 allow reading of 1D particle data, by @dpgrote

[Enzo-E]
#3914 Update Enzo-E particle mass/density distinction, by @brittonsmith
#4097 Store the Enzo-E version number in parameters attribute of EnzoEDataset, by @mabruzzo
#4099 Improved Enzo-E frontend's determination of fluid properties, by @mabruzzo

[Gadget]
#3258 New fields for Arepo and Gadget frontends, by @jzuhone
#3455 Make sure we add the Parameters group to hvals if it's present, by @jzuhone

[GAMER]
#4070 Use lookback time in cosmological simulation, by @koarakawaii

[RAMSES]
#3332 Allow user customization of RAMSES field loading, by @cphyc

💣 Deprecations

Expired deprecations and known-breaking changes

#3240 Deprecation cycle (4.0 -> 4.1), by @neutrinoceros
#3957 Deprecate dict argument plot_args in annotate_* methods where a **kwargs is sufficient, by @neutrinoceros
#3970 Turn ambiguous fields warnings into errors[^8], by @neutrinoceros (issues #3416, and #3235 by @cphyc)

#4142 changed the default ray tracing engine from "embree" to "yt" (builtin engine). Previous versions of yt would switch to embree at startup if pyembree was installed. This version requires that embree be explicitly required, either with configuration file:

[yt]
ray_tracing_engine = "embree"

or at runtime

from yt.visualization.volume_rendering.api import set_raytracing_engine
set_...
  1. this feature requires ratarmount as an optional dependency to yt, currently only Linux is supported, see #3749

  2. at the moment this is only used in Athena and Athena++ frontends

  3. yt.SlicePlot is now a class (previously it was a function). Instantiating OffAxisProjectionPlot (resp OffAxisSlicePlot) directly is now unnecessary (but still supported)

  4. with the exception of netCDF4, which is still imported at startup time if available

  5. a consequence of this patch is that yt will no longer create configuration files on startup if it can't find one

Read more