diff --git a/changelog/772.mics.rst b/changelog/772.mics.rst new file mode 100644 index 00000000..07f37afd --- /dev/null +++ b/changelog/772.mics.rst @@ -0,0 +1 @@ +Remove dependency on external importlib_metadata on Python 3.10. diff --git a/setup.cfg b/setup.cfg index dc949f20..fb2b9a27 100644 --- a/setup.cfg +++ b/setup.cfg @@ -40,7 +40,7 @@ install_requires= requests >= 2.20 requests-toolbelt >= 0.8.0, != 0.9.0 tqdm >= 4.14 - importlib_metadata >= 3.6 + importlib_metadata >= 3.6; python_version<"3.10" keyring >= 15.1 rfc3986 >= 1.4.0 colorama >= 0.4.3 diff --git a/twine/__init__.py b/twine/__init__.py index d1b590b3..52d802cd 100644 --- a/twine/__init__.py +++ b/twine/__init__.py @@ -24,9 +24,14 @@ __copyright__ = "Copyright 2019 Donald Stufft and individual contributors" -import importlib_metadata +import sys -metadata = importlib_metadata.metadata("twine") +if sys.version_info[:2] >= (3, 10): + from importlib.metadata import metadata as _metadata +else: + from importlib_metadata import metadata as _metadata + +metadata = _metadata("twine") __title__ = metadata["name"] diff --git a/twine/cli.py b/twine/cli.py index 5f7162db..582226c8 100644 --- a/twine/cli.py +++ b/twine/cli.py @@ -12,10 +12,15 @@ # See the License for the specific language governing permissions and # limitations under the License. import argparse +import sys from typing import Any, List, Tuple -from importlib_metadata import entry_points -from importlib_metadata import version +if sys.version_info[:2] >= (3, 10): + from importlib.metadata import entry_points + from importlib.metadata import version +else: + from importlib_metadata import entry_points + from importlib_metadata import version import twine diff --git a/twine/package.py b/twine/package.py index a2da7612..3d4faf45 100644 --- a/twine/package.py +++ b/twine/package.py @@ -16,9 +16,14 @@ import os import re import subprocess +import sys from typing import Dict, NamedTuple, Optional, Sequence, Tuple, Union -import importlib_metadata +if sys.version_info[:2] >= (3, 10): + import importlib.metadata as importlib_metadata +else: + import importlib_metadata + import pkginfo from twine import exceptions