Skip to content

Commit b9d2198

Browse files
committed
Move compatibility logic into its own module.
1 parent 946c445 commit b9d2198

File tree

5 files changed

+17
-20
lines changed

5 files changed

+17
-20
lines changed

twine/__init__.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,10 @@
3131
__copyright__ = "Copyright 2019 Donald Stufft and individual contributors"
3232

3333
import email
34-
import sys
3534

36-
if sys.version_info >= (3, 10):
37-
import importlib.metadata as importlib_metadata
38-
else:
39-
import importlib_metadata
35+
from .compat.py39 import importlib
4036

41-
metadata = importlib_metadata.metadata("twine")
37+
metadata = importlib.metadata.metadata("twine")
4238

4339

4440
__title__ = metadata["name"]

twine/cli.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,15 @@
1616
import sys
1717
from typing import Any, List, Tuple
1818

19-
if sys.version_info >= (3, 10):
20-
import importlib.metadata as importlib_metadata
21-
else:
22-
import importlib_metadata
23-
2419
import rich
2520
import rich.highlighter
2621
import rich.logging
2722
import rich.theme
2823

2924
import twine
3025

26+
from .compat.py39 import importlib
27+
3128
args = argparse.Namespace()
3229

3330

@@ -84,7 +81,7 @@ def list_dependencies_and_versions() -> List[Tuple[str, str]]:
8481
]
8582
if sys.version_info < (3, 10):
8683
deps.append("importlib-metadata")
87-
return [(dep, importlib_metadata.version(dep)) for dep in deps]
84+
return [(dep, importlib.metadata.version(dep)) for dep in deps]
8885

8986

9087
def dep_versions() -> str:
@@ -94,7 +91,7 @@ def dep_versions() -> str:
9491

9592

9693
def dispatch(argv: List[str]) -> Any:
97-
registered_commands = importlib_metadata.entry_points(
94+
registered_commands = importlib.metadata.entry_points(
9895
group="twine.registered_commands"
9996
)
10097

twine/compat/__init__.py

Whitespace-only changes.

twine/compat/py39.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import sys
2+
3+
if sys.version_info >= (3, 10):
4+
import importlib.metadata
5+
else:
6+
7+
class importlib:
8+
import importlib_metadata as metadata # noqa: F401

twine/package.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,17 @@
1818
import os
1919
import re
2020
import subprocess
21-
import sys
2221
from typing import Any, Dict, List, NamedTuple, Optional, Sequence, Tuple, Union, cast
2322

24-
if sys.version_info >= (3, 10):
25-
import importlib.metadata as importlib_metadata
26-
else:
27-
import importlib_metadata
28-
2923
import pkginfo
3024
from rich import print
3125

3226
from twine import exceptions
3327
from twine import wheel
3428
from twine import wininst
3529

30+
from .compat.py39 import importlib
31+
3632
DIST_TYPES = {
3733
"bdist_wheel": wheel.Wheel,
3834
"bdist_wininst": wininst.WinInst,
@@ -131,7 +127,7 @@ def from_filename(cls, filename: str, comment: Optional[str]) -> "PackageFile":
131127

132128
py_version: Optional[str]
133129
if dtype == "bdist_egg":
134-
(dist,) = importlib_metadata.Distribution.discover(path=[filename])
130+
(dist,) = importlib.metadata.Distribution.discover(path=[filename])
135131
py_version = dist.metadata["Version"]
136132
elif dtype == "bdist_wheel":
137133
py_version = cast(wheel.Wheel, meta).py_version

0 commit comments

Comments
 (0)