From d53b24d5921d1a348a0a57256653f6ab0e91e87e Mon Sep 17 00:00:00 2001 From: YR Chen Date: Mon, 3 Mar 2025 12:06:06 +0800 Subject: [PATCH] Support `[tool.poetry]` being used with PEP-621 `[tool.poetry]` section can co-exist with a PEP-621 styled project metadata to provide extra information. In `_pin_dependency` missing `name` and `version` keys inside a `poetry_config` raises `KeyError`s which aren't caught and leads to a fatal error. --- poetry_monoranger_plugin/path_dep_pinner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/poetry_monoranger_plugin/path_dep_pinner.py b/poetry_monoranger_plugin/path_dep_pinner.py index 1c24b26..31950d0 100644 --- a/poetry_monoranger_plugin/path_dep_pinner.py +++ b/poetry_monoranger_plugin/path_dep_pinner.py @@ -132,7 +132,7 @@ def _pin_dependency(self, dependency: DirectoryDependency): try: name = cast(str, dep_pyproject.poetry_config["name"]) version = cast(str, dep_pyproject.poetry_config["version"]) - except PyProjectError: + except (PyProjectError, KeyError): # Fallback to the project section since Poetry V2 also supports PEP 621 pyproject.toml files name = cast(str, dep_pyproject.data["project"]["name"]) version = cast(str, dep_pyproject.data["project"]["version"])