File tree Expand file tree Collapse file tree 2 files changed +20
-2
lines changed Expand file tree Collapse file tree 2 files changed +20
-2
lines changed Original file line number Diff line number Diff line change @@ -148,3 +148,21 @@ def safer_best_effort_version(value: str) -> str:
148
148
# See bdist_wheel.safer_verion
149
149
# TODO: Replace with only safe_version in the future (no need for best effort)
150
150
return filename_component (best_effort_version (value ))
151
+
152
+
153
+ try :
154
+ from packaging .licenses import (
155
+ canonicalize_license_expression as _canonicalize_license_expression ,
156
+ )
157
+ except ImportError :
158
+
159
+ def _canonicalize_license_expression (expression : str ) -> str :
160
+ # Defer import error to affect only users that actually use it
161
+ # https://github.com/pypa/setuptools/issues/4894
162
+ raise ImportError (
163
+ "Cannot import `packaging.licenses`."
164
+ """
165
+ Setuptools>=77.0.0 requires "packaging>=24.2" to work properly.
166
+ Please make sure you have a suitable version installed.
167
+ """
168
+ )
Original file line number Diff line number Diff line change 12
12
from typing import TYPE_CHECKING , Any , Union
13
13
14
14
from more_itertools import partition , unique_everseen
15
- from packaging .licenses import canonicalize_license_expression
16
15
from packaging .markers import InvalidMarker , Marker
17
16
from packaging .specifiers import InvalidSpecifier , SpecifierSet
18
17
from packaging .version import Version
24
23
command as _ , # noqa: F401 # imported for side-effects
25
24
)
26
25
from ._importlib import metadata
26
+ from ._normalization import _canonicalize_license_expression
27
27
from ._path import StrPath
28
28
from ._reqs import _StrOrIter
29
29
from .config import pyprojecttoml , setupcfg
@@ -423,7 +423,7 @@ def _finalize_license_expression(self) -> None:
423
423
license_expr = self .metadata .license_expression
424
424
if license_expr :
425
425
str_ = _static .Str if _static .is_static (license_expr ) else str
426
- normalized = str_ (canonicalize_license_expression (license_expr ))
426
+ normalized = str_ (_canonicalize_license_expression (license_expr ))
427
427
if license_expr != normalized :
428
428
InformationOnly .emit (f"Normalizing '{ license_expr } ' to '{ normalized } '" )
429
429
self .metadata .license_expression = normalized
You can’t perform that action at this time.
0 commit comments