Skip to content

Commit 5e8feec

Browse files
Add project_version property to PyProjectData to enhance readability
1 parent 637dd75 commit 5e8feec

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/setuptools_scm/_integration/pyproject_reading.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,15 @@ def empty(
8181
def project_name(self) -> str | None:
8282
return self.project.get("name")
8383

84+
@property
85+
def project_version(self) -> str | None:
86+
"""Return the static version from [project] if present.
87+
88+
When the project declares dynamic = ["version"], the version
89+
is intentionally omitted from [project] and this returns None.
90+
"""
91+
return self.project.get("version")
92+
8493
def should_infer(self) -> bool:
8594
"""
8695
Determine if setuptools_scm should infer version based on configuration.

src/setuptools_scm/_integration/setuptools.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import logging
44
import warnings
55

6-
from pathlib import Path
76
from typing import Any
87
from typing import Callable
98

@@ -95,14 +94,14 @@ def version_keyword(
9594
pyproject_data = read_pyproject(_given_result=_given_pyproject_data)
9695
except FileNotFoundError:
9796
log.debug("pyproject.toml not found, proceeding with empty configuration")
98-
pyproject_data = PyProjectData.empty(Path("pyproject.toml"), "setuptools_scm")
97+
pyproject_data = PyProjectData.empty()
9998
except InvalidTomlError as e:
10099
log.debug("Configuration issue in pyproject.toml: %s", e)
101100
return
102101

103102
result = _get_version_inference_config(
104103
dist_name=dist_name,
105-
current_version=legacy_data.version or pyproject_data.project.get("version"),
104+
current_version=legacy_data.version or pyproject_data.project_version,
106105
pyproject_data=pyproject_data,
107106
overrides=overrides,
108107
was_set_by_infer=was_set_by_infer,
@@ -141,7 +140,7 @@ def infer_version(
141140
# Only infer when tool section present per get_version_inference_config
142141
result = _get_version_inference_config(
143142
dist_name=dist_name,
144-
current_version=legacy_data.version or pyproject_data.project.get("version"),
143+
current_version=legacy_data.version or pyproject_data.project_version,
145144
pyproject_data=pyproject_data,
146145
)
147146
result.apply(dist)

0 commit comments

Comments
 (0)