Recent Releases of yt

yt - yt-4.4.1

Summary

This is the first bugfix release in the 4.4.x series. It includes some important fixes, particularly for off-axis projections of grid-based datasets and a number of fixes for the Ramses frontend.

How to upgrade

To upgrade from PyPI, run

shell python -m pip install --upgrade yt

or, with conda

shell conda update --channel conda-forge yt

:bug: Bug fixes

5059 Fix off-axis rendering when center is not [0.5, 0.5, 0.5], fix periodicity, by @cphyc

5063 Ensure positions are dimensionless in plot callbacks, by @cphyc

5077 Correctly normalize off-axis projections for octree datasets, by @cphyc

5081 Calculate default depth for off axis projections, by @chrishavlin

5083 Fix compatibility with matplotlib 3.10 for images that have both a custom background color and a non-transparent 'bad' color, by @neutrinoceros

5088 Removing code that removes field type in set_title(), by @chummels

5090 Properly reference weight field in profile code for particle-based datasets, by @chummels

5095 Fix swap_axes bug wih celledgescallback, by @chrishavlin

5112 Fix nans in off-center frb slices from ds.r, by @yut23

5135 Make backend_specs case insensitive, by @chrishavlin

5137 Update testing.integrate_kernel type hints, by @chrishavlin

5155 Better behavior when cholla doesn't write "mu" attribute, by @mabruzzo

5158 Manual backport pr #5088 on branch yt-4.4.x (bug: removing code that removes field type in set_title() ), by @chrishavlin

5176 Adapt ci and test suite to breaking changes in pytest 8.4.0, by @neutrinoceros

5187 fix an incoming incompatibility with pytest 8.5 in our test framework, by @neutrinoceros

5197 Filter out an indirect deprecation warning from pillow via matplotlib, by @neutrinoceros

5198 Backport #5197 to yt-4.4.x, by @neutrinoceros

:control_knobs: Frontend-specific changes

AMReX

5025 Fix ds.all_data() for spherical amrex datasets, by @yut23

Parthenon

5054 Fix error message when trying to load a parthenon dataset without h5py installed, by @neutrinoceros

Ramses

5159 ramses: use one registry per dataset, by @cphyc

5169 RAMSES: temperature units are incorrect, by @cphyc

Stream (in memory datasets)

5052 Fix loaduniformgrid with cell_widths and multiple fields, by @chrishavlin

:jigsaw: Building

5182 Upgrade cibuildwheel to 3.0.0, by @neutrinoceros

(manylinux wheels are now targetting manylinux_2_28)

:robot: Testing

5066 Workaround homebrew failure on macos, by @neutrinoceros

5129 Pytest: un-ignore testprofileplots.py, by @chrishavlin

Other changes

5101 Fix typing in numpy2_compat.py, by @chrishavlin

Issues resolved

5062 Annotate_sphere radius depends on choice of center, by @cphyc

5080 Broken sample outputs of off-axis projection plots in docs, by @xshaokun

5134 Case sensitivity of matplotlib backend key, by @chrishavlin

5136 Mypy failure with np 2.2.4, by @chrishavlin

Full Changelog: https://github.com/yt-project/yt/compare/yt-4.4.0...yt-4.4.1

- Python
Published by chrishavlin 11 months ago

yt - yt-4.4.0

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

🌟 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 overridebins to datacontainer.profile, by @chrishavlin

4717 Access output in timeseries by its time or redshift, by @cphyc

4732 Allow cellwidths and nproc > 1 for loaduniform_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 converttocartesian 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 fillregionfloat, 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 northvector in offaxis_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 maxrows instead of skipfooter 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 Loaduniformgrid with nprocs>1 and cell_widths, by @chrishavlin

4356 Implement vector callbacks for geogrpahic coords, by @chrishavlin

4382 Multiplotexportto_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: calculation of projected lengths dl for non-grid/sph data, by @nastasha-w

4788 Bug in projection plots for sph datasets, by @nastasha-w

4871 Volume rendering multiple fields with mpi, by @biboyd

4880 Some ramses fields return different values depending on order of operations, by @V-Nathir

4883 Only open auxilliary files for tipsy as needed, by @matthewturk

4890 Resourcewarnings for unclosed files in boxlib frontend, by @yut23

4896 Non-isolated builds are broken, by @neutrinoceros

4910 Segault on manylinux2014 image, by @neutrinoceros

4918 Deprecation warning in gdf (and maybe more?), by @chrishavlin

4924 Docs builds are failing, by @neutrinoceros

4928 Incorrect parameter sanitation to np.logspace, by @yohad

4954 Nose testing image comparison: label which image is which?, by @nastasha-w

4972 Building fails on windows-latest, by @neutrinoceros

4976 Can we remove dev-only extra targets ?, by @neutrinoceros

4977 Can we drop support for python 3.9 now ?, by @neutrinoceros

4991 Remove duplicate functions in two sph backend prs, by @nastasha-w

5022 yt fails to build against uv-managed python binaries, by @neutrinoceros

5027 urllib.request.urlopener is deprecated, by @barneygale

5041 Failing to load pyart, by @neutrinoceros

5044 Unpin xradar in tests when possible, by @chrishavlin

5047 Failing nosetests (failed to decode variable 'time'), by @chrishavlin

Full Changelog: https://github.com/yt-project/yt/compare/yt-4.3.1...yt-4.4.0

- Python
Published by neutrinoceros over 1 year ago

yt - yt-4.3.1

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 ⚠️ this version may not be available on conda-forge yet at the time this note is published

🌟 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 showmpl, 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 setfieldparameter, 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: https://github.com/yt-project/yt/compare/yt-4.3.0...yt-4.3.1

- Python
Published by neutrinoceros about 2 years ago

yt - yt-4.3.0

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

⏰ this release is not available on conda-forge at the time this note is published 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 loadhdf5file didn't pass bounding box to loadamrgrids, 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 annotategrids to force cmap to respect maxlevels, 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 readparticlecoords and _readparticle_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 fillmaskregular_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 NPYTARGETVERSION, 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

- Python
Published by neutrinoceros over 2 years ago

yt - yt-4.2.2

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.getbrickdata, 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.setupplots, 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: https://github.com/yt-project/yt/compare/yt-4.2.1...yt-4.2.2

- Python
Published by neutrinoceros almost 3 years ago

yt - yt-4.2.1

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.sanitizenormalvector 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: https://github.com/yt-project/yt/compare/yt-4.2.0...yt-4.2.1

- Python
Published by neutrinoceros almost 3 years ago

yt - yt 4.2.0

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 unitsystemname in saveas_dataset, by @chrishavlin (issue #4315)

4328 cellwidths validation for loaduniform_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.parseparameter_file, by @chrishavlin

4387 Add meter and millimeter to smallest units, by @matthewturk

4404 Make sure findlowestsubclasses 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 fieldtoinclude specifications in createfireflyobject, 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 starformationrate 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.setupplots, by @neutrinoceros

4411 Rewrite findlowestsubclasses 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.getfieldinfohelper, 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 setupplots in doctests, by @neutrinoceros

4314 Fix docs typo in loadhdf5file 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)

- Python
Published by neutrinoceros about 3 years ago

yt - yt 4.1.4

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 - CPython 3.7 has been dropped by conda-forge itself

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 setupplots in cookbook , by @neutrinoceros

🧩 Build and testing

4290 Upgrade setup-python GHA, by @Xarthisius

Full Changelog: https://github.com/yt-project/yt/compare/yt-4.1.3...yt-4.1.4

- Python
Published by neutrinoceros over 3 years ago

yt - yt 4.1.3

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 (https://github.com/yt-project/yt/pull/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 - CPython 3.7 has been dropped by conda-forge itself

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: https://github.com/yt-project/yt/compare/yt-4.1.2...yt-4.1.3

- Python
Published by neutrinoceros over 3 years ago

yt - yt 4.1.2

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 - CPython 3.7 has been dropped by conda-forge itself - update December 14, 2022: This release is now also available on conda-forge for CPython 3.11

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: https://github.com/yt-project/yt/compare/yt-4.1.1...yt-4.1.2

- Python
Published by neutrinoceros over 3 years ago

yt - yt 4.1.1

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

- Python
Published by neutrinoceros over 3 years ago

yt - yt 4.1.0

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 ! - #1990 CFRadial, by @zssherman and @chrishavlin - #3638 Chimera, by @Ronan-Hix - #3663 Cholla, by @chummels , @evaneschneider , and @matthewturk

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 python 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 setzlim and setunit 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 files[^1], 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 CGS[^2], 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 projections[^3], 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)

[^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)

♻️ Optimisations and refactors

Performance optimisations

2416 Stop preallocating particles, by @matthewturk and @chrishavlin, issue #2383 by @zhafen

3439 Cache determinefields 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 lazily[^4], 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)

[^4]: with the exception of netCDF4, which is still imported at startup time if available

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.setuporigin, 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 initialisation[^5], 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

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

πŸ“š 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 python from yt.visualization.volume_rendering.api import set_raytracing_engine set_raytracing_engine("embree")

New deprecations

3278 Deprecate yt.mods, by @neutrinoceros (issue #3090)

3418 Deprecate iyt, by @neutrinoceros

3567 Deprecate annotate_halos[^6], by @neutrinoceros (issue #3566 by @brittonsmith)

3773 Deprecate yt.testing.run_nose and wrap it in the yt namespace[^7], by @neutrinoceros (issue #3771 by @brittonsmith)

4021 Deprecate some ambiguous field aliases, by @neutrinoceros

[^6]: this method is now being defined in the yt_astro_analysis extension package, which was required already, so it should continue to work seamlessly with sufficiently recent versions of the extension [^7]: a side effect of this patch is that importing yt doesn't load the yt.testing module by default, this change may break downstream code using yt.testing without an explicit import

Prolonged deprecations

3836 Complete existing deprecation warnings' metadata, by @neutrinoceros

[^8]: this is nuanced by #3948 and #3949 (both PRs by @neutrinoceros)

🧩 Requirements

  • Python 3.7 or newer is now required
  • numpy 1.14.5 or newer is now required
  • matplotlib 3.1 or newer is now required
  • typing-extensions is a new dependency, required only on Python 3.7
  • importlib-metadata is a new dependency, required only on Python 3.7
  • tomli is now only required for Python 3.10 and older

Notes for downstream packagers and developers

We've started adding type hints to yt ! yt now ships a py.typed marker file, enableing type checking code which uses yt as a dependency via mypy. This initiative has a limited scope for now (we're far from having a completely typed code base), and there may be rough edges, feedback from downstream is extremely welcome !

We've also added a yt.version_info named tuple (#3761 by @neutrinoceros). This tuple is analogous to sys.version_info, and can be used to check yt's version at runtime, and write version-dependent code like so ```python import yt

if yt.version_info >= (4, 1): ... else: ... ``` Of course for now only yt 4.1.0 has this tuple, so it is not going to be useful right away, but you can rely on it when you drop support for versions older than 4.1.0

Previous versions also incorrectly prevented compilation with Python 3.12 and above, this limitation has been lifted.

3526 by @matthewturk -> Although considered a refactor, this is a breaking change for any third party particle frontends. We do not know of one, please let us know if you're developing such a frontend.

πŸ… special thanks to

  • @anchwr and @drannarosen and @chummels for early reports of regressions on the dev branch (#3809, #4078, #4090)
  • @Xarthisius who's made a lot of crucial maintenance contributions, which are otherwise invisible in this summary, primarily focused on user-facing change

footnotes

- Python
Published by neutrinoceros over 3 years ago

yt - yt 4.0.5

Summary

This is the fifth bugfix release in the 4.0.x series. This release fixes a critical bug with SPH particle selection in bounding boxes.

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

  • BUG: Broadcast missing attribute #3973 by @brittonsmith
  • BUG: Fix broken annotate_particles example #3982 by @chrishavlin (issue #3968 by @neutrinoceros)
  • BUG: volume rendering: sigma_clip normalization #3984 by @chrishavlin (issue #3979 by @zingale)
  • BUG: fix a ResourceWarning (file is never closed) #3997 by @neutrinoceros
  • BUG: fix for composite volume rendering with octree sources #4011 by @chrishavlin
  • BUG: fix a typo in warning message #4017 by @neutrinoceros
  • BUG: setting GeoAxes extent #4040 by @chrishavlin (issue #4039)
  • BUG: Fix flux calculation on surface when there is no fluxing_field #4042 by @jzuhone
  • BUG: Fix intersections between SPH particles and regions when the boundary is periodic #4050 by @jzuhone (issue https://github.com/yt-project/yt/issues/3916 by @benopp99)

Requirements

Python 3.6 to 3.10 is supported. The next feature release, yt 4.1, will require Python 3.7 or newer.

- Python
Published by neutrinoceros almost 4 years ago

yt - yt 4.0.4

Summary

This is the fourth bugfix release in the 4.0.x series. This release fixes a critical incompatibility with the upcoming release of Matplotlib (3.6). This should have no immediate effect but allow yt to be installed alongside Matplotlib 3.6. It is our first release to be distributed for Mac ARM (M1) on PyPI.

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

  • BUG: fix compatibility with GADGET2 files using '.gad.' template #3899 by @neutrinoceros
  • BUG: fix an UnboundLocalError #3898 by @neutrinoceros
  • BUG: fix an upcoming incompatibility with matplotlib 3.6 #3912 by @neutrinoceros
  • BLD: fix a build error on Windows #3925 by @neutrinoceros

Requirements

Python 3.6 to 3.10 is supported. The next feature release, yt 4.1, will require Python 3.7 or newer.

- Python
Published by neutrinoceros about 4 years ago

yt - 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

  • Fix Electron number density field #3874 by @jzuhone (issue #3838 by @cphyc)

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 cmpermpc 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 require tomli and tomli_w instead (issue #3830 by @henryiii) - pyyaml and IPython were previously declared as hard requirements when they are in fact not strictly necessary. pyaml is now used in tests instead of pyyaml, and IPython is now considered an optional dependency. - jinja2 is now pinned in docs builds (#3860 by @Xarthisius)

- Python
Published by neutrinoceros about 4 years ago

yt - yt 4.0.2

Summary

This is the second bugfix release in the 4.0.x series. Most notably, this release fixes a number of compatibility issues with recent versions of Matplotlib (3.4 and 3.5). It is also the first release to officially support Python 3.10.

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 via PyPI, run python -m pip install --upgrade yt or via conda-forge conda update --channel conda-forge yt

Most impactful changes are categorised below. See the 4.0.2 milestone for a an comprehensive view of the release's content.

Matplotlib compatibility

typesetting issues

  • BUG: Set the display name for new fields #3282 by @chummels (issue #3269)
  • BUG: fix default math font in yt plots against matplotlib >= 3.4 #3520 by @neutrinoceros (issue #3514)
  • BUG: fix LaTeX typesetting for fractional ylabels in LinePlot #3637 by @neutrinoceros (issue #3636)

colorbar layout in plots using (sym)log norms

  • BUG: fix two bugs with symlog colorbar ticks for matplotlib 3.5 #3556 by @neutrinoceros (issues #3554 and #3560)
  • BUG: fix for matplotlib 3.5 + symlog + linthresh value outside data range #3565 by @neutrinoceros (issue #3564)
  • MNT: matplotlib 3.5 compat #3670 by @neutrinoceros (issue #3558)

2D Plotting

  • BUG: Checking if extrema are all None in PhasePlot #3432 by @chummels (issue #3431)
  • BUG: fix a bug where 2D plots in spherical geometries would always use code-units in plot axes #3618 by @neutrinoceros (issue #2913 by @n-claes)
  • BUG: fixes for Hammer-Aitoff projection (r-normal) 2D viz in spherical geometries #3628 by @neutrinoceros (issue #3610)
  • BUG: fix figure layout in case the long axis is vertical #3633 by @neutrinoceros
  • BUG: fix a bug where PlotContainer.save would wrongfully ignore specified field extension #3687 by @neutrinoceros (issue #3632)

Documentation

  • DOC: add an exhaustive list of deprecations to the yt4differences page #3665 by @neutrinoceros (issue #3451)
  • DOC: fix an error in AMRVAC specific documentation #3716 by @neutrinoceros

Frontend specific patches

Gadget

  • Make sure we add the Parameters group to hvals if it's present #3455 by @jzuhone
  • BUG: Take into account endianness when reading Gadget binary files #3688 by @cphyc (issue #3676 by @olebole)

Athena

These changes should actually not affect Athena users, they are only meant to open the design space for new frontends supporting vtk files (issue #3001)

  • BUG: implement AthenaDataset.isvalid #3424 by @neutrinoceros
  • ENH: loosen header matching for Athena vtk files to allow compatibility with single variable 'vtk outputs' #3490 by @neutrinoceros

GDF

  • dimensionality doesn't imply which dimension is reduced #3630 by @Xarthisius (issue #3629)

Misc

  • BUG: add support for setting up derived fields from lambdas #3440 by @neutrinoceros (issue #3434 by @forrestglines)
  • BUG: fix combining FITS images #3456 by @jzuhone
  • BUG: fix two bugs in yt.visualization.eps_writer #3496 by @neutrinoceros

Python 3.10 support

yt 4.0.2 is the first release for which we provide wheels for Python 3.10 We note that part of our test suite has yet to be ported from nosetest to pytest. Because nosetest isn't compatible with Python 3.10 (and has been unmaintained for years), this means that we currently run only a (large) subset of our tests with Python 3.10 In the unlikely event of a regression, please fill in a bug report

Requirements

For posterity, it may be worth noting that some of yt's minimal requirements were adjusted for this release: - IPython 2.0 or newer is now required (previously 1.0) - Matplotlib 2.1 or newer is now required (previously 2.0.2) - cmyt (ColorMaps from yt) is a new small dependency that was extracted from yt's main code base, this should have no impact on yt users.

Python 3.6 is still supported for this release. The next feature release, yt 4.1, will require Python 3.7 or newer.

- Python
Published by neutrinoceros over 4 years ago