blob: 892a3b7ddca10aadb7e9855c0b6a127069110871 [file]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
"""Typestubs for Cython."""
from __future__ import annotations
import types
from ctypes import c_void_p
from enum import IntEnum
from typing import Any, Callable
# Public module-level variables referenced by Python code
MISSING: Object
KWARGS: Object
ERROR_NAME_TO_TYPE: dict[str, type]
ERROR_TYPE_TO_NAME: dict[type, str]
_WITH_APPEND_BACKTRACE: Callable[[BaseException, str], BaseException] | None
_TRACEBACK_TO_BACKTRACE_STR: Callable[[types.TracebackType | None], str] | None
# DLPack protocol version (defined in tensor.pxi)
__dlpack_version__: tuple[int, int]
class CObject:
def __ctypes_handle__(self) -> Any: ...
def __chandle__(self) -> int: ...
@property
def id_(self) -> int: ...
def __reduce__(self) -> Any: ...
def __getstate__(self) -> dict[str, Any]: ...
def __setstate__(self, state: dict[str, Any]) -> None: ...
def __repr__(self) -> str: ...
def __eq__(self, other: Any) -> bool: ...
def __ne__(self, other: Any) -> bool: ...
def __hash__(self) -> int: ...
def __init_handle_by_constructor__(self, fconstructor: Any, *args: Any) -> None: ...
def same_as(self, other: Any) -> bool: ...
def is_(self, other: Any) -> bool: ...
def _move(self) -> ObjectRValueRef: ...
def __move_handle_from__(self, other: CObject) -> None: ...
class CContainerBase(CObject): ...
class Object(CObject): ...
def object_repr(obj: CObject) -> str: ...
class ObjectConvertible:
def asobject(self) -> Object: ...
class ObjectRValueRef:
obj: Object
def __init__(self, obj: Object) -> None: ...
class OpaquePyObject(Object):
def pyobject(self) -> Any: ...
class PyNativeObject:
__slots__: list[str]
def __init_cached_object_by_constructor__(self, fconstructor: Any, *args: Any) -> None: ...
def _register_object_by_index(type_index: int, type_cls: type) -> TypeInfo: ...
def _object_type_key_to_index(type_key: str) -> int | None: ...
def _set_type_cls(type_info: TypeInfo, type_cls: type) -> None: ...
def _lookup_or_register_type_info_from_type_key(type_key: str) -> TypeInfo: ...
def _lookup_type_attr(type_index: int, attr_key: str) -> Any: ...
def _register_type_attr(type_index: int, attr_key: str, value: Any) -> None: ...
def _type_cls_to_type_info(type_cls: type) -> TypeInfo | None: ...
class Error(Object):
def __init__(self, kind: str, message: str, backtrace: str) -> None: ...
def update_backtrace(self, backtrace: str) -> None: ...
def py_error(self) -> BaseException: ...
@property
def kind(self) -> str: ...
@property
def message(self) -> str: ...
@property
def backtrace(self) -> str: ...
def _convert_to_ffi_error(error: BaseException) -> Error: ...
def _env_set_current_stream(
device_type: int, device_id: int, stream: int | c_void_p
) -> int | c_void_p: ...
def _env_get_current_stream(device_type: int, device_id: int) -> int: ...
class DataType:
def __init__(self, dtype_str: str) -> None: ...
def __reduce__(self) -> Any: ...
def __eq__(self, other: Any) -> bool: ...
def __ne__(self, other: Any) -> bool: ...
@property
def type_code(self) -> int: ...
@property
def bits(self) -> int: ...
@property
def lanes(self) -> int: ...
@property
def itemsize(self) -> int: ...
def __str__(self) -> str: ...
def _set_class_dtype(cls: type) -> None: ...
def _convert_torch_dtype_to_ffi_dtype(torch_dtype: Any) -> DataType: ...
def _convert_numpy_dtype_to_ffi_dtype(numpy_dtype: Any) -> DataType: ...
def _create_cdtype_from_tuple(
cls: type[DataType], code: int, bits: int, lanes: int
) -> DataType: ...
class DLDeviceType(IntEnum):
kDLCPU = 1
kDLCUDA = 2
kDLCUDAHost = 3
kDLOpenCL = 4
kDLVulkan = 7
kDLMetal = 8
kDLVPI = 9
kDLROCM = 10
kDLROCMHost = 11
kDLExtDev = 12
kDLCUDAManaged = 13
kDLOneAPI = 14
kDLWebGPU = 15
kDLHexagon = 16
kDLTrn = 17
class Device:
def __init__(self, device_type: str | int, index: int | None = None) -> None: ...
def __reduce__(self) -> Any: ...
def __eq__(self, other: Any) -> bool: ...
def __ne__(self, other: Any) -> bool: ...
def __str__(self) -> str: ...
def __repr__(self) -> str: ...
def __hash__(self) -> int: ...
def __device_type_name__(self) -> str: ...
@property
def type(self) -> str: ...
@property
def index(self) -> int: ...
def dlpack_device_type(self) -> int: ...
def _set_class_device(cls: type) -> None: ...
_CLASS_DEVICE: type[Device]
def _shape_obj_get_py_tuple(obj: Any) -> tuple[int, ...]: ...
class Tensor(Object):
@property
def shape(self) -> tuple[int, ...]: ...
@property
def strides(self) -> tuple[int, ...]: ...
@property
def dtype(self) -> Any: ...
@property
def device(self) -> Device: ...
def _to_dlpack(self) -> Any: ...
def _to_dlpack_versioned(self) -> Any: ...
def __dlpack_device__(self) -> tuple[int, int]: ...
def __dlpack__(
self,
*,
stream: Any | None = None,
max_version: tuple[int, int] | None = None,
dl_device: tuple[int, int] | None = None,
copy: bool | None = None,
) -> Any: ...
_CLASS_TENSOR: type[Tensor] = Tensor
def _set_class_tensor(cls: type[Tensor]) -> None: ...
def from_dlpack(
ext_tensor: Any, *, require_alignment: int = ..., require_contiguous: bool = ...
) -> Tensor: ...
class DLTensorTestWrapper:
__dlpack_c_exchange_api__: int
def __init__(self, tensor: Tensor) -> None: ...
def __tvm_ffi_env_stream__(self) -> int: ...
def __dlpack_device__(self) -> tuple[int, int]: ...
def __dlpack__(self, **kwargs: Any) -> Any: ...
def _dltensor_test_wrapper_c_dlpack_from_pyobject_as_intptr() -> int: ...
class Function(Object):
@property
def release_gil(self) -> bool: ...
@release_gil.setter
def release_gil(self, value: bool) -> None: ...
def __call__(self, *args: Any) -> Any: ...
@staticmethod
def __from_extern_c__(c_symbol: int, *, keep_alive_object: Any | None = None) -> Function: ...
@staticmethod
def __from_mlir_packed_safe_call__(
mlir_packed_symbol: int, *, keep_alive_object: Any | None = None
) -> Function: ...
def _register_global_func(
name: str, pyfunc: Callable[..., Any] | Function, override: bool
) -> Function: ...
def _get_global_func(name: str, allow_missing: bool) -> Function | None: ...
def _convert_to_ffi_func(pyfunc: Callable[..., Any], tensor_cls: type | None = ...) -> Function: ...
def _convert_to_opaque_object(pyobject: Any) -> OpaquePyObject: ...
def _print_debug_info() -> None: ...
def _register_py_class(parent_type_info: TypeInfo, type_key: str, type_cls: type) -> TypeInfo: ...
def _register_fields(type_info: TypeInfo, fields: list[Any]) -> list[TypeField]: ...
class String(str, PyNativeObject):
__slots__ = ["_tvm_ffi_cached_object"]
_tvm_ffi_cached_object: Object | None
def __new__(cls, value: str) -> String: ...
# pylint: disable=no-self-argument
def __from_tvm_ffi_object__(cls, obj: Any) -> String: ...
class Bytes(bytes, PyNativeObject):
__slots__ = ["_tvm_ffi_cached_object"]
_tvm_ffi_cached_object: Object | None
def __new__(cls, value: bytes) -> Bytes: ...
# pylint: disable=no-self-argument
def __from_tvm_ffi_object__(cls, obj: Any) -> Bytes: ...
# ---------------------------------------------------------------------------
# Owned FFI value container (from cython/object.pxi)
# ---------------------------------------------------------------------------
class CAny:
def __init__(self, value: Any = None) -> None: ...
@property
def type_index(self) -> int: ...
def _to_py_class_value(value: CAny) -> Any: ...
# ---------------------------------------------------------------------------
# Type reflection metadata (from cython/type_info.pxi)
# ---------------------------------------------------------------------------
class TypeSchema:
origin: str
args: tuple[TypeSchema, ...] = ()
origin_type_index: int
def __init__(
self,
origin: str,
args: tuple[TypeSchema, ...] = (),
origin_type_index: int = ...,
) -> None: ...
@staticmethod
def from_json_obj(obj: dict[str, Any]) -> TypeSchema: ...
@staticmethod
def from_json_str(s: str) -> TypeSchema: ...
@staticmethod
def from_type_index(type_index: int, args: tuple[TypeSchema, ...] = ()) -> TypeSchema: ...
@staticmethod
def from_annotation(annotation: object) -> TypeSchema: ...
def repr(self, ty_map: Callable[[str], str] | None = None) -> str: ...
def check_value(self, value: object) -> None: ...
def convert(self, value: object) -> CAny: ...
def to_json(self) -> dict[str, Any]: ...
class TypeField:
name: str
doc: str | None
size: int
offset: int
frozen: bool
metadata: dict[str, Any]
getter: Any
setter: Any
ty: TypeSchema | None
c_init: bool
c_kw_only: bool
c_has_default: bool
c_default: Any
c_default_factory: Any
c_repr: bool
c_compare: bool
c_hash: bool
c_structural_eq: str | None
dataclass_field: Any | None
def as_property(self, cls: type) -> property: ...
class TypeMethod:
name: str
doc: str | None
func: Any
is_static: bool
metadata: dict[str, Any]
def as_callable(self, cls: type) -> Callable[..., Any]: ...
class TypeInfo:
type_cls: type | None
type_index: int
type_key: str
type_ancestors: list[int]
fields: list[TypeField]
methods: list[TypeMethod]
parent_type_info: TypeInfo | None
def _register_fields(self, fields: list[Any]) -> None: ...
def prototype_py(self) -> str: ...