Skip to content
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

Add Protocol class attribute supports_extensions, which subclasses must set to indicate whether or not they support extends on Protocol.create #388

Open
dotsdl opened this issue Nov 7, 2024 · 0 comments

Comments

@dotsdl
Copy link
Member

dotsdl commented Nov 7, 2024

The gufe Protocol system allows developers to create Protocols that support extension, where a ProtocolDAG produced with Protocol.create extends from a previously-executed ProtocolDAGResult. How this is implemented is Protocol-dependent, and is left to the developer to determine in Protocol._create.

Unless explicitly handled, the extends optional keyword argument does nothing in Protocol.create, and so users of a given Protocol 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 a supports_extension bool class attribute that is by default False. A Protocol developer that implements extends support in their ._create method should set this to True once that support is present.

TThis would allow execution systems such as alchemiscale to e.g. stop users from creating dependent Tasks for Transformations with a Protocol that has no support for extension, avoiding confusion or misreporting results.

@dotsdl dotsdl added this to the Release 2.0.0 milestone Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant