# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/00_core.ipynb.

# %% auto 0
__all__ = []

# %% ../nbs/00_core.ipynb 4
# from abc import ABC, ABCMeta, abstractmethod
# from inspect import FrameInfo
# import re, string

# from typing import Any, Dict, List, Set, Tuple, Literal
# from typing import Union, Optional
# from typing import Type, TypeVar, Generic, TypeGuard, TypeAlias

# %% ../nbs/00_core.ipynb 5
# import torch
# from torch.optim import Optimizer
# from torch.nn.modules.loss import _Loss
# from torch.nn import Module

# %% ../nbs/00_core.ipynb 6
from littyping.aliases import (
    Obj, Class, DeviceObj, Bool, Tensor,
    Number, Int, Int8, Int16, Int32, Int64,
    UInt, UInt8, Short, Long, Float, Float16,
    Float32, Float64, Half, Single, Double,
    Complex, Complex32, Complex64, Complex128,
    String
)
from .constants import (DTYPES, KNOWN_DTYPES, KNOWN_DEVICES)
from .guards import guard_type
from .pttype import (PTMeta, PTType)
from .dtype import (DType, DTypeMeta)
from littyping.device import (
    Device, DeviceMeta, 
    DeviceCPU, DeviceCUDA, DeviceIPU, DeviceXPU, DeviceMKLDNN, DeviceOpenGL, DeviceOpenCL, 
    DeviceIDEEP, DeviceHIP, DeviceVE, DeviceFPGA, DeviceORT, DeviceXLA, DeviceLazy, 
    DeviceVulkan, DeviceMPS, DeviceMETA, DeviceHPU, DevicePrivateUseOne,
)
from .shape import (Shape, ShapeMeta)
from .dims import (Dims, DimsMeta)
from .named_dims import (NamedDims, NamedDimsMeta, )
from .tensor import (PTTensor, PTTensorMeta,)
from .batched import (Batched, BatchedQ, BatchedMeta, BatchedQMeta,)
