Plasmapy 0.7.dev104+g55034bc9 (2021-09-27)

Backwards Incompatible Changes

  • Remove alias: tfds_ to two_fluid_dispersion_solution, with the reasoning behind the removal outlined in #1101 (#1101)

  • For CartesianGrid the volume_averaged_interpolator now returns numpy.nan values for any interpolation not bounded by the grid points. (#1173)

  • Renamed file two_fluid_dispersion.py to two_fluid_.py and moved into the plasmapy.dispersion.analytical subpackage. The contained function two_fluid_dispersion_solutions() was also renamed to two_fluid. (#1208)

  • Changed ParticleList so that if it is provided with no arguments, then it creates an empty ParticleList. This behavior is analogous to how list and tuple work. (#1223)

  • Changed behaviour of __eq__ to return False instead of an error when used to compare with another type or a string that does not represent a particle. (#1225)

Deprecations and Removals

Features

Bug Fixes

  • Made Particle instances pickleable. (#1122)

  • Fixed the behavior of Chandrasekhar_G at very small and very large argument values. (#1125)

  • Fixed a bug in the volume-averaged interpolator for CartesianGrid (volume_averaged_interpolator). The old method miss interpreted where the interpolation point was inside the nearest neighbor cell volume. So, if an interpolation point was at the lower bounds of the nearest neighbor cell volume, then the position was flipped and interpreted as being at the upper bounds of the cell volume, and visa-versa. (#1173)

  • Fixed normalization of wavevector in thomson spectral density function, spectral_density(). (#1190)

  • Revert most of #1084 and #1125, removing our implementation of the Chandrasekhar G function (for now!). This function may get brought back at a later date, once we have an implementation we numerically trust. (#1233)

Improved Documentation

  • Improved consistency of documentation style and made reStructuredText fixes in several subpackages. (#1073)

  • The release guide now includes a pre-release section. This section adds steps for having a feature freeze about a week before the release and a code freeze about two days before the release. (#1081)

  • Create the sphinx extension package plasmapy_sphinx and use it to replace sphinx_automodapi. plasmapy_sphinx creates directives automodapi and automodsumm to replace the same directives defined by sphinx_automodapi. Documentation is updated so the slight syntax differences in the newly defined directives will still render the same as before. (#1105)

  • The term “integer charge” has been replaced in the documentation with the term “charge number”. (#1136)

  • Implement a framework to define and use common Sphinx substitutions across the narrative documentation and docstrings. (#1147)

  • Began a project glossary at docs/glossary.rst. (#1149)

  • Changed the default branch name to main. Locations in the code and documentation that referred to the default branch of PlasmaPy (and certain other packages) were changed to reflect the new name (including, for example, in the development guide in the documentation). (#1150)

  • Updated information on how to write and build documentation in the development guide. (#1156)

  • Updated information on how to write and run tests in the contributor guide. (#1163)

  • Started a page in the development guide in PlasmaPy’s narrative documentation that describes the workflow required to contribute to PlasmaPy. (#1178)

  • A brief description about the physics of the upper-hybrid resonance has been added to the docstring of the function upper_hybrid_frequency. (#1180)

  • A brief description about the physics of the lower-hybrid resonance has been added to the docstring of the function lower_hybrid_frequency. (#1181)

  • Made the function gyrofrequency more general by removing the indications that it might only work for ions. (#1183)

  • Make plasmapy.analysis.fit_functions.AbstractFitFunction.FitParamTuple a property to fix the documentation build warning caused by the release of sphinx v4.1.0. (#1199)

  • Included a step in the release guide to update Binder requirements so that the release of PlasmaPy on PyPI gets installed when opening example notebooks from the stable and release branches of the online documentation. (#1205)

  • Updated the documentation guide to include updates to tox environments for building the documentation. (#1206)

  • Fixed numerous broken reST links in prior changelogs. (#1207)

  • Improve the docstring for plasmapy.online_help. (#1213)

  • Renamed “Development Guide” to “Contributor Guide”, and temporarily removed the incomplete docs/development/workflow.rst from the toctree of the Contributor Guide. (#1217)

  • Fixes a typo in the docstring of Alfven_speed. (#1218)

  • Fixed broken reST links in docstrings for aliases in plasmapy.formulary. (#1238)

  • Fixed multiple broken and redirected links. (#1257)

  • Updated documentation guide to describe where formulae should go in docstrings and how to use glossary entries. (#1264)

  • Updated hyperlinks in documentation. (#1267)

  • Adopted the "xcode" code highlighting style for pygments to increase color contrast and improve web accessibility. (#1268)

  • Updated the feedback and communication page. (#1272)

Trivial/Internal Changes

  • Simplified handling of package dependencies. Removed duplicated requirements files, centralizing them instead. Allowed developer dependencies installation as either pip install plasmapy[developer] or pip install requirements.txt. (#789)

  • Rework flake8 configuration in CI, which was previously only checking a few errors due to a misconfiguration. (#1062)

  • Add pydocstyle to continuous integration, to hopefully make writing prettier docstrings easier. (#1062)

  • Add flake8-rst-docstrings to catch RST formatting errors in documentation in the linter stage of continuous integration. (#1062)

  • Added pytest-regressions to testing dependencies, to make regression tests a little easier to write. (#1084)

  • Fixed a minor error in the ExB drift notebook. (#1088)

  • Upgrade nbqa to latest available version (0.6.0) (#1104)

  • Move our custom pre-commit style testing suite to pre-commit.ci, taking advantage of the new pre-commit.ci autofix command that allows manually calling for pre-commit to be run. Simply type that as a comment to a PR. (#1106)

  • Enabled some flake8 checks that were being ignored Fixed majority of those flake8 errors that popped up after removal in various files Readded error codes W605, RST210 to ignored list under flake8 checks in setup.cfg (#1116)

  • Added tests using `hypothesis <https://hypothesis.readthedocs.io/>`__. (#1125)

  • Added ion velocity input to the thomson.ipynb diagnostics notebook. (#1171)

  • Added tox and removed pytest as extra requirements. (#1195)

  • Updated tox test environments for building the documentation. Added the build_docs_nitpicky environment to check for broken reST links. (#1206)

  • Added the --keep-going flag to the build_docs* tox environments with the -W option so that test failures will not stop after the first warning (that is treated as an error). (#1206)

  • Make queries to plasmapy.online_help for “quantity” or “quantities” redirect to the help page for astropy.units (which was already the case for “unit” and “units”). (#1213)

  • Bump the Python version for Read the Docs builds from 3.7 to 3.8. (#1248)

  • Refactored plasmapy/dispersion/tests/test_dispersion.py to use hypothesis for property based testing. (#1249)

  • Defined redirects to allow and anchors to avoid checking when using Sphinx to verify that hyperlinks are correct via make linkcheck. (#1267)