@ray.remote versus class inheritance

Is is true that with Python class inheritance i cannot have @ray.remote in both parent and child? What is the reason and where can i find this restriction documented?

To use Python class inheritance, you will need to apply @ray.remote to the parent and child class separately. The best way to do this is to use ray.remote() instead of the decorator syntax:

import ray

class Parent:

class Child(Parent):

ParentRemote = ray.remote(Parent)
ChildRemote = ray.remote(Child)

Thx, we do this already, but why is it that way?

ray.remote is a wrapper class that swaps out all the methods for .remote versions. It gets a bit complicated if the class you want to wrap already has all .remote methods.

There is probably a way to make it work, but this strategy is simpler. Is this a blocker for you?

No, no blocker, we can live with the “workaround”. Out of curiosity, how can this be made to work? In fact we define our own decorator/annotation which delegates to the ray.remote() method.
Now for something completely different: Why is there no ray-2.0.0-cp310 pypi wheel for Windows (i opened a discussion about this very defect)?