MCPcopy Create free account
hub / github.com/comaps/comaps / Generation

Class Generation

tools/python/maps_generator/generator/generation.py:19–151  ·  view source on GitHub ↗

Generation describes process of a map generation. It contains stages. For example: generation = Generation(env) generation.add_stage(s1) generation.add_stage(s2) generation.run()

Source from the content-addressed store, hash-verified

17
18
19class Generation:
20 """
21 Generation describes process of a map generation. It contains stages.
22
23 For example:
24 generation = Generation(env)
25 generation.add_stage(s1)
26 generation.add_stage(s2)
27 generation.run()
28 """
29
30 def __init__(self, env: Env, build_lock: bool = True):
31 self.env: Env = env
32 self.stages: List[Stage] = []
33 self.runnable_stages: Optional[List[Stage]] = None
34 self.build_lock: bool = build_lock
35
36 for country_stage in stages.countries_stages:
37 if self.is_skipped_stage(country_stage):
38 self.env.add_skipped_stage(country_stage)
39
40 for stage in stages.stages:
41 if self.is_skipped_stage(stage):
42 self.env.add_skipped_stage(stage)
43
44 def is_skipped_stage(self, stage: Union[Type[Stage], Stage]) -> bool:
45 return (
46 stage.is_production_only and not self.env.production
47 ) or not self.env.is_accepted_stage(stage)
48
49 def add_stage(self, stage: Stage):
50 self.stages.append(stage)
51 if self.is_skipped_stage(stage):
52 self.env.add_skipped_stage(stage)
53
54 def pre_run(self):
55 skipped = set()
56
57 def traverse(current: Type[Stage]):
58 deps = stages.dependencies.get(current, [])
59 for d in deps:
60 skipped.add(d)
61 traverse(d)
62
63 for skipped_stage in self.env.skipped_stages:
64 traverse(skipped_stage)
65
66 for s in skipped:
67 self.env.add_skipped_stage(s)
68
69 self.runnable_stages = [s for s in self.stages if self.env.is_accepted_stage(s)]
70
71 def run(self, from_stage: Optional[AnyStr] = None):
72 self.pre_run()
73 if from_stage is not None:
74 self.reset_to_stage(from_stage)
75
76 if self.build_lock:

Callers 1

run_generationFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected