summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Merickel <michael@merickel.org>2024-02-04 23:27:47 -0700
committerMichael Merickel <michael@merickel.org>2024-02-04 23:27:47 -0700
commit510dd7a484e6bcc924b801868dbc275a6f6b9ba1 (patch)
tree94daa8bf07c7992027b5ab949bb24768a2e5e181
parenta6fe1a1e38d6a3fb955fa950b671fc736ac9f4d0 (diff)
downloadpyramid-510dd7a484e6bcc924b801868dbc275a6f6b9ba1.tar.gz
pyramid-510dd7a484e6bcc924b801868dbc275a6f6b9ba1.tar.bz2
pyramid-510dd7a484e6bcc924b801868dbc275a6f6b9ba1.zip
replace pkg_resources with importlib.metadata in pdistreport script
-rw-r--r--src/pyramid/scripts/pdistreport.py14
-rw-r--r--tests/test_scripts/test_pdistreport.py34
2 files changed, 24 insertions, 24 deletions
diff --git a/src/pyramid/scripts/pdistreport.py b/src/pyramid/scripts/pdistreport.py
index 99615c1d5..eb41c17e7 100644
--- a/src/pyramid/scripts/pdistreport.py
+++ b/src/pyramid/scripts/pdistreport.py
@@ -1,6 +1,6 @@
import argparse
+import importlib.metadata
from operator import itemgetter
-import pkg_resources
import platform
import sys
@@ -21,7 +21,7 @@ def get_parser():
def main(
argv=sys.argv,
- pkg_resources=pkg_resources,
+ importlib_metadata=importlib.metadata,
platform=platform.platform,
out=out,
):
@@ -29,25 +29,25 @@ def main(
parser = get_parser()
parser.parse_args(argv[1:])
packages = []
- for distribution in pkg_resources.working_set:
- name = distribution.project_name
+ for distribution in importlib_metadata.distributions():
+ name = distribution.metadata['Name']
packages.append(
{
'version': distribution.version,
'lowername': name.lower(),
'name': name,
- 'location': distribution.location,
+ 'summary': distribution.metadata.get('Summary'),
}
)
packages = sorted(packages, key=itemgetter('lowername'))
- pyramid_version = pkg_resources.get_distribution('pyramid').version
+ pyramid_version = importlib_metadata.distribution('pyramid').version
plat = platform()
out('Pyramid version:', pyramid_version)
out('Platform:', plat)
out('Packages:')
for package in packages:
out(' ', package['name'], package['version'])
- out(' ', package['location'])
+ out(' ', package['summary'])
if __name__ == '__main__': # pragma: no cover
diff --git a/tests/test_scripts/test_pdistreport.py b/tests/test_scripts/test_pdistreport.py
index 079722734..2bcaad0b3 100644
--- a/tests/test_scripts/test_pdistreport.py
+++ b/tests/test_scripts/test_pdistreport.py
@@ -1,3 +1,4 @@
+import email.message
import unittest
@@ -12,14 +13,14 @@ class TestPDistReportCommand(unittest.TestCase):
def platform():
return 'myplatform'
- pkg_resources = DummyPkgResources()
+ importlib_metadata = DummyImportlibMetadata()
L = []
def out(*args):
L.extend(args)
result = self._callFUT(
- pkg_resources=pkg_resources, platform=platform, out=out
+ importlib_metadata=importlib_metadata, platform=platform, out=out
)
self.assertEqual(result, None)
self.assertEqual(
@@ -32,14 +33,14 @@ class TestPDistReportCommand(unittest.TestCase):
return 'myplatform'
working_set = (DummyDistribution('abc'), DummyDistribution('def'))
- pkg_resources = DummyPkgResources(working_set)
+ importlib_metadata = DummyImportlibMetadata(working_set)
L = []
def out(*args):
L.extend(args)
result = self._callFUT(
- pkg_resources=pkg_resources, platform=platform, out=out
+ importlib_metadata=importlib_metadata, platform=platform, out=out
)
self.assertEqual(result, None)
self.assertEqual(
@@ -54,31 +55,30 @@ class TestPDistReportCommand(unittest.TestCase):
'abc',
'1',
' ',
- '/projects/abc',
+ 'summary for name=\'abc\'',
' ',
'def',
'1',
' ',
- '/projects/def',
+ 'summary for name=\'def\'',
],
)
-class DummyPkgResources:
- def __init__(self, working_set=()):
- self.working_set = working_set
+class DummyImportlibMetadata:
+ def __init__(self, distributions=()):
+ self._distributions = distributions
- def get_distribution(self, name):
- return Version('1')
+ def distribution(self, name):
+ return DummyDistribution(name)
-
-class Version:
- def __init__(self, version):
- self.version = version
+ def distributions(self):
+ return iter(self._distributions)
class DummyDistribution:
def __init__(self, name):
- self.project_name = name
self.version = '1'
- self.location = '/projects/%s' % name
+ self.metadata = email.message.Message()
+ self.metadata['Name'] = name
+ self.metadata['Summary'] = f'summary for {name=}'