Source code for impscan.scanner.ast_parsing

from pathlib import Path

from ..config import EnvConfig
from .ast_utils import retrieve_imported_modules

__all__ = ["ParsedPy"]


[docs]class ParsedPy: def __init__(self, py_file_path: Path, env_config: EnvConfig): self.path = py_file_path self.ast_parse() # set `imports` attribute self.env_config = env_config @property def banned_imports(self): return self.env_config.banned_imports @property def allowed_imports(self): return self.imports.difference(self.banned_imports) def __repr__(self): return f"Parsed::'{self.path}'"
[docs] def ast_parse(self): self.imports = retrieve_imported_modules(self.path)