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:
pass
class Child(Parent):
pass
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)?