hack in a thing to use a settings file for generation
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -34,3 +34,4 @@ get-pip.py
|
|||||||
|
|
||||||
venv
|
venv
|
||||||
test
|
test
|
||||||
|
data/base2current.json
|
||||||
|
|||||||
21
CLI.py
21
CLI.py
@@ -28,10 +28,15 @@ def parse_cli(argv, no_defaults=False):
|
|||||||
fish = BabelFish(lang=lang)
|
fish = BabelFish(lang=lang)
|
||||||
|
|
||||||
# we need to know how many players we have first
|
# 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 = 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))
|
parser.add_argument('--multi', default=defval(settings["multi"]), type=lambda value: min(max(int(value), 1), 255))
|
||||||
multiargs, _ = parser.parse_known_args(argv)
|
multiargs, _ = parser.parse_known_args(argv)
|
||||||
|
|
||||||
|
if multiargs.settingsfile:
|
||||||
|
settings = apply_settings_file(settings, multiargs.settingsfile)
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
|
parser = argparse.ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter)
|
||||||
|
|
||||||
# get args
|
# 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('--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('--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('--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:
|
if multiargs.multi:
|
||||||
for player in range(1, multiargs.multi + 1):
|
for player in range(1, multiargs.multi + 1):
|
||||||
@@ -103,6 +109,15 @@ def parse_cli(argv, no_defaults=False):
|
|||||||
return ret
|
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():
|
def parse_settings():
|
||||||
# set default settings
|
# set default settings
|
||||||
settings = {
|
settings = {
|
||||||
@@ -262,11 +277,7 @@ def parse_settings():
|
|||||||
|
|
||||||
# read saved settings file if it exists and set these
|
# read saved settings file if it exists and set these
|
||||||
settings_path = os.path.join(".", "resources", "user", "settings.json")
|
settings_path = os.path.join(".", "resources", "user", "settings.json")
|
||||||
if os.path.exists(settings_path):
|
settings = apply_settings_file(settings, 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
|
return settings
|
||||||
|
|
||||||
# Priority fallback is:
|
# Priority fallback is:
|
||||||
|
|||||||
Reference in New Issue
Block a user