"""
PlasmaPy is a community-developed and community-driven open source core
Python package for plasma physics.
"""

# Check that PlasmaPy is being imported from a recent enough version of
# Python so that otherwise an appropriate ImportError with a useful
# error message will be raised.  This check should be done before
# anything else to avoid error messages that obfuscate the source of the
# problem.  This file must be Python 2 compliant enough to avoid raising
# any SyntaxError exceptions, and thus cannot have f-strings.

import sys

if sys.version_info < (3, 6):
    raise ImportError(
        "PlasmaPy requires Python version 3.6 or higher, but is being "
        "called from Python version {}.".format(sys.version.split()[0]))

# Place all imports that require Python 3.6+ **after** the Python
# version check.

from . import import_helpers  # noqa

_minimum_versions = {
    'numpy': '1.13',
    'astropy': '2.0',
    'scipy': '0.19',
    'matplotlib': '2.0',
    'mpmath': '1.0',
    'lmfit': '0.9.7',
    'roman': '1.4',
    'colorama': '0.3.4',
    'cython': '0.26',
}

import_helpers._check_versions(_minimum_versions)

__name__ = "plasmapy"

__doc__ = ("A community-developed and community-driven open source core "
           "Python package for plasma physics.")

# The file version.py is created by installing PlasmaPy with setup.py
# using functionality from astropy_helpers.  If this has not been run,
# then we can set the default values to None.

try:
    from .version import version as __version__
    from .version import githash as _githash
except (ImportError, ModuleNotFoundError):
    __version__ = None
    _githash = None
else:
    del version

try:
    from . import atomic
    from . import classes
    from . import constants
    from . import diagnostics
    from . import mathematics
    from . import physics
    from . import utils
except ImportError:
    raise ImportError("Unable to load PlasmaPy subpackages.")

# Allow astropy.units to be imported from PlasmaPy. This is the
# only place in the code where units should not be abbreviated as u.

try:
    from astropy import units
except ImportError:
    raise ImportError("Unable to import astropy.units as a PlasmaPy submodule")

# Clean up the top-level namespace

del _minimum_versions, sys, import_helpers

@@ -857,16 +857,149 @@
 # noqa%0A%0A
+# TODO: Create _minimum_versions from requirements/requirements.txt%0A# All of this could be put into import_helpers._check_versions.%0A%0A
 _minimum
@@ -1184,18 +1184,16 @@
 a': '0.3
-.4
 ',%0A    '
@@ -1357,13 +1357,8 @@
 rce 
-core 
 %22%0A  
@@ -1367,16 +1367,21 @@
        %22
+core 
 Python p
@@ -1785,30 +1785,8 @@
 None
-%0Aelse:%0A    del version
 %0A%0Atr
@@ -2101,22 +2101,26 @@
 ted 
-from P
+as p
 lasma
-P
+p
 y.
+units.
  Thi
@@ -2131,15 +2131,15 @@
  the
-%0A#
  only
+%0A#
  pla
@@ -2232,16 +2232,37 @@
 rt units
+  # do not abbreviate
 %0Aexcept 

Update top-level __init__.py