Default Scripts and Notebooks for beamlines
see mmg_toolbox.scripts.scripts.py
Create default python and jupyter scripts in directory
Source code in mmg_toolbox/beamline_metadata/default_scripts.py
| def create_beamline_scripts(beamline: str, directory: str, prefix: str = '', **replacements):
"""Create default python and jupyter scripts in directory"""
default_scripts = BEAMLINE_SCRIPTS['default']
if beamline in BEAMLINE_SCRIPTS:
beamline_scripts = BEAMLINE_SCRIPTS[beamline]
for key in default_scripts:
default_scripts[key].extend(beamline_scripts[key])
template = {
R.beamline: beamline,
R.exp: directory.removesuffix('/processing'),
R.description: "An example script using mmg_toolbox",
R.title: 'mmg_toolbox Example Script',
}
template.update(replacements) # note that additional values are added on create_script/notebook
# Create script files
for script_name in default_scripts['scripts']:
filename = os.path.join(directory, script_name + '.py')
if not os.path.isfile(filename):
create_script(filename, script_name, **template)
else:
print(f'Script {filename} already exists')
for notebook_name in default_scripts['notebooks']:
filename = os.path.join(directory, prefix + notebook_name + '.ipynb')
if not os.path.isfile(filename):
create_notebook(filename, notebook_name, **template)
else:
print(f'Notebook {filename} already exists')
|