src.conflict_resolution module

Currently unused; implements dependency resolution for plug-ins, intended as part of a future release.

src.conflict_resolution.require_all_same(option_dict, option_fn, tiebreaker_fn=None)[source]
src.conflict_resolution.same_for_subsets(option_dict, subsets, option_fn, tiebreaker_fn=None)[source]
src.conflict_resolution.all_same_if_possible(option_dict, subsets, option_fn, tiebreaker_fn=None)[source]
src.conflict_resolution.minimum_cover(option_dict, option_fn, tiebreaker_fn=None)[source]

Determine experiment component(s) from heuristics.

  1. Pick all data from the same component if possible, and from as few

    components if not. See https://en.wikipedia.org/wiki/Set_cover_problem and http://www.martinbroadhurst.com/greedy-set-cover-in-python.html.

  2. If multiple components satisfy (1) equally well, use a tie-breaking

    heuristic (_component_tiebreaker()).

Parameters:

datasets (iterable of DataSetBase) – Collection of all variables being requested in this DataManager.

Returns:

name(s) of model components to use.

Return type:

List of str

Raises: AssertionError if problem is unsatisfiable. This indicates some

error in the input data.