- Improved validation message for unevaluatedProperties errors
- Upgraded VolumeScan handling to new model
- Refactored datatypes to put all enumerations into Enumerations.json
- Reorganised test directories to support parallel testing of different versions
- Fixed bugs in handling suppressed many-to-many links in Pydantic export
- Fixed bugs arising from recent check-ins
- Reorganised top pydantic classes and renamed some directories to disambiguate imports
- Started tagging superseded versions
- Import names improved, and manual-fix generation problems reduced with datamodel_codegen v0.54.1
- Cleaned up Pydantic imports (no functional change added 20260402)
- Fixed version-sensitive test message files
- Upgraded to JSONschema version 2020-12
- Upgraded datamodel-code-generator to version 0.54.0, giving newer Python syntax
- Changed validation code to use jsonschema package
- Properly implemented XOR-type constraints when only one of two fields can be set
- Added testing code and found and fixed some bugs in schemas and/or example files
- Fixed version-sensitive test message files
- Removed version field from MxlimsObject and put it in the new BaseMessageData instead
- Removed namespacedExtensions and changed extensions to be namespaced with domain names as key
- Added ids and urls to MxlimsObject, with domain names as keys, replacing identifiers
- removed identifiers property from all schemas
- Added smiles, selfies, and sequence to SampleComponent
- Renamed Sample.mainComponent link to Sample.parentSample
- Refactored VolumeScan after discussion, adding ScannedPoint class.
- Minor improvements to Overview file
- Constrained resolution to be a positive number
- Added VolumeScan Job for X-ray centring
-
- Added docs/XrayCentring.pdf
- Removed MxExperiment.energy as it duplicated CollectionSweep.energy
- Added MxExperiment.sampleGroup to group samples where only one needs to succeed.
- ExperimentData.priority added
- PinData.loopType added (NB should be made enum)
- PinData.holderLength added
- Puck.positionInDewar added
- Moved acronym from MacromoleculeSample to LogisticalSample
- Renamed MxExperiment.spaceGroupName to selectedSpaceGroupName
- Renamed MxExperiment.unitCell to selectedUnitCell
- Fixed field generation script to deal with overridden fields and 'annotation'
- Removed duplicate 'annotation' fields from subclasses
- Added docs/examples/mapping.xlsx file
- Removed 'no-added-properties' from objects to avoid document breakage
- Refactored handling of numerical types (e.g. minimum 1->exclusiveMinimum 0) and list types, and changed code generation to improve Pydantic type annotations
- Refactored and simplified pydantic inheritance structure
- Fixed problems with default values for id lists in multiple links
- Added default scan axis "omega"
- Moved some fields from required to optional
- Finished and tested conversion to and from spreadsheet data
- Added rough-and-ready field list generation script
- Harmonised use of allOf in datatype attributes
- Corrected error in ReflectionSet.resolutionCutoffs and added new Datatype
- bug fix in missing 'array' type
- Renamed PreparedSample to Sample
- Added LogisticalSample.name
- Added MxExperiment.experimentLocation # (e.g. 'SOLEIL PX2')
- Put 'annotations' field into all objects, replacing 'comments'
- Added Puck.puck_type - so far just a string, an enum needs to be defined
- Added Sample.campaign_name
- Added MxExperiment.required_resolution
- Changed SampleComponent.role to enum, values are 'solvent', 'cryoprotectant', 'ligand', 'cofactor', 'buffer', 'target', 'other'
- Added ReflectionSet.twin_fraction and .possible_twinning
- Renamed ReflectionSet.unit_cell to .refined_unit_cell
- Added RFC4122-compliant Regex to all fields with
"format": "uuid" - Reorganised use of
additionalProperties": falseto appear only in classes that are not inherited - Changed ReflectionStatistics and .resolution_cutoff from list of keyword-value pairs to a simple dictionary
- Added draft mapping files MXLIMS <--> shipping spreadsheet to docs/examples