| 775 | } |
| 776 | |
| 777 | PyObject* TensorWrapper::_is_external_value() { |
| 778 | auto&& external_tsf = |
| 779 | TransformationManager::get_instance() |
| 780 | .segments[TransformationManager::Segment::ExternalConvert]; |
| 781 | if (external_tsf.size() == 0 || external_tsf[0] == nullptr) { |
| 782 | Py_RETURN_FALSE; |
| 783 | } |
| 784 | |
| 785 | auto* tsf = reinterpret_cast<ExternalConvertTransformation*>(external_tsf[0].get()); |
| 786 | mgb_assert(tsf->enabled()); |
| 787 | auto valueref = m_tensor->data(); |
| 788 | if (valueref.is(tsf->value_type())) { |
| 789 | Py_RETURN_TRUE; |
| 790 | } else { |
| 791 | Py_RETURN_FALSE; |
| 792 | } |
| 793 | } |
| 794 | |
| 795 | void dlpack_capsule_destructor(PyObject* data) { |
| 796 | if (!PyCapsule_IsValid(data, "dltensor")) { |