@@ -234,18 +234,12 @@ class MesonBuilderError(Error):
234234
235235class Metadata (pyproject_metadata .StandardMetadata ):
236236 def __init__ (self , name : str , * args : Any , ** kwargs : Any ):
237- super ().__init__ (name , * args , ** kwargs )
238- # Local fix for https://github.com/FFY00/python-pyproject-metadata/issues/60
239- self .name = self ._validate_name (name )
240-
241- @staticmethod
242- def _validate_name (name : str ) -> str :
243237 # See https://packaging.python.org/en/latest/specifications/core-metadata/#name
244238 if not re .match (r'^([A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9])$' , name , re .IGNORECASE ):
245239 raise pyproject_metadata .ConfigurationError (
246240 f'Invalid project name "{ name } ". A valid name consists only of ASCII letters and '
247241 f'numbers, period, underscore and hyphen. It must start and end with a letter or number' )
248- return name
242+ super (). __init__ ( name , * args , ** kwargs )
249243
250244 @classmethod
251245 def from_pyproject (
@@ -254,12 +248,7 @@ def from_pyproject(
254248 project_dir : Path = os .path .curdir ,
255249 metadata_version : Optional [str ] = None
256250 ) -> Self :
257- metadata = super ().from_pyproject (data , project_dir )
258-
259- # Check for missing version field.
260- if not metadata .version and 'version' not in metadata .dynamic :
261- raise pyproject_metadata .ConfigurationError (
262- 'Required "project.version" field is missing and not declared as dynamic' )
251+ metadata = super ().from_pyproject (data , project_dir , metadata_version )
263252
264253 # Check for unsupported dynamic fields.
265254 unsupported_dynamic = set (metadata .dynamic ) - {'version' , }
@@ -269,17 +258,6 @@ def from_pyproject(
269258
270259 return metadata
271260
272- # Local fix for a bug in pyproject-metadata. See
273- # https://github.com/mesonbuild/meson-python/issues/454
274- def _update_dynamic (self , value : Any ) -> None :
275- if value and 'version' in self .dynamic :
276- self .dynamic .remove ('version' )
277-
278- @property
279- def canonical_name (self ) -> str :
280- # See https://packaging.python.org/en/latest/specifications/name-normalization/#normalization
281- return packaging .utils .canonicalize_name (self .name )
282-
283261 @property
284262 def distribution_name (self ) -> str :
285263 """Name to be used in wheel and sdist file names."""
0 commit comments