PlasmaPy v0.3.0 (2020-01-25) ============================ Backwards Incompatible Changes ------------------------------ - Created simulation subpackage; move ``Species`` particle tracker there; rename to ``particletracker`` (`#665 `__) - Changed ``plasmapy.classes.Species`` to ``plasmapy.simulation.ParticleTracker`` (`#668 `__) - Moved pytest helper functionality from `plasmapy.utils` to ``plasmapy.utils.pytest_helpers`` (`#674 `__) - Moved ``plasmapy.physics``, ``plasmapy.mathematics`` and ``plasmapy.transport`` into the common `plasmapy.formulary` subpackage (`#692 `__) - Changed ``ClassicalTransport`` methods into attributes (`#705 `__) Deprecations and Removals ------------------------- - Removed :file:`parameters_cython.pyx`, switching to Numba for the future of computationally intensive code in PlasmaPy (`#650 `__) - Removed ``plasmapy.constants``, which was a thin wrapper around `astropy.constants` with no added value (`#651 `__) Features -------- - Generalized ``ion_sound_speed`` function to work for all values of :math:`k^2 \lambda_{D}^2` (i.e. not just in the non-dispersive limit). (`#700 `__) - Optimized ``add__magnetostatics`` for a 16x speedup in tests! (`#703 `__) Bug Fixes --------- - Defined ``preserve_signature`` decorator to help IDEs parse signatures of decorated functions. (`#640 `__) - Fixed Pytest deprecations of ``message`` argument to ``raise`` and ``warn`` functions. (`#666 `__) - Fixed ``h5py`` warning in OpenPMD module, opening files in read mode by default (`#717 `__) Improved Documentation ---------------------- - Added real-world examples to examples/plot_physics.py and adjusted the plots to be more human-friendly. (`#721 `__) - Added examples images to the top of the main doc page in :file:`docs\index.rst` (`#655 `__) - Added examples to the documentation to ``mass_density`` and ``Hall_parameter`` functions (`#709 `__) - Added docstrings to decorator :func:`plasmapy.utils.decorators.converter.angular_freq_to_hz`. (`#729 `__) Trivial/Internal Changes ------------------------ - Replaced decorator ``plasmapy.utils.decorators.checks.check_quantity`` with decorator :func:`plasmapy.utils.decorators.validators.validate_quantities`. Permanently delete decorator ``plasmapy.utils.decorators.checks.check_quantity`` and its supporting code. For functions :func:`plasmapy.formulary.quantum.chemical_potential` and ``plasmapy.formulary.quantum._chemical_potential_interp``, add a ``raise NotImplementedError`` due to bug outlined in issue ``_. Associated pytests are marked with ``pytest.mark.xfail`` and doctests are marked with ``doctests: +SKIP``. (`#722 `__) - Added |towncrier| automated changelog creation support (`#643 `__) - Moved existing "check" decorators to new ``plasmapy.utils.decorators`` module (`#647 `__) - Allowed running our sphinx-gallery examples as Jupyter notebooks via Binder (`#656 `__) - Overhauled CI setup, following the example of SunPy (`#657 `__) - Patched ``sphinx_gallery.binder`` to output custom links to Binder instance (`#658 `__) - Removed the now unnecessary ``astropy_helpers`` submodule (`#663 `__) - Follow-up PR to CI overhaul (`#664 `__) - Added a Codemeta file (:file:`codemeta.json`) (`#676 `__) - Overhauled and simplified CI, added Python 3.8 to tests, bumped minimal required package versions, and fixed docs. (`#712 `__) - Updated communication channels in docs (`#715 `__) - Code style fixes to the ``atomic`` subpackage (`#716 `__) - Cleaned up main package namespace, removing ``plasmapy.test`` (`#718 `__) - Reduced precision of tests and doctests to allow for refinements of fundamental constants. (`#731 `__) - Created decorators for checking/validating values and units of function/method input and return arguments. Defined decorators include :func:`~plasmapy.utils.decorators.checks.check_values`, :func:`~plasmapy.utils.decorators.checks.check_units`, and :func:`~plasmapy.utils.decorators.validators.validate_quantities`. These decorators are fully defined by "decorator classes" :class:`~plasmapy.utils.decorators.checks.CheckBase`, :class:`~plasmapy.utils.decorators.checks.CheckValues`, :class:`~plasmapy.utils.decorators.checks.CheckUnits`, and :class:`~plasmapy.utils.decorators.validators.ValidateQuantities`. (`#648 `__) - Created a decorator to change output of physics functions from "radians/s" to "hz" (`#667 `__) - Added ``pytest.mark.slow`` to pytest markers. Updated documentation to notify developers of functionality. (`#677 `__)