Add Protocol
class attribute supports_extensions
, which subclasses must set to indicate whether or not they support extends
on Protocol.create
#388
Labels
Milestone
The
gufe
Protocol
system allows developers to createProtocol
s that support extension, where aProtocolDAG
produced withProtocol.create
extends from a previously-executedProtocolDAGResult
. How this is implemented isProtocol
-dependent, and is left to the developer to determine inProtocol._create
.Unless explicitly handled, the
extends
optional keyword argument does nothing inProtocol.create
, and so users of a givenProtocol
may expect behavior that it silently doesn't do. This can cause confusion in results reporting, and we should work to avoid it where possible.To make it clearer that a
Protocol
does or doesn't support extension, we propose adding asupports_extension
bool
class attribute that is by defaultFalse
. AProtocol
developer that implementsextends
support in their._create
method should set this toTrue
once that support is present.TThis would allow execution systems such as alchemiscale to e.g. stop users from creating dependent
Task
s forTransformation
s with aProtocol
that has no support for extension, avoiding confusion or misreporting results.The text was updated successfully, but these errors were encountered: