alchemiscale icon indicating copy to clipboard operation
alchemiscale copied to clipboard

Add `AlchemiscaleClient` methods `set_tasks` and `set_transformations_tasks`

Open dotsdl opened this issue 1 year ago • 1 comments

There are users and downstream projects, such as asap-alchemy, that are more interested in ensuring that a certain number of Tasks exist per Transformation than in creating new Tasks.

This is especially the case when a user creates many iterations of AlchemicalNetworks in the same Scope that feature many Transformations in common. In this scenario, simply calling create_tasks or create_transformations_tasks on every Transformation of the submitted AlchemicalNetwork may generate more work than is necessary given existing results. A user that wants to only create new Tasks for entirely new Transformations would need to do a number of client calls to determine which Transformations have no Tasks before creating new ones.

To address this, we should create two new methods on the AlchemiscaleClient:

  • set_tasks: set the minimum number of Tasks on the given Transformation (and optionally extendsing another Task)
  • set_transformations_tasks: set the minimum number of Tasks for multiple Transformation (and optionally extendsing another Task), in a single call

These methods are functionally idempotent versions of create_tasks and create_transformations_tasks that already exist in the AlchemiscaleClient. They should take the same inputs as these existing methods, but will only create new Tasks where an insufficient number already exist.

dotsdl avatar Aug 23 '24 00:08 dotsdl

CC @JenkeScheen

dotsdl avatar Aug 23 '24 00:08 dotsdl