Skip to content

Releases: yt-project/yt

yt-4.4.0

11 Nov 14:24
2625a1c
Compare
Choose a tag to compare

Summary

This is the fourth feature release in the 4.x series.
It also contains important bugfixes as compared to yt 4.3.1 .
Ramses users are advised to read the dedicated section bellow in detail, as this release contains 3 fixes marked as breaking changes.
There are no other intended breaking changes.

Python 3.10.3 to 3.13 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

⚠️ yt 4.4.0 isn't available on conda-forge at the time this note is published, but will be soon

🌟 Highlights

  • the frontend previously known as boxlib was renamed to AMReX
  • this release contains a brand new frontend for Parthenon datasets. Thanks
    to @pgrete and @forrestglines.
  • many great improvements regarding projections, slices, and interpolations for SPH datasets, thanks to @nastasha-w
    • off-axis projections are now supported
    • improved convergence with grid resolution
    • improved mass conservation
    • fixed a critical bug where column densities estimates were incorrect by a factor x3

New features

#4707 Add override_bins to data_container.profile, by @chrishavlin
#4717 Access output in timeseries by its time or redshift, by @cphyc
#4732 Allow cell_widths and nproc > 1 for load_uniform_grid, by @chrishavlin
#4740 Enable quiver callback for geographic geometries, by @chrishavlin
#4762 Add check for finite values in extrema, by @chrishavlin
#5001 Support line-of-sight fields for particle types, by @jzuhone

AMR frontends

#4734 Read AMR domains lazily, by @cphyc

SPH frontends

#4696 Allow names for the sph particle type other than "io" in the stream frontend, by @jzuhone
#4939 Sph projections, slices, gridding: backend and off-axis, by @nastasha-w

🐛 Bug fixes

#4728 Fix auto-reports for bleeding edge ci, by @neutrinoceros
#4782 Updates for gamer sr fields, by @jzuhone
#4783 Ray object dl for sph data: interpolate kernel table for (b/hsml)**2 instead of b/hsml, by @nastasha-w
#4872 Always use the coordinate system normal for computing angular momentum components for particles, by @jzuhone
#4875 Create duplicate of mpi communicator, to avoid double comm.free, by @reuterk
#4877 Reduce rendered images without considering opacity, by @biboyd
#4882 Update qt backend entries in backend_specs, by @chrishavlin
#4891 Avoid resourcewarnings in the amrex frontend, by @yut23
#4893 Fix geographic coords convert_to_cartesian with units, by @chrishavlin
#4894 Only compile fixed_interpolator.cpp once, by @yut23
#4898 Fix bleeding-edge build script, by @yut23
#4904 Move field resolution inside conditional., by @matthewturk
#4920 Fix deprecated implicit casting of arrays with ndim>0 to int scalar, by @neutrinoceros
#4930 Require numpy 2.0.0 (stable) at build time, by @neutrinoceros
#4945 Fix memory leakage, by @cindytsai
#4950 Skip a flaky test on windows, by @neutrinoceros
#4970 Fix indexing error in fill_region_float, by @chrishavlin
#4980 Adjust platform_dep.h for recent msvs versions, by @chrishavlin
#4981 Fix orientation of colorbar in multiplanel plot, by @xshaokun
#5000 Ensure ytslice.coord has units, by @chrishavlin
#5008 Hotfix unsolvable type-checking requirements, by @neutrinoceros
#5014 Remove unused north_vector in off_axis_projection example, by @chrishavlin
#5028 Stop using deprecated urllib.request.fancyurlopener, by @barneygale

🎛️ Frontend-specific changes

AMRex

#4845 Rename boxlib frontend as amrex, by @henrynjones
#4908 Add support for molecular fields (amrex), by @simonguichandut
#4994 Fix machnumber field spelling in amrex frontend for castro, by @zingale
#4914 Drop unused and duplicated parsing logic in amrex frontend, by @neutrinoceros
#4943 Fix loading of amrex datasets with ~ in the filename, by @yut23

AMRVac

#4937 AMRVac: variable he abundance, by @jordidj

ART

#4929 Ensure type safety in a call to np.logspace, by @neutrinoceros

CF_Radial

#4915 Add check for sub_conventions for cfradial, by @chrishavlin
#5043 Cf_radial: fix deprecated dims access, add pytest tests with mock ds, by @chrishavlin
#5048 Switch xradar pin to arm-pyart pin in tests, by @chrishavlin

Enzo-E

#4932 Add support for enzo-e simulations with 0 ghost zones, by @mabruzzo

Flash

#5019 Better logic for detection of particle handle for checkpoint files, by @jzuhone

GAMER

#4739 Support for cosmic ray fields in GAMER, by @jzuhone

Idefix

#4822 Support installing yt_idefix as pip install yt[idefix]; plug it in docs, by @neutrinoceros

Parthenon

#4323 Add parthenon frontend, by @pgrete

Ramses

#4720 Ramses-speedup, by @cphyc
#4736 Fast seek through file, by @cphyc
#4878 Make hilbert intersection faster, by @cphyc
#4879 Correct errors in capital letter, by @Lenoble-lab
#4907 Make sure fields are read in the order they appear in the file, by @cphyc
#4938 Ramses: allow reading datasets with slightly broken records., by @cphyc

⚠️ The three following patches are considered breaking changes

#4706 Simplify handling of conformal birth times in ramses, by @cphyc
Change in the way particle times are computed. The precision of the conversion from conformal time to physical time has been increased and is now consistent everywhere. This will result in different formation times when using cosmological simulation. In addition, if birth_XXXXX.outYYYYY files are detected, they will be read to obtain particle birth times.

#4817 Fix missing mu in temperature calculation ramses, by @V-Nathir
Change in the definition of the ('gas', 'temperature') field. The temperature field was erroneously returning $$T/\mu$$, with $$\mu$$ the mean molecular weight (typically between 0.8 and 1.4). This is now fixed. The old values can still be obtained through ("gas", "temperature_over_mu").

#4843 Add support for self-shielding in heating/cooling rates calculation for Ramses, by @cphyc
Change in the way cooling tables are used. If "self-shielding" is detected from the namelist or is set by the user with ds=yt.load("output_12345", self_shielding=True), the hydrogen number density used to obtain cooling, heating and $$\mu$$ from the cooling tables are multiplied by an exponential prefactor, consistently with what RAMSES is doing internally. This will change the values of the cooling and heating rates, as well as $$\mu$$ and temperature at high-densities (above 0.01 mp/cm³).

Rockstar

#4661 Read rockstar members, by @cphyc

Swift

#4921 Fix compatibility issues with newest versions of swift, by @smsutherland

Tipsy

#4964 Tipsy, reading just smoothing length, by @chrishavlin
#4884 Fix tipsy file handler opening, by @matthewturk
#4885 Tipsy use max_rows instead of skip_footer for ascii aux read, by @chrishavlin

🎭 Performance

#4525 Add a few bitarray functions and tests, by @matthewturk
#4741 Use stamping approach to deposit off-axis cells, by @cphyc
#5018 Release the GIL in cylindrical pixelizer, by @chrishavlin

🏭 Refactors

#4537 Refactor ParticleProjectionPlot for consistency with ProjectionPlot, by @neutrinoceros
#4733 Refactor usage of numpy.random legacy api, by @neutrinoceros
#4940 Explicitly set strict flag in zip calls (enforce B905), and ignore UP038, by @neutrinoceros
#4974 Enable flake8-type-checking ruleset, by @neutrinoceros

📚 Documentation

#4418 Document pytest-mpl update workflow, by @neutrinoceros
#4901 Some spelling fixes, by @zingale
#4925 Replace Boxlib with AMReX references in the docs, by @chrishavlin
#4955 Added note that answer tests are currently run with nose, by @nastasha-w
#5033 Fix docs for annotate_contour, by @zingale

🧩 Building

#4888 Build macos amr64 wheels without cross-compiling, by @neutrinoceros
#4905 Exclude Cython generated .c and .cpp files from build artifacts, by @neutrinoceros
#4909 Minimally test wheels and sdist, by @neutrinoceros
#4911 Fix segfault with manylinux2014, by @yut23
#4913 Run pytest on wheels and sdist, by @yut23
#4941 Make ipywidgets/IPython optional dependencies again, by @neutrinoceros
#4947 Switch to stable setuptools build backend, by @neutrinoceros
#4948 Fix compatibility with Cython 3.1, by @neutrinoceros
#4949 Cleanup cibuildwheel configuration and move it to pyproject.toml, by @neutrinoceros
#4973 Enable cp313 wheels, by @neutrinoceros
#4979 Drop support for python 3.9, by @neutrinoceros
#5023 Bump cibuildwheel to 2.21.3, by @neutrinoceros

🤖 Testing

#4956 New prefix for images produced in testing: baseline_ or thispr_, by @nastasha-w
#4978 Add PEP723 metadata to test helper script, by @neutrinoceros
#4983 Move dev-only dependencies to requirements files, by @neutrinoceros
#5021 Add CPython 3.13 to regular test matrix, by @neutrinoceros
#5036 Add image tests for cylindrical pixelization of a box with rmin>0, by @neutrinoceros
#5042 Pin xradar<0.8.0 in tests, by @chrishavlin

Other changes

#4794 Upgrade mypy and type-check extras, by @neutrinoceros
#4868 Migrate formatting from black to ruff-format, by @neutrinoceros

Issues resolved

#4044 Future incompatibility with Cython 3.1, by @neutrinoceros
#4054 Rich display is broken on recent version of IPython, by @cphyc
#4278 Fails to build: internal_error, by @mcepl
#4330 Load_uniform_grid with nprocs>1 and cell_widths, by @chrishavlin
#4356 Implement vector callbacks for geogrpahic coords, by @chrishavlin
#4382 Multiplot_export_to_mpl gets colorbar orientation wrong, by @zingale
#4721 Automatic issues for nightly failures are broken, by @neutrinoceros
#4748 Switching from black to ruff-format ?, by @neutrinoceros
#4749 How should we handle python 3.10 becoming our oldest supported version ?, by @neutrinoceros
#4781 Possible bug in ray objects: calculatio...

Read more

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 is the 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