Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Privatize some plasmapy.particles modules #1440

Merged
merged 35 commits into from Feb 25, 2022

Conversation

namurphy
Copy link
Member

@namurphy namurphy commented Feb 24, 2022

This PR makes the following changes to module names:

  • plasmapy.particles.parsingplasmapy.particles._parsing
  • plasmapy.particles.elementsplasmapy.particles._elements
  • plasmapy.particles.isotopesplasmapy.particles._isotopes
  • plasmapy.particles.special_particlesplasmapy.particles._special_particles

I also made the following changes:

  • Dropped the initial underscore of objects within these modules, as suggested by @rocco8773
  • Changed the names of some variables to match PEP 8 conventions
  • Imported these modules directly rather than the contents of these modules
  • I have added a changelog entry for this pull request.
  • If adding new functionality, I have added tests and
    docstrings.
  • I have fixed any newly failing tests.

@github-actions github-actions bot added the plasmapy.particles Related to the plasmapy.particles subpackage label Feb 24, 2022
@codecov
Copy link

codecov bot commented Feb 24, 2022

Codecov Report

Merging #1440 (d4321cf) into main (f8e3a2a) will decrease coverage by 0.01%.
The diff coverage is 99.27%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1440      +/-   ##
==========================================
- Coverage   96.50%   96.49%   -0.02%     
==========================================
  Files          80       80              
  Lines        7848     7847       -1     
==========================================
- Hits         7574     7572       -2     
- Misses        274      275       +1     
Impacted Files Coverage Δ
plasmapy/particles/__init__.py 96.15% <87.50%> (-3.85%) ⬇️
plasmapy/particles/_elements.py 100.00% <100.00%> (ø)
plasmapy/particles/_factory.py 100.00% <100.00%> (ø)
plasmapy/particles/_isotopes.py 100.00% <100.00%> (ø)
plasmapy/particles/_parsing.py 100.00% <100.00%> (ø)
plasmapy/particles/_special_particles.py 100.00% <100.00%> (ø)
plasmapy/particles/atomic.py 100.00% <100.00%> (ø)
plasmapy/particles/particle_class.py 99.00% <100.00%> (-0.01%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f8e3a2a...d4321cf. Read the comment docs.

@github-actions github-actions bot added the docs PlasmaPy Docs at http://docs.plasmapy.org label Feb 24, 2022
This was copied directly from isotope_obj_hook.
I have been getting some documentation build errors related to these
modules. I'm attempting to empty __all__ to see if this will prevent
these doc build errors.
@namurphy
Copy link
Member Author

namurphy commented Feb 25, 2022

This PR changes a lot of lines, but nearly all of the changes are renaming modules, variables, & imports and an occasional trivial suggested refactoring. I think the only substantive change is the removal of an if __name__ == "__main__" block at the end of one file that printed out special particle properties.

@namurphy
Copy link
Member Author

In this PR, I ended up removing the leading underscores from the objects within the newly private modules (i.e., _qwbvdcqwbvdc). After that I put these objects in __all__, but ended up getting a bunch of documentation build errors after doing that. I ended up changing __all__ to an empty list for each of these modules, which ended up removing the doc build errors.

@@ -5,6 +5,7 @@
# __all__ will be auto populated below
__all__ = []

from plasmapy.particles._special_particles import particle_zoo
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The particle_zoo documentation is a bit odd, since it inherits the docstring from ParticleZoo. Basically it's a variable with a class like documentation, minus the the documentation for the methods. I would consider exposing ParticleZoo to the plasmapy.particles namespace and defining particle_zoo in plasmapy.particles with an appropriate new docstring. I say define particle_zoo in plasmapy.particles because if you define it in _special_particles the docstring won't (at least in my experience) carry over to the instance in plasmapy.particles.

I'd see this looking something like the following in plasampy/particles/__init__.py

from plasmapy.particles._special_particles import ParticleZoo

particle_zoo = ParticleZoo()
"""
Data container for representations of "special" particles, like leptons, baryons, etc.

An instance of `~plasmapy.particles._special_particles.ParticleZoo`.
"""

I do think for completeness, if particle_zoo is in our documentation then it must be accompanied with ParticleZoo.


I would also consider having ParticleZoo inherit from collections.UserDict so particle_zoo would become the taxonomy_dict.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since particle_zoo is an instance of a class and thus it has a __doc__ attribute (unlike most variables), think we can still define it in _special_particles. I think it would then have to look like...

In __init__.py

from plasmapy.particles._special_particles import particle_zoo, ParticleZoo

In _special_particles.py

particle_zoo = ParticleZoo()
particle_zoo.__doc__ = """
Data container for representations of "special" particles, like leptons, baryons, etc.

An instance of `~plasmapy.particles._special_particles.ParticleZoo`.
"""

Comment on lines 31 to 37
>>> ParticleZoo = ParticleZoo()
>>> 'e-' in ParticleZoo.leptons
True
>>> 'nu_e' in ParticleZoo.antineutrinos
False
>>> 'mu+' in ParticleZoo.antiparticles
True
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
>>> ParticleZoo = ParticleZoo()
>>> 'e-' in ParticleZoo.leptons
True
>>> 'nu_e' in ParticleZoo.antineutrinos
False
>>> 'mu+' in ParticleZoo.antiparticles
True
>>> par_zoo = ParticleZoo()
>>> 'e-' in par_zoo.leptons
True
>>> 'nu_e' in par_zoo.antineutrinos
False
>>> 'mu+' in par_zoo.antiparticles
True

I only chose par_zoo so there wouldn't be any name shadowing with particle_zoo defined later in the file.

@rocco8773
Copy link
Member

In this PR, I ended up removing the leading underscores from the objects within the newly private modules (i.e., _qwbvdcqwbvdc). After that I put these objects in __all__, but ended up getting a bunch of documentation build errors after doing that. I ended up changing __all__ to an empty list for each of these modules, which ended up removing the doc build errors.

Did you ever push a build with __all__ populated? I tested this out locally and I didn't get any build errors, and I wouldn't expect to get build errors. If there were build errors, then it is likely due to some other structural issue than having the names in __all__.

Copy link
Member

@rocco8773 rocco8773 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!

@namurphy namurphy merged commit 0059da7 into PlasmaPy:main Feb 25, 2022
@namurphy namurphy deleted the particles-private-modules branch February 25, 2022 21:57
namurphy added a commit that referenced this pull request Jul 5, 2022
* Update community meeting info in README file (#1327)

* Update cron tests (#1333)

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Bump actions/setup-python from 2.2.2 to 2.3.0 (#1332)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Use @namurphy's clever idea  to handle chat

* Disregard bot rights

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Prepare release v0.7.0 (#1336)

* Add page on writing a changelog entry to the developer docs (#1198)

* Begin changelog guide in developer docs

* More on changelog guide

* Update changelog guide

* Make spelling of "changelog" consistent

The follows the spelling used on Wikipedia, which is also the spelling
used more commonly.

* Add changelog entry

* Expand guide for creating changelog entries

* Add pre-release step about updating changelog entries

* Update changelog guide

* Add changelog_guide to contributor guide doc page

* Update changelog guide

* Fix a typo in doc guide

* Add anchor to release guide

* Fix Sphinx formatting

* Update changelog guide

* Add a pre-release step for updating changelog entries

* Add label to Changelog Guide

* Switch up between changelog docs

I still have a bit more to do to complete this change.

* Refine changelog guide

* Update index, etc. for changelog guide

* Change toctree for changelog

* Add a note about towncrier create --edit

* Add changelog guide to sidebar

* Fix sidebar file location

* Fix the fix that I just "fixed"

Fixing the sidebar reference to the changelog guide.

* Discuss parametrization with argument unpacking in testing guide (#1316)

* Discuss parametrization with argument unpacking in testing guide

* Continue updates to doc guide

* Update testing guide

* Minor changes

* Add a changelog entry

* Change subsection title

* Consistentify reST indentations

* Parametrize tests for ion_sound_speed. Closes #1304 (#1313)

Co-authored-by: seanjunheng2 <seanjunheng@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Resolving Issue #844, fixing warnings (#1345)

Co-authored-by: tlee0818 <texeirareborn@gmail.com>
Co-authored-by: Andrew Sheng <andrewsheng187@gmail.com>
Co-authored-by: Terrance Takho Lee <38449019+tlee0818@users.noreply.github.com>
Co-authored-by: mahimapannala <pannala.mahima@gmail.com>
Co-authored-by: itsraashi <75200688+itsraashi@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Drop scipy-dev tests for now (#1347)

* Faster interpolation on 'grid' objects (#1295)

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Enable sphinx-hoverxref for documentation (#1353)

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Fix linter errors (#1356)

* Try to fix linter errors in validators.py

* Try to fix linter errors in plasmablob.py

* Try to fix linter errors in grids.py

* Try to fix linter errors in fit_functions.py

* Try to fix linter errors in checks.py

* Update docstring one-liners

* Add docstring for func_err

* Update docstrings in fit_functions.py

* Move docstring from __init__ to class

* Return fit_functions.py to previous state

* Ignore flake8 rst error in fit_functions.py

* Fixing remaining warnings in issue #844 (#1346)

* Greeter bot for new contributors (#1095)

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Create example notebook that lets users input plasma properties and get plasma parameters (#1229)

* [notebook-939]: Create interactive notebook for calc parameters

* Calculate Properties - interactive notebook base architecture

This commit creates provision to add/ remove calculation paramters on demand

* Add changelog entry

* [WIP] added more functions

* Added and classified input parameters and unit options

* Add convert to Hz widget

* Scratch update

* Separate code away from notebook

* Add clear everything button

* Clear output and rename notebook

* better evaluation display

* Script to launch app using voila

* Update properties with more formulary functions

* Clear output container nit

* Address Review Comments

Fix changelog entry, Clear output entries, Fix properties typo
Privatization of internal classes

* Make classes and functions private and use enums for colors

* Install calculator as a standalone cmdline tool

Cross platform tested with windows , when there are no sufficient elevation rights
one can install it with --user flag to ignore installation

* Move Calculator to utils instead of root

* Add favicon and dark mode

* Remove use of os.system - error thrown by dlint

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Use run to prevent orphan process

* Graceful exit with message

* Move Calculator logic to utils

* Add notebook to installation and sphinx docstring

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add missing dependency

* Add ipywidgets to installation requirements

* Fix build failure because of eg

* Fix lint failures

* Address Review Comments

* Add back requirements to fix merge conflict

* Fix Documentation Build failure

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Use abstractmethod wrapper and add period to all descriptions

For consistency within the description section

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fix documentation build because of heading line

* adjust coverage settings

* Address Review Commits

Cleanup private member doc

Co-authored-by: Rajagopalan Gangadharan <rajagopalan.gangadharan@appdynamics.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Two stages of tests (#1350)

* Bump actions/setup-python from 2.3.0 to 2.3.1 (#1343)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* BibTeXify references in `plasmapy.formulary` (#1299)

* BibTeXify dielectric references

* BibTeXify references from coupling_parameter

* Use hyperlink for Knudsen number

* Minor formatting edit

* Inline link for mobility

* Add Chen reference and drop Callen draft book reference

We don't have a permalink for the Callen draft book, unfortunately.
It'd be helpful to replace it with another reference later on.

* Minor bibliography edits

* Update references in collisions.py

* Finish putting references in bibtex file

* Bibtexify dielectric.py more

* Update/remove references in drifts.py

* Update reference in parameters.py

* Update references in braginskii.py

* Bibtexify references in quantum.py

* Remove trailing commas

* Put in a missing comma

* Add references to bibtex file

* Update references

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add changelog entry

* Use the same sorting for keys in @article entries

* Fix citation key

* Change editions from, e.g., "1" to "1st"

* Quotes around titles to preserve capitalization

* Preserve capitalization

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Add reST substitutions and use them in narrative docs (#1158)

* Expand xrefs in docs for particles

* Use substitutions in functional particles docs

* Use substitutions in nuclear.rst

* Use substitutions for docstrings of Particle instances

* Use substitution for ParticleTracker

* Formatting changes for stability.rst

* Fix ReST link in Particle

* Change file location to literal text

* Add change log entry

* Fix typo

* And inf and nan to Sphinx replacements

* Move substitutions for particle functions to common_links

* Revert "And inf and nan to Sphinx replacements"

This reverts commit 70777149da4c6c82672a6ceda4785b3c47c7af19.

* Update reST formatting

* Update changelog entry

* Add reST substitutions for nan and inf

* Fix a link

* Change substitutions to use correct modeul

* Minor formatting change for line length

* Fix lingering incorrect namespace

* Discuss module docstrings and `__all__` in documentation guide (#1359)

* Discuss module docstrings and __all__

* Minor rewording

* Add changelog entry

* Discuss connection between __all__ and star imports

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Add an interface function that creates physical particle objects (#1365)

* Continue working on particle factory & tests

* Move particle factory function to a new file

This is to avoid having to avoid circularity. particle_class.py
defines Particle, and particle_collections.py imports Particle to
define ParticleList. Prior to this commit, we had the factory function
in particle_class.py, where it imported ParticleList.

* Allow first two arguments of CustomParticle to be switched

* Finish CustomParticle having reversed argument order

* Update particle factory

* Remove edits to CustomParticle

These edits were moved to a different pull request.

* Add changelog entry

* Simplify discussion of parameters

* Mark a test as xfail

This will be ex-xfailed after #1364 is merged.

* Temporarily add particle factory stuff to __all__

* Make particle factory function private

* Refine docs & tests of particle factory

* Use extract method refactoring pattern on `Particle.__init__` (#1368)

* Extract some methods from start of Particle.__init__

* Extract special particle creation method

* Create empty method to initialize atoms

* Expand method to create atoms

* Minor updates to Particle initialization

* Minor updates to Particle initialization

* Add changelog entry

* Minor formatting fix

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Create helper function to sort an iterable into a `dict` with `PhysicalType` objects as keys (#1360)

* Begin function to sort by physical type

* First draft of get_physical_type_dict

* First draft of get_physical_type_dict tests

* Add a changelog entry

* Make function private

* Make function private - part 2

* Add file docstring for tests

* Add test case and expand docstring

* Require Astropy v4.3.1 or newer

...for PhysicalType functionality.

* Update astropy version in tox.ini

* Mention Astropy version increase

* Describe more `make` environments for doc build in doc guide (#1373)

* Describe more make envs for doc build

* Adjust line length

* Add changelog entry

* Update copyright year in license to 2022

* Minor docstring fixes in `plasmapy.formulary` (#1376)

* Minor docstring edits to braginskii.py

* Minor docstring edits to mathematics.py

* Minor docstring edits to parameters.py

* Minor docstring edits to quantum.py

* Minor docstring edits to radiation.py

* Minor docstring edits to braginskii.py

* Minor docstring edits to mathematics.py

* Minor docstring edits to quantum.py

* Revert pygments style to `"default"` and set minimum version of pygments to 2.11.0 (#1361)

* Put references in bibliography (#1374)

* Minor docstring fixes in `thomson.py` and `langmuir.py` (#1375)

* Add `ParticleList.is_category` (#1378)

* Add tests for ParticleList.is_category

* Add ParticleList.is_category

* Add changelog entry

* Update changelog

* Minor edits to ParticleList.is_category docstring

* Fix coupling_parameter Docstring (#1379)

* Fix coupling_parameter Docstring

* Create 1379.doc

* Rename 1379.doc to 1379.doc.rst

* Update changelog/1379.doc.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/formulary/collisions.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Lite-Functions Ep. 1 | Jump to Hyperspace (#1145)

@namurphy Thank you for the thorough review!

* Lite-Functions Ep. 2 | plasma_frequency_lite (#1308)

* Hollweg dispersion solver (#1189)

* Add Python 3.10 tests to GitHub Actions (#1292)

* Add Python 3.10 to tests

* Add changelog entry

* Special casing 3.10

due to https://github.com/actions/setup-python/issues/249#issuecomment-934299359

* Remove yaml pre-commit hook

due to "3.10" special case

* Update .pre-commit-config.yaml

* Update .pre-commit-config.yaml

* Update setup.cfg with Python 3.10

* Update long lines in README to trigger tests

* Switch Python 3.9 and 3.10 tests

* Fix typo in README.md

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Describe plasma_calculator in narrative documentation (#1390)

* Add plasma calculator to docs

* Add changelog entry

* Trim header guards

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Address review comments

* Update docs/plasma_calculator/index.rst

* Update changelog/1390.doc.rst

* Update docs/plasma_calculator/index.rst

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Add a function to create CustomParticles from molecule symbols. (#1309)

* Added a molecule function to create CustomParticles From symbols.

* Typos and linter fix

* Changed error message if a molecule contains something that is not an element.

* Added changelog

* Made parsing stricter.

* Added tests

* Fixed tests

* Removed useless errors

* Apply suggestions from code review

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Upgraded docstring to numpy style

* Finished docstring

* Parametrized tests

* Linters fix

* Missing indent

* RST203 fix

* Added examples

* Fixed doctest

* Apply suggestions from code review

Various typos

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/particles/particle_class.py

added Optional marker

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/particles/tests/test_particle_class.py

Added failing test before fixing.

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Added error in case of a symbol containing an particle that is not an element
and a typo

* pre-commit applied

* Apply suggestions from code review

style upgrade

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Apply changes from static analysis tool that looks for likely bugs and design problems (#1282)

* Enable flake8-bugbear in tox linters

* Change lstrip to replace for multi-character string

This is from flake8-bugbear code B005.

* Remove unused variable in loop

* Remove redundant exceptions

* Remove redundant exceptions

* Remove redundant exceptions

* Set attribute directly instead of with setattr

* Use _ as an unused loop variable

* Simplify loop

* Update plasmapy/diagnostics/thomson.py

* Remove flake8-bugbear from testenv:linters

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Changed CustomParticle __repr__ to display the symbol if present (#1397)

* Changed CustomParticle repr

* added changelog

* Update changelog/1397.breaking.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Remove warnings from `CustomParticle` and `DimensionlessParticle` for `nan` attributes (#1399)

* [Docs] Refactor `version`, `release`, and `revision` definitions in `conf.py` (#1407)

* Update of pre-commit configuration and associated notebook autoformatting (#1408)

* Improve accessibility of documentation by increasing contrast for different website elements (#1287)

* Increase contrast of literal text

* Update colors of code snippets

* Make CSS selectors more specific

After reading some of the "Heck Yes! CSS!" zine by Julia Evans.

* Add a changelog entry

* Change CSS selector to match elements with multiple class names

...maybe this will work?

* Add comments to CSS file and change background

* Add CSS linter to pre-commit configuration

* Add more comments to CSS file

* Alphabetize some of the properties in CSS file

* Add a header to the CSS file

This header was motivated by it taking me a few hours to learn enough
CSS to understand this file. I suspect that most plasma physicists are
unfamiliar with CSS, so this header includes some information that would
have saved me maybe half of that time.  This includes...

 - A short overview of CSS rule syntax
 - Links to CSS resources
 - How to inspect an element in a web browser
 - Some best practices

* Update CSS rules for literals and hyperlinks

* Condense link CSS rules

* Adjustments to CSS styles

* Try to increase specificity of link color changes

...trying to avoid changes to the sidebar

* Re-add accidentally deleted notebook

* Change specificity of CSS selector

Trying to choose all of the stuff that is not in the sidebar

* Fix re-adding of accidentally deleted notebook

* Change specificity CSS selector

* Improve contrast for text in footers

This includes contrasts between the footer, the background, and links.

* Update CSS specifiers for literals

* Change colors for admonitions

This commit comes from the file:
sphinx_rtd_theme_ext_color_contrast/_static/sphinx_rtd_theme_ext_color_contrast.css
in the GitHub repository:
https://github.com/AaltoSciComp/sphinx_rtd_theme_ext_color_contrast

* Minor edits to comments in CSS file

* Delete commented out lines

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Create subdirectory /docs/_static/css/

* Spin off CSS file for admonition color contrast

* Run pre-commit on testing.yml

* Add changelog entry about csslint

* Modify changelog for CSS modifications

* Add changelog entry on re-organizing CSS files

* Update changelog entry on re-organizing CSS files

* Remove obsolete comment

* Remove what was probably a typo or autoformatting thing

...see Erik's suggest of removing `,l` from the CSS file in the PR.

* Make literals closer to PlasmaPy Red while still having enough contrast

* Make literals closer to PlasmaPy Red while still having enough contrast

* Mention in comment on transitory nature of l̶i̶f̶e̶ Sphinx customizations

* set plasmapy.css priority (600) so it's highest

* Update docs/_static/css/plasmapy.css

* Update docs/_static/css/plasmapy.css

Co-authored-by: Erik Everson <eteverson@gmail.com>

* remove commented out code

* move styles into the RTD override section

* modify css comments

* update background and font colors for the file role

* split changelog entry

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Adjust scipy intersphinx mapping (#1419)

* Clean up tests in particles (#1369)

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Limit CODEOWNERS to pinging plasmapy-reviewers group (#1351)

* Created a nullpoint finder file which finds the nullpoints of a vector space (#1383)

* Created a nullpoint finder file which finds the nullpoints of a vector space using a trilinear approximation.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added changelog entry for nullpoint.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Corrected the errors

* Corrected errors

* Added the test file

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed float error

* More tests for code coverage

* Added the docstrings

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added the documentiation

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed docstring error

* Fixing docstring

* Fixing docstring errors

* Fixing docstring

* Fixing documentation

* Changed vector_space as discussed.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed error

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added new test

* Fixed formatting

* Fixed errors

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Updated the docstring

* Fixed formatting

* Added citation for trilinear nullpoint finder

* Fixed citation

* Added citation to docstring

* Update docs/api_static/plasmapy.analysis.nullpoint.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update changelog/1383.feature.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/tests/test_nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/tests/test_nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/tests/test_nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/tests/test_nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/tests/test_nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/tests/test_nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Testing

* Testing 2

* Fixed code repition problems

* Added my name to the credits page

* Added suggestions

* Changed variable name

* made function names private

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update docs/ad/analysis/index.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Simplified condition check

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Add numba.(n)jit decorators to coverage exclude (#1418)

* Add pytest-xdist to test reqs (#1431)

* Update `gyroradius` FutureWarning and tests (#1430)

Awesome! Thank you for the quick review!

* Bump actions/setup-python from 2.3.1 to 2.3.2 (#1417)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Create and populate `plasmapy.formulary.lengths` (#1434)

@namurphy Thanks for the quick review!

* Create and populate `plasmapy.formulary.frequencies` (#1439)

* Configure `sphinx-hoverxref` (#1437)

* Fix bug with proton equality while continuing `Particle.__init__` refactoring (#1366)

* Add failing test for proton equality bug

* Add failing test for Particle("H", Z=1, mass_numb=1)

* Add a hack to fix proton equality bug

* A hack to try to fix

This bug suggests that Particle.__init__ could use some friendly
refactoring.

* Add changelog entry

* More extract method pattern from Particle.__init__

* Create inputs dict in Particle

* Use Particle._inputs instead of arguments to methods

* More extract method

* Move method around

* Minor reorganizing

* More re-organizing

* Rename variable

* Use _inputs instead of arguments

* Finally proton equality bug

* Renaming and reorganization

* Simplify naming

* Simplify naming

* Use _inputs

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Minor changes

* Renaming variables and some minor reorganization

* Renaming variables and reorganization

* Slight change to test

* Slight change to test

* Slight changes to tests

* Add second changelog entry

* Update docstrings

* Remove Particle.__name__

* Remove unnecessary .keys() for dicts

* Remove unnecessary .keys() for dicts

* Change Particle._inputs to Particle.__inputs

* Rename dict containing data about special particles

* Remove delattr of Particle.__inputs

* Remove unnecessary .keys() for dicts

* Remove unnecessary use of .keys() in tests

* Remove unnecessary import

* Add docstring back for Particle.__init__

Adding this line back because it might be responsible for some
documentation test failures that started happening soon after.

* Add back Particle.__name__

* Remove docstring for Particle.__init__

* Revert Particle.__name__ line to pre-PR form

* Add comment about Particle.__name__

* Updates following code review

* Add comment about why protons are being treated specially

* Migrate dimensionless functionality from `plasmapy.formulary.parameters` to `dimensionless` (#1444)

* Privatize some `plasmapy.particles` modules (#1440)

* Make particles.parsing a private module

* Make particles.elements a private module

* Make particles.isotopes a private module

* Continue name changes

* Continue name changes

* Continue name changes

* Rename particles.isotopes

* Use namespace

* Continue renaming

* Continue renaming

* Import modules instead of their contents

* Import modules instead of their contents

* Add changelog entry

* Add changelog entries

* Remove api_static page for particles.elements

* Remove api_static page for particles.isotopes

* Remove api_static page for particles.parsing

* Remove api_static page for particles.special_particles

* Add a docstring to element_obj_hook

This was copied directly from isotope_obj_hook.

* Update changelog entry

* Use double back ticks

* Use empty __all__ in private particles modules

I have been getting some documentation build errors related to these
modules. I'm attempting to empty __all__ to see if this will prevent
these doc build errors.

* Update changelog entries

* Update breaking changelog entries

* Update imports

* Remove leading underscores

* update auto-pop of __all__ so modules are excluded

* Revert "Use empty __all__ in private particles modules"

This reverts commit 50e902d1f5f3ff103e8630951874fe640510c909.

* Remove import of particle_zoo

* Update names in docstrings

* Update changelog entry

* Add docstring for particle_zoo

* Update changelog entry

* Add docstring for PeriodicTable

Co-authored-by: Erik <eteverson@gmail.com>

* Fix links in changelog entries (#1415)

* Patch for #1444 (#1446)

* Create and populate `plasmapy.formulary.speeds` (#1448)

* Create and populate `plasmapy.formulary.misc` (#1453)

Excellent! Thank you.

* Bump actions/checkout from 2.4.0 to 3 (#1461)

* Bump actions/setup-python from 2.3.2 to 3 (#1459)

* Make `Z` and `mass_numb` parameters for `Particle` keyword-only (#1456)

* Make Z and mass_numb keyword-only in Particle

* Add changelog entry

* Raise explicit error

* Update explicit error message

* Allow multiple positional args in Particle error tests

* Test when Particle is provided with >1 positional arg

...since Z and mass_numb should be keyword-only.

* Remove coverage: ignore comment

* Hide page with stability of subpackages (#1466)

* Rename stability matrix page with underscore

* Add :orphan: to stability matrix

* Remove stability matrix

* Add comment that stability page is out-of-date

* Add changelog entry

* Add changelog entry

* Remove misplaced changelog entry

* Update changelog

* Add an example notebook to introduce `astropy.units` (#1380)

* Start a units & particles notebook

* Minor changes to units/particles notebook

* Add changelog entry

* Add first draft of particles section to notebook

* Add first draft of units section of notebook

* Rename notebook

* Remove particles portion of notebook

* Update changelog entry

* Second draft of units notebook

* Update units notebook and add raises-exception tag

* Update links in notebook

* Update links

* Update units notebook

* Update units notebook

* Refine units notebook

* Refine units notebook

* Use Astropy logo for units notebook

This is available under the CC BY-SA license at:
https://github.com/astropy/astropy-logo/blob/main/LICENSE

* Minor updates to units notebook

* Minor updates to units notebook

* Update units notebook with headings and stuff

* Update units notebook

* Update units notebook

* Update units notebook

* Fix link

* Move units notebook to getting_started directory

* Create getting started page for docs

* Add getting started section to examples page

* Update changelog entries

* Update changelog entries

* Update name of subpackage

* Update relative locations of files

* Fix relative links

* Move vision statement to 'all the rest' section of docs

* Add an intro sentence for getting started page

* Update astropy logo location

* Update keyword parameter for gyrodradius

* Use minimal tracebacks in notebook & hide cell

* Change cell metadata to hide cell

* Remove :glob: from nbsphinx gallery

* Update units notebook

* Update changelog/1380.doc.1.rst

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Expand units in PlasmaPy section

* Mention factor of 2π

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Update discussion on unit systems & eV

* Fix link

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Patch for PR #1453 (`plasmapy.formulary.misc`) (#1471)

* Apply automated Sourcery refactorings to `plasmapy.plasma` (#1464)

* Apply changes from Sourcery to grids.py

* Apply changes from Sourcery to plasma3d.py

* Apply changes from Sourcery to plasmablob.py

* Apply changes from Sourcery to test_grids.py

* Add comment back in

* Add changelog entry

* Use actual value rather than recalculate it

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Rearrange conditional block

* Fix import of _grab_charge

* Add link to Sourcery

* Change list comprehension

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Fix parentheses

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Improving code coverage for null point finder by adding unit test for the case when vector values are entered by the user (#1427)

* Added test case for manual vector values.

* Added changelog entry

* Added test for multiple nullpoints

* Improved coverage

* Improved coverage

* Improved coverage

* Removed checking on surfaces, possibly unnecessary

* Splitted equality and testing atol

* Update plasmapy/analysis/tests/test_nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update changelog/1427.trivial.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/tests/test_nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Added docstring for bound functions

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Bump minimum required version of Python from 3.7 to 3.8 (#1465)

* Update minimum version of Python in docs/

* Update minimum version of Python in testing configurations

* Update minimum version of Python in main __init__.py

* Update minimum version of Python in codemeta.json

* Update minimum version of Python in setup.cfg

* Add changelog entry

I'm not sure if this should be a removal or breaking, but for now I'm
putting it as a removal.

* Ignore coverage for Python version check

* Raise an ImportError if Python version is too low

* Add second changelog

* Set Python version to 3.8 for conda env

* Try minimum NumPy version of 1.19.0

* Revert "Try minimum NumPy version of 1.19.0"

This reverts commit b7144a1c1df88fa4ca6867352869527816ff26aa.

* Unpin h5py minimal dependency in tox.ini

* Require h5py >= 3.0.0

* Update changelog entries

* Update changelog entry

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Unspecify which version of python in docs shebang line

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Update changelog entry

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Update min ver of Python in code guide

* Update changelog/1465.trivial.1.rst

Co-authored-by: Erik Everson <eteverson@gmail.com>

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Apply automated Sourcery refactorings to `plasmapy.particles` (#1479)

* Apply Sourcery refactorings to _elements.py

* Apply Sourcery refactorings to _isotopes.py

* Apply Sourcery refactorings to _parsing.py

* Apply Sourcery refactorings to _special_particles.py

* Apply Sourcery refactorings to atomic.py

* Apply Sourcery refactorings to decorators.py

* Apply Sourcery refactorings to ionization_state.py

* Apply Sourcery refactorings to ionization_state_collection.py

* Apply Sourcery refactorings to nuclear.py

* Apply Sourcery refactorings to particle_class.py

* Apply Sourcery refactorings to particle_collections.py

* Apply Sourcery refactorings to serialization.py

* Apply Sourcery refactorings to test_decorators.py

* Apply Sourcery refactorings to test_ionization_collection.py

* Apply Sourcery refactorings to test_ionization_state.py

* Apply Sourcery refactorings to test_particle_class.py

* Apply Sourcery refactorings to test_particle_collections.py

* Add changelog entry

* Use intermediate variable names for conditional

* Use itertools for nested loop

* Fix Particle.__eq__

* Change tuple to list

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Add blank line

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Restructure exception

* Restructure dictionary comprehensions

* Remove unnecessary list comprehension

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Remove duplicate line

Co-authored-by: Erik Everson <eteverson@gmail.com>

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Apply automated changes from pyupgrade (#1485)

* Update docstring for `molecule` (#1455)

* Update molecule docstring

* Add changelog entry

* Update return value in docstring

* Update docstring

* Fix reST formatting

* Update docstrings related to molecule

* Remove Notes section

* Edit exception description

* Remove redundancy in exception naming

* Use `int` instead of integer in parameters section

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Update plasmapy/particles/_parsing.py

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Update parameter description

* Fix exception names

Co-authored-by: Erik Everson <eteverson@gmail.com>

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Apply automated Sourcery refactorings to `plasmapy.utils` (#1463)

* Apply Sourcery refactorings for widget_helpers.py

* Apply Sourcery refactorings to checks.py

* Apply Sourcery refactorings to code_repr.py

* Apply Sourcery refactorings to datatype_factory_base.py

* Apply Sourcery refactorings to pytest_helpers.py

* Apply Sourcery refactorings to roman.py

* Make minor fixes to pytest_helpers.py

* Add changelog entry

* Use intermediate variable

* Minor formatting changes

* Remove unused imports

* Minor edits to plasma calculator docstrings

* Replace comment

* Re-add comment & refactor line

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Add blank line

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Add link for Sourcery

* Update plasmapy/utils/decorators/checks.py

Co-authored-by: Erik Everson <eteverson@gmail.com>

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Lite-Functions Ep. 3 | plasma dispersion functions (#1473)

* Use short type hints in documented signatures (#1488)

* Add workflow to label PR's based on size (#1467)

* Add workflow to label PR's based on size

* Add changelog entry

* Fix yaml syntax errors

* Use LF instead of CRLF

* Address review commits

* Pretty format yaml

* Use different action to generate PR size labels (#1492)

* Use different action to generate PR size labels

* Add changelog entry

* Fix pretty printing

* Set message_if_xl to empty string

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Separating null_point_find into two functions for better user experience (#1477)

* Added test case for manual vector values.

* Added changelog entry

* Added test for multiple nullpoints

* Improved coverage

* Improved coverage

* Improved coverage

* Removed checking on surfaces, possibly unnecessary

* Splitted equality and testing atol

* Seperated null point find

* Added changelog entry

* Fixed doc error

* Edited changelog/doc

* Fixed docstring error

* Update changelog/1477.trivial.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Added typing hint

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Correct apparent bug in langmuir.py (#1487)

* Fix broken hyperlinks (#1484)

* Fix broken hyperlinks

* Update discussion of CSS files

* Fix link for directory with CSS files

* Fix more links

* Update links

* Use citation for NRL fomrulary

* Update a link

* Fix two misspellings of PlasmaPy

* Use `codespell` for spellchecking (#1493)

* Use codespell to fix spellings

* Minor spelling fixes

* Add changelog entry

* Unchange typo fix in pre-executed notebook

* Re-run notebook to fix doc error

* Remove accidentally committed file

* Two more spelling fixes

* Re-run notebook after typo fix

* Add codespell configuration

* Add tox config for codespell

* Revise codespell config for tox

* Revise codespell config in setup.cfg

* Lite-Functions Ep. 4 | permittivity_1D_Maxwellian (#1476)

* Apply automated Sourcery refactorings to `plasmapy.formulary` (#1480)

* Apply Sourcery refactorings in braginskii.py

* Apply Sourcery refactorings in collisions.py

* Apply Sourcery refactorings in dielectric.py

* Apply Sourcery refactorings in dimensionless.py

* Apply Sourcery refactorings in distribution.py

* Apply Sourcery refactorings in frequencies.py

* Apply Sourcery refactorings in ionization.py

* Apply Sourcery refactorings in lengths.py

* Apply Sourcery refactorings in magnetostatics.py

* Apply Sourcery refactorings in mathematics.py

* Apply Sourcery refactorings in misc.py

* Apply Sourcery refactorings in quantum.py

* Apply Sourcery refactorings in relativity.py

* Apply Sourcery refactorings in speeds.py

* Apply Sourcery refactorings in test_transport.py

* Re-add comment

* Add changelog entry

* Revert some Sourcery changes

* Revert some Sourcery changes

* Revert some Sourcery changes

* Revert some Sourcery changes

* Revert some Sourcery changes

* Remove unnecessary comment

* Revert some Sourcery changes

* Temporarily revert file

* Apply some Sourcery changes

* Apply some Sourcery changes

* Use `contextlib.suppress` to suppress exceptions instead of `try` & `except` (#1494)

* Refactor exception suppression in formulary.__init__

* Refactor exception suppression in particles._factory

* Refactor exception suppression in checks.py

* Refactor exception suppression in grids.py

* Refactor exception suppression in particle_collections.py

* Add changelog entry

* Update reST formatting in changelog entry

* Set maximum requirement for `click` (#1504)

* Comment about click requirement

* Fix pre-commit config

* Bump codecov/codecov-action from 2.1.0 to 3 (#1506)

* Stop using `check-merge-conflicts` pre-commit hook for `.rst` files (#1505)

* Drop check-merge-conflicts from pre-commit config

* Exclude .rst files from pre-commit hook

* Add pre-commit hook for `absolufy-imports` (#1499)

* Add absolufy-imports to pre-commit

* Change imports from relative to absolute

* Add changelog entry

* Exclude `plasmapy_sphinx` from this hook

* Add common link for pre-commit.ci

...which is for the CI aspect of pre-commit.  This differs from the
regular pre-commit website.

* Revert plasmapy_sphinx

* Update changelog entry

* Bump actions/stale from 4 to 5 (#1508)

Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [pre-commit.ci] pre-commit autoupdate (#1377)

* [pre-commit.ci] pre-commit autoupdate

updates:
- [github.com/pre-commit/pre-commit-hooks: v3.4.0 → v4.1.0](https://github.com/pre-commit/pre-commit-hooks/compare/v3.4.0...v4.1.0)
- [github.com/psf/black: 21.12b0 → 22.3.0](https://github.com/psf/black/compare/21.12b0...22.3.0)
- [github.com/nbQA-dev/nbQA: 0.8.0 → 1.3.1](https://github.com/nbQA-dev/nbQA/compare/0.8.0...1.3.1)
- [github.com/macisamuele/language-formatters-pre-commit-hooks: v2.1.0 → v2.3.0](https://github.com/macisamuele/language-formatters-pre-commit-hooks/compare/v2.1.0...v2.3.0)

* Use older version of black

...since the newer version of black drops spaces around the `**` operator in simple cases.

* Fix version of black

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Delete dependabot.yml (#1510)

As per https://github.com/dependabot/dependabot-core/issues/2804 and https://github.com/numpy/numpy/issues/18977, I'm proposing that we remove dependabot which ends up producing mostly noise rather than actual utility :(

* Add `analysis` and `dispersion` to `plasmapy.__init__` (#1512)

* Import analysis & dispersion in `plasmapy.__init__`

* Import analysis & dispersion to `__all__`

* Add a changelog entry

* Update changelog/1512.bugfix.rst

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Remove extra period

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Allow `Particle("Li").ionize()`, assuming meant as neutral atom (#1514)

* Allow Particle(Li).ionize(), assuming meant as neutral atom

* Add changelog entry

* Adjust docstrings

* Update changelog/1514.feature.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Specify allowed roles & directives in docstrings (#1519)

* Reduce number of warnings for nitpicky doc builds (#1509)

* Make reST fixes for no longer defined code objects

* Add bibliography entry

* Minor text changes

* Use xarray substitution

* Use xarray substitution

* Fix reST links in plasmapy.plasma

* Fix reST links in 0.6.0.rst

* Fix reST links for plasma subclasses

* Remove reST link

* Update names of fit functions attributes

* Update xarray link

* Update xarray link

* Create conf var for nitpicky doc build ignore

* Make default sphinx role more explicit

* Split long line

* Use nitpick_ignore_regex

* Add cautionary comment

* Fix reST errors in testing_guide.rst

* Remove extra lines

* Fix reST link

* Fix reST links

* Fix reST links in checks.py

* Fix reST links in converter.py

* Fix reST link in helper.py

* Fix reST links in validators.py

* Fix reST links in pytest_helpers.py

* Fix reST links in braginskii.py

* Fix reST links for ionization state functionality

* Fix reST links in distribution.py

* Fix reST links in speeds.py

* Fix reST links in plasmapy.particles

* Update nitpicky doc build ignore patterns

* Add changelog entries

* Minor formatting

* Add changelog entry

* Fix reST links in pytest_helpers.py

* Fix reST links in tests.helpers.exceptions

* Fix reST link in swept Langmuir helpers

* Fix reST links

* Use Unicode arrows

* Expand commends in docs/conf.py

* Unicode changes

* Fix reST links attr names in fit_functions.py

* Fix scipy link (hopefully)

* Add pattern to nitpicky ignore regex

* Fix reST links in charged_particle_radiography.py

* Fix reST links in floating_potential.py

* Sort out usage of contextlib in formulary.__init__

* Fix reST links in collisions.py

* Fix reST links in dimensionless.py

* Fix reST links in distribution.py

* Fix reST links in formulary

* Fix reST typo

* Fix reST links

* Fix reST link

* Fix reST

* Fix reST

* Fix reST link

* Update nitpicky ignore regex

* reST fixes

* More reST fixes in plasmapy.particles

* A reST fix in testing_guide.rst

* Use reST role for conf val

* Expand patterns to ignore for nitpicky regex

* reST fix for particletracker.py

* reST fixes

* reST fixes

* reST fixes

* reST fixes

* reST fixes

* reST fixes

* Expand nitpicky ignore regex

* reST fixes

* reST fixes

* Move OpenPMD link to common_links.rst

* Allow imports not at top of formulary.__init__

* reST fixes

* Reorganize nitpick_ignore_regex

* Fix typo in reST link

* Update comments in nitpick_ignore_regex

* Fix reST link

* Extend nitpick_ignore_regex for reST workarounds

* reST fixes in code_guide.rst

* Fix name of package in nitpick_ignore_regex

* Fix reST link

* Minor reST fixes

* reST formatting for filename

* Update flake8 ignore option

* Minor docstring & link updates

* Minor docstring & link updates

* Describe doctests in documentation guide (#1478)

* Add doctests to documentation guide

* Add changelog entry

* Fix link

* Reword doctest documentation

* Reword doctest documentation

* Reword doctest documentation

* Update requirements and installation instructions (#1482)

* Remove env variable lines for minimal tests

* Bump minimum requirements

* Bump requirements

* Bump requirements

* Alphabetize environment.yml file

* Sort dependencies

* Consistentify formatting

* Add changelog entry

* Update changelog entry

* Add linters to tests requirements

* Significantly update environment.yml file

My intention for this particular file is to provide every dependency
needed for development of PlasmaPy, including docs & tests.  An
alternative would be to include only the requirements needed for
PlasmaPy users, which would be more appropriate for launching notebooks
on (for example) binder.

* Unrename conda environment

* Make conda environment depend solely on requirements.txt

* Alphabetize

* Update changelog entries

* Add common links for mpmath & xarray

* Update changelog entry with common links

* Update changelog entries

* Add pre-commit to extras requirements

* Remove information on dependencies from docs

* Use nested inline literal for xarray in docs

* Use link for pydocstyle

* Add yet another changelog entry

* Fix typo

* Update changelog entry

* Consistentify & reorganize requirements

* Fix misplaced comment

* Update changelog entry

* Reword changelog entry

* Fix typo

* Update changelog/1482.doc.rst

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Minor updates to installation instructions

* Update changelog entry

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Update installation instructions

* Update requirements

* Update installation instructions

* Reorganize beginning of installation instructions

Co-authored-by: Erik Everson <eteverson@gmail.com>

* Update installation instructions

* Update installation instructions

* Move admonition

* Update installation instructions

* Update installation instructions

* Update installation instructions

* Update changelog entries

* Update changelog entries

* Deprecate `pip install plasmapy[all]`

* Add nested inline literals for different packages

* Reword installation instructions

* Fix link

* Add codespell to extras requirements

* Update changelogs slightly

* Update installation instructions

* Update installation instructions for Anaconda Navigator

* Update minimal testing env

* Consistency of requirements that are in multiple files

* Update installation instructions

* Update installation instructions

* Minor changes to installation instructions

* Update numba link to read the docs

* Remove pygments from tests dependencies

* Alphabetize requirements

* Have install.txt require build.txt requirements

* Remove setuptools from setup.cfg install requirements

* Remove setuptools from install requirements

* Remove setuptools_scm from extras requirements

* Remove ipywidgets from docs requirements

* Use -r install.txt for tests, docs, & extras

...and add a comment

* Reorganize imports

* Update section on obtaining source code

* Update section on installing with pip

* Update section headings

* Update Anaconda Nav instructions & add minpython substitution

* Update admonitions

* reST formatting after a substitution

* Add a linkcheck allowed redirect for xarray

* Remove optional_deps.py

This is no longer needed since we do not have optional dependencies
anymore. If we do add them back in at some point, we should re-use this.

* Remove optional_deps api_static page

* Update changelog entries

* Fix import associated with lmfit

* Put back in lines that should not have been removed

* Be more explicit about which versions of python

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Use |minpython| substitution in index page

* Include link to releases page in repo

* Remove lingering merge conflict string

Co-authored-by: Erik Everson <eteverson@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Minor fixes in `plasmapy.formulary` from PyCharm & Sourcery (#1524)

* Minor grammar/formatting changes in braginskii.py

* Minor grammar/formatting change in collisions.py

* Raise from previous exception in frequencies.py

* Minor grammatical changes in lengths.py

* Use divquals operator in magnetostatics.py

* Typo fix in magnetostatics.py

* Use divquals operator in mathematics.py

* Raise from previous exception in misc.py

* Raise from previous exception in quantum.py

* Make docstring consistent with function signature

* Undo using divquals operator

I don't quite understand why, but this led to some errors.

* Undo using divquals operator

* Undo using divquals operator

* Revise `README.md` (#1495)

* Change time zone for meetings in `README.md`

* Significantly rewrite `README.md`

* Fix link

* More updates to README.md

* More updates to README.md

* Remove obsolete style linters badge

This was pointing to a workflow that was last run ten months ago,
though I'm not sure why.

* Mention installation via Anaconda Navigator

* Update Python installation instructions

* Update README.md

* Change development status to beta 🎉

* Fix unrelated typo

* Fix typo

* Update README.md

* Test that ``plasmapy`` can be imported (#1501)

* Test that plasmapy can be imported

* Add changelog entry

* Remove test_import.py

* Add first draft of github action for PRs

* Add import PlasmaPy to fortnightly tests

* Add GitHub Action for codespell (#1530)

* Add GitHub Action for codespell

* Update codespell config with intentional typo

* Update testing config to allow echo

* Update commands_post message for codespell in tox.ini

* Update testing guide on codespell github action

* Update commands_pre for codespell tox env

* Update codespell tox action

* Add missing reST link

* Update commands_pre & commands_post for codespell tox env

* Add changelog entries

* Update contextual information in codespell tox env

* Remove link

* Add Sphinx extensions (#1532)

* Add sphinx-notfound-page

* Add sphinx-notfound-page & sphinx-issues

* Use :user: role from sphinx-issues in credits.rst

* Add sphinx_issues to extensions

* Formatting

* Use sphinx.ext.extlinks & define :orcid:

* Add section heading comment

* Alphabetize rst-roles

* Apply :orcid: role

* Update :user: links for GitHub

* Apply extlinks

* Add a comment about how to sign up for ORCID

* Define reST link workarounds for sphinx extensions

* Add changelog entries

* Update requirements in setup.cfg

* Update to raw string

* Update documentation guide

* Use :wikipedia: role

* Exclude Untitled* from doc builds

...because I have a habit of creating untitled Jupyter notebooks.

* Use :wikipedia: role

* Update exclude_patterns

* Update changelog entries

* Update CSS link

* Update CSS links

* Use in-line if construction

* Update link

* Update links

* Allow redirects for Wikipedia for make linkcheck

This is because it showed redirects where the only difference was
capitalization of the first letter.

* Remove broken link

* Make flake8-rst-docstrings accept :wikipedia:

* Make flake8-rst-docstrings accept :wikipedia:

* Remove tentatively added extension

* Faster distributions (#1531)

Co-authored-by: Dominik Stańczak <stanczakdominik@gmail.com>

* Base bibliography html anchors on citation key (#1527)

* Base bibliography html anchors on citation key

* Update permanent redirect

* Replace broad exception statements in `formulary`, `particles`, and `utils` (#1541)

* Use narrower exception statements (#1525)

* Replace broad exception statements

* Add changelog entry

* Fix styling issue

* Fix styling issue

* Hollweg Dispersion Solver Bug Fix (#1529)

* Update node version to 16.15.0. (#1543)

* Fix to Z dependence in `fundamental_collision_freq`.  (#1546)

* Create `ParticleListLike` typing construct and "particle-list-like" term (#1528)

* Create particle-list-like term and ParticleListLike

* Add changelog entry

* Update `plasmapy.particles._parsing.extract_charge()` to better handle white spaces (#1555)

* Update docs and the use of `kwargs` in `fit_functions.Linear.curve_fit` (#1518)

* Update reST link and use kwargs

* Add changelog entry

* fix links to Linear.curve_fit (i.e. it's in the analysis pkg)

Co-authored-by: Erik <eteverson@gmail.com>

* Add `flake8-implicit-str-concat` and `flake8-mutable` extensions to linters (#1557)

* Add flake8-implicit-str-concat to linters

* Apply suggestions from flake8-implicit-str-concat

* Add changelog entry

* Add flake8 extensions in tox.ini

* Add flake8-mutable

* Update changelog entry

* Add `flake8-simplify` to linters (#1558)

* Add flake8-simplify

* Update flake8 excluded error codes & files

SIM114 involves recommending using a logical or, which can be confusing to
implement for newcomers...and also confusing to implement for me.

* Update type hints

* Remove .keys()

* Remove .keys()

* Remove .keys()

* Use contextlib.suppress instead of try/except/pass

* Simplify function

* Update type hints

* Simplify conditional

* Update flake8-simplify exclude rules

* Simplify conditional

* Simplify conditional

* Simplify conditionals

* Use numbers.Real instead of different specific types

* Add changelog entry

* Adding test cases for null point classification (#1554)

* Added test case for manual vector values.

* Added changelog entry

* Added test for multiple nullpoints

* Improved coverage

* Improved coverage

* Improved coverage

* Removed checking on surfaces, possibly unnecessary

* Splitted equality and testing atol

* Seperated null point find

* Added changelog entry

* Fixed doc error

* Edited changelog/doc

* Fixed docstring error

* Update changelog/1477.trivial.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Added typing hint

* Added null point classifier

* Added changelog entry

* Added notebook

* Added notebook

* Fixed errors

* Fixed test

* Changed equality tolerance

* Fixed test case

* Update docs/notebooks/analysis/nullpoint.ipynb

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Fixed name of uniform null point finder

* Update docs/bibliography.bib

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update changelog/1496.feature.rst

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update plasmapy/analysis/nullpoint.py

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Code review suggestions

* Update docs/notebooks/analysis/nullpoint.ipynb

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update docs/notebooks/analysis/nullpoint.ipynb

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update docs/notebooks/analysis/nullpoint.ipynb

Co-authored-by: Nick Murphy <namurphy@cfa.harvard.edu>

* Update doc…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs PlasmaPy Docs at http://docs.plasmapy.org plasmapy.particles Related to the plasmapy.particles subpackage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants