mxcubecore.queuelib#

queuelib: the queue client library.

Builds and serializes the queue tree into format documented in JSON_FORMAT.md (in this package).

class mxcubecore.queuelib.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.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 = '')[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) –

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.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.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 = '')[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) –

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.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.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.QueueBuilder[source]#

Bases: object

Creates queue models the creation of queue entries are handled in queue_model_child_added event handler

add_characterisation(node_id: int, task: dict) → int[source]#

Add a data characterisation task to the sample with id: <id>.

Parameters:
  • node_id (int) – id of the sample to which the task belongs

  • task (dict) – Task data (parameters)

Returns:

The queue id of the Data collection

Return type:

int

add_data_collection(node_id: int, task: dict) → int[source]#

Add a data collection task to the sample with id: <id>.

Parameters:
  • node_id (int) – id of the sample to which the task belongs

  • task (dict) – task data

Returns:

The queue id of the data collection

Return type:

int

add_energy_scan(node_id: int, task: dict) → int[source]#

Add a energy scan task to the sample with id: <id>.

Parameters:
  • node_id (int) – id of the sample to which the task belongs

  • task (dict) – task data

Returns:

The queue id of the data collection

Return type:

int

add_interleaved(node_id: int, task: dict) → int[source]#

Add a interleaved data collection task to the sample with id: <id>.

Parameters:
  • node_id (int) – id of the sample to which the task belongs

  • task (dict) – task data

Returns:

The queue id of the data collection

Return type:

int

add_queue_entry(node_id: int, task: dict, task_name: str)[source]#

Add a queue entry to the sample with id <node_id>.

Parameters:
  • node_id (int) – id of the sample to which the task belongs

  • task (dict) – task data

  • task_name (str) – The task name

add_sample(sample_id: str, item)[source]#

Add a sample with sample id <sample_id> the queue.

Parameters:

sample_id (str) – Sample id (often sample changer location)

Returns:

SampleQueueEntry

add_workflow(node_id: int, task: dict) → int[source]#

Add a worklfow task to the parent node with id: <id>.

For adding GPhL Auto workflow, call with node_id==parent_node_id and all required parameters in task[“parameters”]

Parameters:
  • node_id (int) – id of the parent node to which the task belongs

  • task (dict) – task data

Returns:

The queue id of the data collection

Return type:

int

add_xrf_scan(node_id: int, task: dict) → int[source]#

Add a XRF Scan task to the sample with id: <id>.

Parameters:
  • node_id (int) – id of the sample to which the task belongs

  • task (dict) – task data

Returns:

The queue id of the data collection

Return type:

int

get_default_prefix(sample_data, generic_name=False)[source]#

Thin pass-through to HWR.beamline.session.get_default_prefix.

Kept as its own method (rather than called inline) so apply_template can call it as self.get_default_prefix(…).

get_default_subdir(sample_data)[source]#

Thin pass-through to HWR.beamline.session.get_default_subdir.

set_char_params(model: Characterisation, entry: BaseQueueEntry, task_data: dict, sample_model)[source]#

Helper method that sets the characterisation parameters.

Helper method that sets the characterisation parameters for a Characterisation.

Parameters:
set_dc_params(model: DataCollection, entry: BaseQueueEntry, task_data: dict, sample_model)[source]#

Helper method that sets the data collection parameters for a DataCollection.

Parameters:
  • model (DataCollection) – The model to set parameters of

  • entry (BaseQueueEntry) – The queue entry of the model

  • task_data (dict) – Dictionary with new parameters

set_energy_scan_params(model: EnergyScan, entry: BaseQueueEntry, task_data: dict, sample_model)[source]#

Helper method that sets the xrf scan parameters for a XRF spectrum Scan.

Parameters:
  • model (EnergyScan) – The model to set parameters of

  • entry (BaseQueueEntry) – The queue entry of the model

  • task_data (dict) – Dictionary with new parameters

set_gphl_wf_params(model: GphlWorkflow, entry: BaseQueueEntry, task_data: dict, sample_model)[source]#

Helper method that sets the parameters for a GPhL workflow task.

Parameters:
  • model (GphlWorkflow) – The model to set parameters of

  • entry (BaseQueueEntry) – The queue entry of the model

  • task_data (dict) – Dictionary with new parameters

  • sample_model – The Sample queueModelObject

set_wf_params(model: Workflow, entry: BaseQueueEntry, task_data: dict, sample_model)[source]#

Helper method that sets the parameters for a workflow task.

Parameters:
  • model (Workflow) – The model to set parameters of

  • entry (BaseQueueEntry) – The queue entry of the model

  • task_data (dict) – Dictionary with new parameters

set_xrf_params(model: XRFSpectrum, entry: BaseQueueEntry, task_data: dict, sample_model)[source]#

Helper method that sets the xrf scan parameters for a XRF spectrum Scan.

Parameters:
  • model (XRFSpectrum) – The model to set parameters of

  • entry (BaseQueueEntry) – The queue entry of the model

  • task_data (dict) – Dictionary with new parameters

strip_prefix(pt, prefix)[source]#

Strip the reference, wedge and mad prefix from a given prefix.

For example, remove ref- from the beginning and _w[n] and -pk, -ip, -ipp from the end.

Parameters:
  • pt (PathTemplate) – path template used to create the prefix

  • prefix (str) – prefix from the client

Returns:

stripped prefix

class mxcubecore.queuelib.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.QueueSerializer(builder)[source]#

Bases: object

Serializes the queue. Depends only on mxcubecore (HWR.beamline.*) and its sibling QueueBuilder - no self.app reference.

add_task(parent: int | str, item: dict) → int[source]#

Add a single task to an already-queued sample.

Unlike queue_add_item (which validates and adds a whole batch of samples/tasks at once), this adds exactly one task to a sample that must already be in the queue - it never creates a Sample node.

Parameters:
  • parent (int | str) – the sample’s queueID, or its sampleID/loc_str

  • item (dict) – task dict, e.g. {“type”: “DataCollection”, “parameters”: {…}}

Returns:

the new task’s queue id

Return type:

int

node_to_dict(node) → dict[source]#

Return a dict representing <node> itself

Return type:

dict

pretty_print_queue(msg: str | None = None) → None[source]#

Pretty print current queue state for debugging.

Parameters:

msg (str | None) –

Return type:

None

queue_add_item(item_list)[source]#

Add queue items to the queue.

Add the queue items in item_list to the queue. The items in the list can be either samples and or tasks. Samples are only added if they are not already in the queue and tasks are appended to the end of an (already existing) sample. A task is ignored if the sample is not already in the queue.

The items in item_list are dictionaries with the following structure:

{ “type”: “Sample | DataCollection | Characterisation”, “sampleID”: sid … task or sample specific data }

Each item (dictionary) describes either a sample or a task.

Validation (malformed input) is all-or-nothing: if any item fails schema validation, nothing is mutated and ValidationError propagates - the request never touched the queue. Once past validation, adding is best-effort per top-level item (see JSON_FORMAT.md known issue #8): items can depend on an earlier one in the same call (e.g. a task nested under a sample added earlier in the same list), so a failed item can’t simply roll back everything after it without also undoing work later items may already depend on. The returned dict’s “add_results” key reports which top-level items (by sampleID) succeeded or failed, so a client doesn’t have to guess from an all-or-nothing HTTP status and risk re-submitting (duplicating) items that already succeeded.

queue_to_dict() → dict[source]#

Return the whole queue: a dict keyed by sample ID, plus “sample_order” and “format_version” - see JSON_FORMAT.md.

Return type:

dict

class mxcubecore.queuelib.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.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.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.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.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.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.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.get_json_schema() → dict[source]#

Return the JSON Schema for queue_to_dict()’s root (“get the whole queue”) response.

Returns:

a JSON Schema (draft 2020-12) dict.

Return type:

dict

Modules

mxcubecore.queuelib.builder

QueueBuilder: constructs queue model nodes (and, indirectly, their matching QueueEntry objects - see QueueModel.queue_model_child_added) from client task data.

mxcubecore.queuelib.constants

Constants for the queue client JSON format.

mxcubecore.queuelib.json_schema

Generates the JSON Schema for the queue JSON format.

mxcubecore.queuelib.models

Pydantic models for the queue client wire format.

mxcubecore.queuelib.regenerate_queue_schema

Regenerate the checked-in queue JSON schema snapshot.

mxcubecore.queuelib.serializer

QueueSerializer: turns the queue tree into the client JSON format, and turns client JSON back into calls on QueueBuilder.