Skip to content

default_scripts

Default Scripts and Notebooks for beamlines

see mmg_toolbox.scripts.scripts.py

create_beamline_scripts(beamline, directory, prefix='', **replacements)

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')