hack in a thing to use a settings file for generation

This commit is contained in:
Thomas Prescott
2021-03-02 19:34:29 -06:00
parent 4e9e564154
commit 7674e7dafb
2 changed files with 17 additions and 5 deletions

1
.gitignore vendored
View File

@@ -34,3 +34,4 @@ get-pip.py
venv
test
data/base2current.json

21
CLI.py
View File

@@ -28,10 +28,15 @@ def parse_cli(argv, no_defaults=False):
fish = BabelFish(lang=lang)
# we need to know how many players we have first
# also if we're loading our own settings file, we should do that now
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('--settingsfile', help="input json file of settings", type=str)
parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255))
multiargs, _ = parser.parse_known_args(argv)
if multiargs.settingsfile:
settings = apply_settings_file(settings, multiargs.settingsfile)
parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
# get args
@@ -72,6 +77,7 @@ def parse_cli(argv, no_defaults=False):
parser.add_argument('--beemizer', default=defval(settings["beemizer"]), type=lambda value: min(max(int(value), 0), 4))
parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255))
parser.add_argument('--teams', default=defval(1), type=lambda value: max(int(value), 1))
parser.add_argument('--settingsfile', dest="filename", help="input json file of settings", type=str)
if multiargs.multi:
for player in range(1, multiargs.multi + 1):
@@ -103,6 +109,15 @@ def parse_cli(argv, no_defaults=False):
return ret
def apply_settings_file(settings, settings_path):
if os.path.exists(settings_path):
with open(settings_path) as json_file:
data = json.load(json_file)
for k, v in data.items():
settings[k] = v
return settings
def parse_settings():
# set default settings
settings = {
@@ -262,11 +277,7 @@ def parse_settings():
# read saved settings file if it exists and set these
settings_path = os.path.join(".", "resources", "user", "settings.json")
if os.path.exists(settings_path):
with(open(settings_path)) as json_file:
data = json.load(json_file)
for k, v in data.items():
settings[k] = v
settings = apply_settings_file(settings, settings_path)
return settings
# Priority fallback is: