Skip to content

Commit 67fb709

Browse files
authored
fix: update to pyproject_metadata 0.9.0b5 (#263)
* fix: update to pyproject_metadata 0.9.0b5 Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * chore: bump to 0.9.0b7 Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> --------- Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
1 parent 1656230 commit 67fb709

File tree

8 files changed

+1266
-722
lines changed

8 files changed

+1266
-722
lines changed

pyproject.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ patches-dir = "scripts/patches"
6666
protected-files = ["__init__.py", "README.md", "vendor.txt"]
6767

6868
[tool.vendoring.transformations]
69-
substitute = []
69+
substitute = [
70+
{match = "import packaging", replace = "import pdm.backend._vendor.packaging"},
71+
]
7072
drop = [
7173
"bin/",
7274
"*.so",
Lines changed: 21 additions & 110 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,24 @@
11
diff --git a/src/pdm/backend/_vendor/pyproject_metadata/__init__.py b/src/pdm/backend/_vendor/pyproject_metadata/__init__.py
2-
index 70c452b..6a3af49 100644
2+
index 39ae6e4..283264b 100644
33
--- a/src/pdm/backend/_vendor/pyproject_metadata/__init__.py
44
+++ b/src/pdm/backend/_vendor/pyproject_metadata/__init__.py
5-
@@ -20,18 +20,18 @@ if typing.TYPE_CHECKING:
6-
from collections.abc import Generator, Iterable, Mapping
7-
from typing import Any
8-
9-
- from packaging.requirements import Requirement
10-
+ from pdm.backend._vendor.packaging.requirements import Requirement
11-
12-
if sys.version_info < (3, 11):
13-
from typing_extensions import Self
14-
else:
15-
from typing import Self
16-
17-
-import packaging.markers
18-
-import packaging.requirements
19-
-import packaging.specifiers
20-
-import packaging.utils
21-
-import packaging.version
22-
+import pdm.backend._vendor.packaging.markers as pkg_markers
23-
+import pdm.backend._vendor.packaging.requirements as pkg_requirements
24-
+import pdm.backend._vendor.packaging.specifiers as pkg_specifiers
25-
+import pdm.backend._vendor.packaging.utils as pkg_utils
26-
+import pdm.backend._vendor.packaging.version as pkg_version
27-
28-
29-
__version__ = '0.9.0b4'
30-
@@ -397,8 +397,8 @@ class ProjectFetcher(DataFetcher):
31-
requirements: list[Requirement] = []
32-
for req in requirement_strings:
33-
try:
34-
- requirements.append(packaging.requirements.Requirement(req))
35-
- except packaging.requirements.InvalidRequirement as e:
36-
+ requirements.append(pkg_requirements.Requirement(req))
37-
+ except pkg_requirements.InvalidRequirement as e:
38-
msg = (
39-
'Field "project.dependencies" contains an invalid PEP 508 '
40-
f'requirement string "{req}" ("{e}")'
41-
@@ -439,9 +439,9 @@ class ProjectFetcher(DataFetcher):
42-
raise ConfigurationError(msg)
43-
try:
44-
requirements_dict[extra].append(
45-
- packaging.requirements.Requirement(req)
46-
+ pkg_requirements.Requirement(req)
47-
)
48-
- except packaging.requirements.InvalidRequirement as e:
49-
+ except pkg_requirements.InvalidRequirement as e:
50-
msg = (
51-
f'Field "project.optional-dependencies.{extra}" contains '
52-
f'an invalid PEP 508 requirement string "{req}" ("{e}")'
53-
@@ -501,12 +501,12 @@ class Readme:
54-
@dataclasses.dataclass
55-
class StandardMetadata:
56-
name: str
57-
- version: packaging.version.Version | None = None
58-
+ version: pkg_version.Version | None = None
59-
description: str | None = None
60-
license: License | str | None = None
61-
license_files: list[pathlib.Path] | None = None
62-
readme: Readme | None = None
63-
- requires_python: packaging.specifiers.SpecifierSet | None = None
64-
+ requires_python: pkg_specifiers.SpecifierSet | None = None
65-
dependencies: list[Requirement] = dataclasses.field(default_factory=list)
66-
optional_dependencies: dict[str, list[Requirement]] = dataclasses.field(
67-
default_factory=dict
68-
@@ -617,7 +617,7 @@ class StandardMetadata:
69-
70-
@property
71-
def canonical_name(self) -> str:
72-
- return packaging.utils.canonicalize_name(self.name)
73-
+ return pkg_utils.canonicalize_name(self.name)
74-
75-
@classmethod
76-
def from_pyproject(
77-
@@ -661,7 +661,7 @@ class StandardMetadata:
78-
79-
version_string = fetcher.get_str('project.version')
80-
requires_python_string = fetcher.get_str('project.requires-python')
81-
- version = packaging.version.Version(version_string) if version_string else None
82-
+ version = pkg_version.Version(version_string) if version_string else None
83-
84-
if version is None and 'version' not in dynamic:
85-
msg = 'Field "project.version" missing and "version" not specified in "project.dynamic"'
86-
@@ -673,7 +673,7 @@ class StandardMetadata:
87-
description = fetcher.get_str('project.description')
88-
89-
requires_python = (
90-
- packaging.specifiers.SpecifierSet(requires_python_string)
91-
+ pkg_specifiers.SpecifierSet(requires_python_string)
92-
if requires_python_string
93-
else None
94-
)
95-
@@ -791,15 +791,15 @@ class StandardMetadata:
96-
requirement = copy.copy(requirement)
97-
if requirement.marker:
98-
if 'or' in requirement.marker._markers:
99-
- requirement.marker = packaging.markers.Marker(
100-
+ requirement.marker = pkg_markers.Marker(
101-
f'({requirement.marker}) and extra == "{extra}"'
102-
)
103-
else:
104-
- requirement.marker = packaging.markers.Marker(
105-
+ requirement.marker = pkg_markers.Marker(
106-
f'{requirement.marker} and extra == "{extra}"'
107-
)
108-
else:
109-
- requirement.marker = packaging.markers.Marker(f'extra == "{extra}"')
110-
+ requirement.marker = pkg_markers.Marker(f'extra == "{extra}"')
111-
return requirement
112-
113-
5+
@@ -63,6 +63,7 @@ if typing.TYPE_CHECKING:
6+
7+
from .project_table import Dynamic, PyProjectTable
8+
9+
+import pdm.backend._vendor.packaging as packaging
10+
import packaging.markers
11+
import packaging.specifiers
12+
import packaging.utils
13+
diff --git a/src/pdm/backend/_vendor/pyproject_metadata/pyproject.py b/src/pdm/backend/_vendor/pyproject_metadata/pyproject.py
14+
index d1822e1..a85f9a1 100644
15+
--- a/src/pdm/backend/_vendor/pyproject_metadata/pyproject.py
16+
+++ b/src/pdm/backend/_vendor/pyproject_metadata/pyproject.py
17+
@@ -13,6 +13,7 @@ import pathlib
18+
import re
19+
import typing
20+
21+
+import pdm.backend._vendor.packaging as packaging
22+
import packaging.requirements
23+
24+
from .errors import ErrorCollector

0 commit comments

Comments
 (0)