From eaaa9fa153701e2d57251973972b729058afc802 Mon Sep 17 00:00:00 2001 From: Remco de Boer <29308176+redeboer@users.noreply.github.com> Date: Fri, 22 Sep 2023 16:37:20 +0200 Subject: [PATCH] FIX: list package `name` from metadata (#10) --- src/update_pip_constraints/__init__.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/update_pip_constraints/__init__.py b/src/update_pip_constraints/__init__.py index 3d35018..5b0aef5 100644 --- a/src/update_pip_constraints/__init__.py +++ b/src/update_pip_constraints/__init__.py @@ -48,8 +48,25 @@ def _get_python_version() -> str: def _get_main_packages() -> List[str]: where = __get_package_directory() packages = find_packages(where) + package_name = __get_package_name() + if package_name is not None: + packages.insert(0, package_name) packages = [p.replace("_", "-") for p in packages] - return [p for p in packages if "." not in p] + packages = [p for p in packages if "." not in p] + return sorted(set(packages)) + + +def __get_package_name() -> Optional[str]: + if os.path.exists("setup.cfg"): + cfg = ConfigParser() + cfg.read("setup.cfg") + if cfg.has_option("metadata", "name"): + return cfg.get("metadata", "name").strip().strip("=") + if os.path.exists("pyproject.toml"): + with open("pyproject.toml") as f: + pyproject = toml.load(f) # type: ignore[arg-type] + return pyproject.get("project", {}).get("name", None) + return None def __get_package_directory() -> str: