def test_missing_metadata(self): self.assertIsNone(distribution('example').read_text('does not exist'))
def importlib_load_entry_point(spec, group, name): dist_name, _, _ = spec.partition('==') matches = (entry_point for entry_point in distribution(dist_name).entry_points if entry_point.group == group and entry_point.name == name) return next(matches).load()
try: from importlib.metadata import distribution # type: ignore except ImportError: # Fallback for older Python version from importlib_metadata import distribution from .fdtw import FeatureDTWTransformer, MultiComponentFDTWTransformer from .metrics import dd_distance _distribution = distribution("feature_dtw") __version__ = _distribution.version __all__ = [ "FeatureDTWTransformer", "MultiComponentFDTWTransformer", "dd_distance", ]
def list_package_requirements( package_name: str) -> list[metadata.Distribution]: dist = metadata.distribution(package_name) modules = (i.split(" ")[0] for i in dist.requires) if dist.requires else [] distributions = (load_dist_info(i) for i in modules) return [i for i in distributions if i is not None]
def load_dist_info(name: str) -> metadata.Distribution | None: try: return metadata.distribution(name) except metadata.PackageNotFoundError: return None
def test_for_top_level(self): self.assertEqual( distribution('egginfo-pkg').read_text('top_level.txt').strip(), 'mod')
def test_for_name_does_not_exist(self): with self.assertRaises(PackageNotFoundError): distribution('does-not-exist')