Plasmapy v0.5.0 (2020-12-09)

This release of PlasmaPy contains 58 commits in 31 merged pull requests closing 16 issues from 8 people, 4 of which are first-time contributors to PlasmaPy.

The people who have contributed to the code for this release are:

  • Dominik Stańczak
  • Nick Murphy
  • Peter Heuer
  • Ramiz Qudsi *
  • Steve Richardson *
  • Tiger D *
    1. Cody Skinner *
  • rocco8773

Where a * indicates their first contribution to PlasmaPy.

Backwards Incompatible Changes

Features

  • Added a function to calculate the power spectrum of thermal bremsstrahlung emitted by a Maxwellian plasma. (#892)
  • Added support for multiple electron components to diagnostics.thomson.spectral_density. Also fixed a bug for multiple ion populations. (#893)
  • Add dependency pygments >= 2.4.1. (#898)
  • Create the plasmapy.analysis package as per PLEP-7 and initialize the package with the fit_functions module. Fit functions are designed to wrap together an analytical function, a curve fitter, uncertainty propagation, and a root solver to make curve fitting a little less painful. (#908)
  • Created a new subpackage, plasmapy.tests.helpers, to contain test helper functionality. (#919)
  • Create decorator modify_docstring, which allows for programmatically prepending and/or appending a docstring. (#943)

Bug Fixes

  • Allowed implicit conversions of AstroPy units in inputs and outputs of validated functions to happen without warnings. Most notably, this removes warnings on eV inputs to temperature fields. (#886)
  • Update plasmapy.formulary.parameters.Alfven_speed() to properly use the updated mass_density() and maintain the same behavior. Also add handling of the ion input keyword, so Particle and the Particle convertible representations can be used as inputs. (#957)

Improved Documentation

  • Improved the release guide after the release of 0.4.0. (#872)
  • Add various improvements to the documentation.
    • Replace home link with the plasmapy logo.
    • Add module and index navigation links to sidebar header.
    • Replace raw html on the main page that simulates a nbgallery with a real nbgallery directive.
    • Move link to view page source code from the header to footer.
    • Add link to footer the jumps the user back to the top of the page.
    • Create and add custom CSS stylesheet.
    • Create _templates directory and templates to customize page elements. (#875)
  • Add static stub files to docs/api_static so all modules of plasmapy are indexed. This is necessary to expose all of plasmapy since not all modules are indexed in the narrative documentation. (#878)
  • Decompose sub-package plasmapy/utils/roman/ into the plasmapy/utils/roman.py file. Move definition of roman specific Exceptions into plasmapy.utils.exceptions. (#883)
  • Replaced references to Riot.im with references to Element.io or Matrix, as appropriate, following their recent rebranding. (#891)
  • Update the information on how to cite PlasmaPy, including in the release guide. (#900)

Trivial/Internal Changes

  • Apply isort to entire codebase, bringing it back to the pre-commit hook suite. (#857)
  • Expand package metadata contained in codemeta.json, following the CodeMeta standard. (#902)
  • Changed remaining instances of @u.quantity_input to @validate_quantities in response to issue #880. (#905)
  • Switched from Azure Pipelines to GitHub Actions for PR tests to make things easier for contributors. Moved away from Travis CI for test cron jobs. (#952)