-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcli.py
More file actions
64 lines (54 loc) · 4 KB
/
Copy pathcli.py
File metadata and controls
64 lines (54 loc) · 4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import argparse
from actions.train_actions import register_train, register_resume
from actions.condition_model_actions import register_generate_condition_model_ms
from actions.level_generation_actions import register_generate_levels_ms, register_generate_levels_controllable_ms, register_random_generate_levels_ms
from actions.statistics_actions import register_analyze_levels
from actions.statistics_actions import register_compute_statistics, register_compute_statistics_ms
from actions.statistics_actions import register_compute_ctrl_statistics, register_compute_ctrl_statistics_ms
from actions.statistics_actions import register_generate_expressive_ranges_ms, register_render_level_sample_ms, register_render_percentile_levels_ms
from actions.statistics_actions import register_profile_generator_time_ms
# This file is the main entry point of the project
# from here you can call all the subcommands
def main():
parser = argparse.ArgumentParser(description="Multi-Size Level Generator")
subparsers = parser.add_subparsers()
# Here we register all the subcommands which can be called as follows:
# >>> python cli.py subcommand-name [args]
# NOTE: If the subcommand name ends with "ms" then it deals with levels of multiple sizes in a single call
# e.g.
# - "compute-statistics" runs on a single file where all the levels are of the same size
# - "compute-statistics-ms" runs on multiple files where the levels can have different sizes
# Start a new training session
register_train(subparsers.add_parser("train"))
# Resume a training session
register_resume(subparsers.add_parser("resume"))
# Generate a condition model
register_generate_condition_model_ms(subparsers.add_parser("gen-condmodel-ms", aliases=["cmms"]))
# Generate levels from a model unconditionally
register_generate_levels_ms(subparsers.add_parser("generate-levels-ms", aliases=["genms"]))
# Generate levels from a model under the control of a given set of values
register_generate_levels_controllable_ms(subparsers.add_parser("generate-ctrl-levels-ms", aliases=["cgenms"]))
# Generate levels randomly
register_random_generate_levels_ms(subparsers.add_parser("random-generate-levels-ms", aliases=["rngms"]))
# Analyze levels stored in a certain file
register_analyze_levels(subparsers.add_parser("analyze-levels", aliases=["analyze"]))
# Compute statistics for a certain file of generated levels
register_compute_statistics(subparsers.add_parser("compute-statistics", aliases=["stats"]))
# Compute statistics for one or more files of generated levels
register_compute_statistics_ms(subparsers.add_parser("compute-statistics-ms", aliases=["statsms"]))
# Compute statistics about the model controllability for a certain file of levels generated from a set of control values
register_compute_ctrl_statistics(subparsers.add_parser("compute-ctrl-statistics", aliases=["cstats"]))
# Compute statistics about the model controllability for one or more files of levels generated from a set of control values
register_compute_ctrl_statistics_ms(subparsers.add_parser("compute-ctrl-statistics-ms", aliases=["cstatsms"]))
# Create and save the expressive range figures for one or more files of generated levels
register_generate_expressive_ranges_ms(subparsers.add_parser("draw-expressive-range-ms", aliases=["erms"]))
# Render and save a sample of generated levels from one or more files
register_render_level_sample_ms(subparsers.add_parser("draw-level-sample-ms", aliases=["imms"]))
# Render and save the levels at equally distributed percentiles of specific properties from one or more files
register_render_percentile_levels_ms(subparsers.add_parser("draw-level-percentiles-ms", aliases=["perimms"]))
# Profile the time needed to generate level from a model
register_profile_generator_time_ms(subparsers.add_parser("profile-generation-ms", aliases=["profgenms"]))
args = parser.parse_args()
args.func(args)
if __name__ == "__main__":
main()