This is an automated email from the ASF dual-hosted git repository. junrushao pushed a commit to branch revert-395-2026-01-09/py-func-enhance in repository https://gitbox.apache.org/repos/asf/tvm-ffi.git
commit 15431dddfe5ad8d2dd5df3b242b80e0bd92648cb Author: Junru Shao <[email protected]> AuthorDate: Mon Jan 12 10:08:32 2026 -0800 Revert "feat: Add `tvm_ffi.Function.__init__` (#395)" This reverts commit 8786670af20e9005ec1dd50d7872ee9e2b8b89cd. --- include/tvm/ffi/base_details.h | 16 ++++------------ python/tvm_ffi/core.pyi | 1 - python/tvm_ffi/cython/function.pxi | 21 --------------------- tests/python/test_function.py | 9 --------- 4 files changed, 4 insertions(+), 43 deletions(-) diff --git a/include/tvm/ffi/base_details.h b/include/tvm/ffi/base_details.h index a00d4a4..7224ac1 100644 --- a/include/tvm/ffi/base_details.h +++ b/include/tvm/ffi/base_details.h @@ -86,7 +86,6 @@ #else #define TVM_FFI_FUNC_SIG __func__ #endif -/// \endcond #if defined(__GNUC__) // gcc and clang and attribute constructor @@ -115,22 +114,14 @@ return 0; \ }(); \ static void FnName() -/// \endcond -/*! - * \brief Macro that defines a block that will be called during static initialization. - * - * \code{.cpp} - * TVM_FFI_STATIC_INIT_BLOCK() { - * RegisterFunctions(); - * } - * \endcode - */ + #define TVM_FFI_STATIC_INIT_BLOCK() \ TVM_FFI_STATIC_INIT_BLOCK_DEF_(TVM_FFI_STR_CONCAT(__TVMFFIStaticInitFunc, __COUNTER__), \ TVM_FFI_STR_CONCAT(__TVMFFIStaticInitReg, __COUNTER__)) +/// \endcond #endif -/*! +/* * \brief Define the default copy/move constructor and assign operator * \param TypeName The class typename. */ @@ -322,4 +313,5 @@ using TypeSchema = TypeSchemaImpl<std::remove_const_t<std::remove_reference_t<T> } // namespace details } // namespace ffi } // namespace tvm +/// \endcond #endif // TVM_FFI_BASE_DETAILS_H_ diff --git a/python/tvm_ffi/core.pyi b/python/tvm_ffi/core.pyi index 1c3a3da..2cee79c 100644 --- a/python/tvm_ffi/core.pyi +++ b/python/tvm_ffi/core.pyi @@ -184,7 +184,6 @@ class DLTensorTestWrapper: def _dltensor_test_wrapper_c_dlpack_from_pyobject_as_intptr() -> int: ... class Function(Object): - def __init__(self, func: Callable[..., Any]) -> None: ... @property def release_gil(self) -> bool: ... @release_gil.setter diff --git a/python/tvm_ffi/cython/function.pxi b/python/tvm_ffi/cython/function.pxi index 67429ea..01a3366 100644 --- a/python/tvm_ffi/cython/function.pxi +++ b/python/tvm_ffi/cython/function.pxi @@ -889,27 +889,6 @@ cdef class Function(Object): def __cinit__(self) -> None: self.c_release_gil = _RELEASE_GIL_BY_DEFAULT - def __init__(self, func: Callable[..., Any]) -> None: - """Initialize a Function from a Python callable. - - This constructor allows creating a `tvm_ffi.Function` directly - from a Python function or another `tvm_ffi.Function` instance. - - Parameters - ---------- - func : Callable[..., Any] - The Python callable to wrap. - """ - cdef TVMFFIObjectHandle chandle = NULL - if not callable(func): - raise TypeError(f"func must be callable, got {type(func)}") - if isinstance(func, Function): - chandle = (<Object>func).chandle - TVMFFIObjectIncRef(chandle) - else: - _convert_to_ffi_func_handle(func, &chandle) - self.chandle = chandle - property release_gil: """Whether calls release the Python GIL while executing.""" diff --git a/tests/python/test_function.py b/tests/python/test_function.py index 34d3bdc..8a494fb 100644 --- a/tests/python/test_function.py +++ b/tests/python/test_function.py @@ -153,15 +153,6 @@ def test_pyfunc_convert() -> None: assert fapply(add, 1, 3.3) == 4.3 -def test_pyfunc_init() -> None: - def add(a: int, b: int) -> int: - return a + b - - fadd = tvm_ffi.Function(add) - assert isinstance(fadd, tvm_ffi.Function) - assert fadd(1, 2) == 3 - - def test_global_func() -> None: @tvm_ffi.register_global_func("mytest.echo") def echo(x: Any) -> Any:
