Skip to content

Commit

Permalink
deploy: de2245d
Browse files Browse the repository at this point in the history
  • Loading branch information
bast committed Nov 2, 2024
0 parents commit af4925e
Show file tree
Hide file tree
Showing 1,444 changed files with 350,222 additions and 0 deletions.
Empty file added .nojekyll
Empty file.

Large diffs are not rendered by default.

38 changes: 38 additions & 0 deletions _downloads/75c4ab69c0f59fbb1589b03be360a485/optionsparser.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import yaml

def get_parameters(config_file, required, defaults):
'''
Parameters:
Optionfile: FileName of the yaml file containing the options
required: Dict of required argument names and their object types.
defaults: Dict of default parameters mapping to their default values
Returns: An object with fields named according to required and optional values.
'''
f = open(config_file)
options = yaml.safe_load(f)
# create a parameters object that allows setting attributes.
parameters = type('Options', (), {})()
# check required arguments
for arg in required:
if not arg in options:
raise Exception("Could not find required Argument " + arg + " aborting...")
else:
if not isinstance(options[arg],required[arg]):
raise Exception("Expected input of type " + str(required[arg]) + " but got " + str(type(options[arg])))
print("Setting " + arg + " to " + str(options[arg]))
setattr(parameters,arg,options[arg])
# check the default values.
for arg in defaults:
if arg in options:
if not isinstance(options[arg],type(defaults[arg])):
#Wrong type for the parameter
raise Exception("Expected input of type " + str(type(defaults[arg])) + " but got " + str(type(options[arg])))
print("Setting " + arg + " to " + str(options[arg]))
setattr(parameters,arg,options[arg])
else:
print( arg + " not found in option file. Using default: " +str(defaults[arg]))
setattr(parameters,arg,defaults[arg])
return parameters


Loading

0 comments on commit af4925e

Please sign in to comment.