-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split ucx_api.pyx into multiple files #711
Conversation
@madsbk @quasiben @jakirkham do you have opinions on doing this? Particularly, I find it useful regardless of the upstreaming effort. |
I wanted to +1 this. I am working on a RMA patch and the 2200 line file problem is going to get worse. |
@MattBBaker please hold on with your PR then. 🤣 |
Nah, I'll just pre split my work. Though on that note, the transfer.pyx file is still pretty big. In UCX upstream things are usually split tags/AM/stream/RMA. |
Yes, I thought the same, this is mostly to get the ball running and get opinions, if there are no objections I'll do that. |
I think this is a very good idea! but I suggest that we make header files (
I am not sure it is a good idea to split up a class. |
That would need us to create a Cython
I didn't mean splitting up the class itself, but maybe the functions, such as the AM receive callback ones. |
Another way this can be resolved is to create a |
Fair enough, let's start with your current proposal. But if it is possible to make |
For completeness here, if we choose to have the idea above, this is how things look like:
The case above has |
@pentschev let's get this in now then when @jakirkham gets back, we can discuss possible |
Sorry |
I discussed this offline with @madsbk and I think this isn't what we want (for now). Creating a new For now we'll merge this as is, and later revisit whether we should create new |
This PR split
ucx_api.pyx
into multiple.pyx
files, one for eachUCX*
class, and some others for utils, typedefs and transfer functions. The benefit of doing this is that we could later upstream each part on its own to prevent really large PRs for UCX folks to review, besides, of course, avoiding a single-file with over two thousand lines that is getting hard to navigate.