def resolve_toggle_selection(_, info, spaceJson: dict, size: int): space = from_json(spaceJson) pop = set(space.dict.values()) - set( space.ignore + [default_value, inclusion_value, phase_value]) return list(random.choices(population=list(pop), k=size))
def resolve_toggle_selection(_, info, spaceJson: dict, selection: list, x: int, y: int): space = from_json(spaceJson) value = space.get(x, y) if value != space.default: if type(value) is tuple: value = list(value) if value in selection: selection.remove(value) else: selection.append(value) return selection
def resolve_add_inclusions(_, info, spaceJson: dict, type_: str, count: int, size: int, onBoundary=False, rules: dict = None): space = from_json(spaceJson) if onBoundary: b = boundaries_space(space, rules=get_rules(rules)) gen = b.random_occupied_position else: gen = space.random_position return inclusions[type_](space, gen, count, size, inclusion_value)
def resolve_spaceToInclusions(_, info, spaceJson: dict): space = from_json(spaceJson) space.set_all_to(phase_value) space.ignore = [phase_value] return space
def resolve_return_space(_, info, spaceJson: dict): return from_json(spaceJson)
def resolve_step(_, info, spaceJson: dict, rules: dict): rules = get_rules(rules) return rules.step(from_json(spaceJson))
def resolve_addNucleons(_, info, spaceJson: dict, count: int): space = from_json(spaceJson) seed(space, count=count, gen=gen_inclusion_value) return space