Skip to content

Commit c844508

Browse files
committed
Move mapping of a single dependency to imports
to scope of the module, as discussed with @vreuter
1 parent 97914c0 commit c844508

File tree

2 files changed

+23
-19
lines changed

2 files changed

+23
-19
lines changed

fawltydeps/check.py

+20-16
Original file line numberDiff line numberDiff line change
@@ -55,27 +55,31 @@ def lookup_package(self, package: str) -> Optional[Tuple[str, ...]]:
5555
return tuple(ret) or None
5656

5757

58-
def dependencies_to_imports_mapping(
58+
def dependency_to_imports_mapping(
59+
dependency: DeclaredDependency, local_package_lookup: LocalPackageLookup
60+
) -> DeclaredDependency:
61+
"""Map imports names exposed by a dependency."""
62+
import_names = local_package_lookup.lookup_package(dependency.name)
63+
return (
64+
dependency.replace_mapping(
65+
import_names, DependenciesMapping.DEPENDENCY_TO_IMPORT
66+
)
67+
if import_names
68+
# Fallback to IDENTITY mapping
69+
else dependency
70+
)
71+
72+
73+
def map_dependencies_to_imports(
5974
dependencies: List[DeclaredDependency],
6075
) -> List[DeclaredDependency]:
6176
"""Map dependencies names to list of imports names exposed by a package"""
6277

6378
local_package_lookup = LocalPackageLookup()
6479

65-
def _dependency_to_imports_mapping(
66-
dependency: DeclaredDependency,
67-
) -> DeclaredDependency:
68-
import_names = local_package_lookup.lookup_package(dependency.name)
69-
return (
70-
dependency.replace_mapping(
71-
import_names, DependenciesMapping.DEPENDENCY_TO_IMPORT
72-
)
73-
if import_names
74-
# Fallback to IDENTITY mapping
75-
else dependency
76-
)
77-
78-
return [_dependency_to_imports_mapping(d) for d in dependencies]
80+
return [
81+
dependency_to_imports_mapping(d, local_package_lookup) for d in dependencies
82+
]
7983

8084

8185
def compare_imports_to_dependencies(
@@ -93,7 +97,7 @@ def compare_imports_to_dependencies(
9397
"""
9498

9599
# TODO consider empty list of dependency to import
96-
mapped_dependencies = dependencies_to_imports_mapping(dependencies)
100+
mapped_dependencies = map_dependencies_to_imports(dependencies)
97101

98102
names_from_imports = {i.name for i in imports}
99103
names_from_dependencies = {

tests/test_map_dep_name_to_import_names.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import pytest
77

8-
from fawltydeps.check import LocalPackageLookup, dependencies_to_imports_mapping
8+
from fawltydeps.check import LocalPackageLookup, map_dependencies_to_imports
99
from fawltydeps.types import DeclaredDependency, DependenciesMapping, Location
1010

1111
from .utils import deps_factory
@@ -99,8 +99,8 @@ def test_LocalPackageLookup_lookup_package(dep_name, expect_import_names):
9999
),
100100
],
101101
)
102-
def test_dependencies_to_imports_mapping(dep_names, expected_declared_dependencies):
102+
def test_map_dependencies_to_imports(dep_names, expected_declared_dependencies):
103103
collected_dependencies = deps_factory(*dep_names)
104-
mapped_dependencies = dependencies_to_imports_mapping(collected_dependencies)
104+
mapped_dependencies = map_dependencies_to_imports(collected_dependencies)
105105

106106
assert mapped_dependencies == expected_declared_dependencies

0 commit comments

Comments
 (0)