mxcubeweb.core.components.queue#

Functions

build_task_node_model(value)

normalize_mesh_range(value)

validate_path(path)

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, ...])

Queue(app, config)

QueueBuilder()

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

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

QueueSerializer(builder)

Serializes the queue.

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 mxcubeweb.core.components.queue.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[mxcubeweb.core.components.queue.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 mxcubeweb.core.components.queue.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: str = '', 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 (str) –

  • 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[mxcubeweb.core.components.queue.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=str, required=False, default=''), '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 mxcubeweb.core.components.queue.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[mxcubeweb.core.components.queue.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 mxcubeweb.core.components.queue.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: str = '', path: str = '', prefix: str = '', fileName: str | None = '', fullPath: str | None = '', subdir: str = '')[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=str, required=False, default=''), '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 mxcubeweb.core.components.queue.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[mxcubeweb.core.components.queue.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 mxcubeweb.core.components.queue.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: str = '', 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 (str) –

  • 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=str, required=False, default=''), '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 mxcubeweb.core.components.queue.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:
  • model (Characterisation) – The mode to set parameters of

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

  • task_data (dict) – Dictionary with new 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 mxcubeweb.core.components.queue.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 mxcubeweb.core.components.queue.QueueSerializer(builder)[source]#

Bases: object

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

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.

class mxcubeweb.core.components.queue.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[mxcubeweb.core.components.queue.DataCollectionNodeModel | mxcubeweb.core.components.queue.CharacterisationNodeModel | mxcubeweb.core.components.queue.XRFNodeModel | mxcubeweb.core.components.queue.EnergyScanNodeModel | mxcubeweb.core.components.queue.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 mxcubeweb.core.components.queue.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: str = '', 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 (str) –

  • 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=str, required=False, default=''), '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 mxcubeweb.core.components.queue.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[mxcubeweb.core.components.queue.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 mxcubeweb.core.components.queue.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[mxcubeweb.core.components.queue.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 mxcubeweb.core.components.queue.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: str = '', 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 (str) –

  • 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=str, required=False, default=''), '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 mxcubeweb.core.components.queue.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[mxcubeweb.core.components.queue.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 mxcubeweb.core.components.queue.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: str = '', 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 (str) –

  • 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=str, required=False, default=''), '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.