diff --git a/changelog/871.bugfix.rst b/changelog/871.bugfix.rst new file mode 100644 index 00000000..0af5ea72 --- /dev/null +++ b/changelog/871.bugfix.rst @@ -0,0 +1 @@ +Remove Twine's dependencies from the ``User-Agent`` header when uploading. diff --git a/setup.cfg b/setup.cfg index 3073d0dc..30b18682 100644 --- a/setup.cfg +++ b/setup.cfg @@ -37,12 +37,12 @@ packages = python_requires = >=3.6 install_requires= pkginfo >= 1.8.1 - readme_renderer >= 21.0 + readme-renderer >= 21.0 requests >= 2.20 requests-toolbelt >= 0.8.0, != 0.9.0 urllib3 >= 1.26.0 tqdm >= 4.14 - importlib_metadata >= 3.6 + importlib-metadata >= 3.6 keyring >= 15.1 rfc3986 >= 1.4.0 rich diff --git a/tests/test_repository.py b/tests/test_repository.py index 11a8c4b3..68b688e9 100644 --- a/tests/test_repository.py +++ b/tests/test_repository.py @@ -85,18 +85,8 @@ def test_set_certificate_authority(default_repo): def test_make_user_agent_string(default_repo): - """Add twine and its dependencies to User-Agent session header.""" - assert "User-Agent" in default_repo.session.headers - - user_agent = default_repo.session.headers["User-Agent"] - packages = ( - "twine/", - "requests/", - "requests-toolbelt/", - "pkginfo/", - "importlib_metadata/", - ) - assert all(p in user_agent for p in packages) + """Add twine to User-Agent session header.""" + assert "twine/" in default_repo.session.headers["User-Agent"] def response_with(**kwattrs): diff --git a/twine/cli.py b/twine/cli.py index dfd4b26f..cfdcffc8 100644 --- a/twine/cli.py +++ b/twine/cli.py @@ -20,7 +20,6 @@ import rich.highlighter import rich.logging import rich.theme -from packaging import requirements import twine @@ -72,8 +71,14 @@ def configure_output() -> None: def list_dependencies_and_versions() -> List[Tuple[str, str]]: - requires = importlib_metadata.requires("twine") # type: ignore[no-untyped-call] # python/importlib_metadata#288 # noqa: E501 - deps = [requirements.Requirement(r).name for r in requires] + deps = ( + "importlib-metadata", + "keyring", + "pkginfo", + "requests", + "requests-toolbelt", + "urllib3", + ) return [(dep, importlib_metadata.version(dep)) for dep in deps] # type: ignore[no-untyped-call] # python/importlib_metadata#288 # noqa: E501 diff --git a/twine/repository.py b/twine/repository.py index ebc82bf1..bf1379b0 100644 --- a/twine/repository.py +++ b/twine/repository.py @@ -89,12 +89,8 @@ def _make_adapter_with_retries() -> adapters.HTTPAdapter: @staticmethod def _make_user_agent_string() -> str: - from twine import cli - - dependencies = cli.list_dependencies_and_versions() user_agent_string = ( user_agent.UserAgentBuilder("twine", twine.__version__) - .include_extras(dependencies) .include_implementation() .build() )