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 plasmapy.utils.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)

Features

  • 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/plot_physics.py and adjusted the plots to be more human-friendly. (#721)

  • Add 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)

  • 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 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)

  • 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)