scripts/pythondistdeps: Fix for Python 3.10

self.name in PathDistribution is a property in Python 3.10+ and thus we
can't redefine it as an instance variable. Instead we explicitly define
it as a property, which works on all supported Python versions.
This commit is contained in:
Tomas Orsava 2021-02-22 13:16:24 +01:00
parent 438d8d3b70
commit 38df2def85
1 changed files with 5 additions and 1 deletions

View File

@ -53,7 +53,6 @@ class Requirement(Requirement_):
class Distribution(PathDistribution):
def __init__(self, path):
super(Distribution, self).__init__(Path(path))
self.name = self.metadata['Name']
self.normalized_name = normalize_name(self.name)
self.legacy_normalized_name = legacy_normalize_name(self.name)
self.requirements = [Requirement(r) for r in self.requires or []]
@ -61,6 +60,11 @@ class Distribution(PathDistribution):
v for k, v in self.metadata.items() if k == 'Provides-Extra']
self.py_version = self._parse_py_version(path)
@property
def name(self):
"""Return the 'Name' metadata for the distribution package."""
return self.metadata['Name']
def _parse_py_version(self, path):
# Try to parse the Python version from the path the metadata
# resides at (e.g. /usr/lib/pythonX.Y/site-packages/...)