Replies: 1 comment
-
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Presently, executors may need to have Covalent installed for a variety of reasons.
Since the introduction of electron hooks (call_before and call_after), each executor's environment needs Covalent installed. This happens because the calldeps and their inputs are serialized client-side as
TransportableObject
s to ensure that the Covalent server can send to the right executor without needing the calldep's dependencies. The reason for usingTransportableObject
is that it abstracts away the serialization protocol and makes it easy for us to modify it in the future. As theseTransportableObjects
are only deserialized in the executor's environment, the executor needs to understand theTransportableObject
type.Even before the introduction of calldeps, if an Electron refers to another Electron, then the executor needs to understand the
Electron
type when unpickling the first electron.However, both the
Electron
andTransportableObject
types can be obtained only by installing all of Covalent.An easy mitigation is allow users to only install the SDK like
pip install covalent[sdk]
The SDK, which would only contain the core data types, would then be a cheap prerequisite for any executor just like how we already require cloudpickle.Other suggestions?
Beta Was this translation helpful? Give feedback.
All reactions