yt 4.0.3
Summary
This is the third bugfix release in the 4.0.x series.
This release fixes a critical bug in particle indexing, as well as many small 2D visualisation bugs. It also contains a couple frontend specific bugfixes, most notably for RAMSES.
It is our first release to be distributed for Mac ARM (M1) on conda-forge.
This release contains no new deprecation or removal and should be fully backward compatible, we recommend all users 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
Changes are categorised below.
Particle Indexing
Fix a bug in bitmap index for particle datasets #3788 by @langmm . This was the result of some checks of the number of refined zones in the bitmap index being set to higher than it should be.
This bug was responsible for some particle data files not being selected correctly, which manifested e.g. as "holes" in SlicePlots, and were first identified with AREPO data (see issue #3672 by @jzuhone)
2D Plotting
Symlog colorbars (used for plotting data with negative values)
We made some adjustments in how yt internally chooses to use symlog over log norms for 2D plots.
- BUG: add missing MPL version check to a temporary hack #3754 by @neutrinoceros (issue #3170 by @chrishavlin)
- BUG: fix heuristic to switch from log scale to symlog scale #3793 by @neutrinoceros (issue #3791)
- BUG: fix a bug where automatically computed symlog linear threshold would sometimes cause a crash in matplotlib #3859 by @neutrinoceros (issue #3858, original report by @BenWibking)
- BUG: fix a bug where setting zmin/zmax on a 2D plot with symlog norm would cause an undesired change in linthresh #3888 by @neutrinoceros (issue #3887 by @vdbma)
Plotting non-cartesian data
- BUG: fix pixelize_cylinder #3782 by @neutrinoceros (issue #3781)
- BUG: fix a bug in pixelize_cylinder where buffer shape was read backwards #3795 by @neutrinoceros (issue #3794)
- BUG: don't colorize pixels that are not completely within the data domain in pixelize_cylinder routine #3818 by @neutrinoceros
- BUG: fix plot bounds for slices in cylindrical coordinates #3820 by @neutrinoceros (issue #3819)
- BUG: fix a bug in aitoff-hammer pixelizer where some pixels were skipped on the central meridian and the equator #3824 by @neutrinoceros (issue #3823)
- BUG: fix a bug where PlotWindow origin parameter wasn't handled correctly in non-cartesian geometries #3863 by @neutrinoceros (issue #3862 , original report by @vdbma)
Misc
- Phase plots are now properly masked #2504 by @matthewturk
- Format error string #3780 by @Yash-10
- BUG: fix a bug in masking invalid values in line integral convolution callback #3739 by @neutrinoceros (issue #3738)
- BUG: fix an issue where missing files would be indexed without verification #3816 by @neutrinoceros (issue #2819 by @joostvan)
- BUG: fix a typesetting bug with fractionnal units in colorbar labels for volume rendering #3755 by @neutrinoceros
- BUG: fix buffer masking in cartesian geometry #3856 by @neutrinoceros (issue #3854)
- BUG: fix a regression where calling annotate_timestamp on a plot from a dataset with code units would crash #3870 by @neutrinoceros (issue #3869, original report by @vdbma)
Frontend specific patches
Flash
- BUG: Track blockless particles #3683 by @matthewturk
OWLS
RAMSES
- BUG: also validate unresolved symlinks (RAMSES) #3786 by @mtrebitsch (issue #3785)
- BUG: fix error messages in RAMSESDataset validation #3801 by @neutrinoceros (issue #3800)
- BUG: bring back support to group folder structure in RAMSES #3811 by @cphyc (issue #3785 by @mtrebitsch)
- Add missing ionized species #3841 by @cphyc
- Fix definition of particle age/times #3864 by @cphyc (issue #3861 by @lconaboy)
- BUG: Use cm_per_mpc instead of 3.08e24 #3868 by @Iconaboy (issue #3867)
Requirements
Python 3.6 to 3.10 is supported. The next feature release, yt 4.1, will require Python 3.7 or newer.
Some small adjustments to yt's dependencies were done for this release, and listed here to the intention of downstream packagers
- The unmaintained
toml
package isn't required anymore, yt now requiretomli
andtomli_w
instead (issue #3830 by @henryiii) pyyaml
andIPython
were previously declared as hard requirements when they are in fact not strictly necessary.pyaml
is now used in tests instead ofpyyaml
, andIPython
is now considered an optional dependency.- jinja2 is now pinned in docs builds (#3860 by @Xarthisius)