junrushao commented on code in PR #49:
URL: https://github.com/apache/tvm-ffi/pull/49#discussion_r2376824945
##########
python/tvm_ffi/cython/object.pxi:
##########
@@ -261,29 +263,53 @@ cdef inline object make_ret_opaque_object(TVMFFIAny
result):
(<Object>obj).chandle = result.v_obj
return obj.pyobject()
+cdef inline object make_fallback_cls_for_type_index(int32_t type_index):
+ cdef str type_key = _type_index_to_key(type_index)
+ cdef object type_info = _lookup_type_info_from_type_key(type_key)
+ cdef object parent_type_info = type_info.parent_type_info
+ cdef object cls
+ cdef dict ann
+
+ assert type_info.type_cls is None
+ assert parent_type_info is not None
+
+ warnings.warn(
+ f"Returning type `{type_key}` which is not registered via
`@register_object`, "
+ f"falling back to auto-generated
prototype:\n{type_info.prototype_py()}",
+ )
+
+ from tvm_ffi.dataclasses import c_class
Review Comment:
Agreeing reverse dependency is in general anti-pattern, but in this
particular case, I'd love to argue that reverse dependency isn't necessarily
bad in this particular case for a few reasons:
- Consistency. A stub class registered here is guaranteed to be consistent
with an explicitly written `@c_class`;
- Code size. Relevant impls under `dataclasses/` is relatively a larger
chunk of code, which I would consider a bit oversized to be moved into Cython
core
Let me know your thoughts!
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]