PlasmaPy v2024.10.0 (2024-10-30) ================================ New Features ------------ - Added the option to pass |inf| to the `~plasmapy.particles.particle_class.Particle.ionize` method of |Particle| to return the nucleus of the particle. (:pr:`2800`) - Implemented `~plasmapy.simulation.resolution_constraints.CFL_limit_electromagnetic_yee` to calculate the CFL condition for electromagnetic simulations. (:pr:`2832`) - `~plasmapy.diagnostics.charged_particle_radiography.synthetic_radiography.synthetic_radiograph` now accepts a file path to an HDF5 file saved by `~plasmapy.diagnostics.charged_particle_radiography.synthetic_radiography.Tracker` as input to create a synthetic radiograph. (:pr:`2868`) - Save routines in `~plasmapy.simulation.particle_tracker.save_routines` now take an optional keyword argument ``output_basename`` that sets the basename of the saved file(s). `~plasmapy.diagnostics.charged_particle_radiography.synthetic_radiography.Tracker` now also accepts an ``output_basename`` keyword, which is passed to the save routine. (:pr:`2868`) Documentation Improvements -------------------------- - Updated the docstring of `~plasmapy.formulary.dimensionless.beta` to explicitly use definitions of :math:`p_{th}` and :math:`p_{mag}`, and added links to `~plasmapy.formulary.misc.thermal_pressure` and `~plasmapy.formulary.misc.magnetic_pressure`. (:pr:`2822`) - Restructured sections in the `~plasmapy.formulary.mathematics.rot_a_to_b` docstring to be consistent with other docstrings, and added 'Raises' and 'Examples' sections. (:pr:`2824`) - Added the :term:`force-free` definition to the |glossary|. (:pr:`2830`) - Updated docstrings in `plasmapy.formulary` to follow the numpydoc standard. (:pr:`2831`) - Added examples to the |ParticleTracker| docstring. (:pr:`2833`) - Added a section in the installation instructions for installing PlasmaPy with |uv|. (:pr:`2861`) Backwards Incompatible Changes ------------------------------ - Removed the ``optical_density`` keyword argument in `~plasmapy.diagnostics.charged_particle_radiography.synthetic_radiography`. (:pr:`2843`) - The property `~plasmapy.plasma.grids.AbstractGrid.recognized_quantities` of `~plasmapy.plasma.grids.AbstractGrid` is now a class method instead of a class property, as using `classmethod` and `property` decorators together is no longer allowed in Python 3.13. The syntax for accessing this dictionary has therefore changed from :py:`AbstractGrid.recognized_quantities` to :py:`AbstractGrid.recognized_quantities()`. (:pr:`2871`) Bug Fixes --------- - Patched a bug in `~plasmapy.diagnostics.charged_particle_radiography.synthetic_radiography` in which particles stopped before the detector were still included in synthetic radiographs. (:pr:`2843`) Internal Changes and Refactorings --------------------------------- - Updated the release checklist. (:pr:`2784`) - Added a |Nox| session to verify that the pinned requirements files used in continuous integration tests are consistent with the requirements in :file:`pyproject.toml`. (:pr:`2794`) - Fixed a bug in the |Nox| session for running tests that prevented doctests from being run, and fixed doctest errors that were introduced while doctests were not enabled. (:pr:`2834`) - Removed Numba as a project dependency. Consequently, `~plasmapy.formulary.frequencies.plasma_frequency_lite` and `~plasmapy.formulary.speeds.thermal_speed_lite` are no longer just-in-time compiled by Numba. (:pr:`2841`) - Adjusted the Sphinx configuration to account for recent deprecations in Read the Docs. (:pr:`2857`) - Added testing support for Python 3.13. (:pr:`2869`) - Updated the versions of Python used in continuous integration workflows. (:pr:`2879`) Additional Changes ------------------ - Tentatively reverted :pr:`2715` because it introduced doctest errors during a time when doctests were not enabled. (:pr:`2834`)