Skip to content

Commit 2ef9db5

Browse files
stefanorbhrutledge
andcommitted
Filter unnecessary deps from User-Agent string (#871)
* Canonicalize dependencies Closes: #870 * Explicitly select packages for User-Agent inclusion Revert back to a manual list of packages reported in the User-Agent string and --version. Reverting the part of #858 that switched to parsing twine's requires. See: #870 * Update package list * Remove dependencies from User-Agent * Add changelog entry Co-authored-by: Brian Rutledge <[email protected]>
1 parent dbb040a commit 2ef9db5

File tree

5 files changed

+13
-21
lines changed

5 files changed

+13
-21
lines changed

changelog/871.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Remove Twine's dependencies from the ``User-Agent`` header when uploading.

setup.cfg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ packages =
3737
python_requires = >=3.6
3838
install_requires=
3939
pkginfo >= 1.8.1
40-
readme_renderer >= 21.0
40+
readme-renderer >= 21.0
4141
requests >= 2.20
4242
requests-toolbelt >= 0.8.0, != 0.9.0
4343
urllib3 >= 1.26.0
4444
tqdm >= 4.14
45-
importlib_metadata >= 3.6
45+
importlib-metadata >= 3.6
4646
keyring >= 15.1
4747
rfc3986 >= 1.4.0
4848
colorama >= 0.4.3

tests/test_repository.py

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -85,18 +85,8 @@ def test_set_certificate_authority(default_repo):
8585

8686

8787
def test_make_user_agent_string(default_repo):
88-
"""Add twine and its dependencies to User-Agent session header."""
89-
assert "User-Agent" in default_repo.session.headers
90-
91-
user_agent = default_repo.session.headers["User-Agent"]
92-
packages = (
93-
"twine/",
94-
"requests/",
95-
"requests-toolbelt/",
96-
"pkginfo/",
97-
"importlib_metadata/",
98-
)
99-
assert all(p in user_agent for p in packages)
88+
"""Add twine to User-Agent session header."""
89+
assert "twine/" in default_repo.session.headers["User-Agent"]
10090

10191

10292
def response_with(**kwattrs):

twine/cli.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,21 @@
1515
from typing import Any, List, Tuple
1616

1717
import importlib_metadata
18-
from packaging import requirements
1918

2019
import twine
2120

2221
args = argparse.Namespace()
2322

2423

2524
def list_dependencies_and_versions() -> List[Tuple[str, str]]:
26-
requires = importlib_metadata.requires("twine") # type: ignore[no-untyped-call] # python/importlib_metadata#288 # noqa: E501
27-
deps = [requirements.Requirement(r).name for r in requires]
25+
deps = (
26+
"importlib-metadata",
27+
"keyring",
28+
"pkginfo",
29+
"requests",
30+
"requests-toolbelt",
31+
"urllib3",
32+
)
2833
return [(dep, importlib_metadata.version(dep)) for dep in deps] # type: ignore[no-untyped-call] # python/importlib_metadata#288 # noqa: E501
2934

3035

twine/repository.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,8 @@ def _make_adapter_with_retries() -> adapters.HTTPAdapter:
8888

8989
@staticmethod
9090
def _make_user_agent_string() -> str:
91-
from twine import cli
92-
93-
dependencies = cli.list_dependencies_and_versions()
9491
user_agent_string = (
9592
user_agent.UserAgentBuilder("twine", twine.__version__)
96-
.include_extras(dependencies)
9793
.include_implementation()
9894
.build()
9995
)

0 commit comments

Comments
 (0)