Skip to content

Commit

Permalink
Move compatibility logic into its own module.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaraco committed Jun 26, 2024
1 parent 946c445 commit 8c992b7
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 44 deletions.
8 changes: 2 additions & 6 deletions twine/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,10 @@
__copyright__ = "Copyright 2019 Donald Stufft and individual contributors"

import email
import sys

if sys.version_info >= (3, 10):
import importlib.metadata as importlib_metadata
else:
import importlib_metadata
from .compat.py39 import importlib

metadata = importlib_metadata.metadata("twine")
metadata = importlib.metadata.metadata("twine")


__title__ = metadata["name"]
Expand Down
57 changes: 25 additions & 32 deletions twine/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@
import sys
from typing import Any, List, Tuple

if sys.version_info >= (3, 10):
import importlib.metadata as importlib_metadata
else:
import importlib_metadata
from .compat.py39 import importlib

import rich
import rich.highlighter
Expand All @@ -42,36 +39,32 @@ def configure_output() -> None:
force_terminal=True,
no_color=getattr(args, "no_color", False),
highlight=False,
theme=rich.theme.Theme(
{
"logging.level.debug": "green",
"logging.level.info": "blue",
"logging.level.warning": "yellow",
"logging.level.error": "red",
"logging.level.critical": "reverse red",
}
),
theme=rich.theme.Theme({
"logging.level.debug": "green",
"logging.level.info": "blue",
"logging.level.warning": "yellow",
"logging.level.error": "red",
"logging.level.critical": "reverse red",
}),
)

# Using dictConfig to override existing loggers, which prevents failures in
# test_main.py due to capsys not being cleared.
logging.config.dictConfig(
{
"disable_existing_loggers": False,
"version": 1,
"handlers": {
"console": {
"class": "rich.logging.RichHandler",
"show_time": False,
"show_path": False,
"highlighter": rich.highlighter.NullHighlighter(),
}
},
"root": {
"handlers": ["console"],
},
}
)
logging.config.dictConfig({
"disable_existing_loggers": False,
"version": 1,
"handlers": {
"console": {
"class": "rich.logging.RichHandler",
"show_time": False,
"show_path": False,
"highlighter": rich.highlighter.NullHighlighter(),
}
},
"root": {
"handlers": ["console"],
},
})


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


def dep_versions() -> str:
Expand All @@ -94,7 +87,7 @@ def dep_versions() -> str:


def dispatch(argv: List[str]) -> Any:
registered_commands = importlib_metadata.entry_points(
registered_commands = importlib.metadata.entry_points(
group="twine.registered_commands"
)

Expand Down
Empty file added twine/compat/__init__.py
Empty file.
9 changes: 9 additions & 0 deletions twine/compat/py39.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import sys


if sys.version_info >= (3, 10):
import importlib.metadata
else:

class importlib:
import importlib_metadata as metadata # noqa: F401
8 changes: 2 additions & 6 deletions twine/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,9 @@
import os
import re
import subprocess
import sys
from typing import Any, Dict, List, NamedTuple, Optional, Sequence, Tuple, Union, cast

if sys.version_info >= (3, 10):
import importlib.metadata as importlib_metadata
else:
import importlib_metadata
from .compat.py39 import importlib

import pkginfo
from rich import print
Expand Down Expand Up @@ -131,7 +127,7 @@ def from_filename(cls, filename: str, comment: Optional[str]) -> "PackageFile":

py_version: Optional[str]
if dtype == "bdist_egg":
(dist,) = importlib_metadata.Distribution.discover(path=[filename])
(dist,) = importlib.metadata.Distribution.discover(path=[filename])
py_version = dist.metadata["Version"]
elif dtype == "bdist_wheel":
py_version = cast(wheel.Wheel, meta).py_version
Expand Down

0 comments on commit 8c992b7

Please sign in to comment.