diff --git a/ivy/transpiler/__init__.py b/ivy/transpiler/__init__.py index c03c7854f9e49..d5ec2b228da8b 100644 --- a/ivy/transpiler/__init__.py +++ b/ivy/transpiler/__init__.py @@ -1,2 +1,4 @@ -from .main import source_to_source, transpile -from .utils import profiling_utils +from ivy.transpiler.main import source_to_source, transpile +from ivy.transpiler.utils import profiling_utils + +__all__ = ["source_to_source", "transpile", "profiling_utils"] diff --git a/ivy/transpiler/configurations_container.py b/ivy/transpiler/configurations_container.py index dad795aca6b03..8bb3270871566 100644 --- a/ivy/transpiler/configurations_container.py +++ b/ivy/transpiler/configurations_container.py @@ -1,27 +1,23 @@ -# global -import os from typing import List -from .exceptions.assertions import ( + +from ivy.transpiler import main_config +from ivy.transpiler.exceptions.assertions import ( assert_valid_source, assert_valid_target, ) - -# local -from .translations.configurations.base_translator_config import ( +from ivy.transpiler.translations.configurations.base_translator_config import ( BaseTranslatorConfig, ) -from .translations.configurations.source_to_frontend_translator_config import ( +from ivy.transpiler.translations.configurations.source_to_frontend_translator_config import ( SourceToFrontendTranslatorConfig, ) -from .translations.configurations.frontend_to_ivy_translator_config import ( +from ivy.transpiler.translations.configurations.frontend_to_ivy_translator_config import ( FrontendToIvyTranslatorConfig, ) -from .translations.configurations.ivy_to_source_translator_config import ( +from ivy.transpiler.translations.configurations.ivy_to_source_translator_config import ( IvyToSourceTranslatorConfig, ) -from . import main_config - class ConfigurationsContainer: def __init__(self, base_output_dir: str = "ivy_transpiled_outputs") -> None: diff --git a/ivy/transpiler/main.py b/ivy/transpiler/main.py index 94b942a9a82ba..5cc4a88d45536 100644 --- a/ivy/transpiler/main.py +++ b/ivy/transpiler/main.py @@ -1,10 +1,10 @@ -"""Main driver code for the Source-to-Source Translator.""" +"""Main driver code for the Source-to-Source Transpiler.""" -# global import ctypes from dataclasses import is_dataclass from enum import Enum import functools +import gast import importlib import inspect import logging @@ -16,24 +16,22 @@ from types import FunctionType, BuiltinFunctionType, MethodType, ModuleType from typing import Union import warnings -import gast -import ivy # type: ignore -# local -from .configurations_container import ConfigurationsContainer -from .translators_container import TranslatorsContainer -from .utils.api_utils import copy_module -from .utils.cache_utils import ( +import ivy # type: ignore +from ivy.transpiler.configurations_container import ConfigurationsContainer +from ivy.transpiler.translators_container import TranslatorsContainer +from ivy.transpiler.utils.api_utils import copy_module +from ivy.transpiler.utils.cache_utils import ( PRELOAD_CACHE, ) -from .utils.conversion_utils import ( +from ivy.transpiler.utils.conversion_utils import ( BUILTIN_LIKELY_MODULE_NAMES, is_builtin_function, ) -from .utils.inspect_utils import ( +from ivy.transpiler.utils.inspect_utils import ( _validate_object, ) -from .utils.source_utils import ( +from ivy.transpiler.utils.source_utils import ( get_object_from_translated_directory, get_new_output_dir_name, sanitize_dir_name, @@ -41,10 +39,10 @@ TARGET = "tensorflow" + # Helpers # # ------- # - def _animate(stop_animation, animation_str): """ Displays ellipsis animation during transpilation. diff --git a/ivy/transpiler/transformations/configurations/frontend_torch_postprocessing_transformer_config.py b/ivy/transpiler/transformations/configurations/frontend_torch_postprocessing_transformer_config.py index 52e776fbe6ff9..1eb0e75ce6f43 100644 --- a/ivy/transpiler/transformations/configurations/frontend_torch_postprocessing_transformer_config.py +++ b/ivy/transpiler/transformations/configurations/frontend_torch_postprocessing_transformer_config.py @@ -1,13 +1,10 @@ -# global from typing import Dict -# local -from ..configurations.base_transformer_config import ( +from ivy.transpiler.configs.transformer import frontend_torch_postprocessing_transformer_config_dev as frontend_torch_postprocessing_config +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...configs.transformer import frontend_torch_postprocessing_transformer_config_dev as frontend_torch_postprocessing_config - class FrontendTorchCodePostProcessorConfig(BaseTransformerConfig): def __init__(self) -> None: diff --git a/ivy/transpiler/transformations/configurations/ivy_postprocessing_transformer_config.py b/ivy/transpiler/transformations/configurations/ivy_postprocessing_transformer_config.py index be02143f5c4cf..476bed8870289 100644 --- a/ivy/transpiler/transformations/configurations/ivy_postprocessing_transformer_config.py +++ b/ivy/transpiler/transformations/configurations/ivy_postprocessing_transformer_config.py @@ -1,13 +1,10 @@ -# global from typing import Dict -# local -from ..configurations.base_transformer_config import ( +from ivy.transpiler.configs.transformer import ivy_postprocessing_transformer_config_dev as ivy_postprocessing_config +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...configs.transformer import ivy_postprocessing_transformer_config_dev as ivy_postprocessing_config - class IvyCodePostProcessorConfig(BaseTransformerConfig): def __init__(self) -> None: diff --git a/ivy/transpiler/transformations/configurations/ivy_recursive_transformer_config.py b/ivy/transpiler/transformations/configurations/ivy_recursive_transformer_config.py index ef1c1611bb208..c9f565f854fc5 100644 --- a/ivy/transpiler/transformations/configurations/ivy_recursive_transformer_config.py +++ b/ivy/transpiler/transformations/configurations/ivy_recursive_transformer_config.py @@ -1,13 +1,10 @@ -# global from typing import Dict -# local -from ..configurations.base_transformer_config import ( +from ivy.transpiler.configs.transformer import ivy_recursive_transformer_config_dev as ivy_recursive_config +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...configs.transformer import ivy_recursive_transformer_config_dev as ivy_recursive_config - class IvyRecurserConfig(BaseTransformerConfig): def __init__(self) -> None: diff --git a/ivy/transpiler/transformations/configurations/native_torch_postprocessing_config.py b/ivy/transpiler/transformations/configurations/native_torch_postprocessing_config.py index 69cd60b04e828..543e7d99f5559 100644 --- a/ivy/transpiler/transformations/configurations/native_torch_postprocessing_config.py +++ b/ivy/transpiler/transformations/configurations/native_torch_postprocessing_config.py @@ -1,13 +1,10 @@ -# global from typing import Dict -# local -from ..configurations.base_transformer_config import ( +from ivy.transpiler.configs.transformer import native_torch_postprocessing_transformer_config_dev as native_torch_postprocessing_config +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...configs.transformer import native_torch_postprocessing_transformer_config_dev as native_torch_postprocessing_config - class NativeTorchCodePostProcessorConfig(BaseTransformerConfig): def __init__(self) -> None: diff --git a/ivy/transpiler/transformations/transformer.py b/ivy/transpiler/transformations/transformer.py index d6a9a5ac2826e..4b75b0f486d05 100644 --- a/ivy/transpiler/transformations/transformer.py +++ b/ivy/transpiler/transformations/transformer.py @@ -1,41 +1,37 @@ """Exposes interface for transformers.""" -# global -from typing import Optional - -# local import gast -from ..translations.configurations.base_translator_config import ( +from types import ModuleType +from typing import List, Optional, Set, TYPE_CHECKING, Union + +from ivy.transpiler.translations.configurations.base_translator_config import ( BaseTranslatorConfig, ) -from ..utils import logging_utils -from ..utils.cache_utils import Cacher -from ..utils.origin_utils import attach_origin_info -from ..utils.naming_utils import NAME_GENERATOR -from ..transformations.transformers.base_transformer import ( +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ..translations.data.object_like import ( +from ivy.transpiler.translations.data.object_like import ( BaseObjectLike, ) -from ..transformations.transformers.rename_transformer import ( +from ivy.transpiler.transformations.transformers.rename_transformer import ( BaseRenameTransformer, ) - -from types import ModuleType -from typing import List, Set, Union, TYPE_CHECKING +from ivy.transpiler.utils import logging_utils +from ivy.transpiler.utils.cache_utils import Cacher +from ivy.transpiler.utils.origin_utils import attach_origin_info +from ivy.transpiler.utils.naming_utils import NAME_GENERATOR if TYPE_CHECKING: - from ..transformations.transformers.globals_transformer.base_transformer import ( + from ivy.transpiler.transformations.transformers.globals_transformer.base_transformer import ( GlobalObj, ) - from ..translations.data.object_like import ( + from ivy.transpiler.translations.data.object_like import ( TypeObjectLike, ) - from ..translations.data.object_like import ( + from ivy.transpiler.translations.data.object_like import ( FuncObjectLike, ) - from ..utils.ast_utils import ImportObj, FromImportObj + from ivy.transpiler.utils.ast_utils import ImportObj, FromImportObj class Transformer(BaseTransformer): diff --git a/ivy/transpiler/transformations/transformers/annotation_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/annotation_transformer/base_transformer.py index 54374639eb79a..ade4d76bbde13 100644 --- a/ivy/transpiler/transformations/transformers/annotation_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/annotation_transformer/base_transformer.py @@ -1,9 +1,8 @@ -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ...transformers.base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) diff --git a/ivy/transpiler/transformations/transformers/canonicalize_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/canonicalize_transformer/base_transformer.py index eb9853ef7f956..b871e7f2ea1a3 100644 --- a/ivy/transpiler/transformations/transformers/canonicalize_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/canonicalize_transformer/base_transformer.py @@ -1,13 +1,15 @@ -# global +import gast import importlib +from types import FunctionType, ModuleType -# local -from ...transformers.base_transformer import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( + BaseTransformerConfig, +) +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ...transformer import Transformer -import gast -from types import FunctionType, ModuleType +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformer_globals import CLASSES_TO_IGNORE from ivy.transpiler.utils.api_utils import ( get_function_from_modules, is_compiled_module, @@ -20,13 +22,9 @@ get_module, get_function_vars, ) -from ... import transformer_globals as glob from ivy.transpiler.utils.conversion_utils import ( BUILTIN_LIKELY_MODULE_NAMES, ) -from ...configurations.base_transformer_config import ( - BaseTransformerConfig, -) class BaseNameCanonicalizer(BaseTransformer): @@ -136,7 +134,7 @@ def _rename_node(self, node, func_str): for prefix in BUILTIN_LIKELY_MODULE_NAMES ) or is_compiled_module(import_obj.module) - or func_str in glob.CLASSES_TO_IGNORE + or func_str in CLASSES_TO_IGNORE ): # case 1. following objects aren't canonicalized, they are just captured. # i) builtin imports diff --git a/ivy/transpiler/transformations/transformers/closure_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/closure_transformer/base_transformer.py index 3bc00d7bc38b9..79d52e4ecd45a 100644 --- a/ivy/transpiler/transformations/transformers/closure_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/closure_transformer/base_transformer.py @@ -1,10 +1,10 @@ -# local import gast -from ...configurations.base_transformer_config import ( + +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ...transformers.base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) diff --git a/ivy/transpiler/transformations/transformers/decorator_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/decorator_transformer/base_transformer.py index c7a5c773253a6..daa067de6a900 100644 --- a/ivy/transpiler/transformations/transformers/decorator_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/decorator_transformer/base_transformer.py @@ -1,17 +1,14 @@ -# globals -import types +import gast -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -import gast -from ...transformer import Transformer -from ...transformers.base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ....utils.ast_utils import ast_to_source_code -from ....utils.type_utils import Types +from ivy.transpiler.utils.ast_utils import ast_to_source_code +from ivy.transpiler.utils.type_utils import Types class BaseDecoratorRemover(BaseTransformer): diff --git a/ivy/transpiler/transformations/transformers/decorator_transformer/frontend_torch_decorator_transformer.py b/ivy/transpiler/transformations/transformers/decorator_transformer/frontend_torch_decorator_transformer.py index 366b39c5eee98..eb5f157a664dc 100644 --- a/ivy/transpiler/transformations/transformers/decorator_transformer/frontend_torch_decorator_transformer.py +++ b/ivy/transpiler/transformations/transformers/decorator_transformer/frontend_torch_decorator_transformer.py @@ -1,6 +1,3 @@ -# global - -# local from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) diff --git a/ivy/transpiler/transformations/transformers/decorator_transformer/ivy_decorator_transformer.py b/ivy/transpiler/transformations/transformers/decorator_transformer/ivy_decorator_transformer.py index 69c42f390d313..d08e262b0ab64 100644 --- a/ivy/transpiler/transformations/transformers/decorator_transformer/ivy_decorator_transformer.py +++ b/ivy/transpiler/transformations/transformers/decorator_transformer/ivy_decorator_transformer.py @@ -1,6 +1,3 @@ -# global - -# local from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) diff --git a/ivy/transpiler/transformations/transformers/decorator_transformer/native_torch_decorator_transformer.py b/ivy/transpiler/transformations/transformers/decorator_transformer/native_torch_decorator_transformer.py index 20eda41c26522..e71b863b8b110 100644 --- a/ivy/transpiler/transformations/transformers/decorator_transformer/native_torch_decorator_transformer.py +++ b/ivy/transpiler/transformations/transformers/decorator_transformer/native_torch_decorator_transformer.py @@ -1,6 +1,3 @@ -# global - -# local from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) diff --git a/ivy/transpiler/transformations/transformers/deletion_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/deletion_transformer/base_transformer.py index 0552539785b99..0a002b860f9fa 100644 --- a/ivy/transpiler/transformations/transformers/deletion_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/deletion_transformer/base_transformer.py @@ -1,13 +1,13 @@ -# local import gast -from ...configurations.base_transformer_config import ( + +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ....utils.ast_utils import ast_to_source_code +from ivy.transpiler.utils.ast_utils import ast_to_source_code class BaseNodeDeleter(BaseTransformer): diff --git a/ivy/transpiler/transformations/transformers/deletion_transformer/ivy_deletion_transformer.py b/ivy/transpiler/transformations/transformers/deletion_transformer/ivy_deletion_transformer.py index b0d8b2ebb74bc..8b384cb52a372 100644 --- a/ivy/transpiler/transformations/transformers/deletion_transformer/ivy_deletion_transformer.py +++ b/ivy/transpiler/transformations/transformers/deletion_transformer/ivy_deletion_transformer.py @@ -1,13 +1,13 @@ -# local import gast -from ...configurations.base_transformer_config import ( + +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.deletion_transformer.base_transformer import ( BaseTransformer, ) -from ....utils.ast_utils import ast_to_source_code +from ivy.transpiler.utils.ast_utils import ast_to_source_code class IvyNodeDeleter(BaseTransformer): diff --git a/ivy/transpiler/transformations/transformers/docstring_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/docstring_transformer/base_transformer.py index 95cd7280783b0..f3cc5dd62cd7c 100644 --- a/ivy/transpiler/transformations/transformers/docstring_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/docstring_transformer/base_transformer.py @@ -1,10 +1,10 @@ -# local import gast -from ...configurations.base_transformer_config import ( + +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) diff --git a/ivy/transpiler/transformations/transformers/dunders_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/dunders_transformer/base_transformer.py index 442ae9a9b4672..4a4e003d315dd 100644 --- a/ivy/transpiler/transformations/transformers/dunders_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/dunders_transformer/base_transformer.py @@ -1,26 +1,21 @@ -# global import copy import gast -import ivy -# local -from ..base_transformer import ( - BaseTransformer, -) -from ...transformer import Transformer -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ast_to_source_code -from ....utils.api_utils import ( +from ivy.transpiler.transformations.transformers.base_transformer import ( + BaseTransformer, +) +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations import transformer_globals as glob +from ivy.transpiler.utils.ast_utils import ast_to_source_code +from ivy.transpiler.utils.api_utils import ( get_function_from_modules, is_backend_api, ) - -from ... import transformer_globals as glob -from ....utils.type_utils import Types -from ....utils.naming_utils import NAME_GENERATOR +from ivy.transpiler.utils.naming_utils import NAME_GENERATOR +from ivy.transpiler.utils.type_utils import Types class NameNodeVisitor(gast.NodeVisitor): diff --git a/ivy/transpiler/transformations/transformers/globals_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/globals_transformer/base_transformer.py index a6d3198cd41b8..02424f00af42d 100644 --- a/ivy/transpiler/transformations/transformers/globals_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/globals_transformer/base_transformer.py @@ -1,21 +1,19 @@ -# global from copy import copy, deepcopy import gast import types from typing import List, Tuple, Optional, Union, TYPE_CHECKING -# local -from ..base_transformer import ( +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ...transformer import Transformer -from ....translations.data.global_like import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.translations.data.global_like import ( GlobalObjectLike, Position, StackObjectLike, ) -from ....translations.data.object_like import BaseObjectLike -from ....utils.ast_utils import ( +from ivy.transpiler.translations.data.object_like import BaseObjectLike +from ivy.transpiler.utils.ast_utils import ( FRONTEND_STANDARD_GLOBALS_TARGET_TO_MODULE, IVY_STANDARD_GLOBALS_TARGET_TO_MODULE, ast_to_source_code, @@ -27,21 +25,21 @@ FileNameStrategy, TranslatedContext, ) -from ....utils.api_utils import ( +from ivy.transpiler.utils.api_utils import ( get_function_from_modules, SUPPORTED_BACKENDS_PREFIX, ) -from ....utils.naming_utils import NAME_GENERATOR -from ....utils.origin_utils import ORIGI_INFO -from ....utils.conversion_utils import ( +from ivy.transpiler.utils.naming_utils import NAME_GENERATOR +from ivy.transpiler.utils.origin_utils import ORIGI_INFO +from ivy.transpiler.utils.conversion_utils import ( BUILTIN_LIKELY_MODULE_NAMES, ) -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) if TYPE_CHECKING: - from ....translations.data.object_like import ( + from ivy.transpiler.translations.data.object_like import ( TypeObjectLike, FuncObjectLike, ) diff --git a/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py index 188a3fb696d37..841f6ddce3a68 100644 --- a/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py @@ -1,25 +1,23 @@ -# global import gast import inspect import textwrap -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils import pickling_utils -from ....utils.ast_utils import ( - ast_to_source_code, - is_super_call_node, -) -from ....utils.origin_utils import ORIGI_INFO -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ..rename_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.rename_transformer.base_transformer import ( BaseRenameTransformer, ) +from ivy.transpiler.utils import pickling_utils +from ivy.transpiler.utils.ast_utils import ( + ast_to_source_code, + is_super_call_node, +) +from ivy.transpiler.utils.origin_utils import ORIGI_INFO class BaseSuperMethodsInjector(BaseTransformer): diff --git a/ivy/transpiler/transformations/transformers/inplace_update_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/inplace_update_transformer/base_transformer.py index c49761975dbb3..d98b89b364f4c 100644 --- a/ivy/transpiler/transformations/transformers/inplace_update_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/inplace_update_transformer/base_transformer.py @@ -1,21 +1,19 @@ -# global import copy import gast import re -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ....utils.api_utils import ( +from ivy.transpiler.utils.api_utils import ( TRANSLATED_OBJ_PREFIX, TRANSLATED_OBJ_SUFFIX, ) -from ....utils.ast_utils import ast_to_source_code, set_parents +from ivy.transpiler.utils.ast_utils import ast_to_source_code, set_parents def clean_function_name(func_name): diff --git a/ivy/transpiler/transformations/transformers/method_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/method_transformer/base_transformer.py index aade21d3a695d..c5b573569aef7 100644 --- a/ivy/transpiler/transformations/transformers/method_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/method_transformer/base_transformer.py @@ -1,9 +1,8 @@ -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) diff --git a/ivy/transpiler/transformations/transformers/method_transformer/frontend_torch_method_transformer.py b/ivy/transpiler/transformations/transformers/method_transformer/frontend_torch_method_transformer.py index b64b1473358f3..cd4658a98a5f8 100644 --- a/ivy/transpiler/transformations/transformers/method_transformer/frontend_torch_method_transformer.py +++ b/ivy/transpiler/transformations/transformers/method_transformer/frontend_torch_method_transformer.py @@ -1,19 +1,17 @@ -# global import builtins import gast -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.conversion_utils import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.utils.conversion_utils import ( BUILTIN_LIKELY_MODULE_NAMES, ) -from ..method_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.method_transformer.base_transformer import ( BaseMethodToFunctionConverter, ) -from ....utils.api_utils import ( +from ivy.transpiler.utils.api_utils import ( is_property, is_builtin_method, is_method_of_class, @@ -21,13 +19,13 @@ is_frontend_api, is_ivy_api, ) -from ....utils.ast_utils import ( +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, is_super_call_node, MODULE_TO_ALIAS, get_function_vars, ) -from ... import transformer_globals as glob +from ivy.transpiler.transformations import transformer_globals as glob class FrontendTorchMethodToFunctionConverter(BaseMethodToFunctionConverter): diff --git a/ivy/transpiler/transformations/transformers/method_transformer/ivy_method_transformer.py b/ivy/transpiler/transformations/transformers/method_transformer/ivy_method_transformer.py index a13e14d64b8bd..1f9a648ac6a1c 100644 --- a/ivy/transpiler/transformations/transformers/method_transformer/ivy_method_transformer.py +++ b/ivy/transpiler/transformations/transformers/method_transformer/ivy_method_transformer.py @@ -1,20 +1,18 @@ -# global import gast -import ivy import re -# local -from ...configurations.base_transformer_config import ( +import ivy +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.conversion_utils import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.utils.conversion_utils import ( BUILTIN_LIKELY_MODULE_NAMES, ) -from ..method_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.method_transformer.base_transformer import ( BaseMethodToFunctionConverter, ) -from ....utils.api_utils import ( +from ivy.transpiler.utils.api_utils import ( is_property, is_builtin_method, is_method_of_class, @@ -22,13 +20,13 @@ is_ivy_api, get_function_from_modules, ) -from ....utils.ast_utils import ( +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, is_super_call_node, MODULE_TO_ALIAS, get_function_vars, ) -from ... import transformer_globals as glob +from ivy.transpiler.transformations import transformer_globals as glob class IvyMethodToFunctionConverter(BaseMethodToFunctionConverter): diff --git a/ivy/transpiler/transformations/transformers/method_transformer/native_torch_method_transformer.py b/ivy/transpiler/transformations/transformers/method_transformer/native_torch_method_transformer.py index 5fee5a58e55d1..a4cb8e6cbe634 100644 --- a/ivy/transpiler/transformations/transformers/method_transformer/native_torch_method_transformer.py +++ b/ivy/transpiler/transformations/transformers/method_transformer/native_torch_method_transformer.py @@ -1,23 +1,21 @@ -# global import gast import importlib -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.conversion_utils import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.utils.conversion_utils import ( BUILTIN_LIKELY_MODULE_NAMES, ) -from ..method_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.method_transformer.base_transformer import ( BaseMethodToFunctionConverter, ) -from ....utils.api_utils import ( +from ivy.transpiler.utils.api_utils import ( is_method_of_class, get_hf_class, ) -from ....utils.ast_utils import ( +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, MODULE_TO_ALIAS, ) diff --git a/ivy/transpiler/transformations/transformers/miscellaneous_transformers/hf_flax_transformer.py b/ivy/transpiler/transformations/transformers/miscellaneous_transformers/hf_flax_transformer.py index 6deca97764b78..b318cb3d50cb7 100644 --- a/ivy/transpiler/transformations/transformers/miscellaneous_transformers/hf_flax_transformer.py +++ b/ivy/transpiler/transformations/transformers/miscellaneous_transformers/hf_flax_transformer.py @@ -1,18 +1,14 @@ -# global -from ast import FunctionDef import gast -from typing import Any -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ....utils.api_utils import is_submodule_of -from ....utils.ast_utils import ast_to_source_code +from ivy.transpiler.utils.api_utils import is_submodule_of +from ivy.transpiler.utils.ast_utils import ast_to_source_code class HFPretrainedFlaxTransformer(BaseTransformer): diff --git a/ivy/transpiler/transformations/transformers/native_layers_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/native_layers_transformer/base_transformer.py index e4b53a9305556..3584e509a65c7 100644 --- a/ivy/transpiler/transformations/transformers/native_layers_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/native_layers_transformer/base_transformer.py @@ -1,26 +1,24 @@ -# global from abc import ABC, abstractmethod import gast import os from typing import Dict, List, Tuple -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ....utils.ast_utils import ( +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, create_relative_import_statement, _inject_local_imports_in_function, _inject_local_imports_in_class, TranslatedContext, ) -from ....utils.naming_utils import NAME_GENERATOR -from ....utils.type_utils import Types +from ivy.transpiler.utils.naming_utils import NAME_GENERATOR +from ivy.transpiler.utils.type_utils import Types # Base class for converting PyTorch layers to various frameworks diff --git a/ivy/transpiler/transformations/transformers/native_layers_transformer/ivy_to_jax_native_layer_transformer.py b/ivy/transpiler/transformations/transformers/native_layers_transformer/ivy_to_jax_native_layer_transformer.py index 29fdab965a9a0..6703770b5e78a 100644 --- a/ivy/transpiler/transformations/transformers/native_layers_transformer/ivy_to_jax_native_layer_transformer.py +++ b/ivy/transpiler/transformations/transformers/native_layers_transformer/ivy_to_jax_native_layer_transformer.py @@ -1,5 +1,6 @@ import gast -from .base_transformer import ( + +from ivy.transpiler.transformations.transformers.native_layers_transformer.base_transformer import ( PytorchToFrameworkLayer, ) diff --git a/ivy/transpiler/transformations/transformers/native_layers_transformer/ivy_to_tf_native_layer_transformer.py b/ivy/transpiler/transformations/transformers/native_layers_transformer/ivy_to_tf_native_layer_transformer.py index 5bf5dbe6bc985..bc5eb5f8f9097 100644 --- a/ivy/transpiler/transformations/transformers/native_layers_transformer/ivy_to_tf_native_layer_transformer.py +++ b/ivy/transpiler/transformations/transformers/native_layers_transformer/ivy_to_tf_native_layer_transformer.py @@ -1,5 +1,6 @@ import gast -from .base_transformer import ( + +from ivy.transpiler.transformations.transformers.native_layers_transformer.base_transformer import ( PytorchToFrameworkLayer, ) diff --git a/ivy/transpiler/transformations/transformers/postprocessing_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/postprocessing_transformer/base_transformer.py index 7bc3cbbf0152f..0869b1a8dc8ab 100644 --- a/ivy/transpiler/transformations/transformers/postprocessing_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/postprocessing_transformer/base_transformer.py @@ -1,9 +1,8 @@ -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) diff --git a/ivy/transpiler/transformations/transformers/postprocessing_transformer/frontend_torch_postprocessing_transformer.py b/ivy/transpiler/transformations/transformers/postprocessing_transformer/frontend_torch_postprocessing_transformer.py index 2ea52618b8e2b..d887b7b4145db 100644 --- a/ivy/transpiler/transformations/transformers/postprocessing_transformer/frontend_torch_postprocessing_transformer.py +++ b/ivy/transpiler/transformations/transformers/postprocessing_transformer/frontend_torch_postprocessing_transformer.py @@ -1,17 +1,14 @@ -# global import gast -import os -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, ) -from ....utils.api_utils import is_ivy_api -from .base_transformer import ( +from ivy.transpiler.utils.api_utils import is_ivy_api +from ivy.transpiler.transformations.transformers.postprocessing_transformer.base_transformer import ( BaseCodePostProcessor, ) diff --git a/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_postprocessing_transformer.py b/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_postprocessing_transformer.py index f6ca8ef21b472..423aab3ba6219 100644 --- a/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_postprocessing_transformer.py +++ b/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_postprocessing_transformer.py @@ -1,23 +1,21 @@ -# global import gast -import ivy +import importlib import inspect +import ivy import os -import importlib -# local -from ....transformations import transformer_globals as glob -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations import transformer_globals as glob +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, ) -from .base_transformer import ( +from ivy.transpiler.transformations.transformers.postprocessing_transformer.base_transformer import ( BaseCodePostProcessor, ) -from ....utils.type_utils import Types +from ivy.transpiler.utils.type_utils import Types class IvyCodePostProcessor(BaseCodePostProcessor): diff --git a/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_jax_postprocessing_transformer.py b/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_jax_postprocessing_transformer.py index 5944caa09b3f7..2f853ebe415ea 100644 --- a/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_jax_postprocessing_transformer.py +++ b/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_jax_postprocessing_transformer.py @@ -1,21 +1,18 @@ -# global -import ivy - - -# local import gast -from ...configurations.base_transformer_config import ( + +import ivy +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, ) -from ....utils.api_utils import ( +from ivy.transpiler.utils.api_utils import ( get_native_array_str_from_backend, get_native_module_str_from_backend, ) -from .ivy_postprocessing_transformer import ( +from ivy.transpiler.transformations.transformers.postprocessing_transformer.ivy_postprocessing_transformer import ( IvyCodePostProcessor, ) diff --git a/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_numpy_postprocessing_transformer.py b/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_numpy_postprocessing_transformer.py index c52c65b7f726b..190e371bf2d7d 100644 --- a/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_numpy_postprocessing_transformer.py +++ b/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_numpy_postprocessing_transformer.py @@ -1,21 +1,18 @@ -# global import gast -import ivy - -# local -from ...configurations.base_transformer_config import ( +import ivy +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ( - ast_to_source_code, -) -from ....utils.api_utils import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.utils.api_utils import ( get_native_array_str_from_backend, get_native_module_str_from_backend, ) -from .ivy_postprocessing_transformer import ( +from ivy.transpiler.utils.ast_utils import ( + ast_to_source_code, +) +from ivy.transpiler.transformations.transformers.postprocessing_transformer.ivy_postprocessing_transformer import ( IvyCodePostProcessor, ) diff --git a/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_tf_postprocessing_transformer.py b/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_tf_postprocessing_transformer.py index 1e6935ec1a84e..ce2d373267f25 100644 --- a/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_tf_postprocessing_transformer.py +++ b/ivy/transpiler/transformations/transformers/postprocessing_transformer/ivy_to_tf_postprocessing_transformer.py @@ -1,23 +1,21 @@ -# global import gast -import ivy -# local -from ...configurations.base_transformer_config import ( +import ivy +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ( - ast_to_source_code, +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.postprocessing_transformer.ivy_postprocessing_transformer import ( + IvyCodePostProcessor, ) -from ....utils.api_utils import ( +from ivy.transpiler.utils.api_utils import ( get_native_array_str_from_backend, get_native_module_str_from_backend, ) -from ....utils.naming_utils import NAME_GENERATOR -from .ivy_postprocessing_transformer import ( - IvyCodePostProcessor, +from ivy.transpiler.utils.ast_utils import ( + ast_to_source_code, ) +from ivy.transpiler.utils.naming_utils import NAME_GENERATOR class IvyToTFCodePostProcessor(IvyCodePostProcessor): diff --git a/ivy/transpiler/transformations/transformers/postprocessing_transformer/native_torch_postprocessing_transformer.py b/ivy/transpiler/transformations/transformers/postprocessing_transformer/native_torch_postprocessing_transformer.py index 05a5f94f1d967..c0143aea125da 100644 --- a/ivy/transpiler/transformations/transformers/postprocessing_transformer/native_torch_postprocessing_transformer.py +++ b/ivy/transpiler/transformations/transformers/postprocessing_transformer/native_torch_postprocessing_transformer.py @@ -1,15 +1,15 @@ -# local import gast -from ...configurations.base_transformer_config import ( + +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ( - ast_to_source_code, -) -from ...transformers.postprocessing_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.postprocessing_transformer.base_transformer import ( BaseCodePostProcessor, ) +from ivy.transpiler.utils.ast_utils import ( + ast_to_source_code, +) class NativeTorchCodePostProcessor(BaseCodePostProcessor): diff --git a/ivy/transpiler/transformations/transformers/preprocessing_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/preprocessing_transformer/base_transformer.py index 24fa54ac24ba1..6f4b86ced9ac5 100644 --- a/ivy/transpiler/transformations/transformers/preprocessing_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/preprocessing_transformer/base_transformer.py @@ -1,9 +1,8 @@ -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) diff --git a/ivy/transpiler/transformations/transformers/preprocessing_transformer/frontend_torch_preprocessing_transformer.py b/ivy/transpiler/transformations/transformers/preprocessing_transformer/frontend_torch_preprocessing_transformer.py index cbe887aecf51b..ccf640e836426 100644 --- a/ivy/transpiler/transformations/transformers/preprocessing_transformer/frontend_torch_preprocessing_transformer.py +++ b/ivy/transpiler/transformations/transformers/preprocessing_transformer/frontend_torch_preprocessing_transformer.py @@ -1,10 +1,8 @@ -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ast_to_source_code -from .base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.preprocessing_transformer.base_transformer import ( BaseCodePreProcessor, ) diff --git a/ivy/transpiler/transformations/transformers/preprocessing_transformer/ivy_preprocessing_transformer.py b/ivy/transpiler/transformations/transformers/preprocessing_transformer/ivy_preprocessing_transformer.py index 6c90a9d6de559..2e4377906bcfa 100644 --- a/ivy/transpiler/transformations/transformers/preprocessing_transformer/ivy_preprocessing_transformer.py +++ b/ivy/transpiler/transformations/transformers/preprocessing_transformer/ivy_preprocessing_transformer.py @@ -1,17 +1,15 @@ -# global import gast -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ....utils.ast_utils import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, is_unpacking_assignment, replace_placeholders, ) -from .base_transformer import ( +from ivy.transpiler.transformations.transformers.preprocessing_transformer.base_transformer import ( BaseCodePreProcessor, ) diff --git a/ivy/transpiler/transformations/transformers/profiling_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/profiling_transformer/base_transformer.py index fc27fd10a944f..fcecfdae657fc 100644 --- a/ivy/transpiler/transformations/transformers/profiling_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/profiling_transformer/base_transformer.py @@ -1,12 +1,10 @@ -# global import gast -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) diff --git a/ivy/transpiler/transformations/transformers/recursive_transformer/frontend_torch_recursive_transformer.py b/ivy/transpiler/transformations/transformers/recursive_transformer/frontend_torch_recursive_transformer.py index 6b02c37ab4822..2ced39306546f 100644 --- a/ivy/transpiler/transformations/transformers/recursive_transformer/frontend_torch_recursive_transformer.py +++ b/ivy/transpiler/transformations/transformers/recursive_transformer/frontend_torch_recursive_transformer.py @@ -1,27 +1,23 @@ -# global import gast import importlib import inspect -import ivy -import types -# local -from ....utils.api_utils import ( +import ivy +from ivy.transpiler.transformations.configurations.base_transformer_config import ( + BaseTransformerConfig, +) +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.recursive_transformer.base_transformer import ( + BaseRecurser, +) +from ivy.transpiler.utils.api_utils import ( get_function_from_modules, is_ivy_api, is_frontend_api, SUPPORTED_BACKENDS_PREFIX, ) -from ....utils.ast_utils import property_to_func -from ....utils.conversion_utils import is_builtin_function -from ..recursive_transformer.base_transformer import ( - BaseRecurser, -) - -from ...transformer import Transformer -from ...configurations.base_transformer_config import ( - BaseTransformerConfig, -) +from ivy.transpiler.utils.ast_utils import property_to_func +from ivy.transpiler.utils.conversion_utils import is_builtin_function class FrontendTorchRecurser(BaseRecurser): diff --git a/ivy/transpiler/transformations/transformers/recursive_transformer/ivy_recursive_transformer.py b/ivy/transpiler/transformations/transformers/recursive_transformer/ivy_recursive_transformer.py index 53ee1c3b2188f..1ac904d01c6d1 100644 --- a/ivy/transpiler/transformations/transformers/recursive_transformer/ivy_recursive_transformer.py +++ b/ivy/transpiler/transformations/transformers/recursive_transformer/ivy_recursive_transformer.py @@ -1,31 +1,29 @@ -# global import gast import inspect -import ivy import re -# local -from ....utils.api_utils import ( +import ivy +from ivy.transpiler.transformations import transformer_globals as glob +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.configurations.base_transformer_config import ( + BaseTransformerConfig, +) +from ivy.transpiler.transformations.transformers.recursive_transformer.base_transformer import ( + BaseRecurser, +) +from ivy.transpiler.utils.api_utils import ( get_function_from_modules, is_ivy_functional_api, is_backend_api, is_native_backend_api, SUPPORTED_BACKENDS_PREFIX, ) -from ....utils.ast_utils import ( +from ivy.transpiler.utils.ast_utils import ( property_to_func, ast_to_source_code, ) -from ....utils.origin_utils import ORIGI_INFO -from ....utils.conversion_utils import is_builtin_function -from ..recursive_transformer.base_transformer import ( - BaseRecurser, -) -from ...transformer import Transformer -from ...configurations.base_transformer_config import ( - BaseTransformerConfig, -) -from ... import transformer_globals as glob +from ivy.transpiler.utils.origin_utils import ORIGI_INFO +from ivy.transpiler.utils.conversion_utils import is_builtin_function def func_from_call_node(node): diff --git a/ivy/transpiler/transformations/transformers/recursive_transformer/native_torch_recursive_transformer.py b/ivy/transpiler/transformations/transformers/recursive_transformer/native_torch_recursive_transformer.py index ed1c907879a99..58c722e4aaacb 100644 --- a/ivy/transpiler/transformations/transformers/recursive_transformer/native_torch_recursive_transformer.py +++ b/ivy/transpiler/transformations/transformers/recursive_transformer/native_torch_recursive_transformer.py @@ -1,17 +1,15 @@ -# global import gast import inspect -# local -from ....utils.conversion_utils import is_builtin_function -from ....utils.api_utils import get_function_from_modules -from ..recursive_transformer.base_transformer import ( - BaseRecurser, -) -from ...transformer import Transformer -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.recursive_transformer.base_transformer import ( + BaseRecurser, +) +from ivy.transpiler.utils.api_utils import get_function_from_modules +from ivy.transpiler.utils.conversion_utils import is_builtin_function class NativeTorchRecurser(BaseRecurser): diff --git a/ivy/transpiler/transformations/transformers/rename_transformer/__init__.py b/ivy/transpiler/transformations/transformers/rename_transformer/__init__.py index 12d6f3884b6f0..4ce28414a9ee0 100644 --- a/ivy/transpiler/transformations/transformers/rename_transformer/__init__.py +++ b/ivy/transpiler/transformations/transformers/rename_transformer/__init__.py @@ -1,2 +1,2 @@ -from . import base_transformer -from .base_transformer import BaseRenameTransformer +from ivy.transpiler.transformations.transformers.rename_transformer import base_transformer +from ivy.transpiler.transformations.transformers.rename_transformer.base_transformer import BaseRenameTransformer diff --git a/ivy/transpiler/transformations/transformers/rename_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/rename_transformer/base_transformer.py index f1e0aff2d7f21..89cb4bcfba204 100644 --- a/ivy/transpiler/transformations/transformers/rename_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/rename_transformer/base_transformer.py @@ -1,11 +1,9 @@ -# global import gast -# local -from ...transformers.base_transformer import ( +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ....utils.ast_utils import get_attribute_full_name +from ivy.transpiler.utils.ast_utils import get_attribute_full_name class BaseRenameTransformer(BaseTransformer): diff --git a/ivy/transpiler/transformations/transformers/typing_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/typing_transformer/base_transformer.py index cd5904e37b0ae..390a266ff4942 100644 --- a/ivy/transpiler/transformations/transformers/typing_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/typing_transformer/base_transformer.py @@ -1,12 +1,10 @@ -# global import gast -# local -from ...configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformer import Transformer -from ..base_transformer import ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) diff --git a/ivy/transpiler/translations/configurations/base_translator_config.py b/ivy/transpiler/translations/configurations/base_translator_config.py index b292114815512..f9c6ee7e6f2ae 100644 --- a/ivy/transpiler/translations/configurations/base_translator_config.py +++ b/ivy/transpiler/translations/configurations/base_translator_config.py @@ -1,14 +1,12 @@ -# global from typing import Any, Dict, List -# local -from ...transformations.transformers.base_transformer import ( +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ...transformations.configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...utils.import_utils import load_module_from_path + class BaseTranslatorConfig: _transformers: Dict[str, BaseTransformer] = {} diff --git a/ivy/transpiler/translations/configurations/frontend_to_ivy_translator_config.py b/ivy/transpiler/translations/configurations/frontend_to_ivy_translator_config.py index 42eb483228382..25093f2f083ce 100644 --- a/ivy/transpiler/translations/configurations/frontend_to_ivy_translator_config.py +++ b/ivy/transpiler/translations/configurations/frontend_to_ivy_translator_config.py @@ -1,58 +1,52 @@ -# global from typing import Dict, List -# local -from ...translations.configurations.base_translator_config import ( +from ivy.transpiler.configs.translator import frontend_to_ivy_translator_config_dev as frontend_to_ivy_translator_config +from ivy.transpiler.translations.configurations.base_translator_config import ( BaseTranslatorConfig, ) -from ...transformations.transformers.base_transformer import ( +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ...transformations.transformers.annotation_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.annotation_transformer.base_transformer import ( BaseTypeAnnotationRemover, ) -from ...transformations.transformers.canonicalize_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.canonicalize_transformer.base_transformer import ( BaseNameCanonicalizer, ) -from ...transformations.transformers.globals_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.globals_transformer.base_transformer import ( BaseGlobalsTransformer, ) -from ...transformations.transformers.decorator_transformer.frontend_torch_decorator_transformer import ( +from ivy.transpiler.transformations.transformers.decorator_transformer.frontend_torch_decorator_transformer import ( FrontendTorchDecoratorRemover, ) -from ...transformations.transformers.inject_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.inject_transformer.base_transformer import ( BaseSuperMethodsInjector, ) -from ...transformations.transformers.method_transformer.frontend_torch_method_transformer import ( +from ivy.transpiler.transformations.transformers.method_transformer.frontend_torch_method_transformer import ( FrontendTorchMethodToFunctionConverter, ) -from ...transformations.transformers.postprocessing_transformer.frontend_torch_postprocessing_transformer import ( +from ivy.transpiler.transformations.transformers.postprocessing_transformer.frontend_torch_postprocessing_transformer import ( FrontendTorchCodePostProcessor, ) -from ...transformations.transformers.preprocessing_transformer.frontend_torch_preprocessing_transformer import ( +from ivy.transpiler.transformations.transformers.preprocessing_transformer.frontend_torch_preprocessing_transformer import ( FrontendTorchCodePreProcessor, ) -from ...transformations.transformers.recursive_transformer.frontend_torch_recursive_transformer import ( +from ivy.transpiler.transformations.transformers.recursive_transformer.frontend_torch_recursive_transformer import ( FrontendTorchRecurser, ) -from ...transformations.transformers.typing_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.typing_transformer.base_transformer import ( BaseTypeHintRemover, ) -from ...transformations.configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformations.configurations.frontend_torch_postprocessing_transformer_config import ( +from ivy.transpiler.transformations.configurations.frontend_torch_postprocessing_transformer_config import ( FrontendTorchCodePostProcessorConfig, ) -from ...transformations.transformers.inplace_update_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.inplace_update_transformer.base_transformer import ( BaseInplaceUpdateTransformer, ) -from ...transformations.transformers.profiling_transformer.base_transformer import ( - BaseProfilingTransformer, -) -from ...configs.translator import frontend_to_ivy_translator_config_dev as frontend_to_ivy_translator_config - class FrontendToIvyTranslatorConfig(BaseTranslatorConfig): """Holds the configurations to run the FrontendToIvyTranslator.""" diff --git a/ivy/transpiler/translations/configurations/ivy_to_source_translator_config.py b/ivy/transpiler/translations/configurations/ivy_to_source_translator_config.py index 682111380ce14..84320bca62678 100644 --- a/ivy/transpiler/translations/configurations/ivy_to_source_translator_config.py +++ b/ivy/transpiler/translations/configurations/ivy_to_source_translator_config.py @@ -1,68 +1,66 @@ -# global from typing import Dict, List -# local -from ..configurations.base_translator_config import ( +from ivy.transpiler.configs.translator import ivy_to_source_translator_config_dev as ivy_to_source_translator_config +from ivy.transpiler.translations.configurations.base_translator_config import ( BaseTranslatorConfig, ) -from ...transformations.transformers.base_transformer import ( +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ...transformations.transformers.canonicalize_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.canonicalize_transformer.base_transformer import ( BaseNameCanonicalizer, ) -from ...transformations.transformers.globals_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.globals_transformer.base_transformer import ( BaseGlobalsTransformer, ) -from ...transformations.transformers.deletion_transformer.ivy_deletion_transformer import ( +from ivy.transpiler.transformations.transformers.deletion_transformer.ivy_deletion_transformer import ( IvyNodeDeleter, ) -from ...transformations.transformers.decorator_transformer.ivy_decorator_transformer import ( +from ivy.transpiler.transformations.transformers.decorator_transformer.ivy_decorator_transformer import ( IvyDecoratorRemover, ) -from ...transformations.configurations.base_transformer_config import ( +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...transformations.transformers.docstring_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.docstring_transformer.base_transformer import ( BaseDocstringRemover, ) -from ...transformations.configurations.ivy_recursive_transformer_config import ( +from ivy.transpiler.transformations.configurations.ivy_recursive_transformer_config import ( IvyRecurserConfig, ) -from ...transformations.configurations.ivy_postprocessing_transformer_config import ( +from ivy.transpiler.transformations.configurations.ivy_postprocessing_transformer_config import ( IvyCodePostProcessorConfig, ) -from ...transformations.transformers.method_transformer.ivy_method_transformer import ( +from ivy.transpiler.transformations.transformers.method_transformer.ivy_method_transformer import ( IvyMethodToFunctionConverter, ) -from ...transformations.transformers.dunders_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.dunders_transformer.base_transformer import ( BaseDundersTransformer, ) -from ...transformations.transformers.preprocessing_transformer.ivy_preprocessing_transformer import ( +from ivy.transpiler.transformations.transformers.preprocessing_transformer.ivy_preprocessing_transformer import ( IvyCodePreProcessor, ) -from ...transformations.transformers.postprocessing_transformer.ivy_to_tf_postprocessing_transformer import ( +from ivy.transpiler.transformations.transformers.postprocessing_transformer.ivy_to_tf_postprocessing_transformer import ( IvyToTFCodePostProcessor, ) -from ...transformations.transformers.postprocessing_transformer.ivy_to_jax_postprocessing_transformer import ( +from ivy.transpiler.transformations.transformers.postprocessing_transformer.ivy_to_jax_postprocessing_transformer import ( IvyToJAXCodePostProcessor, ) -from ...transformations.transformers.postprocessing_transformer.ivy_to_numpy_postprocessing_transformer import ( +from ivy.transpiler.transformations.transformers.postprocessing_transformer.ivy_to_numpy_postprocessing_transformer import ( IvyToNumpyCodePostProcessor, ) -from ...transformations.transformers.recursive_transformer.ivy_recursive_transformer import ( +from ivy.transpiler.transformations.transformers.recursive_transformer.ivy_recursive_transformer import ( IvyRecurser, ) -from ...transformations.transformers.native_layers_transformer.ivy_to_tf_native_layer_transformer import ( +from ivy.transpiler.transformations.transformers.native_layers_transformer.ivy_to_tf_native_layer_transformer import ( PytorchToKerasLayer, ) -from ...transformations.transformers.native_layers_transformer.ivy_to_jax_native_layer_transformer import ( +from ivy.transpiler.transformations.transformers.native_layers_transformer.ivy_to_jax_native_layer_transformer import ( PytorchToFlaxLayer, ) -from ...transformations.transformers.miscellaneous_transformers.hf_flax_transformer import ( +from ivy.transpiler.transformations.transformers.miscellaneous_transformers.hf_flax_transformer import ( HFPretrainedFlaxTransformer, ) -from ...configs.translator import ivy_to_source_translator_config_dev as ivy_to_source_translator_config class IvyToSourceTranslatorConfig(BaseTranslatorConfig): diff --git a/ivy/transpiler/translations/configurations/source_to_frontend_translator_config.py b/ivy/transpiler/translations/configurations/source_to_frontend_translator_config.py index 97b87e2c6c50c..b67551f1019dc 100644 --- a/ivy/transpiler/translations/configurations/source_to_frontend_translator_config.py +++ b/ivy/transpiler/translations/configurations/source_to_frontend_translator_config.py @@ -1,56 +1,54 @@ -# global from typing import Dict, List -# local -from ...transformations.configurations.base_transformer_config import ( +from ivy.transpiler.configs.translator import source_to_frontend_translator_config_dev as source_to_frontend_translator_config +from ivy.transpiler.transformations.configurations.base_transformer_config import ( BaseTransformerConfig, ) -from ...translations.configurations.base_translator_config import ( +from ivy.transpiler.translations.configurations.base_translator_config import ( BaseTranslatorConfig, ) -from ...transformations.transformers.deletion_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.deletion_transformer.base_transformer import ( BaseNodeDeleter, ) -from ...transformations.transformers.base_transformer import ( +from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) -from ...transformations.transformers.canonicalize_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.canonicalize_transformer.base_transformer import ( BaseNameCanonicalizer, ) -from ...transformations.transformers.globals_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.globals_transformer.base_transformer import ( BaseGlobalsTransformer, ) -from ...transformations.transformers.decorator_transformer.native_torch_decorator_transformer import ( +from ivy.transpiler.transformations.transformers.decorator_transformer.native_torch_decorator_transformer import ( NativeTorchDecoratorRemover, ) -from ...transformations.transformers.typing_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.typing_transformer.base_transformer import ( BaseTypeHintRemover, ) -from ...transformations.transformers.closure_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.closure_transformer.base_transformer import ( BaseClosureToLocalTransformer, ) -from ...transformations.transformers.docstring_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.docstring_transformer.base_transformer import ( BaseDocstringRemover, ) -from ...transformations.transformers.annotation_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.annotation_transformer.base_transformer import ( BaseTypeAnnotationRemover, ) -from ...transformations.transformers.recursive_transformer.native_torch_recursive_transformer import ( +from ivy.transpiler.transformations.transformers.recursive_transformer.native_torch_recursive_transformer import ( NativeTorchRecurser, ) -from ...transformations.transformers.postprocessing_transformer.native_torch_postprocessing_transformer import ( +from ivy.transpiler.transformations.transformers.postprocessing_transformer.native_torch_postprocessing_transformer import ( NativeTorchCodePostProcessor, ) -from ...transformations.configurations.native_torch_postprocessing_config import ( +from ivy.transpiler.transformations.configurations.native_torch_postprocessing_config import ( NativeTorchCodePostProcessorConfig, ) -from ...transformations.transformers.method_transformer.native_torch_method_transformer import ( +from ivy.transpiler.transformations.transformers.method_transformer.native_torch_method_transformer import ( NativeTorchMethodToFunctionConverter, ) -from ...transformations.transformers.profiling_transformer.base_transformer import ( +from ivy.transpiler.transformations.transformers.profiling_transformer.base_transformer import ( BaseProfilingTransformer, ) -from ...configs.translator import source_to_frontend_translator_config_dev as source_to_frontend_translator_config class SourceToFrontendTranslatorConfig(BaseTranslatorConfig): diff --git a/ivy/transpiler/translations/data/global_like.py b/ivy/transpiler/translations/data/global_like.py index 20bb08c463aa9..e0d3ff50a0cfd 100644 --- a/ivy/transpiler/translations/data/global_like.py +++ b/ivy/transpiler/translations/data/global_like.py @@ -1,14 +1,12 @@ """Main file to hold DTOs to represent globals captured during transformations.""" -# global from __future__ import annotations from typing import Dict import gast from enum import Enum -# local -from ...translations.data.object_like import BaseObjectLike -from ...utils.ast_utils import ( +from ivy.transpiler.translations.data.object_like import BaseObjectLike +from ivy.transpiler.utils.ast_utils import ( ast_to_source_code, TranslatedContext, ) diff --git a/ivy/transpiler/translations/data/object_like.py b/ivy/transpiler/translations/data/object_like.py index a8fb31a0c91e0..34319358c021a 100644 --- a/ivy/transpiler/translations/data/object_like.py +++ b/ivy/transpiler/translations/data/object_like.py @@ -1,6 +1,5 @@ """Main file to hold DTOs for object likes.""" -# global from __future__ import annotations import ivy import dill @@ -8,8 +7,12 @@ from types import FunctionType, MethodType, ModuleType from typing import Dict, Optional, Union, TYPE_CHECKING -# local -from ...utils.api_utils import ( +from ivy.transpiler.exceptions.exceptions import ( + ProhibitedObjectAccessError, + InvalidObjectException, +) +from ivy.transpiler.transformations import transformer_globals as glob +from ivy.transpiler.utils.api_utils import ( TRANSLATED_OBJ_SUFFIX, is_mixed_function, maybe_get_methods, @@ -25,20 +28,15 @@ is_submodule_of, from_conv_block, ) -from ...utils.inspect_utils import ( +from ivy.transpiler.utils.inspect_utils import ( get_closure_vars, object_to_source_code, ) -from ...utils import pickling_utils -from ...utils.type_utils import Types -from ...exceptions.exceptions import ( - ProhibitedObjectAccessError, - InvalidObjectException, -) -from ...transformations import transformer_globals as glob +from ivy.transpiler.utils import pickling_utils +from ivy.transpiler.utils.type_utils import Types if TYPE_CHECKING: - from ...utils.ast_utils import TranslatedContext + from ivy.transpiler.utils.ast_utils import TranslatedContext class BaseObjectLike: diff --git a/ivy/transpiler/translations/translator.py b/ivy/transpiler/translations/translator.py index 4353087bea8e3..f1794a2917606 100644 --- a/ivy/transpiler/translations/translator.py +++ b/ivy/transpiler/translations/translator.py @@ -1,48 +1,46 @@ """Exposes interface for the translators.""" -# global -import ivy +import collections +import importlib import logging +import os from types import FunctionType, MethodType from typing import List, Optional, Union -import os -import importlib -import collections -# local -from ..utils.cache_utils import ( - Cacher, - AtomicCacheUnit, - PRELOAD_CACHE, - cache_sort_key, +import ivy +from ivy.transpiler.exceptions.exceptions import ( + format_missing_frontends_msg, ) -from ..transformations.transformer import Transformer -from ..utils.logging_utils import Logger -from ..utils.naming_utils import NAME_GENERATOR -from ..utils import api_utils -from ..utils.api_utils import get_function_from_modules -from ..translations.data.object_like import ( +from ivy.transpiler.transformations import transformer_globals as glob +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.transformations.transformers.rename_transformer import ( + BaseRenameTransformer, +) +from ivy.transpiler.translations.configurations.base_translator_config import ( + BaseTranslatorConfig, +) +from ivy.transpiler.translations.data.object_like import ( BaseObjectLike, TypeObjectLike, FuncObjectLike, ) -from ..translations.configurations.base_translator_config import ( - BaseTranslatorConfig, +from ivy.transpiler.utils import api_utils +from ivy.transpiler.utils.api_utils import get_function_from_modules +from ivy.transpiler.utils.cache_utils import ( + AtomicCacheUnit, + cache_sort_key, + Cacher, + PRELOAD_CACHE, ) -from ..utils.source_utils import ( +from ivy.transpiler.utils.logging_utils import Logger +from ivy.transpiler.utils.naming_utils import NAME_GENERATOR +from ivy.transpiler.utils.source_utils import ( create_output_dir, format_all_files_in_directory, maybe_add_profiling_imports, maybe_add_profiling_decorators, safe_get_object_from_translated_directory, ) -from ..transformations.transformers.rename_transformer import ( - BaseRenameTransformer, -) -from ..exceptions.exceptions import ( - format_missing_frontends_msg, -) -from ..transformations import transformer_globals as glob class Translator: diff --git a/ivy/transpiler/translators_container.py b/ivy/transpiler/translators_container.py index 36d7a26c96c2b..098e4c14d4d5e 100644 --- a/ivy/transpiler/translators_container.py +++ b/ivy/transpiler/translators_container.py @@ -1,12 +1,10 @@ -# global from types import FunctionType, MethodType from typing import List, Optional, Union -# local -from .translations.translator import Translator -from .configurations_container import ConfigurationsContainer -from .utils.cache_utils import Cacher -from .utils.logging_utils import Logger +from ivy.transpiler.translations.translator import Translator +from ivy.transpiler.configurations_container import ConfigurationsContainer +from ivy.transpiler.utils.cache_utils import Cacher +from ivy.transpiler.utils.logging_utils import Logger class TranslatorsContainer: