Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/codegen/sdk/python/import_resolution.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
from codegen.sdk.core.node_id_factory import NodeId
from codegen.sdk.core.statements.import_statement import ImportStatement
from codegen.sdk.python.file import PyFile
from src.codegen.sdk.core.file import SourceFile

import logging

Expand Down Expand Up @@ -185,7 +186,7 @@ def resolve_import(self, base_path: str | None = None, *, add_module_name: str |
@reader
def _file_by_custom_resolve_paths(self, resolve_paths: list[str], filepath: str) -> SourceFile | None:
"""Check if a certain file import can be found within a set sys.path

Returns either None or the SourceFile.
"""
for resolve_path in resolve_paths:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import sys
from typing import TYPE_CHECKING

from codegen.sdk.codebase.factory.get_session import get_codebase_session
Expand Down Expand Up @@ -290,7 +289,7 @@ def func():
# =====[ Imports can be found with sys.path set and active ]=====
codebase.ctx.config.py_resolve_syspath = True
src_import_resolution = src_import.resolve_import()
assert src_import_resolution
assert src_import_resolution
assert src_import_resolution.from_file is src_file
assert src_import_resolution.imports_file is True

Expand Down Expand Up @@ -331,15 +330,15 @@ def func():
# =====[ Imports can be found with custom resolve path set ]=====
codebase.ctx.config.import_resolution_paths = ["a"]
src_import_resolution = src_import.resolve_import()
assert src_import_resolution
assert src_import_resolution
assert src_import_resolution.from_file is src_file
assert src_import_resolution.imports_file is True

# =====[ Imports can be found with custom resolve multi-path set ]=====
src_import = consumer_file.imports[1]
codebase.ctx.config.import_resolution_paths = ["a/b"]
src_import_resolution = src_import.resolve_import()
assert src_import_resolution
assert src_import_resolution
assert src_import_resolution.from_file is src_file
assert src_import_resolution.imports_file is True

Expand Down Expand Up @@ -379,13 +378,13 @@ def func():
monkeypatch.syspath_prepend("a")
src_import: Import = consumer_file.imports[0]
src_import_resolution = src_import.resolve_import()
assert src_import_resolution
assert src_import_resolution
assert src_import_resolution.from_file.file_path == "a/c/src.py"

# =====[ Imports can be found with custom resolve over sys.path ]=====
codebase.ctx.config.import_resolution_paths = ["a/b"]
src_import_resolution = src_import.resolve_import()
assert src_import_resolution
assert src_import_resolution
assert src_import_resolution.from_file is src_file
assert src_import_resolution.imports_file is True

Expand Down Expand Up @@ -424,20 +423,20 @@ def func():
assert len(consumer_file.imports) == 1
src_import: Import = consumer_file.imports[0]
src_import_resolution = src_import.resolve_import()
assert src_import_resolution
assert src_import_resolution
assert src_import_resolution.from_file is src_file

# =====[ Sys.path overrite has precedence ]=====
monkeypatch.syspath_prepend("b")
src_import_resolution = src_import.resolve_import()
assert src_import_resolution
assert src_import_resolution
assert src_import_resolution.from_file is not src_file
assert src_import_resolution.from_file is src_file_overrite

# =====[ Custom overrite has precedence ]=====
codebase.ctx.config.import_resolution_paths = ["b"]
src_import_resolution = src_import.resolve_import()
assert src_import_resolution
assert src_import_resolution
assert src_import_resolution.from_file is not src_file
assert src_import_resolution.from_file is src_file_overrite

Expand Down
Loading