"""Backward compatible module for omni.graph. version 1.33 and earlier.
This module contains everything that was formerly visible by default but will no longer be part of the Python API
for omni.graph. If there is something here you rely on contact the OmniGraph team and let them know.

Currently the module is in pre-deprecation, meaning you can still access everything here from the main module with

.. code-block:: python

    import omni.graph. as og

    og.pre_deprecated_but_still_visible()

Once the soft deprecation is enabled you will only be able to access the deprecated function with an explicit import:

.. code-block:: python

    import omni.graph. as og
    import omni.graph._1_33 as og1_33

    if i_want_v1_33:
        og1_33.soft_deprecated_but_still_accessible()
    else:
        og.current_function()

When hard deprecation is in place all functionality will be removed and import of this module will fail:

.. code-block:: python

    import omni.graph._1_33 as ot1_33
    # Raises DeprecationError
"""
from omni.graph.tools._impl.deprecate import (
    DeprecatedClass,
    DeprecatedImport,
    DeprecateMessage,
    RenamedClass,
    deprecated_function,
)
from omni.graph.tools.ogn import MetadataKeys

# ==============================================================================================================
# Everything below here is deprecated, kept around for backward compatibility for one version.
#   _____   ______  _____   _____   ______  _____         _______  ______  _____
#  |  __ \ |  ____||  __ \ |  __ \ |  ____|/ ____|    /\ |__   __||  ____||  __ \
#  | |  | || |__   | |__) || |__) || |__  | |        /  \   | |   | |__   | |  | |
#  | |  | ||  __|  |  ___/ |  _  / |  __| | |       / /\ \  | |   |  __|  | |  | |
#  | |__| || |____ | |     | | \ \ | |____| |____  / ____ \ | |   | |____ | |__| |
#  |_____/ |______||_|     |_|  \_\|______|\_____|/_/    \_\|_|   |______||_____/
#
from ._impl.attribute_types import extract_attribute_type_information, get_attribute_configuration
from ._impl.helpers import graph_iterator
from ._impl.object_lookup import ObjectLookup as _ObjectLookup
from ._impl.performance import OmniGraphPerformance
from ._impl.topology_commands import ConnectAttrsCommand as _ConnectAttrs
from ._impl.topology_commands import ConnectPrimCommand as _ConnectPrim
from ._impl.topology_commands import CreateAttrCommand as _CreateAttr
from ._impl.topology_commands import CreateGraphAsNodeCommand as _CreateGraphAsNode
from ._impl.topology_commands import CreateNodeCommand as _CreateNode
from ._impl.topology_commands import CreateSubgraphCommand as _CreateSubgraph
from ._impl.topology_commands import CreateVariableCommand as _CreateVariable
from ._impl.topology_commands import DeleteNodeCommand as _DeleteNode
from ._impl.topology_commands import DisconnectAllAttrsCommand as _DisconnectAllAttrs
from ._impl.topology_commands import DisconnectAttrsCommand as _DisconnectAttrs
from ._impl.topology_commands import DisconnectPrimCommand as _DisconnectPrim
from ._impl.topology_commands import RemoveAttrCommand as _RemoveAttr
from ._impl.topology_commands import RemoveVariableCommand as _RemoveVariable
from ._impl.utils import is_attribute_plain_data, temporary_setting
from ._impl.v1_5_0.context_helper import ContextHelper
from ._impl.v1_5_0.omnigraph_helper import (
    BundledAttribute_t,
    ConnectData_t,
    ConnectDatas_t,
    CreateNodeData_t,
    CreateNodeDatas_t,
    CreatePrimData_t,
    CreatePrimDatas_t,
    DeleteNodeData_t,
    DeleteNodeDatas_t,
    DisconnectData_t,
    DisconnectDatas_t,
    OmniGraphHelper,
    SetValueData_t,
    SetValueDatas_t,
)
from ._impl.v1_5_0.replaced_functions import attribute_type_from_ogn_type_name, attribute_type_from_usd_type_name
from ._impl.v1_5_0.update_file_format import can_set_use_schema_prims_setting, update_to_include_schema
from ._impl.v1_5_0.utils import (
    ALLOW_IMPLICIT_GRAPH_SETTING,
    ATTRIBUTE_TYPE_HINTS,
    ATTRIBUTE_TYPE_TYPE_HINTS,
    DISABLE_PRIM_NODES_SETTING,
    ENABLE_LEGACY_PRIM_CONNECTIONS,
    EXTENDED_ATTRIBUTE_TYPE_HINTS,
    NODE_TYPE_HINTS,
    USE_SCHEMA_PRIMS_SETTING,
)
from ._impl.value_commands import DisableGraphCommand as _DisableGraph
from ._impl.value_commands import DisableGraphUSDHandlerCommand as _DisableGraphUSDHandler
from ._impl.value_commands import DisableNodeCommand as _DisableNode
from ._impl.value_commands import EnableGraphCommand as _EnableGraph
from ._impl.value_commands import EnableGraphUSDHandlerCommand as _EnableGraphUSDHandler
from ._impl.value_commands import EnableNodeCommand as _EnableNode
from ._impl.value_commands import RenameNodeCommand as _RenameNode
from ._impl.value_commands import RenameSubgraphCommand as _RenameSubgraph
from ._impl.value_commands import SetAttrCommand as _SetAttr
from ._impl.value_commands import SetAttrDataCommand as _SetAttrData
from ._impl.value_commands import SetVariableTooltipCommand as _SetVariableTooltip

__all__ = [
    "ALLOW_IMPLICIT_GRAPH_SETTING",
    "attribute_type_from_ogn_type_name",
    "attribute_type_from_usd_type_name",
    "ATTRIBUTE_TYPE_HINTS",
    "ATTRIBUTE_TYPE_TYPE_HINTS",
    "BundledAttribute_t",
    "can_set_use_schema_prims_setting",
    "ConnectAttrsCommand",
    "ConnectData_t",
    "ConnectDatas_t",
    "ConnectPrimCommand",
    "ContextHelper",
    "CreateAttrCommand",
    "CreateGraphAsNodeCommand",
    "CreateNodeCommand",
    "CreateNodeData_t",
    "CreateNodeDatas_t",
    "CreatePrimData_t",
    "CreatePrimDatas_t",
    "CreateSubgraphCommand",
    "CreateVariableCommand",
    "DeleteNodeCommand",
    "DeleteNodeData_t",
    "DeleteNodeDatas_t",
    "deprecated_function",
    "DeprecatedClass",
    "DeprecatedImport",
    "DeprecateMessage",
    "DISABLE_PRIM_NODES_SETTING",
    "DisableGraphCommand",
    "DisableGraphUSDHandlerCommand",
    "DisableNodeCommand",
    "DisconnectAllAttrsCommand",
    "DisconnectAttrsCommand",
    "DisconnectData_t",
    "DisconnectDatas_t",
    "DisconnectPrimCommand",
    "ENABLE_LEGACY_PRIM_CONNECTIONS",
    "EnableGraphCommand",
    "EnableGraphUSDHandlerCommand",
    "EnableNodeCommand",
    "EXTENDED_ATTRIBUTE_TYPE_HINTS",
    "extract_attribute_type_information",
    "get_attribute_configuration",
    "graph_iterator",
    "is_attribute_plain_data",
    "MetadataKeys",
    "NODE_TYPE_HINTS",
    "OmniGraphHelper",
    "OmniGraphPerformance",
    "OmniGraphTypes",
    "RemoveAttrCommand",
    "RemoveVariableCommand",
    "RenamedClass",
    "RenameNodeCommand",
    "RenameSubgraphCommand",
    "SetAttrCommand",
    "SetAttrDataCommand",
    "SetValueData_t",
    "SetValueDatas_t",
    "SetVariableTooltipCommand",
    "temporary_setting",
    "update_to_include_schema",
    "USE_SCHEMA_PRIMS_SETTING",
]

ConnectAttrsCommand = RenamedClass(
    _ConnectAttrs, "ConnectAttrsCommand", "import omni.graph.core as og; og.cmds.ConnectAttrs"
)
ConnectPrimCommand = RenamedClass(
    _ConnectPrim, "ConnectPrimCommand", "import omni.graph.core as og; og.cmds.ConnectPrim"
)
CreateAttrCommand = RenamedClass(_CreateAttr, "CreateAttrCommand", "import omni.graph.core as og; og.cmdsCreateAttr")
CreateGraphAsNodeCommand = RenamedClass(
    _CreateGraphAsNode, "CreateGraphAsNodeCommand", "import omni.graph.core as og; og.cmds.CreateGraphAsNode"
)
CreateNodeCommand = RenamedClass(_CreateNode, "CreateNodeCommand", "import omni.graph.core as og; og.cmds.CreateNode")
CreateSubgraphCommand = RenamedClass(
    _CreateSubgraph, "CreateSubgraphCommand", "import omni.graph.core as og; og.cmds.CreateSubgraph"
)
CreateVariableCommand = RenamedClass(
    _CreateVariable, "CreateVariableCommand", "import omni.graph.core as og; og.cmds.CreateVariable"
)
DeleteNodeCommand = RenamedClass(_DeleteNode, "DeleteNodeCommand", "import omni.graph.core as og; og.cmds.DeleteNode")
DisableGraphCommand = RenamedClass(
    _DisableGraph, "DisableGraphCommand", "import omni.graph.core as og; og.cmds.DisableGraph"
)
DisableGraphUSDHandlerCommand = RenamedClass(
    _DisableGraphUSDHandler,
    "DisableGraphUSDHandlerCommand",
    "import omni.graph.core as og; og.cmds.DisableGraphUSDHandler",
)
DisableNodeCommand = RenamedClass(
    _DisableNode, "DisableNodeCommand", "import omni.graph.core as og; og.cmds.DisableNode"
)
DisconnectAllAttrsCommand = RenamedClass(
    _DisconnectAllAttrs, "DisconnectAllAttrsCommand", "import omni.graph.core as og; og.cmds.DisconnectAllAttrs"
)
DisconnectAttrsCommand = RenamedClass(
    _DisconnectAttrs, "DisconnectAttrsCommand", "import omni.graph.core as og; og.cmds.DisconnectAttrs"
)
DisconnectPrimCommand = RenamedClass(
    _DisconnectPrim, "DisconnectPrimCommand", "import omni.graph.core as og; og.cmds.DisconnectPrim"
)
EnableGraphCommand = RenamedClass(
    _EnableGraph, "EnableGraphCommand", "import omni.graph.core as og; og.cmds.EnableGraph"
)
EnableGraphUSDHandlerCommand = RenamedClass(
    _EnableGraphUSDHandler,
    "EnableGraphUSDHandlerCommand",
    "import omni.graph.core as og; og.cmds.EnableGraphUSDHandler",
)
EnableNodeCommand = RenamedClass(_EnableNode, "EnableNodeCommand", "import omni.graph.core as og; og.cmds.EnableNode")
OmniGraphTypes = RenamedClass(_ObjectLookup, "OmniGraphTypes")
RemoveAttrCommand = RenamedClass(_RemoveAttr, "RemoveAttrCommand", "import omni.graph.core as og; og.cmds.RemoveAttr")
RemoveVariableCommand = RenamedClass(
    _RemoveVariable, "RemoveVariableCommand", "import omni.graph.core as og; og.cmds.RemoveVariable"
)
RenameNodeCommand = RenamedClass(_RenameNode, "RenameNodeCommand", "import omni.graph.core as og; og.cmds.RenameNode")
RenameSubgraphCommand = RenamedClass(
    _RenameSubgraph, "RenameSubgraphCommand", "import omni.graph.core as og; og.cmds.RenameSubgraph"
)
SetAttrCommand = RenamedClass(_SetAttr, "SetAttrCommand", "import omni.graph.core as og; og.cmds.SetAttr")
SetAttrDataCommand = RenamedClass(
    _SetAttrData, "SetAttrDataCommand", "import omni.graph.core as og; og.cmds.SetAttrData"
)
SetVariableTooltipCommand = RenamedClass(
    _SetVariableTooltip, "SetVariableTooltipCommand", "import omni.graph.core as og; og.cmds.SetVariableTooltip"
)
