- The
State
namedtuple was changed to the ~plasmapy.particles.IonicFraction class. (Note: #1046 subsequently changed that to ~plasmapy.particles.IonicLevel). (#796) - Now, when the ~plasmapy.particles.IonizationState class is provided with an ion, the ionic fraction for that ion is set to 100% for the corresponding element or isotope. (#796)
AtomicError
was renamed to ~plasmapy.particles.exceptions.ParticleError andMissingAtomicDataError
was renamed to ~plasmapy.particles.exceptions.MissingParticleDataError. (#796)- In plasmapy.particles, the
IonizationStates
class was renamed to ~plasmapy.particles.IonizationStateCollection. Argumentn
ofIonizationStates
was changed ton0
in ~plasmapy.particles.IonizationStateCollection. (#796) - Moved and refactored error message formatting functionality from
plasmapy.utils.error_messages
to plasmapy.utils.code_repr. (#920) - Renamed the available "methods" for computing the Coulomb logarithm in an attempt
to make the names more explicit. This is implemented using the
method
keyword for functions ~plasmapy.formulary.collisions.Coulomb_logarithm and ~plasmapy.formulary.collisions.impact_parameter, and then propogated throughout the functionality in plasmapy.formulary.collisions. (#962) - Add dependency
pandas >= 1.0.0
. Modify xarray dependency to bexarray >= 0.14.0
. (#963) - The ~plasmapy.plasma.grids.AbstractGrid property ~plasmapy.plasma.grids.AbstractGrid.grid is now dimensioned (has units) and cannot be accessed if all dimensions do not share the same units. (#981)
- Renamed attribute
is_uniform_grid
on ~plasmapy.plasma.grids.AbstractGrid tois_uniform
. (#981) - Drop Python 3.6 support. (#987)
- The
__getitem__
method of ~plasmapy.plasma.grids.AbstractGrid now returns a ~astropy.units.Quantity array instead of a reference to a xarray.DataArray. (#1027) - Renamed IonicFraction to ~plasmapy.particles.ionization_state.IonicLevel. This lays groundwork for future changes, where that class is going to become more than a fraction. (#1046)
- The
particle
attribute of ~plasmapy.particles.particle_class.Particle has been deprecated in favor of the newsymbol
attribute. Theparticle
attribute now issues a FutureWarning to indicate that it will be removed in a future release. (#984)
- Created the ~plasmapy.simulation.abstractions.AbstractNormalizations class to serve as an abstract interface for future classes that represent normalizations. (#859)
- Create the analysis sub-package plasmapy.analysis.swept_langmuir for analysis code related to analyzing swept Langmuir traces. Sub-package is initiated with functionality for calculating the floating potential, ~plasmapy.analysis.swept_langmuir.floating_potential.find_floating_potential. (#889)
- Added a proton radiography diagnostic module containing a tool for generating synthetic proton radiographs from simulated or calculated fields using a particle tracking algorithm. (#895)
- Created new grid objects for representing plasma quantities as functions of space. (#909)
- Added functions in plasmapy.utils.code_repr to reproduce strings that represent a call to a method or attribute of an object. These functions are used, for example, in error messages. (#920)
- Add the function :func:`~plasmapy.dispersion.two_fluid_dispersion.two_fluid_dispersion_solution` to plasmapy.dispersion, which gives an analytical solution to the dispersion relation as derived by P. M. Bellan 2012 (DOI: 10.1029/2012JA017856). (#932)
- Refactor out the ~plasmapy.simulation.particle_integrators.boris_push tracking integrator algorithm from ~plasmapy.simulation.particletracker.ParticleTracker. (#953)
- For plasmapy.plasma.grids functionality, add better support for recognizing and handling physical quantities (e.g. spatial position, magnetic field, etc.) added to a grid object. (#963)
- For plasmapy.plasma.grids functionality, improve interpolation performance on non-uniform grids. (#963)
- Added the ~plasmapy.formulary.drifts.diamagnetic_drift function to ~plasmapy.formulary.drifts. (#966)
- Add properties ~plasmapy.plasma.grids.AbstractGrid.grid_resolution and ~plasmapy.plasma.grids.AbstractGrid.quantities to ~plasmapy.plasma.grids.AbstractGrid. (#981)
- Make several speed improvements to the functionality in ~plasmapy.plasma.grids,
including the addition of keyword
persistent
to ~plasmapy.plasma.grids.AbstractGrid (and child class) methods ~plasmapy.plasma.grids.AbstractGrid.nearest_neighbor_interpolator and ~plasmapy.plasma.grids.AbstractGrid.volume_averaged_interpolator. This keyword allows the interpolators to assume the last grid setup and contents if input arguments have not changed. (#981) - Add methods ~plasmapy.plasma.grids.AbstractGrid.on_grid and ~plasmapy.plasma.grids.AbstractGrid.vector_intersects to ~plasmapy.plasma.grids.AbstractGrid. (#981)
- The ~plasmapy.particles.particle_class.Particle class now contains an
attribute named
symbol
that is intended to replaceparticle
. Thesymbol
attribute has been added as a property to ~plasmapy.particles.particle_class.AbstractParticle, ~plasmapy.particles.particle_class.CustomParticle, and ~plasmapy.particles.particle_class.DimensionlessParticle. (#984) - Added new
can_be_zero
check parameter to ~plasmapy.utils.decorators.checks.CheckValues and its dependents ( ~plasmapy.utils.decorators.checks.check_values, ~plasmapy.utils.decorators.validators.ValidateQuantities, ~plasmapy.utils.decorators.validators.validate_quantities). (#999) - Both plasmapy.particles.CustomParticle and plasmapy.particles.DimensionlessParticle
now allow users to define a custom symbol via the
symbol
keyword argument, which can then be accessed by thesymbol
attribute in each of these classes. (#1015) - The greater than (
>
) operator can now be used between ~plasmapy.particles.Particle and/or ~plasmapy.particles.ParticleList instances to get the nuclear reaction energy. (#1017) - Create plasmapy.particles.ParticleList as a list-like collection for instances of plasmapy.particles.Particle and plasmapy.particles.CustomParticle. Adding ~plasmapy.particles.Particle and/or ~plasmapy.particles.CustomParticle instances will now create a ~plasmapy.particles.ParticleList. (#1017)
- Added method ~plasmapy.plasma.grids.AbstractGrid.require_quantities to ~plasmapy.plasma.grids.AbstractGrid that verifies a list of quantities is present on the grid. Method is also incorported into ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph. (#1027)
- Added the ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph.add_wire_mesh() method to ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph to allow the creation of synthetic proton radiographs that include a wire mesh reference grid. (#1049)
- Created a function, ~plasmapy.formulary.mathematics.rot_a_to_b, that calculates the rotation matrix that will rotate one 3D vector onto another. (#1054)
- Made ~plasmapy.plasma.grids.AbstractGrid.is_uniform a properly-documented public attribute of ~plasmapy.plasma.grids.AbstractGrid. (#1072)
- Fixed a minus sign bug in the Particle Tracker simulation that caused the E×B drift to go in the incorrect direction. (#953)
- Bugfix :meth:`plasmapy.analysis.fit_functions.Linear.root_solve` to handle the case where the slope is zero and no finite roots exist. (#959)
- Fixed a bug that prevented nested iterations of a single ~plasmapy.particles.IonizationState or ~plasmapy.particles.IonizationStateCollection instance. (#1025)
- Fixed a bug in grids.py for non-uniform grids that arose when xarray upgraded to v0.17.0 (#1027)
- In ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph,
adaptive
dt
now calculates the cyclotron period using the provided particle charge and mass (previously assumed protons). (#1035) - In ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph, the adaptive timestep algorithm now works when particles are provided using ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph.load_particles. (#1035)
- In ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph, removed highly deflected particles so the call of ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph.max_deflection does not raise an exception. (#1035)
- Add narrative documentation on ionization state functionality. (#796)
- Added description to :func:`~plasmapy.formulary.parameters.Hall_parameter` signature and equation in docstrings. (#934)
- Updated documentation for the plasmapy.particles and plasmapy.utils subpackages. (#942)
- Improves documentation of plasmapy/formulary/quantum.py by cleaning up docstrings of contained functionality. (#951)
- Update all docstrings associated with computing the Coulomb logarithm and the possible methods of calculation. (#962)
- Add two Jupyter notebooks for functionality contained in plasmapy.plasma.grids: grids_cartesian.ipynb and grids_nonuniform.ipynb. (#963)
- Added the ExB drift notebook, which demonstrates the analytical solution for the drift and the implementation of the corresponding formulary drift functions, ~plasmapy.formulary.drifts.force_drift and ~plasmapy.formulary.drifts.ExB_drift. (#971)
- Describe what constitutes a valid representation of a particle in the docstring for the plasmapy.particles.particle_class.ParticleLike typing construct. (#985)
- Put the docstring for plasmapy.particles.Particle.is_category into numpydoc format. (#1039)
- Adds formulas (which were missing) to the docstrings of ~plasmapy.formulary.dimensionless.quantum_theta and ~plasmapy.formulary.dimensionless.beta. (#1041)
- Add live rendering of changelog entries on documentation builds, based on sphinx-changelog. (#1052)
- Created an example notebook demonstrating how the ~plasmapy.diagnostics.proton_radiography.SyntheticProtonRadiograph class can be used to generate synthetic proton radiographs with arbitrary source profiles. Add code documentation links to all proton radiograph notebooks. (#1054)
- Update formatting and broken sphinx.ext.intersphinx links in plasmapy.formulary docstrings. (#1058)
- Make minor fixes in plasmapy.particles docstrings. (#1064)
- Organize the layout of the example Jupyter notebooks on the Read the Docs example page. (#1066)
- Fix formatting and broken sphinx.ext.intersphinx links in docstrings in various places in the code base. Improve installation instructions in the docs; the subpackage stability matrix, and funding acknowledgments. (#1076)
- Removed colorama as a dependency. (#920)
- Moved remaining CI from CircleCI to GitHub Actions. (#996)
- Add notebook CI through nbqa. (#997)
- Remove lambda expressions from plasmapy.particles and plasmapy.utils. (#1013)
- Add unicode particle aliases for electrons (
"β-"
,"β⁻"
), muons ("μ-"
,"μ⁻"
), anti-muons ("μ+"
,"μ⁺"
), tau particles ("τ"
,"τ-"
,"τ⁻"
), anti-tau particles ("τ+"
,"τ⁺"
) electron neutrinos ("ν_e"
), muon neutrinos ("ν_μ"
), tau neutrinos ("ν_τ"
), and alpha particles ("α"
). (#1036) - A set containing all valid particle categories may now be accessed via plasmapy.particles.Particle.is_category.valid_categories. (#1039)
- Properly handled warnings in test_proton_radiography.py (#1050)
- Created plasmapy.dispersion in accordance with PlasmaPy Enhancement Proposal 7 (PLEP 7) and migrated the dispersion functionality (dispersionfunction.py) from plasmapy.formulary to plasmapy.dispersion. (#910)
- Removed default values for the ion and particle arguments of functions contained in plasmapy.formulary.parameters, in accordance with issue [#453](PlasmaPy#453), and updated all relevant calls to modified functionality. (#911)
- Moved test helper exceptions from plasmapy.utils.pytest_helpers to plasmapy.tests.helpers. (#919)
- Update :func:`plasmapy.formulary.parameters.mass_density` so it calculates the mass density for a specific particle from a given number density. Original function calculated the total mass density (ion + electron). (#957)
- 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 ~plasmapy.analysis.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 ~plasmapy.utils.decorators.helpers.modify_docstring, which allows for programmatically prepending and/or appending a docstring. (#943)
- 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 :func:`plasmapy.formulary.parameters.Alfven_speed` to properly use the updated
:func:`~plasmapy.formulary.parameters.mass_density` and maintain the same behavior.
Also add handling of the
ion
input keyword, so ~plasmapy.particles.Particle and the ~plasmapy.particles.Particle convertible representations can be used as inputs. (#957)
- 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)
- 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)
- Rename
plasmapy.atomic
to ~plasmapy.particles. In ~plasmapy.formulary.collisions and ~plasmapy.formulary.braginskii, change arguments named particles tospecies
and arguments namedion_particle
toion
for multiple functions. (#742) - Officially delete :mod:`plasmapy.examples`. (#822)
- Move :mod:`plasmapy.data` to :mod:`plasmapy.particle.data`. (#823)
- Renamed the plasmapy.classes subpackage to plasmapy.plasma. (#842)
Added units to reprs of .formulary.magnetostatics classes. (#743)
Create prototype abstract interfaces for plasma simulations (#753)
Created classes to represent custom and dimensionless particles in
plasmapy.particles
. (#755)Create :func:`~plasmapy.formulary.relativity.relativistic_energy` function, which uses the established :func:`~plamsapy.formulary.relativity.Lorentz_factor` function to aid in the calculation of the relativistic energy of an object. (#805)
Create :func:`~plasmapy.formulary.dimensionless.Reynolds_number` function. (#815)
Create :func:`~plasmapy.formulary.dimensionless.Mag_Reynolds` function. (#820)
Create :func:`~plasmapy.formulary.parameters.Bohm_diffusion` function. (#830)
Added a new diagnostics module thomson containing a function spectral_density that calculates Thomson scattering spectra for Maxwellian plasmas in both the collective and non-collective regimes. As a followup to PR #835, set the minimal required Numpy version to 1.18.1 to finally fix unit dropping bugs. (#831)
Revised parameters.thermal_speed to support 1D and 2D distributions as well as 3D, and added an example notebook for this function. (#850)
Create plasmapy/formulary/ionization.py Create :func:`~plasmapy.formulary.ionization.Z_bal` function. (#851)
Create :func:`~plasmapy.formulary.ionization.Saha` function. (#860)
Added aliases (with trailing underscores) for parameters in the formulary:
- plasmapy.formulary.dimensionless.Reynolds_number -> ~plasmapy.formulary.dimensionless.Re_
- plasmapy.formulary.dimensionless.Mag_Reynolds -> ~plasmapy.formulary.dimensionless.Rm_
- plasmapy.formulary.drifts.ExB_drift -> ~plasmapy.formulary.drifts.veb_
- plasmapy.formulary.drifts.force_drift -> ~plasmapy.formulary.drifts.vfd_
- plasmapy.formulary.parameters.mass_density -> ~plasmapy.formulary.parameters.rho_
- plasmapy.formulary.parameters.Afven_speed -> ~plasmapy.formulary.parameters.va_
- plasmapy.formulary.parameters.ion_sound_speed -> ~plasmapy.formulary.parameters.cs_
- plasmapy.formulary.parameters.thermal_speed -> ~plasmapy.formulary.parameters.vth_
- plasmapy.formulary.parameters.thermal_pressure -> ~plasmapy.formulary.parameters.pth_
- plasmapy.formulary.parameters.kappa_thermal_speed -> ~plasmapy.formulary.parameters.vth_kappa_
- plasmapy.formulary.parameters.inertial_length -> ~plasmapy.formulary.parameters.cwp_
- plasmapy.formulary.parameters.Hall_parameter -> ~plasmapy.formulary.parameters.betaH_
- plasmapy.formulary.parameters.gyrofrequency -> ~plasmapy.formulary.parameters.oc_, ~plasmapy.formulary.parameters.wc_
- plasmapy.formulary.parameters.gyroradius -> ~plasmapy.formulary.parameters.rc_, ~plasmapy.formulary.parameters.rhoc_
- plasmapy.formulary.parameters.plasma_frequency -> ~plasmapy.formulary.parameters.wp_
- plasmapy.formulary.parameters.Debye_length -> ~plasmapy.formulary.parameters.lambdaD_
- plasmapy.formulary.parameters.Debye_number -> ~plasmapy.formulary.parameters.nD_
- plasmapy.formulary.parameters.magnetic_pressure -> ~plasmapy.formulary.parameters.pmag_
- plasmapy.formulary.parameters.magnetic_energy_density -> ~plasmapy.formulary.parameters.ub_
- plasmapy.formulary.parameters.upper_hybrid_frequency -> ~plasmapy.formulary.parameters.wuh_
- plasmapy.formulary.parameters.lower_hybrid_frequency -> ~plasmapy.formulary.parameters.wlh_
- plasmapy.formulary.parameters.Bohm_diffusion -> ~plasmapy.formulary.parameters.DB_
- plasmapy.formulary.quantum.deBroglie_wavelength -> ~plasmapy.formulary.quantum.lambdaDB_
- plasmapy.formulary.quantum.thermal_deBroglie_wavelength -> ~plasmapy.formulary.quantum.lambdaDB_th_
- plasmapy.formulary.quantum.Fermi_energy -> ~plasmapy.formulary.quantum.Ef_ (#865)
Add json_dumps method to ~plasmapy.particles.particle_class.AbstractParticle to convert a particle object into a JSON string. Add json_dump method to ~plasmapy.particles.particle_class.AbstractParticle to serialize a particle object and writes it to a file. Add JSON decoder ~plasmapy.particles.serialization.ParticleJSONDecoder to deserialize JSON objects into particle objects. Add plasmapy.particles.serialization.json_loads_particle function to convert JSON strings to particle objects (using ~plasmapy.particles.serialization.ParticleJSONDecoder). Add plasmapy.particles.json_load_particle function to deserialize a JSON file into a particle object (using ~plasmapy.particles.serialization.ParticleJSONDecoder). (#836)
- 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)
- 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)
- 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 :class:`~plasmapy.particles.particle_class.CustomParticle` so input parameters mass and charge can accept string representations of astropy Quantities. (#862)
- 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)
- 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)
- 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)
- Added real-world examples to examples/plot_physics.py 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 :func:`plasmapy.utils.decorators.converter.angular_freq_to_hz`. (#729)
- Replace decorator :func:`plasmapy.utils.decorators.checks.check_quantity` with decorator :func:`plasmapy.utils.decorators.validators.validate_quantities`. Permanently delete decorator :func:`~plasmapy.utils.decorators.checks.check_quantity` and its supporting code. For functions :func:`plasmapy.formulary.quantum.chemical_potential` and :func:`plasmapy.formulary.quantum._chemical_potential_interp`, add a RaiseNotImplementedError due to bug outlined in issue PlasmaPy#726. 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 :func:`~plasmapy.utils.decorators.checks.check_values`, :func:`~plasmapy.utils.decorators.checks.check_units`, and :func:`~plasmapy.utils.decorators.validators.validate_quantities`. These decorators are fully defined by "decorator classes" :class:`~plasmapy.utils.decorators.checks.CheckBase`, :class:`~plasmapy.utils.decorators.checks.CheckValues`, :class:`~plasmapy.utils.decorators.checks.CheckUnits`, and :class:`~plasmapy.utils.decorators.validators.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)