Skip to content
Open
6 changes: 4 additions & 2 deletions ivy/transpiler/__init__.py
Original file line number Diff line number Diff line change
@@ -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"]
18 changes: 7 additions & 11 deletions ivy/transpiler/configurations_container.py
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
24 changes: 11 additions & 13 deletions ivy/transpiler/main.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -16,35 +16,33 @@
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,
)

TARGET = "tensorflow"


# Helpers #
# ------- #


def _animate(stop_animation, animation_str):
"""
Displays ellipsis animation during transpilation.
Expand Down
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
Original file line number Diff line number Diff line change
@@ -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:
Expand Down
34 changes: 15 additions & 19 deletions ivy/transpiler/transformations/transformer.py
Original file line number Diff line number Diff line change
@@ -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):
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
)

Expand Down
Original file line number Diff line number Diff line change
@@ -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,
Expand All @@ -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):
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
)

Expand Down
Original file line number Diff line number Diff line change
@@ -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):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# global

# local
from ivy.transpiler.transformations.configurations.base_transformer_config import (
BaseTransformerConfig,
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# global

# local
from ivy.transpiler.transformations.configurations.base_transformer_config import (
BaseTransformerConfig,
)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# global

# local
from ivy.transpiler.transformations.configurations.base_transformer_config import (
BaseTransformerConfig,
)
Expand Down
Original file line number Diff line number Diff line change
@@ -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):
Expand Down
Original file line number Diff line number Diff line change
@@ -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):
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
)

Expand Down
Loading
Loading