def build_random_brunches(len, first_number=1, second_number=2): drop_len_func = lambda len: int(len/4) brunch_prob = 0.5 brunch_list = list() for k in range(len-1): SystemBuilder.scheme.add_edge(first_number, second_number, weight=1) SystemBuilder.scheme[first_number][second_number][SystemBuilder.ATTRIBUTE_TIME_IN_WAY] = RandomFunctions.time_distance_func() if random() < brunch_prob: brunch_list.append(first_number) first_number = second_number second_number += 1 try: if SystemBuilder.build_random_brunches.max < second_number: SystemBuilder.build_random_brunches.max = second_number except AttributeError: SystemBuilder.build_random_brunches.max = second_number for number in brunch_list: SystemBuilder.build_random_brunches( drop_len_func(len), first_number=number, second_number=SystemBuilder.build_random_brunches.max) attr_name = SystemBuilder.ATTRIBUTE_GROWTH_LIST nx.set_node_attributes(SystemBuilder.scheme, attr_name, None) for num in SystemBuilder.scheme.nodes(): SystemBuilder.scheme.node[num][attr_name] = list()