Coverage for sphinx_reports/Adapter/Dependency.py: 77%

13 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-05-09 22:12 +0000

1from importlib.metadata import metadata as importlib_metadata 

2 

3from packaging import metadata 

4from pyTooling.Decorators import export, readonly 

5 

6from sphinx_reports.DataModel.Dependency import Distribution 

7 

8# Further Reading: 

9# * https://stackoverflow.com/questions/17194301/is-there-any-way-to-show-the-dependency-trees-for-pip-packages 

10# * https://www.python.org/success-stories/building-a-dependency-graph-of-our-python-codebase/ 

11# * https://github.com/thebjorn/pydeps 

12# * https://docs.python.org/3/library/importlib.metadata.html 

13 

14 

15@export 

16class DependencyScanner: 

17 _distribution: Distribution 

18 

19 def __init__(self, distributionName: str): 

20 md1 = importlib_metadata(distributionName) 

21 

22 self._distribution = Distribution(distributionName) 

23 

24 @readonly 

25 def Distribution(self) -> Distribution: 

26 return self._distribution