Skip to content

Commit a9712bd

Browse files
committed
Make resolver remove resolved import statements
1 parent 533d63c commit a9712bd

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

ymmsl/v0_2/resolver.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,13 @@ def do_resolve(
114114
def resolve_impls(
115115
module: Reference, config: Configuration, ctx: ResolutionContext) -> None:
116116
"""Resolve any imports of implementations."""
117+
# translation table from old to new implementation name
117118
ylocals: Dict[Reference, Reference] = dict()
118119
rename_local_impls(config.programs, module, ylocals)
119120
rename_local_impls(config.models, module, ylocals)
120121
resolve_impl_imports(config, ylocals, ctx)
121122
update_local_implementations(config, ylocals)
123+
config.imports = [i for i in config.imports if i.kind != ImportKind.IMPLEMENTATION]
122124

123125

124126
T = TypeVar('T', bound='Implementation')

ymmsl/v0_2/tests/test_resolver.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def test_resolve_imports(env_ymmsl_path: None) -> None:
3838

3939
resolve(Reference('test_resolve_imports'), config)
4040

41+
assert len(config.imports) == 0
4142
assert len(config.models) == 1
4243
assert config.models[Reference('a.d.test_importing')].name == 'a.d.test_importing'
4344
assert len(config.programs) == 2
@@ -60,6 +61,7 @@ def test_resolve_imports_module_not_found(env_ymmsl_path: None) -> None:
6061
resolve(Reference('test_module_not_found'), config)
6162

6263
assert 'Failed to find a file' in str(e.value)
64+
assert len(config.imports) == 1
6365

6466

6567
def test_resolve_imports_broken_module(env_ymmsl_path: None) -> None:
@@ -77,6 +79,7 @@ def test_resolve_imports_broken_module(env_ymmsl_path: None) -> None:
7779
resolve(Reference('test_broken_module'), config)
7880

7981
assert 'model' in str(e.value) and 'models' in str(e.value)
82+
assert len(config.imports) == 1
8083

8184

8285
def test_resolve_imports_implementation_not_found(env_ymmsl_path: None) -> None:
@@ -94,6 +97,7 @@ def test_resolve_imports_implementation_not_found(env_ymmsl_path: None) -> None:
9497
resolve(Reference('test_implementation_not_found'), config)
9598

9699
assert 'Implementation mucro not found' in str(e.value)
100+
assert len(config.imports) == 1
97101

98102

99103
def test_resolve_imports_no_shadowing(env_ymmsl_path: None) -> None:
@@ -115,3 +119,4 @@ def test_resolve_imports_no_shadowing(env_ymmsl_path: None) -> None:
115119
resolve(Reference('test_no_shadowing'), config)
116120

117121
assert 'both defined and imported' in str(e.value)
122+
assert len(config.imports) == 1

0 commit comments

Comments
 (0)