Skip to content

Commit 626423a

Browse files
authored
Merge pull request #1193 from stefanor/keyring-optional-cli
Handle missing optional dependencies in dep_versions()
2 parents 55854b7 + d96eb5d commit 626423a

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

twine/cli.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,24 @@ def configure_output() -> None:
7676

7777
def list_dependencies_and_versions() -> List[Tuple[str, str]]:
7878
deps = [
79-
"keyring",
79+
"keyring", # optional for non-desktop use
8080
"pkginfo",
8181
"requests",
8282
"requests-toolbelt",
8383
"urllib3",
8484
]
8585
if sys.version_info < (3, 10):
8686
deps.append("importlib-metadata")
87-
return [(dep, importlib_metadata.version(dep)) for dep in deps]
87+
88+
result: List[Tuple[str, str]] = []
89+
for dep in deps:
90+
try:
91+
version = importlib_metadata.version(dep)
92+
except importlib_metadata.PackageNotFoundError:
93+
version = "NOT INSTALLED"
94+
result.append((dep, version))
95+
96+
return result
8897

8998

9099
def dep_versions() -> str:

0 commit comments

Comments
 (0)