diff --git a/ape_vyper/__init__.py b/ape_vyper/__init__.py index 779142f..290656b 100644 --- a/ape_vyper/__init__.py +++ b/ape_vyper/__init__.py @@ -1,3 +1,5 @@ +from typing import Any + from ape import plugins @@ -14,3 +16,30 @@ def register_compiler(): from .compiler import VyperCompiler return tuple(e.value for e in FileType), VyperCompiler + + +def __getattr__(name: str) -> Any: + if name == "FileType": + from ._utils import FileType + + return FileType + + elif name == "VyperCompiler": + from .compiler import VyperCompiler + + return VyperCompiler + + elif name == "VyperConfig": + from .config import VyperConfig + + return VyperConfig + + else: + raise AttributeError(name) + + +__all__ = [ + "FileType", + "VyperCompiler", + "VyperConfig", +] diff --git a/ape_vyper/imports.py b/ape_vyper/imports.py index 167deb8..4c57db6 100644 --- a/ape_vyper/imports.py +++ b/ape_vyper/imports.py @@ -9,8 +9,7 @@ from ape.managers.project import Dependency from ape.utils import ManagerAccessMixin, get_relative_path -from ape_vyper import FileType -from ape_vyper._utils import lookup_source_from_site_packages +from ape_vyper._utils import FileType, lookup_source_from_site_packages BUILTIN_PREFIXES = ("vyper", "ethereum")