mxcubecore.queuelib.models#

Pydantic models for the queue client wire format.

See JSON_FORMAT.md in this package for the full JSON format documentation

Functions

build_task_node_model(value)

normalize_mesh_range(value)

validate_path(path)

Validate a path without requiring it to exist.

validate_position(value)

validate_safe_string(value, field_name)

validate_safe_template_prefix(value)

validate_safe_template_subdir(value)

Classes

CharacterisationNodeModel(*[, type, ...])

CharacterisationParameters(*[, shape, ...])

DataCollectionNodeModel(*[, type, queueID, ...])

DataCollectionParameters(*[, shape, ...])

EnergyScanNodeModel(*[, type, queueID, ...])

EnergyScanParameters(*[, shape, directory, ...])

QueueNodeModel(*[, type, queueID, checked, ...])

SampleNode(*[, type, queueID, checked, ...])

TaskDataPathModel(*[, shape, directory, ...])

TaskNodeModel(*[, type, queueID, checked, ...])

WorkflowNodeModel(*[, type, queueID, ...])

WorkflowParameters(*[, shape, directory, ...])

XRFNodeModel(*[, type, queueID, checked, ...])

XRFParameters(*[, shape, directory, ...])

class mxcubecore.queuelib.models.CharacterisationNodeModel(*, type: str = '', queueID: int = -1, checked: bool = False, state: int = 0, label: str = '', sampleID: str, sampleQueueID: int | None = None, taskIndex: int | None = None, diffractionPlan: list[mxcubecore.queuelib.models.TaskNodeModel] | None = None, diffractionPlanID: int | None = None, name: str | None = None, parameters: CharacterisationParameters)[source]#

Bases: TaskNodeModel

Parameters:
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'checked': FieldInfo(annotation=bool, required=False, default=False), 'diffractionPlan': FieldInfo(annotation=Union[list[TaskNodeModel], NoneType], required=False, default=None), 'diffractionPlanID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'label': FieldInfo(annotation=str, required=False, default=''), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'parameters': FieldInfo(annotation=CharacterisationParameters, required=True), 'queueID': FieldInfo(annotation=int, required=False, default=-1), 'sampleID': FieldInfo(annotation=str, required=True), 'sampleQueueID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'state': FieldInfo(annotation=int, required=False, default=0), 'taskIndex': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.CharacterisationParameters(*, shape: str | int = '', directory: str = '', process_directory: str = '', xds_dir: str = '', base_prefix: str = '', mad_prefix: str = '', reference_image_prefix: str = '', wedge_prefix: str = '', run_number: int = 0, suffix: str = '', precision: int = 0, start_num: int = 0, num_files: int = 0, compression: bool = False, path: str = '', prefix: str = '', fileName: str | None = '', fullPath: str | None = '', subdir: str = '', first_image: int = 0, num_images: int = 0, osc_start: float = 0, osc_range: float = 0, osc_total_range: float = 0, overlap: float = 0, kappa: float | None = 0, kappa_phi: float | None = 0, exp_time: float = 0, num_lines: int = 1, energy: float = 0, resolution: float = 0, detector_distance: float = 0, transmission: float = 100, shutterless: bool = True, take_snapshots: int = 0, detector_binning_mode: str | None = None, detector_roi_mode: int = 0, mesh_range: dict[str, float] = {}, num_triggers: int = 0, num_images_per_trigger: int = 0, cell_counting: str | None = None, mesh_center: str | None = None, cell_spacing: tuple[float, float] | None = None, sub_wedge_size: int = 10, disable_processing: bool = False, cellA: float = 0, cellB: float = 0, cellC: float = 0, cellAlpha: float = 0, cellBeta: float = 0, cellGamma: float = 0, helical: bool = False, mesh: bool = False, taskIndexList: list[int] | None = None, wedges: list[mxcubecore.queuelib.models.DataCollectionNodeModel] = [], swNumImages: int = 0, experiment_type: str = '', use_aimed_resolution: float = 0, use_aimed_multiplicity: float = 0, aimed_multiplicity: float = 0, aimed_i_sigma: float = 0, aimed_completness: float = 0, strategy_complexity: str = '', strategy_program: str = '', induce_burn: bool = False, use_permitted_rotation: bool = False, permitted_phi_start: float = 0, permitted_phi_end: float = 0, low_res_pass_strat: bool = False, max_crystal_vdim: float = 0, min_crystal_vdim: float = 0, max_crystal_vphi: float = 0, min_crystal_vphi: float = 0, space_group: str = '', use_min_dose: float = 0, use_min_time: float = 0, min_dose: float = 0, min_time: float = 0, account_rad_damage: bool = False, auto_res: bool = False, opt_sad: bool = False, sad_res: float = 0, determine_rad_params: bool = False, burn_osc_start: float = 0, burn_osc_interval: float = 0, rad_suscept: float = 0, beta: float = 0, gamma: float = 0)[source]#

Bases: DataCollectionParameters

Parameters:
  • shape (str | int) –

  • directory (str) –

  • process_directory (str) –

  • xds_dir (str) –

  • base_prefix (str) –

  • mad_prefix (str) –

  • reference_image_prefix (str) –

  • wedge_prefix (str) –

  • run_number (int) –

  • suffix (str) –

  • precision (int) –

  • start_num (int) –

  • num_files (int) –

  • compression (bool) –

  • path (str) –

  • prefix (str) –

  • fileName (str | None) –

  • fullPath (str | None) –

  • subdir (str) –

  • first_image (int) –

  • num_images (int) –

  • osc_start (float) –

  • osc_range (float) –

  • osc_total_range (float) –

  • overlap (float) –

  • kappa (float | None) –

  • kappa_phi (float | None) –

  • exp_time (float) –

  • num_lines (int) –

  • energy (float) –

  • resolution (float) –

  • detector_distance (float) –

  • transmission (float) –

  • shutterless (bool) –

  • take_snapshots (int) –

  • detector_binning_mode (str | None) –

  • detector_roi_mode (int) –

  • mesh_range (dict[str, float]) –

  • num_triggers (int) –

  • num_images_per_trigger (int) –

  • cell_counting (str | None) –

  • mesh_center (str | None) –

  • cell_spacing (tuple[float, float] | None) –

  • sub_wedge_size (int) –

  • disable_processing (bool) –

  • cellA (float) –

  • cellB (float) –

  • cellC (float) –

  • cellAlpha (float) –

  • cellBeta (float) –

  • cellGamma (float) –

  • helical (bool) –

  • mesh (bool) –

  • taskIndexList (list[int] | None) –

  • wedges (list[mxcubecore.queuelib.models.DataCollectionNodeModel]) –

  • swNumImages (int) –

  • experiment_type (str) –

  • use_aimed_resolution (float) –

  • use_aimed_multiplicity (float) –

  • aimed_multiplicity (float) –

  • aimed_i_sigma (float) –

  • aimed_completness (float) –

  • strategy_complexity (str) –

  • strategy_program (str) –

  • induce_burn (bool) –

  • use_permitted_rotation (bool) –

  • permitted_phi_start (float) –

  • permitted_phi_end (float) –

  • low_res_pass_strat (bool) –

  • max_crystal_vdim (float) –

  • min_crystal_vdim (float) –

  • max_crystal_vphi (float) –

  • min_crystal_vphi (float) –

  • space_group (str) –

  • use_min_dose (float) –

  • use_min_time (float) –

  • min_dose (float) –

  • min_time (float) –

  • account_rad_damage (bool) –

  • auto_res (bool) –

  • opt_sad (bool) –

  • sad_res (float) –

  • determine_rad_params (bool) –

  • burn_osc_start (float) –

  • burn_osc_interval (float) –

  • rad_suscept (float) –

  • beta (float) –

  • gamma (float) –

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'account_rad_damage': FieldInfo(annotation=bool, required=False, default=False), 'aimed_completness': FieldInfo(annotation=float, required=False, default=0), 'aimed_i_sigma': FieldInfo(annotation=float, required=False, default=0), 'aimed_multiplicity': FieldInfo(annotation=float, required=False, default=0), 'auto_res': FieldInfo(annotation=bool, required=False, default=False), 'base_prefix': FieldInfo(annotation=str, required=False, default=''), 'beta': FieldInfo(annotation=float, required=False, default=0), 'burn_osc_interval': FieldInfo(annotation=float, required=False, default=0), 'burn_osc_start': FieldInfo(annotation=float, required=False, default=0), 'cellA': FieldInfo(annotation=float, required=False, default=0), 'cellAlpha': FieldInfo(annotation=float, required=False, default=0), 'cellB': FieldInfo(annotation=float, required=False, default=0), 'cellBeta': FieldInfo(annotation=float, required=False, default=0), 'cellC': FieldInfo(annotation=float, required=False, default=0), 'cellGamma': FieldInfo(annotation=float, required=False, default=0), 'cell_counting': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'cell_spacing': FieldInfo(annotation=Union[tuple[float, float], NoneType], required=False, default=None), 'compression': FieldInfo(annotation=bool, required=False, default=False), 'detector_binning_mode': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'detector_distance': FieldInfo(annotation=float, required=False, default=0), 'detector_roi_mode': FieldInfo(annotation=int, required=False, default=0), 'determine_rad_params': FieldInfo(annotation=bool, required=False, default=False), 'directory': FieldInfo(annotation=str, required=False, default=''), 'disable_processing': FieldInfo(annotation=bool, required=False, default=False), 'energy': FieldInfo(annotation=float, required=False, default=0, description='Energy in keV'), 'exp_time': FieldInfo(annotation=float, required=False, default=0, description='Exposure time in seconds'), 'experiment_type': FieldInfo(annotation=str, required=False, default=''), 'fileName': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'first_image': FieldInfo(annotation=int, required=False, default=0, description='First image number'), 'fullPath': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'gamma': FieldInfo(annotation=float, required=False, default=0), 'helical': FieldInfo(annotation=bool, required=False, default=False), 'induce_burn': FieldInfo(annotation=bool, required=False, default=False), 'kappa': FieldInfo(annotation=Union[float, NoneType], required=False, default=0), 'kappa_phi': FieldInfo(annotation=Union[float, NoneType], required=False, default=0), 'low_res_pass_strat': FieldInfo(annotation=bool, required=False, default=False), 'mad_prefix': FieldInfo(annotation=str, required=False, default=''), 'max_crystal_vdim': FieldInfo(annotation=float, required=False, default=0), 'max_crystal_vphi': FieldInfo(annotation=float, required=False, default=0), 'mesh': FieldInfo(annotation=bool, required=False, default=False), 'mesh_center': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'mesh_range': FieldInfo(annotation=dict[str, float], required=False, default={}), 'min_crystal_vdim': FieldInfo(annotation=float, required=False, default=0), 'min_crystal_vphi': FieldInfo(annotation=float, required=False, default=0), 'min_dose': FieldInfo(annotation=float, required=False, default=0), 'min_time': FieldInfo(annotation=float, required=False, default=0), 'num_files': FieldInfo(annotation=int, required=False, default=0), 'num_images': FieldInfo(annotation=int, required=False, default=0, description='Total number of images'), 'num_images_per_trigger': FieldInfo(annotation=int, required=False, default=0), 'num_lines': FieldInfo(annotation=int, required=False, default=1), 'num_triggers': FieldInfo(annotation=int, required=False, default=0), 'opt_sad': FieldInfo(annotation=bool, required=False, default=False), 'osc_range': FieldInfo(annotation=float, required=False, default=0, description='Oscillation range per image'), 'osc_start': FieldInfo(annotation=float, required=False, default=0, description='Starting oscillation angle'), 'osc_total_range': FieldInfo(annotation=float, required=False, default=0), 'overlap': FieldInfo(annotation=float, required=False, default=0), 'path': FieldInfo(annotation=str, required=False, default=''), 'permitted_phi_end': FieldInfo(annotation=float, required=False, default=0), 'permitted_phi_start': FieldInfo(annotation=float, required=False, default=0), 'precision': FieldInfo(annotation=int, required=False, default=0), 'prefix': FieldInfo(annotation=str, required=False, default=''), 'process_directory': FieldInfo(annotation=str, required=False, default=''), 'rad_suscept': FieldInfo(annotation=float, required=False, default=0), 'reference_image_prefix': FieldInfo(annotation=str, required=False, default=''), 'resolution': FieldInfo(annotation=float, required=False, default=0, description='Resolution in Angstrom'), 'run_number': FieldInfo(annotation=int, required=False, default=0), 'sad_res': FieldInfo(annotation=float, required=False, default=0), 'shape': FieldInfo(annotation=Union[str, int], required=False, default=''), 'shutterless': FieldInfo(annotation=bool, required=False, default=True), 'space_group': FieldInfo(annotation=str, required=False, default=''), 'start_num': FieldInfo(annotation=int, required=False, default=0), 'strategy_complexity': FieldInfo(annotation=str, required=False, default=''), 'strategy_program': FieldInfo(annotation=str, required=False, default=''), 'sub_wedge_size': FieldInfo(annotation=int, required=False, default=10), 'subdir': FieldInfo(annotation=str, required=False, default=''), 'suffix': FieldInfo(annotation=str, required=False, default=''), 'swNumImages': FieldInfo(annotation=int, required=False, default=0), 'take_snapshots': FieldInfo(annotation=int, required=False, default=0), 'taskIndexList': FieldInfo(annotation=Union[list[int], NoneType], required=False, default=None), 'transmission': FieldInfo(annotation=float, required=False, default=100), 'use_aimed_multiplicity': FieldInfo(annotation=float, required=False, default=0), 'use_aimed_resolution': FieldInfo(annotation=float, required=False, default=0), 'use_min_dose': FieldInfo(annotation=float, required=False, default=0), 'use_min_time': FieldInfo(annotation=float, required=False, default=0), 'use_permitted_rotation': FieldInfo(annotation=bool, required=False, default=False), 'wedge_prefix': FieldInfo(annotation=str, required=False, default=''), 'wedges': FieldInfo(annotation=list[DataCollectionNodeModel], required=False, default=[]), 'xds_dir': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.DataCollectionNodeModel(*, type: str = '', queueID: int = -1, checked: bool = False, state: int = 0, label: str = '', sampleID: str, sampleQueueID: int | None = None, taskIndex: int | None = None, diffractionPlan: list[mxcubecore.queuelib.models.TaskNodeModel] | None = None, diffractionPlanID: int | None = None, name: str | None = None, parameters: DataCollectionParameters)[source]#

Bases: TaskNodeModel

Parameters:
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'checked': FieldInfo(annotation=bool, required=False, default=False), 'diffractionPlan': FieldInfo(annotation=Union[list[TaskNodeModel], NoneType], required=False, default=None), 'diffractionPlanID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'label': FieldInfo(annotation=str, required=False, default=''), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'parameters': FieldInfo(annotation=DataCollectionParameters, required=True), 'queueID': FieldInfo(annotation=int, required=False, default=-1), 'sampleID': FieldInfo(annotation=str, required=True), 'sampleQueueID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'state': FieldInfo(annotation=int, required=False, default=0), 'taskIndex': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.DataCollectionParameters(*, shape: str | int = '', directory: str = '', process_directory: str = '', xds_dir: str = '', base_prefix: str = '', mad_prefix: str = '', reference_image_prefix: str = '', wedge_prefix: str = '', run_number: int = 0, suffix: str = '', precision: int = 0, start_num: int = 0, num_files: int = 0, compression: bool = False, path: str = '', prefix: str = '', fileName: str | None = '', fullPath: str | None = '', subdir: str = '', first_image: int = 0, num_images: int = 0, osc_start: float = 0, osc_range: float = 0, osc_total_range: float = 0, overlap: float = 0, kappa: float | None = 0, kappa_phi: float | None = 0, exp_time: float = 0, num_lines: int = 1, energy: float = 0, resolution: float = 0, detector_distance: float = 0, transmission: float = 100, shutterless: bool = True, take_snapshots: int = 0, detector_binning_mode: str | None = None, detector_roi_mode: int = 0, mesh_range: dict[str, float] = {}, num_triggers: int = 0, num_images_per_trigger: int = 0, cell_counting: str | None = None, mesh_center: str | None = None, cell_spacing: tuple[float, float] | None = None, sub_wedge_size: int = 10, disable_processing: bool = False, cellA: float = 0, cellB: float = 0, cellC: float = 0, cellAlpha: float = 0, cellBeta: float = 0, cellGamma: float = 0, helical: bool = False, mesh: bool = False, taskIndexList: list[int] | None = None, wedges: list[mxcubecore.queuelib.models.DataCollectionNodeModel] = [], swNumImages: int = 0)[source]#

Bases: TaskDataPathModel

Parameters:
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'base_prefix': FieldInfo(annotation=str, required=False, default=''), 'cellA': FieldInfo(annotation=float, required=False, default=0), 'cellAlpha': FieldInfo(annotation=float, required=False, default=0), 'cellB': FieldInfo(annotation=float, required=False, default=0), 'cellBeta': FieldInfo(annotation=float, required=False, default=0), 'cellC': FieldInfo(annotation=float, required=False, default=0), 'cellGamma': FieldInfo(annotation=float, required=False, default=0), 'cell_counting': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'cell_spacing': FieldInfo(annotation=Union[tuple[float, float], NoneType], required=False, default=None), 'compression': FieldInfo(annotation=bool, required=False, default=False), 'detector_binning_mode': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'detector_distance': FieldInfo(annotation=float, required=False, default=0), 'detector_roi_mode': FieldInfo(annotation=int, required=False, default=0), 'directory': FieldInfo(annotation=str, required=False, default=''), 'disable_processing': FieldInfo(annotation=bool, required=False, default=False), 'energy': FieldInfo(annotation=float, required=False, default=0, description='Energy in keV'), 'exp_time': FieldInfo(annotation=float, required=False, default=0, description='Exposure time in seconds'), 'fileName': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'first_image': FieldInfo(annotation=int, required=False, default=0, description='First image number'), 'fullPath': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'helical': FieldInfo(annotation=bool, required=False, default=False), 'kappa': FieldInfo(annotation=Union[float, NoneType], required=False, default=0), 'kappa_phi': FieldInfo(annotation=Union[float, NoneType], required=False, default=0), 'mad_prefix': FieldInfo(annotation=str, required=False, default=''), 'mesh': FieldInfo(annotation=bool, required=False, default=False), 'mesh_center': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'mesh_range': FieldInfo(annotation=dict[str, float], required=False, default={}), 'num_files': FieldInfo(annotation=int, required=False, default=0), 'num_images': FieldInfo(annotation=int, required=False, default=0, description='Total number of images'), 'num_images_per_trigger': FieldInfo(annotation=int, required=False, default=0), 'num_lines': FieldInfo(annotation=int, required=False, default=1), 'num_triggers': FieldInfo(annotation=int, required=False, default=0), 'osc_range': FieldInfo(annotation=float, required=False, default=0, description='Oscillation range per image'), 'osc_start': FieldInfo(annotation=float, required=False, default=0, description='Starting oscillation angle'), 'osc_total_range': FieldInfo(annotation=float, required=False, default=0), 'overlap': FieldInfo(annotation=float, required=False, default=0), 'path': FieldInfo(annotation=str, required=False, default=''), 'precision': FieldInfo(annotation=int, required=False, default=0), 'prefix': FieldInfo(annotation=str, required=False, default=''), 'process_directory': FieldInfo(annotation=str, required=False, default=''), 'reference_image_prefix': FieldInfo(annotation=str, required=False, default=''), 'resolution': FieldInfo(annotation=float, required=False, default=0, description='Resolution in Angstrom'), 'run_number': FieldInfo(annotation=int, required=False, default=0), 'shape': FieldInfo(annotation=Union[str, int], required=False, default=''), 'shutterless': FieldInfo(annotation=bool, required=False, default=True), 'start_num': FieldInfo(annotation=int, required=False, default=0), 'sub_wedge_size': FieldInfo(annotation=int, required=False, default=10), 'subdir': FieldInfo(annotation=str, required=False, default=''), 'suffix': FieldInfo(annotation=str, required=False, default=''), 'swNumImages': FieldInfo(annotation=int, required=False, default=0), 'take_snapshots': FieldInfo(annotation=int, required=False, default=0), 'taskIndexList': FieldInfo(annotation=Union[list[int], NoneType], required=False, default=None), 'transmission': FieldInfo(annotation=float, required=False, default=100), 'wedge_prefix': FieldInfo(annotation=str, required=False, default=''), 'wedges': FieldInfo(annotation=list[DataCollectionNodeModel], required=False, default=[]), 'xds_dir': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.EnergyScanNodeModel(*, type: str = '', queueID: int = -1, checked: bool = False, state: int = 0, label: str = '', sampleID: str, sampleQueueID: int | None = None, taskIndex: int | None = None, diffractionPlan: list[mxcubecore.queuelib.models.TaskNodeModel] | None = None, diffractionPlanID: int | None = None, name: str | None = None, parameters: EnergyScanParameters)[source]#

Bases: TaskNodeModel

Parameters:
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'checked': FieldInfo(annotation=bool, required=False, default=False), 'diffractionPlan': FieldInfo(annotation=Union[list[TaskNodeModel], NoneType], required=False, default=None), 'diffractionPlanID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'label': FieldInfo(annotation=str, required=False, default=''), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'parameters': FieldInfo(annotation=EnergyScanParameters, required=True), 'queueID': FieldInfo(annotation=int, required=False, default=-1), 'sampleID': FieldInfo(annotation=str, required=True), 'sampleQueueID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'state': FieldInfo(annotation=int, required=False, default=0), 'taskIndex': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.EnergyScanParameters(*, shape: str | int = '', directory: str = '', process_directory: str = '', xds_dir: str = '', base_prefix: str = '', mad_prefix: str = '', reference_image_prefix: str = '', wedge_prefix: str = '', run_number: int = 0, suffix: str = '', precision: int = 0, start_num: int = 0, num_files: int = 0, compression: bool = False, path: str = '', prefix: str = '', fileName: str | None = '', fullPath: str | None = '', subdir: str = '', element: str = '', edge: str = '')[source]#

Bases: TaskDataPathModel

Parameters:
  • shape (str | int) –

  • directory (str) –

  • process_directory (str) –

  • xds_dir (str) –

  • base_prefix (str) –

  • mad_prefix (str) –

  • reference_image_prefix (str) –

  • wedge_prefix (str) –

  • run_number (int) –

  • suffix (str) –

  • precision (int) –

  • start_num (int) –

  • num_files (int) –

  • compression (bool) –

  • path (str) –

  • prefix (str) –

  • fileName (str | None) –

  • fullPath (str | None) –

  • subdir (str) –

  • element (str) –

  • edge (str) –

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'base_prefix': FieldInfo(annotation=str, required=False, default=''), 'compression': FieldInfo(annotation=bool, required=False, default=False), 'directory': FieldInfo(annotation=str, required=False, default=''), 'edge': FieldInfo(annotation=str, required=False, default=''), 'element': FieldInfo(annotation=str, required=False, default=''), 'fileName': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'fullPath': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'mad_prefix': FieldInfo(annotation=str, required=False, default=''), 'num_files': FieldInfo(annotation=int, required=False, default=0), 'path': FieldInfo(annotation=str, required=False, default=''), 'precision': FieldInfo(annotation=int, required=False, default=0), 'prefix': FieldInfo(annotation=str, required=False, default=''), 'process_directory': FieldInfo(annotation=str, required=False, default=''), 'reference_image_prefix': FieldInfo(annotation=str, required=False, default=''), 'run_number': FieldInfo(annotation=int, required=False, default=0), 'shape': FieldInfo(annotation=Union[str, int], required=False, default=''), 'start_num': FieldInfo(annotation=int, required=False, default=0), 'subdir': FieldInfo(annotation=str, required=False, default=''), 'suffix': FieldInfo(annotation=str, required=False, default=''), 'wedge_prefix': FieldInfo(annotation=str, required=False, default=''), 'xds_dir': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.QueueNodeModel(*, type: str = '', queueID: int = -1, checked: bool = False, state: int = 0)[source]#

Bases: BaseModel

Parameters:
  • type (str) –

  • queueID (int) –

  • checked (bool) –

  • state (int) –

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'checked': FieldInfo(annotation=bool, required=False, default=False), 'queueID': FieldInfo(annotation=int, required=False, default=-1), 'state': FieldInfo(annotation=int, required=False, default=0), 'type': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.SampleNode(*, type: str = '', queueID: int = -1, checked: bool = False, state: int = 0, sampleID: str, code: str | None = None, location: str, cell_no: int = 0, puck_no: int = 1, sampleName: str, proteinAcronym: str | None = '', defaultPrefix: str | None = '', defaultSubDir: str | None = '', tasks: list[mxcubecore.queuelib.models.DataCollectionNodeModel | mxcubecore.queuelib.models.CharacterisationNodeModel | mxcubecore.queuelib.models.XRFNodeModel | mxcubecore.queuelib.models.EnergyScanNodeModel | mxcubecore.queuelib.models.WorkflowNodeModel])[source]#

Bases: QueueNodeModel

Parameters:
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'cell_no': FieldInfo(annotation=int, required=False, default=0), 'checked': FieldInfo(annotation=bool, required=False, default=False), 'code': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'defaultPrefix': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'defaultSubDir': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'location': FieldInfo(annotation=str, required=True), 'proteinAcronym': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'puck_no': FieldInfo(annotation=int, required=False, default=1), 'queueID': FieldInfo(annotation=int, required=False, default=-1), 'sampleID': FieldInfo(annotation=str, required=True), 'sampleName': FieldInfo(annotation=str, required=True), 'state': FieldInfo(annotation=int, required=False, default=0), 'tasks': FieldInfo(annotation=list[Union[DataCollectionNodeModel, CharacterisationNodeModel, XRFNodeModel, EnergyScanNodeModel, WorkflowNodeModel]], required=True), 'type': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.TaskDataPathModel(*, shape: str | int = '', directory: str = '', process_directory: str = '', xds_dir: str = '', base_prefix: str = '', mad_prefix: str = '', reference_image_prefix: str = '', wedge_prefix: str = '', run_number: int = 0, suffix: str = '', precision: int = 0, start_num: int = 0, num_files: int = 0, compression: bool = False, path: str = '', prefix: str = '', fileName: str | None = '', fullPath: str | None = '', subdir: str = '')[source]#

Bases: BaseModel

Parameters:
  • shape (str | int) –

  • directory (str) –

  • process_directory (str) –

  • xds_dir (str) –

  • base_prefix (str) –

  • mad_prefix (str) –

  • reference_image_prefix (str) –

  • wedge_prefix (str) –

  • run_number (int) –

  • suffix (str) –

  • precision (int) –

  • start_num (int) –

  • num_files (int) –

  • compression (bool) –

  • path (str) –

  • prefix (str) –

  • fileName (str | None) –

  • fullPath (str | None) –

  • subdir (str) –

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'base_prefix': FieldInfo(annotation=str, required=False, default=''), 'compression': FieldInfo(annotation=bool, required=False, default=False), 'directory': FieldInfo(annotation=str, required=False, default=''), 'fileName': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'fullPath': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'mad_prefix': FieldInfo(annotation=str, required=False, default=''), 'num_files': FieldInfo(annotation=int, required=False, default=0), 'path': FieldInfo(annotation=str, required=False, default=''), 'precision': FieldInfo(annotation=int, required=False, default=0), 'prefix': FieldInfo(annotation=str, required=False, default=''), 'process_directory': FieldInfo(annotation=str, required=False, default=''), 'reference_image_prefix': FieldInfo(annotation=str, required=False, default=''), 'run_number': FieldInfo(annotation=int, required=False, default=0), 'shape': FieldInfo(annotation=Union[str, int], required=False, default=''), 'start_num': FieldInfo(annotation=int, required=False, default=0), 'subdir': FieldInfo(annotation=str, required=False, default=''), 'suffix': FieldInfo(annotation=str, required=False, default=''), 'wedge_prefix': FieldInfo(annotation=str, required=False, default=''), 'xds_dir': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.TaskNodeModel(*, type: str = '', queueID: int = -1, checked: bool = False, state: int = 0, label: str = '', sampleID: str, sampleQueueID: int | None = None, taskIndex: int | None = None, diffractionPlan: list[mxcubecore.queuelib.models.TaskNodeModel] | None = None, diffractionPlanID: int | None = None, name: str | None = None)[source]#

Bases: QueueNodeModel

Parameters:
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'checked': FieldInfo(annotation=bool, required=False, default=False), 'diffractionPlan': FieldInfo(annotation=Union[list[TaskNodeModel], NoneType], required=False, default=None), 'diffractionPlanID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'label': FieldInfo(annotation=str, required=False, default=''), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'queueID': FieldInfo(annotation=int, required=False, default=-1), 'sampleID': FieldInfo(annotation=str, required=True), 'sampleQueueID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'state': FieldInfo(annotation=int, required=False, default=0), 'taskIndex': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.WorkflowNodeModel(*, type: str = '', queueID: int = -1, checked: bool = False, state: int = 0, label: str = '', sampleID: str, sampleQueueID: int | None = None, taskIndex: int | None = None, diffractionPlan: list[mxcubecore.queuelib.models.TaskNodeModel] | None = None, diffractionPlanID: int | None = None, name: str | None = None, parameters: WorkflowParameters)[source]#

Bases: TaskNodeModel

Parameters:
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'checked': FieldInfo(annotation=bool, required=False, default=False), 'diffractionPlan': FieldInfo(annotation=Union[list[TaskNodeModel], NoneType], required=False, default=None), 'diffractionPlanID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'label': FieldInfo(annotation=str, required=False, default=''), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'parameters': FieldInfo(annotation=WorkflowParameters, required=True), 'queueID': FieldInfo(annotation=int, required=False, default=-1), 'sampleID': FieldInfo(annotation=str, required=True), 'sampleQueueID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'state': FieldInfo(annotation=int, required=False, default=0), 'taskIndex': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.WorkflowParameters(*, shape: str | int = '', directory: str = '', process_directory: str = '', xds_dir: str = '', base_prefix: str = '', mad_prefix: str = '', reference_image_prefix: str = '', wedge_prefix: str = '', run_number: int = 0, suffix: str = '', precision: int = 0, start_num: int = 0, num_files: int = 0, compression: bool = False, path: str = '', prefix: str = '', fileName: str | None = '', fullPath: str | None = '', subdir: str = '', beam_size: str | None = None, cell_count: int | None = None, doc: str = '', label: str = '', name: str | None = None, numCols: int = 0, numRows: int = 0, requires: str | None = None, type: str = '', wfname: str = '', wfpath: str = '')[source]#

Bases: TaskDataPathModel

Parameters:
  • shape (str | int) –

  • directory (str) –

  • process_directory (str) –

  • xds_dir (str) –

  • base_prefix (str) –

  • mad_prefix (str) –

  • reference_image_prefix (str) –

  • wedge_prefix (str) –

  • run_number (int) –

  • suffix (str) –

  • precision (int) –

  • start_num (int) –

  • num_files (int) –

  • compression (bool) –

  • path (str) –

  • prefix (str) –

  • fileName (str | None) –

  • fullPath (str | None) –

  • subdir (str) –

  • beam_size (str | None) –

  • cell_count (int | None) –

  • doc (str) –

  • label (str) –

  • name (str | None) –

  • numCols (int) –

  • numRows (int) –

  • requires (str | None) –

  • type (str) –

  • wfname (str) –

  • wfpath (str) –

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'base_prefix': FieldInfo(annotation=str, required=False, default=''), 'beam_size': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'cell_count': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'compression': FieldInfo(annotation=bool, required=False, default=False), 'directory': FieldInfo(annotation=str, required=False, default=''), 'doc': FieldInfo(annotation=str, required=False, default=''), 'fileName': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'fullPath': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'label': FieldInfo(annotation=str, required=False, default=''), 'mad_prefix': FieldInfo(annotation=str, required=False, default=''), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'numCols': FieldInfo(annotation=int, required=False, default=0), 'numRows': FieldInfo(annotation=int, required=False, default=0), 'num_files': FieldInfo(annotation=int, required=False, default=0), 'path': FieldInfo(annotation=str, required=False, default=''), 'precision': FieldInfo(annotation=int, required=False, default=0), 'prefix': FieldInfo(annotation=str, required=False, default=''), 'process_directory': FieldInfo(annotation=str, required=False, default=''), 'reference_image_prefix': FieldInfo(annotation=str, required=False, default=''), 'requires': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'run_number': FieldInfo(annotation=int, required=False, default=0), 'shape': FieldInfo(annotation=Union[str, int], required=False, default=''), 'start_num': FieldInfo(annotation=int, required=False, default=0), 'subdir': FieldInfo(annotation=str, required=False, default=''), 'suffix': FieldInfo(annotation=str, required=False, default=''), 'type': FieldInfo(annotation=str, required=False, default=''), 'wedge_prefix': FieldInfo(annotation=str, required=False, default=''), 'wfname': FieldInfo(annotation=str, required=False, default=''), 'wfpath': FieldInfo(annotation=str, required=False, default=''), 'xds_dir': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.XRFNodeModel(*, type: str = '', queueID: int = -1, checked: bool = False, state: int = 0, label: str = '', sampleID: str, sampleQueueID: int | None = None, taskIndex: int | None = None, diffractionPlan: list[mxcubecore.queuelib.models.TaskNodeModel] | None = None, diffractionPlanID: int | None = None, name: str | None = None, parameters: XRFParameters)[source]#

Bases: TaskNodeModel

Parameters:
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'checked': FieldInfo(annotation=bool, required=False, default=False), 'diffractionPlan': FieldInfo(annotation=Union[list[TaskNodeModel], NoneType], required=False, default=None), 'diffractionPlanID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'label': FieldInfo(annotation=str, required=False, default=''), 'name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'parameters': FieldInfo(annotation=XRFParameters, required=True), 'queueID': FieldInfo(annotation=int, required=False, default=-1), 'sampleID': FieldInfo(annotation=str, required=True), 'sampleQueueID': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'state': FieldInfo(annotation=int, required=False, default=0), 'taskIndex': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'type': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

class mxcubecore.queuelib.models.XRFParameters(*, shape: str | int = '', directory: str = '', process_directory: str = '', xds_dir: str = '', base_prefix: str = '', mad_prefix: str = '', reference_image_prefix: str = '', wedge_prefix: str = '', run_number: int = 0, suffix: str = '', precision: int = 0, start_num: int = 0, num_files: int = 0, compression: bool = False, path: str = '', prefix: str = '', fileName: str | None = '', fullPath: str | None = '', subdir: str = '', countTime: float = 0)[source]#

Bases: TaskDataPathModel

Parameters:
  • shape (str | int) –

  • directory (str) –

  • process_directory (str) –

  • xds_dir (str) –

  • base_prefix (str) –

  • mad_prefix (str) –

  • reference_image_prefix (str) –

  • wedge_prefix (str) –

  • run_number (int) –

  • suffix (str) –

  • precision (int) –

  • start_num (int) –

  • num_files (int) –

  • compression (bool) –

  • path (str) –

  • prefix (str) –

  • fileName (str | None) –

  • fullPath (str | None) –

  • subdir (str) –

  • countTime (float) –

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[dict[str, FieldInfo]] = {'base_prefix': FieldInfo(annotation=str, required=False, default=''), 'compression': FieldInfo(annotation=bool, required=False, default=False), 'countTime': FieldInfo(annotation=float, required=False, default=0), 'directory': FieldInfo(annotation=str, required=False, default=''), 'fileName': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'fullPath': FieldInfo(annotation=Union[str, NoneType], required=False, default=''), 'mad_prefix': FieldInfo(annotation=str, required=False, default=''), 'num_files': FieldInfo(annotation=int, required=False, default=0), 'path': FieldInfo(annotation=str, required=False, default=''), 'precision': FieldInfo(annotation=int, required=False, default=0), 'prefix': FieldInfo(annotation=str, required=False, default=''), 'process_directory': FieldInfo(annotation=str, required=False, default=''), 'reference_image_prefix': FieldInfo(annotation=str, required=False, default=''), 'run_number': FieldInfo(annotation=int, required=False, default=0), 'shape': FieldInfo(annotation=Union[str, int], required=False, default=''), 'start_num': FieldInfo(annotation=int, required=False, default=0), 'subdir': FieldInfo(annotation=str, required=False, default=''), 'suffix': FieldInfo(annotation=str, required=False, default=''), 'wedge_prefix': FieldInfo(annotation=str, required=False, default=''), 'xds_dir': FieldInfo(annotation=str, required=False, default='')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo].

This replaces Model.__fields__ from Pydantic V1.

mxcubecore.queuelib.models.validate_path(path: str) → str[source]#

Validate a path without requiring it to exist.

Self-contained copy of mxcubeweb.core.models.generic.validate_path, kept in sync deliberately rather than imported, so this package has no dependency on mxcubeweb.

Parameters:

path (str) –

Return type:

str