# ruff: noqa: E741 -- Allow ambiguous variable name
import typing
import warnings
from dataclasses import dataclass
from collections.abc import Iterable, Sequence
from typing import (
    Any,
    Callable,
    Optional,
    Union,
)
from typing import cast as typing_cast

import numpy as np
import numpy.typing as npt

from spox._var import Var, _VarInfo, result_type, unwrap_vars, get_value, create_prop_dict
from spox._fields import BaseAttributes, BaseInputs, BaseOutputs
from spox._attributes import (
    AttrDtype,
    AttrFloat32,
    AttrFloat32s,
    AttrGraph,
    AttrInt64,
    AttrInt64s,
    AttrString,
    AttrStrings,
    AttrTensor,
    AttrType,
)
from spox._graph import Graph, subgraph
from spox._internal_op import intro
from spox._node import OpType
from spox._standard import InferenceError, StandardNode
from spox._type_system import Tensor, Type, Sequence as SpoxSequence
from spox._type_inference_utils import loop_erase_shape_info
from spox._value_prop import PropValueType, PropDict
from spox._shape import Shape

