Plasmapy v0.4.0 (2020-07-20)

This release of PlasmaPy contains 50 commits in 46 merged pull requests closing 25 issues from 9 people, 5 of which are first-time contributors to PlasmaPy.

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

Ankur Chattopadhyay * Anthony Vo * Diego Diaz Dominik Stańczak Jakub Polak * KhalilBryant * Nick Murphy Peter Heuer * rocco8773

Where a * indicates their first contribution to PlasmaPy.

Backwards Incompatible Changes

  • Rename plasmapy.atomic to particles. In collisions and braginskii, change arguments named particles to species and arguments named ion_particle to ion for multiple functions. (#742)
  • Officially delete plasmapy.examples. (#822)
  • Move plasmapy.data to plasmapy.particle.data. (#823)
  • Renamed the plasmapy.classes subpackage to plasmapy.plasma. (#842)

Features

Bug Fixes

  • Fix incorrect use of pkg.resources when defining plasmapy.__version__. Add setuptools to package dependencies. Add a definition of __version__ for developers using source files. (#774)
  • Repair notebook links that are defined in the nbsphinx_prolog sphinx configuration variable. (#828)
  • Increase the required Astropy version from 3.1 to 4.0, Numpy from 1.14 to 1.16.6, Scipy from 0.19 to 1.2 and lmfit from 0.9.7 to 1.0.1. This fixes long-standing issues with Numpy operations dropping units from AstroPy quantities. (#835)

Improved Documentation

    • Added documentation to file test_converters (#756)
    • Updated installation instructions. (#772)
  • Reorder documentation page (#777)
  • Fix failing documentation build due to duplicate docstrings for ParticleTracker.kinetic_energy_history and incompatibility of sphinx-automodapi with sphinx v3.0.0. (#780)
  • Automate definition of documentation release and version in docs/conf.py with plasmapy.__version__. (#781)
  • Add a docstring to __init__.py in plasmapy.formulary. (#788)
  • Replaced sphinx-gallery with nbsphinx, turning py example files into ipynb files and allowing for easier example submission. (#792)
  • Linked various instances of classes and functions in the ipynb examples in docs/notebooks/ to the respective API docs. (#825)
  • Fixed a few documentation formatting errors. (#827)
  • Add notes on the PlasmaPy benchmarks repository to documentation. (#841)
  • Improve readability of the plasmapy.formulary page by replacing the toctree list with a cleaner reST table. (#867)

Trivial/Internal Changes

  • Remove mutable arguments from Particle.is_category method. (#751)
  • Remove all occurrences of default mutable arguments (#754)
  • Handle ModuleNotFoundError when trying to import __version__ but setuptools_scm has not generated the version.py file. This commonly happens during development when plasmapy is not installed in the python environment. (#763)
  • Updated pep8speaks/flake8 configuration and added pre-commit-config.yaml to simplify automated style checks during development. (#770)
  • Removes some lint from setup.py and setup.cfg. Use pkg_resources for version checking in code. Remove version.py file in favor of pkg_resources. (#771)
  • Default settings for isort were set to be consistent with default settings for black. (#773)
  • Update community meeting and funding information in docs. (#784)
  • Improved pull request template to include more information about changelog entries. (#843)
  • Added GitHub actions that apply pre-commit and flake8 (separately) to incoming pull requests. (#845)
  • Apply pre-commit hooks to entire repository, so that GitHub actions do not shout at contributors needlessly. (#846)
  • Update CustomParticle so input parameters mass and charge can accept string representations of astropy Quantities. (#862)