Skip to content

Commit 8c992b7

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

File tree

5 files changed

+38
-44
lines changed

5 files changed

+38
-44
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: 25 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
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
19+
from .compat.py39 import importlib
2320

2421
import rich
2522
import rich.highlighter
@@ -42,36 +39,32 @@ def configure_output() -> None:
4239
force_terminal=True,
4340
no_color=getattr(args, "no_color", False),
4441
highlight=False,
45-
theme=rich.theme.Theme(
46-
{
47-
"logging.level.debug": "green",
48-
"logging.level.info": "blue",
49-
"logging.level.warning": "yellow",
50-
"logging.level.error": "red",
51-
"logging.level.critical": "reverse red",
52-
}
53-
),
42+
theme=rich.theme.Theme({
43+
"logging.level.debug": "green",
44+
"logging.level.info": "blue",
45+
"logging.level.warning": "yellow",
46+
"logging.level.error": "red",
47+
"logging.level.critical": "reverse red",
48+
}),
5449
)
5550

5651
# Using dictConfig to override existing loggers, which prevents failures in
5752
# test_main.py due to capsys not being cleared.
58-
logging.config.dictConfig(
59-
{
60-
"disable_existing_loggers": False,
61-
"version": 1,
62-
"handlers": {
63-
"console": {
64-
"class": "rich.logging.RichHandler",
65-
"show_time": False,
66-
"show_path": False,
67-
"highlighter": rich.highlighter.NullHighlighter(),
68-
}
69-
},
70-
"root": {
71-
"handlers": ["console"],
72-
},
73-
}
74-
)
53+
logging.config.dictConfig({
54+
"disable_existing_loggers": False,
55+
"version": 1,
56+
"handlers": {
57+
"console": {
58+
"class": "rich.logging.RichHandler",
59+
"show_time": False,
60+
"show_path": False,
61+
"highlighter": rich.highlighter.NullHighlighter(),
62+
}
63+
},
64+
"root": {
65+
"handlers": ["console"],
66+
},
67+
})
7568

7669

7770
def list_dependencies_and_versions() -> List[Tuple[str, str]]:
@@ -84,7 +77,7 @@ def list_dependencies_and_versions() -> List[Tuple[str, str]]:
8477
]
8578
if sys.version_info < (3, 10):
8679
deps.append("importlib-metadata")
87-
return [(dep, importlib_metadata.version(dep)) for dep in deps]
80+
return [(dep, importlib.metadata.version(dep)) for dep in deps]
8881

8982

9083
def dep_versions() -> str:
@@ -94,7 +87,7 @@ def dep_versions() -> str:
9487

9588

9689
def dispatch(argv: List[str]) -> Any:
97-
registered_commands = importlib_metadata.entry_points(
90+
registered_commands = importlib.metadata.entry_points(
9891
group="twine.registered_commands"
9992
)
10093

twine/compat/__init__.py

Whitespace-only changes.

twine/compat/py39.py

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

twine/package.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,9 @@
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
23+
from .compat.py39 import importlib
2824

2925
import pkginfo
3026
from rich import print
@@ -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)