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]

Reply via email to