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 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 \(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 docsindex.rst (#655)

  • Added examples to the documentation to mass_density

    and Hall_parameter functions (#709)

  • Added docstrings to decorator plasmapy.utils.decorators.converter.angular_freq_to_hz(). (#729)

Trivial/Internal Changes

  • Replaced decorator plasmapy.utils.decorators.checks.check_quantity with decorator plasmapy.utils.decorators.validators.validate_quantities(). Permanently delete decorator plasmapy.utils.decorators.checks.check_quantity and its supporting code. For functions plasmapy.formulary.quantum.chemical_potential() and plasmapy.formulary.quantum._chemical_potential_interp, add a raise NotImplementedError due to bug outlined in issue https://github.com/PlasmaPy/PlasmaPy/issues/726. 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 (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 check_values(), check_units(), and validate_quantities(). These decorators are fully defined by “decorator classes” CheckBase, CheckValues, CheckUnits, and 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)