From 1404d3b5f8a94f5b708e3b3d8a8a53065816b69a Mon Sep 17 00:00:00 2001 From: David Hotham Date: Sat, 17 Sep 2022 16:40:44 +0100 Subject: [PATCH] refactor(uploader): don't use normalize_version() or escape_version() (#6476) When you already have a `Version` in hand, `normalize_version(version.text)` is a very roundabout way of calling `version.to_string()`: it re-parses the version text to give you the same `Version` you already had and then calls `to_string()` on that. https://github.com/python-poetry/poetry-core/blob/37cee90a5dd4c7ee2c5ee836216ba813242b3ade/src/poetry/core/utils/helpers.py#L27-L28 Then calling `escape_version()` on such a version is actually counter-productive, per #6466. Similar changes can and should be made over in poetry-core, but it should be safe to merge this before that is done. (cherry picked from commit a14a93d9692f439b1da1d7c0104d4a162778d54a) --- src/poetry/publishing/uploader.py | 14 +++----------- tests/helpers.py | 3 +-- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/poetry/publishing/uploader.py b/src/poetry/publishing/uploader.py index 566f50eec5e..60eee2deae4 100644 --- a/src/poetry/publishing/uploader.py +++ b/src/poetry/publishing/uploader.py @@ -11,8 +11,6 @@ from poetry.core.masonry.metadata import Metadata from poetry.core.masonry.utils.helpers import escape_name -from poetry.core.masonry.utils.helpers import escape_version -from poetry.core.utils.helpers import normalize_version from requests import adapters from requests.exceptions import ConnectionError from requests.exceptions import HTTPError @@ -78,13 +76,10 @@ def adapter(self) -> adapters.HTTPAdapter: @property def files(self) -> list[Path]: dist = self._poetry.file.parent / "dist" - version = normalize_version(self._package.version.text) + version = self._package.version.to_string() wheels = list( - dist.glob( - f"{escape_name(self._package.pretty_name)}-{escape_version(version)}" - "-*.whl" - ) + dist.glob(f"{escape_name(self._package.pretty_name)}-{version}-*.whl") ) tars = list(dist.glob(f"{self._package.pretty_name}-{version}.tar.gz")) @@ -305,10 +300,7 @@ def _register(self, session: requests.Session, url: str) -> requests.Response: Register a package to a repository. """ dist = self._poetry.file.parent / "dist" - file = ( - dist - / f"{self._package.name}-{normalize_version(self._package.version.text)}.tar.gz" # noqa: E501 - ) + file = dist / f"{self._package.name}-{self._package.version.to_string()}.tar.gz" if not file.exists(): raise RuntimeError(f'"{file.name}" does not exist.') diff --git a/tests/helpers.py b/tests/helpers.py index 05c0ea7bdd9..198fa1bc20a 100644 --- a/tests/helpers.py +++ b/tests/helpers.py @@ -12,7 +12,6 @@ from typing import Any from poetry.core.masonry.utils.helpers import escape_name -from poetry.core.masonry.utils.helpers import escape_version from poetry.core.packages.package import Package from poetry.core.packages.utils.link import Link from poetry.core.toml.file import TOMLFile @@ -237,7 +236,7 @@ def find_links_for_package(self, package: Package) -> list[Link]: return [ Link( f"https://foo.bar/files/{escape_name(package.name)}" - f"-{escape_version(package.version.text)}-py2.py3-none-any.whl" + f"-{package.version.to_string()}-py2.py3-none-any.whl" ) ]