[FEA] Reorganize Cython to separate C++ bindings and make Cython classes public #1280
Labels
? - Needs Triage
Need team to review and classify
feature request
New feature or request
Python
Related to RMM Python API
Is your feature request related to a problem? Please describe.
Currently rmm intermixes C++ API bindings and Cython declarations in the same pxd files. All of these pxd files are contained in the
_lib
module, whose name suggests that it is internal. However, this module is used by essentially all RAPIDS libraries because their Cython code compiling against Cython classes likermm._lib.device_buffer.DeviceBuffer
. Therefore, despite being ostensibly private, it is in fact treated as part of the public API by the rest of RAPIDS.Describe the solution you'd like
The Cython C++ API bindings should be moved into a separate subpackage that is not conflated with the pure Cython code. The Cython code should be moved into a new subpackage whose name clearly indicates that it is intended to be public.
Describe alternatives you've considered
None
Additional context
Since any change here would be a breaking change to the rest of RAPIDS, it would be best to alias all existing types back into
rmm._lib
when the new module structure is created along with deprecation warnings. See #1221 for a template of how to do this.The text was updated successfully, but these errors were encountered: