From 77f7f5d9cd39d9d8b97bd00e5ce0c633c3e83d31 Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:34:39 +0100 Subject: [PATCH 01/13] switch away from relative imports in main and translators container --- ivy/transpiler/main.py | 24 +++++++++++------------- ivy/transpiler/translators_container.py | 10 ++++------ 2 files changed, 15 insertions(+), 19 deletions(-) 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/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: From 0b7e8d0d43d271b8c2090fdebeee83637f0633a2 Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:38:43 +0100 Subject: [PATCH 02/13] move away from relative imports in other ivy.transpiler files --- ivy/transpiler/__init__.py | 6 ++++-- ivy/transpiler/configurations_container.py | 18 +++++++----------- 2 files changed, 11 insertions(+), 13 deletions(-) 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: From 8e838f3e0ee1b207a44dcf0eed854cf3a60e6fae Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:42:49 +0100 Subject: [PATCH 03/13] switch away from relative imports in transformations configurations --- .../frontend_torch_postprocessing_transformer_config.py | 7 ++----- .../ivy_postprocessing_transformer_config.py | 7 ++----- .../configurations/ivy_recursive_transformer_config.py | 7 ++----- .../configurations/native_torch_postprocessing_config.py | 7 ++----- 4 files changed, 8 insertions(+), 20 deletions(-) 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: From 68a358c5835cb048af37fc7e56a50f1b97aa5412 Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:50:45 +0100 Subject: [PATCH 04/13] switch away from relative imports in first transformers --- ivy/transpiler/transformations/transformer.py | 34 ++++++++----------- .../base_transformer.py | 7 ++-- .../base_transformer.py | 20 +++++------ 3 files changed, 27 insertions(+), 34 deletions(-) diff --git a/ivy/transpiler/transformations/transformer.py b/ivy/transpiler/transformations/transformer.py index d6a9a5ac2826e..d3980fb7524bf 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.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 +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 - 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 From 6f4bb76ff78641111778e9dd94af68b94e12f37e Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 00:37:32 +0100 Subject: [PATCH 05/13] more refactors --- .../globals_transformer/base_transformer.py | 24 +++++++++---------- .../inject_transformer/base_transformer.py | 16 ++++++------- .../base_transformer.py | 13 +++++----- .../method_transformer/base_transformer.py | 7 +++--- .../frontend_torch_method_transformer.py | 20 +++++++--------- .../ivy_method_transformer.py | 22 ++++++++--------- .../native_torch_method_transformer.py | 14 +++++------ 7 files changed, 52 insertions(+), 64 deletions(-) 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..5c008b84938f0 100644 --- a/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py @@ -1,23 +1,21 @@ -# 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 ( +from ivy.transpiler.transformations.transformer import Transformer +from ivy.transpiler.utils import pickling_utils +from ivy.transpiler.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.utils.origin_utils import ORIGI_INFO +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, ) 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..3f4b49166e118 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,20 @@ -# 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..8a6baf5d2055a 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.transformer_globals import CONFLICTING_METHODS class FrontendTorchMethodToFunctionConverter(BaseMethodToFunctionConverter): @@ -90,7 +88,7 @@ def visit_Attribute(self, node): node = new_call # add the transformed method to the CONFLICTING_METHODS set - glob.CONFLICTING_METHODS.add(right) + CONFLICTING_METHODS.add(right) return node @@ -163,7 +161,7 @@ def visit_Call(self, node): new_node = gast.Call(func=new_func, args=new_args, keywords=node.keywords) # add the transformed method to the CONFLICTING_METHODS set - glob.CONFLICTING_METHODS.add(right) + CONFLICTING_METHODS.add(right) """ Motivating example for using the @handle_methods decorator. 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..0343d8a2fd71f 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.transformer_globals import CONFLICTING_METHODS class IvyMethodToFunctionConverter(BaseMethodToFunctionConverter): @@ -107,7 +105,7 @@ def visit_Attribute(self, node): node = new_call # add the transformed method to the CONFLICTING_METHODS set - glob.CONFLICTING_METHODS.add(right) + CONFLICTING_METHODS.add(right) return node @@ -176,7 +174,7 @@ def visit_Call(self, node): new_node = gast.Call(func=new_func, args=new_args, keywords=node.keywords) # add the transformed method to the CONFLICTING_METHODS set - glob.CONFLICTING_METHODS.add(right) + CONFLICTING_METHODS.add(right) return new_node 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, ) From 860dcf219bb6bb622cd081985d6a4d61629f1d1c Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 00:39:15 +0100 Subject: [PATCH 06/13] more refactors --- .../closure_transformer/base_transformer.py | 8 ++++---- .../decorator_transformer/base_transformer.py | 15 ++++++--------- .../frontend_torch_decorator_transformer.py | 3 --- .../ivy_decorator_transformer.py | 3 --- .../native_torch_decorator_transformer.py | 3 --- 5 files changed, 10 insertions(+), 22 deletions(-) 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, ) From 8416149145601f14e90a60ebd5f1d8ab2eaec8f3 Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 00:40:07 +0100 Subject: [PATCH 07/13] more refactors --- .../deletion_transformer/base_transformer.py | 10 +++++----- .../deletion_transformer/ivy_deletion_transformer.py | 10 +++++----- .../docstring_transformer/base_transformer.py | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) 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, ) From d1c467fb3ef246b8069eba1d77cf4517e3d916f5 Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 00:44:51 +0100 Subject: [PATCH 08/13] more refactors --- .../dunders_transformer/base_transformer.py | 25 ++++++++----------- .../inject_transformer/base_transformer.py | 12 ++++----- .../base_transformer.py | 1 - .../hf_flax_transformer.py | 14 ++++------- 4 files changed, 21 insertions(+), 31 deletions(-) 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/inject_transformer/base_transformer.py b/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py index 5c008b84938f0..841f6ddce3a68 100644 --- a/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py +++ b/ivy/transpiler/transformations/transformers/inject_transformer/base_transformer.py @@ -6,18 +6,18 @@ BaseTransformerConfig, ) from ivy.transpiler.transformations.transformer import Transformer -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 from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) 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 3f4b49166e118..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,4 +1,3 @@ - import copy import gast import re 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): From 8c6deeb0e27c66891b1aaf8e9d81b49c005eac8e Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 00:47:22 +0100 Subject: [PATCH 09/13] fix: globals import issue --- .../method_transformer/frontend_torch_method_transformer.py | 6 +++--- .../method_transformer/ivy_method_transformer.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) 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 8a6baf5d2055a..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 @@ -25,7 +25,7 @@ MODULE_TO_ALIAS, get_function_vars, ) -from ivy.transpiler.transformations.transformer_globals import CONFLICTING_METHODS +from ivy.transpiler.transformations import transformer_globals as glob class FrontendTorchMethodToFunctionConverter(BaseMethodToFunctionConverter): @@ -88,7 +88,7 @@ def visit_Attribute(self, node): node = new_call # add the transformed method to the CONFLICTING_METHODS set - CONFLICTING_METHODS.add(right) + glob.CONFLICTING_METHODS.add(right) return node @@ -161,7 +161,7 @@ def visit_Call(self, node): new_node = gast.Call(func=new_func, args=new_args, keywords=node.keywords) # add the transformed method to the CONFLICTING_METHODS set - CONFLICTING_METHODS.add(right) + glob.CONFLICTING_METHODS.add(right) """ Motivating example for using the @handle_methods decorator. 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 0343d8a2fd71f..1f9a648ac6a1c 100644 --- a/ivy/transpiler/transformations/transformers/method_transformer/ivy_method_transformer.py +++ b/ivy/transpiler/transformations/transformers/method_transformer/ivy_method_transformer.py @@ -26,7 +26,7 @@ MODULE_TO_ALIAS, get_function_vars, ) -from ivy.transpiler.transformations.transformer_globals import CONFLICTING_METHODS +from ivy.transpiler.transformations import transformer_globals as glob class IvyMethodToFunctionConverter(BaseMethodToFunctionConverter): @@ -105,7 +105,7 @@ def visit_Attribute(self, node): node = new_call # add the transformed method to the CONFLICTING_METHODS set - CONFLICTING_METHODS.add(right) + glob.CONFLICTING_METHODS.add(right) return node @@ -174,7 +174,7 @@ def visit_Call(self, node): new_node = gast.Call(func=new_func, args=new_args, keywords=node.keywords) # add the transformed method to the CONFLICTING_METHODS set - CONFLICTING_METHODS.add(right) + glob.CONFLICTING_METHODS.add(right) return new_node From f11c051f494db5db78ec5f2039419d5b628eb684 Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 00:56:57 +0100 Subject: [PATCH 10/13] more refactors --- .../base_transformer.py | 14 ++++++------- .../ivy_to_jax_native_layer_transformer.py | 3 ++- .../ivy_to_tf_native_layer_transformer.py | 3 ++- .../base_transformer.py | 7 +++---- ...ontend_torch_postprocessing_transformer.py | 13 +++++------- .../ivy_postprocessing_transformer.py | 18 ++++++++--------- .../ivy_to_jax_postprocessing_transformer.py | 17 +++++++--------- ...ivy_to_numpy_postprocessing_transformer.py | 19 ++++++++---------- .../ivy_to_tf_postprocessing_transformer.py | 20 +++++++++---------- ...native_torch_postprocessing_transformer.py | 14 ++++++------- 10 files changed, 57 insertions(+), 71 deletions(-) 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): From 13230bdc59276457a38bac3124ccf93897a6c981 Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 01:02:23 +0100 Subject: [PATCH 11/13] more refactors --- .../base_transformer.py | 7 ++--- ...rontend_torch_preprocessing_transformer.py | 8 ++---- .../ivy_preprocessing_transformer.py | 10 +++---- .../profiling_transformer/base_transformer.py | 8 ++---- .../frontend_torch_recursive_transformer.py | 26 ++++++++--------- .../ivy_recursive_transformer.py | 28 +++++++++---------- .../native_torch_recursive_transformer.py | 16 +++++------ 7 files changed, 44 insertions(+), 59 deletions(-) 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): From 19d4e5e15e962123d9b4bc0b69f605b07d1ea68f Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 01:05:37 +0100 Subject: [PATCH 12/13] more refactors --- ivy/transpiler/transformations/transformer.py | 8 ++++---- .../transformers/rename_transformer/__init__.py | 4 ++-- .../transformers/rename_transformer/base_transformer.py | 6 ++---- .../transformers/typing_transformer/base_transformer.py | 8 +++----- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/ivy/transpiler/transformations/transformer.py b/ivy/transpiler/transformations/transformer.py index d3980fb7524bf..4b75b0f486d05 100644 --- a/ivy/transpiler/transformations/transformer.py +++ b/ivy/transpiler/transformations/transformer.py @@ -7,10 +7,6 @@ from ivy.transpiler.translations.configurations.base_translator_config import ( BaseTranslatorConfig, ) -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 from ivy.transpiler.transformations.transformers.base_transformer import ( BaseTransformer, ) @@ -20,6 +16,10 @@ from ivy.transpiler.transformations.transformers.rename_transformer import ( BaseRenameTransformer, ) +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 ivy.transpiler.transformations.transformers.globals_transformer.base_transformer import ( 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, ) From 36588ccbc4062bdc70156c733cd9be1394ec5631 Mon Sep 17 00:00:00 2001 From: Sam Armstrong <88863522+Sam-Armstrong@users.noreply.github.com> Date: Sun, 8 Jun 2025 01:13:55 +0100 Subject: [PATCH 13/13] more refactors --- .../configurations/base_translator_config.py | 8 ++- .../frontend_to_ivy_translator_config.py | 38 ++++++-------- .../ivy_to_source_translator_config.py | 44 ++++++++-------- .../source_to_frontend_translator_config.py | 36 ++++++------- .../translations/data/global_like.py | 6 +-- .../translations/data/object_like.py | 22 ++++---- ivy/transpiler/translations/translator.py | 52 +++++++++---------- 7 files changed, 94 insertions(+), 112 deletions(-) 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: