core.commands.factory module

Define a class to easily create Command objects.

Todo

handle personalized name of commands (marker)

class CommandFactory(default_field_map_folder: Path, **factory_kw: Any)

Bases: object

An object to create Command objects.

__init__(default_field_map_folder: Path, **factory_kw: Any) None

Do nothing for now.

Todo

Check if it would be relatable to hold some arguments? As for now, I would be better off with a run function instead of a class.

_personalized_name(line: list[str]) tuple[str | None, list[str]]

Extract the user-defined name of the Element if there is one.

Todo

Make this robust.

run(line: list[str], dat_idx: int, **command_kw) Command

Call proper constructor.

IMPLEMENTED_COMMANDS = {'ADJUST': <class 'core.commands.adjust.Adjust'>, 'ADJUST_STEERER': <class 'core.commands.dummy_command.DummyCommand'>, 'DUMMY_COMMAND': <class 'core.commands.dummy_command.DummyCommand'>, 'END': <class 'core.commands.end.End'>, 'ERROR_BEAM_DYN': <class 'core.commands.error.ErrorBeamDyn'>, 'ERROR_BEAM_STAT': <class 'core.commands.error.ErrorBeamStat'>, 'ERROR_BEND_CPL_DYN': <class 'core.commands.error.ErrorBendCPLDyn'>, 'ERROR_BEND_CPL_STAT': <class 'core.commands.error.ErrorBendCPLStat'>, 'ERROR_BEND_NCPL_DYN': <class 'core.commands.error.ErrorBendNCPLDyn'>, 'ERROR_BEND_NCPL_STAT': <class 'core.commands.error.ErrorBendNCPLStat'>, 'ERROR_CAV_CPL_DYN': <class 'core.commands.error.ErrorCavCPLDyn'>, 'ERROR_CAV_CPL_STAT': <class 'core.commands.error.ErrorCavCPLStat'>, 'ERROR_CAV_NCPL_DYN': <class 'core.commands.error.ErrorCavNCPLDyn'>, 'ERROR_CAV_NCPL_STAT': <class 'core.commands.error.ErrorCavNCPLStat'>, 'ERROR_CAV_NCPL_STAT_FILE': <class 'core.commands.error.ErrorCavNCPLStatFile'>, 'ERROR_GAUSSIAN_CUT_OFF': <class 'core.commands.error.ErrorGaussianCutOff'>, 'ERROR_QUAD_NCPL_DYN': <class 'core.commands.error.ErrorQuadNCPLDyn'>, 'ERROR_QUAD_NCPL_STAT': <class 'core.commands.error.ErrorQuadNCPLStat'>, 'ERROR_RFQ_CEL_NCPL_DYN': <class 'core.commands.error.ErrorRFQCelNCPLDyn'>, 'ERROR_RFQ_CEL_NCPL_STAT': <class 'core.commands.error.ErrorRFQCelNCPLStat'>, 'ERROR_SET_RATIO': <class 'core.commands.error.ErrorSetRatio'>, 'ERROR_STAT_FILE': <class 'core.commands.error.ErrorStatFile'>, 'FIELD_MAP_PATH': <class 'core.commands.field_map_path.FieldMapPath'>, 'FREQ': <class 'core.commands.freq.Freq'>, 'LATTICE': <class 'core.commands.lattice.Lattice'>, 'LATTICE_END': <class 'core.commands.lattice.LatticeEnd'>, 'MARKER': <class 'core.commands.marker.Marker'>, 'PLOT_DST': <class 'core.commands.dummy_command.DummyCommand'>, 'REPEAT_ELE': <class 'core.commands.repeat_ele.RepeatEle'>, 'SET_ADV': <class 'core.commands.set_adv.SetAdv'>, 'SET_SYNC_PHASE': <class 'core.commands.set_sync_phase.SetSyncPhase'>, 'SHIFT': <class 'core.commands.shift.Shift'>, 'STEERER': <class 'core.commands.steerer.Steerer'>, 'SUPERPOSE_MAP': <class 'core.commands.superpose_map.SuperposeMap'>}