From ba6e1a5170e41cc76e14d9ab77bb16b0d8fe6cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Krassowski?= <5832902+krassowski@users.noreply.github.com> Date: Thu, 18 Apr 2024 18:21:26 +0100 Subject: [PATCH] Normalise package name before comparison (#568) * Normalise package name before comparison * Use `canonicalize_name` from `packaging` --- jupyter_releaser/lib.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/jupyter_releaser/lib.py b/jupyter_releaser/lib.py index 2c96c451..5aa0a630 100644 --- a/jupyter_releaser/lib.py +++ b/jupyter_releaser/lib.py @@ -16,6 +16,7 @@ from typing import Type, Union import mdformat +from packaging.utils import canonicalize_name from packaging.version import parse as parse_version from pkginfo import SDist, Wheel @@ -396,7 +397,7 @@ def publish_assets( res = python_package.split(":") python_package_path = res[0] - python_package_name = res[1].replace("-", "_") if len(res) == 2 else "" + python_package_name = canonicalize_name(res[1]) if len(res) == 2 else "" if release_url and len(glob(f"{dist_dir}/*.whl")): twine_token = python.get_pypi_token(release_url, python_package_path) @@ -427,7 +428,8 @@ def publish_assets( dist: Union[Type[SDist], Type[Wheel]] dist = SDist if suffix == ".gz" else Wheel pkg = dist(path) - if not python_package_name or python_package_name == pkg.name: + pkg_name = canonicalize_name(pkg.name) + if not python_package_name or python_package_name == pkg_name: env = os.environ.copy() env["TWINE_PASSWORD"] = twine_token # NOTE: Do not print the env since a twine token extracted from @@ -436,7 +438,7 @@ def publish_assets( found = True else: warnings.warn( - f"Python package name {pkg.name} does not match with name in " + f"Python package name {pkg_name} does not match with name in " f"jupyter releaser config: {python_package_name}. Skipping uploading dist file {path}", stacklevel=2, )