easybuild.tools.robot module

Dependency resolution functionality, a.k.a. robot.

author:Stijn De Weirdt (Ghent University)
author:Dries Verdegem (Ghent University)
author:Kenneth Hoste (Ghent University)
author:Pieter De Baets (Ghent University)
author:Jens Timmerman (Ghent University)
author:Toon Willems (Ghent University)
author:Ward Poelmans (Ghent University)
easybuild.tools.robot.check_conflicts(easyconfigs, modtool, check_inter_ec_conflicts=True)

Check for conflicts in dependency graphs for specified easyconfigs.

  • easyconfigs – list of easyconfig files (EasyConfig instances) to check for conflicts
  • modtool – ModulesTool instance to use
  • check_inter_ec_conflicts – also check for conflicts between (dependencies of) listed easyconfigs

True if one or more conflicts were found, False otherwise

easybuild.tools.robot.det_robot_path(robot_paths_option, tweaked_ecs_paths, pr_paths, auto_robot=False)

Determine robot path.

easybuild.tools.robot.dry_run(easyconfigs, modtool, short=False)

Compose dry run overview for supplied easyconfigs: * [ ] for unavailable * [x] for available * [F] for forced * [R] for rebuild :param easyconfigs: list of parsed easyconfigs (EasyConfig instances) :param modtool: ModulesTool instance to use :param short: use short format for overview: use a variable for common prefixes

easybuild.tools.robot.missing_deps(easyconfigs, modtool)

Determine subset of easyconfigs for which no module is installed yet.

easybuild.tools.robot.raise_error_missing_deps(missing_deps, extra_msg=None)

Raise error to report missing dependencies.

easybuild.tools.robot.resolve_dependencies(easyconfigs, modtool, retain_all_deps=False, raise_error_missing_ecs=True)

Work through the list of easyconfigs to determine an optimal order :param easyconfigs: list of easyconfigs :param modtool: ModulesTool instance to use :param retain_all_deps: boolean indicating whether all dependencies must be retained, regardless of availability;

retain all deps when True, check matching build option when False
Parameters:raise_error_missing_ecs – raise an error when one or more easyconfig files could not be found
easybuild.tools.robot.search_easyconfigs(query, short=False, filename_only=False, terse=False, consider_extra_paths=True, print_result=True, case_sensitive=False)

Search for easyconfigs, if a query is provided.

  • query – regex query string
  • short – figure out common prefix of hits, use variable to factor it out
  • filename_only – only print filenames, not paths
  • terse – stick to terse (machine-readable) output, as opposed to pretty-printing
  • consider_extra_paths – consider all paths when searching
  • print_result – print the list of easyconfigs
  • case_sensitive – boolean to decide whether search is case sensitive

return a list of paths for the query