Plasmapy v0.3.0 (2020-01-25)

Backwards Incompatible Changes

  • Create simulation subpackage; move Species particle tracker there; rename to particletracker (#665)
  • Changed plasmapy.classes.Species to plasmapy.simulation.ParticleTracker (#668)
  • Move pytest helper functionality from plasmapy.utils to pytest_helpers (#674)
  • Move plasmapy.physics, plasmapy.mathematics and plasmapy.transport into the common plasmapy.formulary subpackage (#692)
  • Change ClassicalTransport methods into attributes (#705)

Deprecations and Removals

  • Remove parameters_cython.pyx, switching to Numba for the future of computationally intensive code in PlasmaPy (#650)
  • Remove plasmapy.constants, which was a thin wrapper around astropy.constants with no added value (#651)


  • Generalize 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)
  • Optimize add__magnetostatics for a 16x speedup in tests! (#703)

Bug Fixes

  • Define preserve_signature decorator to help IDEs parse signatures of decorated functions. (#640)
  • Fix Pytest deprecations of message argument to raise and warn functions. (#666)
  • Fix h5py warning in OpenPMD module, opening files in read mode by default (#717)

Improved Documentation

  • Added real-world examples to examples/ and adjusted the plots to be more human-friendly. (#448)
  • Add examples images to the top of the main doc page in docsindex.rst (#655)
  • Added exampes to the documentation to mass_density
    and Hall_parameter functions (#709)
  • Add docstrings to decorator plasmapy.utils.decorators.converter.angular_freq_to_hz(). (#729)

Trivial/Internal Changes

  • Replace decorator plasmapy.utils.decorators.checks.check_quantity() with decorator plasmapy.utils.decorators.validators.validate_quantities(). Permanently delete decorator check_quantity() and its supporting code. For functions plasmapy.formulary.quantum.chemical_potential() and plasmapy.formulary.quantum._chemical_potential_interp(), add a RaiseNotImplementedError due to bug outlined in issue Associated pytests are marked with pytest.mark.xfails and doctests are marked with doctests: +SKIP. (#722)
  • Add Towncrier automated changelog creation support (#643)
  • Move existing “check” decorators to new plasmapy.utils.decorators module (#647)
  • Allow running our sphinx-gallery examples as Jupyter notebooks via Binder (#656)
  • Overhaul CI setup, following the example of SunPy (#657)
  • Patch sphinx_gallery.binder to output custom links to Binder instance (#658)
  • Remove the now unnecessary astropy_helpers submodule (#663)
  • Followup PR to CI overhaul (#664)
  • Add a Codemeta file (codemeta.json) (#676)
  • Overhaul and simplify CI, add Python 3.8 to tests, bump minimal required package versions, fix docs. (#712)
  • Update communication channels in docs (#715)
  • Code style fixes to the atomic subpackage (#716)
  • Clean up main package namespace, removing plasmapy.test (#718)
  • Reduce precision of tests and doctests to allow for refinements of fundamental constants. (#731)
  • Create 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)
  • Create 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)