Data Templates
albert.collections.data_templates
Functions:
| Name | Description |
|---|---|
generate_data_template_patches |
|
DataTemplateId
module-attribute
AlbertHTTPError
Bases: AlbertException
Base class for all erors due to HTTP responses.
Source code in src/albert/exceptions.py
AlbertPaginator
AlbertPaginator(
*,
path: str,
mode: PaginationMode,
session: AlbertSession,
deserialize: Callable[
[Iterable[dict]], Iterable[ItemType]
],
params: dict[str, str] | None = None,
)
Bases: Iterator[ItemType]
Helper class for pagination through Albert endpoints.
Two pagination modes are possible:
- Offset-based via by the offset query parameter
- Key-based via by the startKey query parameter and 'lastKey' response field
A custom deserialize function is provided when additional logic is required to load
the raw items returned by the search listing, e.g., making additional Albert API calls.
Source code in src/albert/core/pagination.py
AlbertSession
AlbertSession(
*,
base_url: str,
token: str | None = None,
auth_manager: AlbertClientCredentials
| AlbertSSOClient
| None = None,
retries: int | None = None,
)
Bases: Session
A session that has a base URL, which is prefixed to all request URLs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
base_url
|
str
|
The base URL to prefix to all relative request paths (e.g., "https://app.albertinvent.com"). |
required |
token
|
str | None
|
A static JWT token for authentication. Ignored if |
None
|
auth_manager
|
AlbertClientCredentials | AlbertSSOClient
|
An authentication manager used to dynamically fetch and refresh tokens.
If provided, it overrides |
None
|
retries
|
int
|
The number of automatic retries on failed requests (default is 3). |
None
|
Methods:
| Name | Description |
|---|---|
request |
|
Source code in src/albert/core/session.py
request
Source code in src/albert/core/session.py
BaseCollection
BaseCollection(*, session: AlbertSession)
BaseCollection is the base class for all collection classes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
session
|
AlbertSession
|
The Albert API Session instance. |
required |
Source code in src/albert/collections/base.py
DCPatchDatum
DataColumnValue
pydantic-model
Bases: BaseAlbertModel
Show JSON schema:
{
"$defs": {
"AuditFields": {
"description": "The audit fields for a resource",
"properties": {
"by": {
"default": null,
"title": "By",
"type": "string"
},
"byName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Byname"
},
"at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "At"
}
},
"title": "AuditFields",
"type": "object"
},
"DataColumn": {
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"name": {
"title": "Name",
"type": "string"
},
"defalt": {
"default": false,
"title": "Defalt",
"type": "boolean"
},
"Metadata": {
"anyOf": [
{
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "string"
},
{
"$ref": "#/$defs/EntityLink"
},
{
"items": {
"$ref": "#/$defs/EntityLink"
},
"type": "array"
}
]
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Metadata"
},
"albertId": {
"default": null,
"title": "Albertid",
"type": "string"
}
},
"required": [
"name"
],
"title": "DataColumn",
"type": "object"
},
"DataType": {
"enum": [
"number",
"string",
"enum"
],
"title": "DataType",
"type": "string"
},
"EntityLink": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
}
},
"required": [
"id"
],
"title": "EntityLink",
"type": "object"
},
"EnumValidationValue": {
"description": "Represents a value for an enum type validation.\n\nAttributes\n----------\ntext : str\n The text of the enum value.\nid : str | None\n The ID of the enum value. If not provided, the ID will be generated upon creation.",
"properties": {
"text": {
"title": "Text",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"originalText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Originaltext"
}
},
"required": [
"text"
],
"title": "EnumValidationValue",
"type": "object"
},
"Operator": {
"enum": [
"between",
"lt",
"lte",
"gte",
"gt",
"eq"
],
"title": "Operator",
"type": "string"
},
"Status": {
"description": "The status of a resource",
"enum": [
"active",
"inactive"
],
"title": "Status",
"type": "string"
},
"Unit": {
"description": "Unit is a Pydantic model representing a unit entity.\n\nAttributes\n----------\nid : str | None\n The Albert ID of the unit. Set when the unit is retrieved from Albert.\nname : str\n The name of the unit.\nsymbol : str | None\n The symbol of the unit.\nsynonyms : List[str] | None\n The list of synonyms for the unit.\ncategory : UnitCategory\n The category of the unit.\nverified : bool | None\n Whether the unit is verified.\nstatus : Status | None\n The status of the unit. Allowed values are `active`, and `inactive`",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Albertid"
},
"name": {
"title": "Name",
"type": "string"
},
"symbol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Symbol"
},
"Synonyms": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Synonyms"
},
"category": {
"anyOf": [
{
"$ref": "#/$defs/UnitCategory"
},
{
"type": "null"
}
],
"default": null
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"title": "Verified"
}
},
"required": [
"name"
],
"title": "Unit",
"type": "object"
},
"UnitCategory": {
"description": "UnitCategory is an enumeration of possible unit categories.\n\nAttributes\n----------\nLENGTH : str\n Represents length units.\nVOLUME : str\n Represents volume units.\nLIQUID_VOLUME : str\n Represents liquid volume units.\nANGLES : str\n Represents angle units.\nTIME : str\n Represents time units.\nFREQUENCY : str\n Represents frequency units.\nMASS : str\n Represents mass units.\nCURRENT : str\n Represents electric current units.\nTEMPERATURE : str\n Represents temperature units.\nAMOUNT : str\n Represents amount of substance units.\nLUMINOSITY : str\n Represents luminous intensity units.\nFORCE : str\n Represents force units.\nENERGY : str\n Represents energy units.\nPOWER : str\n Represents power units.\nPRESSURE : str\n Represents pressure units.\nELECTRICITY_AND_MAGNETISM : str\n Represents electricity and magnetism units.\nOTHER : str\n Represents other units.\nWEIGHT : str\n Represents weight units.",
"enum": [
"Length",
"Volume",
"Liquid volume",
"Angles",
"Time",
"Frequency",
"Mass",
"Electric current",
"Temperature",
"Amount of substance",
"Luminous intensity",
"Force",
"Energy",
"Power",
"Pressure",
"Electricity and magnetism",
"Other",
"Weight",
"Area",
"Surface Area",
"Binary",
"Capacitance",
"Speed",
"Electrical conductivity",
"Electrical permitivitty",
"Density",
"Resistance"
],
"title": "UnitCategory",
"type": "string"
},
"ValueValidation": {
"properties": {
"datatype": {
"$ref": "#/$defs/DataType"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/EnumValidationValue"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
},
"min": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Min"
},
"max": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
},
"operator": {
"anyOf": [
{
"$ref": "#/$defs/Operator"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"datatype"
],
"title": "ValueValidation",
"type": "object"
}
},
"properties": {
"data_column": {
"$ref": "#/$defs/DataColumn",
"default": null
},
"id": {
"default": null,
"title": "Id",
"type": "string"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
},
"hidden": {
"default": false,
"title": "Hidden",
"type": "boolean"
},
"Unit": {
"anyOf": [
{
"$ref": "#/$defs/Unit"
},
{
"$ref": "#/$defs/EntityLink"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"calculation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Calculation"
},
"sequence": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sequence"
},
"validation": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ValueValidation"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Validation"
}
},
"title": "DataColumnValue",
"type": "object"
}
Fields:
-
data_column(DataColumn) -
data_column_id(str) -
value(str | None) -
hidden(bool) -
unit(SerializeAsEntityLink[Unit] | None) -
calculation(str | None) -
sequence(str | None) -
validation(list[ValueValidation] | None)
Validators:
check_for_id
pydantic-validator
Source code in src/albert/resources/data_templates.py
DataTemplate
Bases: BaseTaggedResource
data_column_values
class-attribute
instance-attribute
data_column_values: list[DataColumnValue] | None = Field(
alias="DataColumns", default=None
)
deleted_parameters
class-attribute
instance-attribute
deleted_parameters: list[ParameterValue] | None = Field(
alias="DeletedParameters",
default=None,
frozen=True,
exclude=True,
)
metadata
class-attribute
instance-attribute
parameter_values
class-attribute
instance-attribute
parameter_values: list[ParameterValue] | None = Field(
alias="Parameters", default=None
)
users_with_access
class-attribute
instance-attribute
DataTemplateCollection
DataTemplateCollection(*, session: AlbertSession)
Bases: BaseCollection
DataTemplateCollection is a collection class for managing DataTemplate entities in the Albert platform.
Methods:
| Name | Description |
|---|---|
add_data_columns |
Adds data columns to a data template. |
add_parameters |
Adds parameters to a data template. |
create |
Creates a new data template. |
delete |
Deletes a data template by its ID. |
get_all |
Retrieve fully hydrated DataTemplate entities with optional filters. |
get_by_id |
Get a data template by its ID. |
get_by_ids |
Get a list of data templates by their IDs. |
get_by_name |
Get a data template by its name. |
search |
Search for DataTemplate matching the provided criteria. |
update |
Updates a data template. |
Source code in src/albert/collections/data_templates.py
add_data_columns
add_data_columns(
*,
data_template_id: DataTemplateId,
data_columns: list[DataColumnValue],
) -> DataTemplate
Adds data columns to a data template.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_template_id
|
str
|
The ID of the data template to add the columns to. |
required |
data_columns
|
list[DataColumnValue]
|
The list of DataColumnValue objects to add to the data template. |
required |
Returns:
| Type | Description |
|---|---|
DataTemplate
|
The updated DataTemplate object. |
Source code in src/albert/collections/data_templates.py
add_parameters
add_parameters(
*,
data_template_id: DataTemplateId,
parameters: list[ParameterValue],
) -> DataTemplate
Adds parameters to a data template.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_template_id
|
str
|
The ID of the data template to add the columns to. |
required |
parameters
|
list[ParameterValue]
|
The list of ParameterValue objects to add to the data template. |
required |
Returns:
| Type | Description |
|---|---|
DataTemplate
|
The updated DataTemplate object. |
Source code in src/albert/collections/data_templates.py
create
create(*, data_template: DataTemplate) -> DataTemplate
Creates a new data template.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_template
|
DataTemplate
|
The DataTemplate object to create. |
required |
Returns:
| Type | Description |
|---|---|
DataTemplate
|
The registered DataTemplate object with an ID. |
Source code in src/albert/collections/data_templates.py
delete
delete(*, id: DataTemplateId) -> None
Deletes a data template by its ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id
|
str
|
The ID of the data template to delete. |
required |
get_all
get_all(
*,
name: str | None = None,
user_id: str | None = None,
order_by: OrderBy = DESCENDING,
limit: int = 100,
offset: int = 0,
) -> Iterator[DataTemplate]
Retrieve fully hydrated DataTemplate entities with optional filters.
This method returns complete entity data using get_by_ids.
Use :meth:search for faster retrieval when you only need lightweight, partial (unhydrated) entities.
Source code in src/albert/collections/data_templates.py
get_by_id
get_by_id(*, id: DataTemplateId) -> DataTemplate
Get a data template by its ID.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
id
|
DataTemplateId
|
The ID of the data template to get. |
required |
Returns:
| Type | Description |
|---|---|
DataTemplate
|
The data template object on match or None |
Source code in src/albert/collections/data_templates.py
get_by_ids
get_by_ids(
*, ids: list[DataTemplateId]
) -> list[DataTemplate]
Get a list of data templates by their IDs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
ids
|
list[DataTemplateId]
|
The list of DataTemplate IDs to get. |
required |
Returns:
| Type | Description |
|---|---|
list[DataTemplate]
|
A list of DataTemplate objects with the provided IDs. |
Source code in src/albert/collections/data_templates.py
get_by_name
get_by_name(*, name: str) -> DataTemplate | None
Get a data template by its name.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
The name of the data template to get. |
required |
Returns:
| Type | Description |
|---|---|
DataTemplate | None
|
The matching data template object or None if not found. |
Source code in src/albert/collections/data_templates.py
search
search(
*,
name: str | None = None,
user_id: str | None = None,
order_by: OrderBy = DESCENDING,
limit: int = 100,
offset: int = 0,
) -> Iterator[DataTemplateSearchItem]
Search for DataTemplate matching the provided criteria.
⚠️ This method returns partial (unhydrated) entities to optimize performance.
To retrieve fully detailed entities, use :meth:get_all instead.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
Union[str, None]
|
The name of the data template to filter by, by default None. |
None
|
user_id
|
str
|
user_id to filter by, by default None. |
None
|
order_by
|
OrderBy
|
The order by which to sort the results, by default OrderBy.DESCENDING. |
DESCENDING
|
Returns:
| Type | Description |
|---|---|
Iterator[DataTemplateSearchItem]
|
An iterator of DataTemplateSearchItem objects matching the provided criteria. |
Source code in src/albert/collections/data_templates.py
update
update(*, data_template: DataTemplate) -> DataTemplate
Updates a data template.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
data_template
|
DataTemplate
|
The DataTemplate object to update. The ID must be set and matching the ID of the DataTemplate to update. |
required |
Returns:
| Type | Description |
|---|---|
DataTemplate
|
The Updated DataTemplate object. |
Source code in src/albert/collections/data_templates.py
378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 | |
DataTemplateSearchItem
pydantic-model
Bases: BaseAlbertModel, HydrationMixin[DataTemplate]
Show JSON schema:
{
"$defs": {
"DataTemplateSearchItemDataColumn": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"localizedNames": {
"$ref": "#/$defs/LocalizedNames"
}
},
"required": [
"id",
"localizedNames"
],
"title": "DataTemplateSearchItemDataColumn",
"type": "object"
},
"LocalizedNames": {
"properties": {
"de": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "De"
},
"ja": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Ja"
},
"zh": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Zh"
},
"es": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Es"
}
},
"title": "LocalizedNames",
"type": "object"
}
},
"properties": {
"albertId": {
"title": "Albertid",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"dataColumns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/DataTemplateSearchItemDataColumn"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Datacolumns"
}
},
"required": [
"albertId",
"name"
],
"title": "DataTemplateSearchItem",
"type": "object"
}
Fields:
-
_collection(BaseCollection | None) -
id(str) -
name(str) -
data_columns(list[DataTemplateSearchItemDataColumn] | None)
DataType
EnumValidationValue
pydantic-model
Bases: BaseAlbertModel
Represents a value for an enum type validation.
Attributes:
| Name | Type | Description |
|---|---|---|
text |
str
|
The text of the enum value. |
id |
str | None
|
The ID of the enum value. If not provided, the ID will be generated upon creation. |
Show JSON schema:
{
"description": "Represents a value for an enum type validation.\n\nAttributes\n----------\ntext : str\n The text of the enum value.\nid : str | None\n The ID of the enum value. If not provided, the ID will be generated upon creation.",
"properties": {
"text": {
"title": "Text",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"originalText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Originaltext"
}
},
"required": [
"text"
],
"title": "EnumValidationValue",
"type": "object"
}
Fields:
OrderBy
PaginationMode
ParameterValue
pydantic-model
Bases: BaseAlbertModel
The value of a parameter in a parameter group.
Attributes:
| Name | Type | Description |
|---|---|---|
parameter |
Parameter
|
The Parameter resource this value is associated with. Provide either an id or a parameter keyword argument. |
id |
str | None
|
The Albert ID of the Parameter resource this value is associated with. Provide either an id or a parameter keyword argument. |
category |
ParameterCategory
|
The category of the parameter. |
short_name |
str | None
|
The short name of the parameter value. |
value |
str | None
|
The default value of the parameter. Can be a string or an InventoryItem (if, for example, the parameter is an instrumnt choice). |
unit |
Unit | None
|
The unit of measure for the provided parameter value. |
name |
str
|
The name of the parameter. Read-only. |
sequence |
int
|
The sequence of the parameter. Read-only. |
Show JSON schema:
{
"$defs": {
"ACL": {
"description": "The Access Control List (ACL) for a user",
"properties": {
"id": {
"description": "The id of the user for which this ACL applies",
"title": "Id",
"type": "string"
},
"fgc": {
"anyOf": [
{
"$ref": "#/$defs/AccessControlLevel"
},
{
"type": "null"
}
],
"default": null,
"description": "The Fine-Grain Control Level"
}
},
"required": [
"id"
],
"title": "ACL",
"type": "object"
},
"AccessControlLevel": {
"description": "The fine grain control",
"enum": [
"ProjectOwner",
"ProjectEditor",
"ProjectViewer",
"ProjectAllTask",
"ProjectPropertyTask",
"InventoryOwner",
"InventoryViewer",
"CustomTemplateOwner",
"CustomTemplateViewer"
],
"title": "AccessControlLevel",
"type": "string"
},
"AuditFields": {
"description": "The audit fields for a resource",
"properties": {
"by": {
"default": null,
"title": "By",
"type": "string"
},
"byName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Byname"
},
"at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "At"
}
},
"title": "AuditFields",
"type": "object"
},
"Cas": {
"description": "Represents a CAS entity.",
"properties": {
"number": {
"description": "The CAS number.",
"title": "Number",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Name of the CAS.",
"title": "Name"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The description or name of the CAS.",
"title": "Description"
},
"notes": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Notes related to the CAS.",
"title": "Notes"
},
"category": {
"anyOf": [
{
"$ref": "#/$defs/CasCategory"
},
{
"type": "null"
}
],
"default": null,
"description": "The category of the CAS."
},
"casSmiles": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "CAS SMILES notation.",
"title": "Cassmiles"
},
"inchiKey": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "InChIKey of the CAS.",
"title": "Inchikey"
},
"iUpacName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "IUPAC name of the CAS.",
"title": "Iupacname"
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The AlbertID of the CAS.",
"title": "Albertid"
},
"hazards": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/Hazard"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Hazards associated with the CAS.",
"title": "Hazards"
},
"wgk": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "German Water Hazard Class (WGK) number.",
"title": "Wgk"
},
"ecListNo": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "European Community (EC) number.",
"title": "Eclistno"
},
"type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Type of the CAS.",
"title": "Type"
},
"classificationType": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Classification type of the CAS.",
"title": "Classificationtype"
},
"order": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "CAS order.",
"title": "Order"
}
},
"required": [
"number"
],
"title": "Cas",
"type": "object"
},
"CasAmount": {
"description": "CasAmount is a Pydantic model representing an amount of a given CAS.\n\nAttributes\n----------\nmin : float\n The minimum amount of the CAS in the formulation.\nmax : float\n The maximum amount of the CAS in the formulation.\nid : str | None\n The Albert ID of the CAS Number Resource this amount represents. Provide either a Cas or an ID.\ncas : Cas | None\n The CAS object associated with this amount. Provide either a Cas or an id.\ncas_smiles: str | None\n The SMILES string of the CAS Number resource. Obtained from the Cas object when provided.\nnumber: str | None\n The CAS number. Obtained from the Cas object when provided.",
"properties": {
"min": {
"title": "Min",
"type": "number"
},
"max": {
"title": "Max",
"type": "number"
},
"inventoryValue": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Inventoryvalue"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"casCategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Cascategory"
},
"cas": {
"anyOf": [
{
"$ref": "#/$defs/Cas"
},
{
"type": "null"
}
],
"default": null
},
"casSmiles": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Cassmiles"
},
"number": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Number"
}
},
"required": [
"min",
"max"
],
"title": "CasAmount",
"type": "object"
},
"CasCategory": {
"enum": [
"User",
"Verisk",
"TSCA - Public",
"TSCA - Private",
"not TSCA",
"CAS linked to External Database",
"Unknown (Trade Secret)",
"CL_Inventory Upload"
],
"title": "CasCategory",
"type": "string"
},
"Company": {
"description": "Company is a Pydantic model representing a company entity.\n\nAttributes\n----------\nname : str\n The name of the company.\nid : str | None\n The Albert ID of the company. Set when the company is retrieved from Albert.\ndistance : float | None\n The scores of a company in a search result, optional. Read-only.",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"name": {
"title": "Name",
"type": "string"
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Albertid"
},
"distance": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Distance"
}
},
"required": [
"name"
],
"title": "Company",
"type": "object"
},
"DataType": {
"enum": [
"number",
"string",
"enum"
],
"title": "DataType",
"type": "string"
},
"EntityLink": {
"properties": {
"id": {
"title": "Id",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
}
},
"required": [
"id"
],
"title": "EntityLink",
"type": "object"
},
"EnumValidationValue": {
"description": "Represents a value for an enum type validation.\n\nAttributes\n----------\ntext : str\n The text of the enum value.\nid : str | None\n The ID of the enum value. If not provided, the ID will be generated upon creation.",
"properties": {
"text": {
"title": "Text",
"type": "string"
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"originalText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Originaltext"
}
},
"required": [
"text"
],
"title": "EnumValidationValue",
"type": "object"
},
"Hazard": {
"description": "Represents a chemical hazard.",
"properties": {
"subCategory": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Hazard subcategory",
"title": "Subcategory"
},
"hCode": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Hazard code",
"title": "Hcode"
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Hazard category",
"title": "Category"
},
"class": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Hazard classification",
"title": "Class"
},
"hCodeText": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Hazard code text",
"title": "Hcodetext"
}
},
"title": "Hazard",
"type": "object"
},
"InventoryCategory": {
"enum": [
"RawMaterials",
"Consumables",
"Equipment",
"Formulas"
],
"title": "InventoryCategory",
"type": "string"
},
"InventoryItem": {
"description": "An InventoryItem is a Pydantic model representing an item in the inventory. Can be a raw material, consumable, equipment, or formula.\nNote: Formulas should be registered via the Worksheet collection / Sheet resource.\n\nReturns\n-------\nInventoryItem\n An InventoryItem that can be used to represent an item in the inventory. Can be a raw material, consumable, equipment, or formula.\n\nAttributes\n------\n\nname : str\n The name of the InventoryItem.\nid : str | None\n The Albert ID of the InventoryItem. Set when the InventoryItem is retrieved from Albert.\ndescription : str | None\n The description of the InventoryItem.\ncategory : InventoryCategory\n The category of the InventoryItem. Allowed values are `RawMaterials`, `Consumables`, `Equipment`, and `Formulas`.\nunit_category : InventoryUnitCategory\n The unit category of the InventoryItem. Can be mass, volume, length, pressure, or units. By default, mass is used for RawMaterials and Formulas, and units is used for Equipment and Consumables.\nsecurity_class : SecurityClass | None\n The security class of the InventoryItem. Optional. Can be confidential, shared, or restricted.\ncompany : Company | str | None\n The company associated with the InventoryItem. Can be a Company object or a string. If a String is provided, a Company object with the name of the provided string will be first-or-created.\nminimum : list[InventoryMinimum] | None\n The minimum amount of the InventoryItem that must be kept in stock at a given Location. Optional.\nalias : str | None\n An alias for the InventoryItem. Optional.\ncas : list[CasAmount] | None\n The CAS numbers associated with the InventoryItem. This is how a compositional breakdown can be provided. Optional.\nmetadata : dict[str, str | list[EntityLink] | EntityLink] | None\n Metadata associated with the InventoryItem. Optional. Allowed metadata fields can be found in the CustomFields documentation.\nproject_id : str | None\n The project ID associated with the InventoryItem. Read Only. Required for Formulas.\nformula_id : str | None\n The formula ID associated with the InventoryItem. Read Only.\ntags : list[str|Tag] | None\n The tags associated with the InventoryItem. Optional. If a string is provided, a Tag object with the name of the provided string will be first-or-created.",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Tags": {
"anyOf": [
{
"items": {
"anyOf": [
{
"$ref": "#/$defs/Tag"
},
{
"$ref": "#/$defs/EntityLink"
}
]
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Tags"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Albertid"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Description"
},
"category": {
"$ref": "#/$defs/InventoryCategory"
},
"unitCategory": {
"anyOf": [
{
"$ref": "#/$defs/InventoryUnitCategory"
},
{
"type": "null"
}
],
"default": null
},
"class": {
"anyOf": [
{
"$ref": "#/$defs/SecurityClass"
},
{
"type": "null"
}
],
"default": null
},
"Company": {
"anyOf": [
{
"$ref": "#/$defs/Company"
},
{
"$ref": "#/$defs/EntityLink"
},
{
"type": "null"
}
],
"default": null,
"title": "Company"
},
"minimum": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/InventoryMinimum"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Minimum"
},
"alias": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Alias"
},
"Cas": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/CasAmount"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Cas"
},
"Metadata": {
"anyOf": [
{
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "string"
},
{
"$ref": "#/$defs/EntityLink"
},
{
"items": {
"$ref": "#/$defs/EntityLink"
},
"type": "array"
}
]
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Metadata"
},
"parentId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Parentid"
},
"ACL": {
"items": {
"$ref": "#/$defs/ACL"
},
"title": "Acl",
"type": "array"
},
"TaskConfig": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Taskconfig"
},
"formulaId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Formulaid"
},
"Symbols": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Symbols"
},
"unNumber": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unnumber"
},
"recentAttachmentId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Recentattachmentid"
}
},
"required": [
"category"
],
"title": "InventoryItem",
"type": "object"
},
"InventoryMinimum": {
"description": "Defined the minimum amount of an InventoryItem that must be kept in stock at a given Location.\n\nAttributes\n----------\nid : str\n The unique identifier of the Location object associated with this InventoryMinimum.\n Provide either a Location or a location id.\nlocation : Location\n The Location object associated with this InventoryMinimum. Provide either a Location or a location id.\nminimum : float\n The minimum amount of the InventoryItem that must be kept in stock at the given Location.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"location": {
"anyOf": [
{
"$ref": "#/$defs/Location"
},
{
"type": "null"
}
],
"default": null
},
"minimum": {
"maximum": 1000000000000000,
"minimum": 0,
"title": "Minimum",
"type": "number"
}
},
"required": [
"minimum"
],
"title": "InventoryMinimum",
"type": "object"
},
"InventoryUnitCategory": {
"enum": [
"mass",
"volume",
"length",
"pressure",
"units"
],
"title": "InventoryUnitCategory",
"type": "string"
},
"Location": {
"description": "A location in Albert.\n\nAttributes\n----------\nname : str\n The name of the location.\nid : str | None\n The Albert ID of the location. Set when the location is retrieved from Albert.\nlatitude : float\n The latitude of the location.\nlongitude : float\n The longitude of the location.\naddress : str\n The address of the location.\ncountry : str | None\n The country code of the location. Must be two characters long.",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"name": {
"title": "Name",
"type": "string"
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Albertid"
},
"latitude": {
"title": "Latitude",
"type": "number"
},
"longitude": {
"title": "Longitude",
"type": "number"
},
"address": {
"title": "Address",
"type": "string"
},
"country": {
"anyOf": [
{
"maxLength": 2,
"minLength": 2,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Country"
}
},
"required": [
"name",
"latitude",
"longitude",
"address"
],
"title": "Location",
"type": "object"
},
"Operator": {
"enum": [
"between",
"lt",
"lte",
"gte",
"gt",
"eq"
],
"title": "Operator",
"type": "string"
},
"Parameter": {
"description": "A parameter in Albert.\n\nAttributes\n----------\nname : str\n The name of the parameter. Names must be unique.\nid : str | None\n The Albert ID of the parameter. Set when the parameter is retrieved from Albert.\ncategory : ParameterCategory\n The category of the parameter. Allowed values are `Normal` and `Special`. Read-only.\nrank : int\n The rank of the returned parameter. Read-only.",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"name": {
"title": "Name",
"type": "string"
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Albertid"
},
"Metadata": {
"anyOf": [
{
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "integer"
},
{
"type": "string"
},
{
"$ref": "#/$defs/EntityLink"
},
{
"items": {
"$ref": "#/$defs/EntityLink"
},
"type": "array"
}
]
},
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Metadata"
},
"category": {
"anyOf": [
{
"$ref": "#/$defs/ParameterCategory"
},
{
"type": "null"
}
],
"default": null
},
"rank": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Rank"
}
},
"required": [
"name"
],
"title": "Parameter",
"type": "object"
},
"ParameterCategory": {
"description": "The category of a parameter",
"enum": [
"Normal",
"Special"
],
"title": "ParameterCategory",
"type": "string"
},
"SecurityClass": {
"description": "The security class of a resource",
"enum": [
"shared",
"restricted",
"confidential",
"private",
"public"
],
"title": "SecurityClass",
"type": "string"
},
"Status": {
"description": "The status of a resource",
"enum": [
"active",
"inactive"
],
"title": "Status",
"type": "string"
},
"Tag": {
"description": "Tag is a Pydantic model representing a tag entity.\n\nAttributes\n----------\ntag : str\n The name of the tag.\nid : str | None\n The Albert ID of the tag. Set when the tag is retrieved from Albert.\n\nMethods\n-------\nfrom_string(tag: str) -> \"Tag\"\n Creates a Tag object from a string.",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"name": {
"title": "Name",
"type": "string"
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Albertid"
}
},
"required": [
"name"
],
"title": "Tag",
"type": "object"
},
"Unit": {
"description": "Unit is a Pydantic model representing a unit entity.\n\nAttributes\n----------\nid : str | None\n The Albert ID of the unit. Set when the unit is retrieved from Albert.\nname : str\n The name of the unit.\nsymbol : str | None\n The symbol of the unit.\nsynonyms : List[str] | None\n The list of synonyms for the unit.\ncategory : UnitCategory\n The category of the unit.\nverified : bool | None\n Whether the unit is verified.\nstatus : Status | None\n The status of the unit. Allowed values are `active`, and `inactive`",
"properties": {
"status": {
"anyOf": [
{
"$ref": "#/$defs/Status"
},
{
"type": "null"
}
],
"default": null
},
"Created": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"Updated": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"albertId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Albertid"
},
"name": {
"title": "Name",
"type": "string"
},
"symbol": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Symbol"
},
"Synonyms": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Synonyms"
},
"category": {
"anyOf": [
{
"$ref": "#/$defs/UnitCategory"
},
{
"type": "null"
}
],
"default": null
},
"verified": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": false,
"title": "Verified"
}
},
"required": [
"name"
],
"title": "Unit",
"type": "object"
},
"UnitCategory": {
"description": "UnitCategory is an enumeration of possible unit categories.\n\nAttributes\n----------\nLENGTH : str\n Represents length units.\nVOLUME : str\n Represents volume units.\nLIQUID_VOLUME : str\n Represents liquid volume units.\nANGLES : str\n Represents angle units.\nTIME : str\n Represents time units.\nFREQUENCY : str\n Represents frequency units.\nMASS : str\n Represents mass units.\nCURRENT : str\n Represents electric current units.\nTEMPERATURE : str\n Represents temperature units.\nAMOUNT : str\n Represents amount of substance units.\nLUMINOSITY : str\n Represents luminous intensity units.\nFORCE : str\n Represents force units.\nENERGY : str\n Represents energy units.\nPOWER : str\n Represents power units.\nPRESSURE : str\n Represents pressure units.\nELECTRICITY_AND_MAGNETISM : str\n Represents electricity and magnetism units.\nOTHER : str\n Represents other units.\nWEIGHT : str\n Represents weight units.",
"enum": [
"Length",
"Volume",
"Liquid volume",
"Angles",
"Time",
"Frequency",
"Mass",
"Electric current",
"Temperature",
"Amount of substance",
"Luminous intensity",
"Force",
"Energy",
"Power",
"Pressure",
"Electricity and magnetism",
"Other",
"Weight",
"Area",
"Surface Area",
"Binary",
"Capacitance",
"Speed",
"Electrical conductivity",
"Electrical permitivitty",
"Density",
"Resistance"
],
"title": "UnitCategory",
"type": "string"
},
"ValueValidation": {
"properties": {
"datatype": {
"$ref": "#/$defs/DataType"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"items": {
"$ref": "#/$defs/EnumValidationValue"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
},
"min": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Min"
},
"max": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Max"
},
"operator": {
"anyOf": [
{
"$ref": "#/$defs/Operator"
},
{
"type": "null"
}
],
"default": null
}
},
"required": [
"datatype"
],
"title": "ValueValidation",
"type": "object"
}
},
"description": "The value of a parameter in a parameter group.\n\nAttributes\n----------\nparameter : Parameter\n The Parameter resource this value is associated with. Provide either an id or a parameter keyword argument.\nid : str | None\n The Albert ID of the Parameter resource this value is associated with. Provide either an id or a parameter keyword argument.\ncategory: ParameterCategory\n The category of the parameter.\nshort_name : str | None\n The short name of the parameter value.\nvalue : str | None\n The default value of the parameter. Can be a string or an InventoryItem (if, for example, the parameter is an instrumnt choice).\nunit : Unit | None\n The unit of measure for the provided parameter value.\nname : str\n The name of the parameter. Read-only.\nsequence : int\n The sequence of the parameter. Read-only.",
"properties": {
"parameter": {
"$ref": "#/$defs/Parameter",
"default": null
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Id"
},
"category": {
"anyOf": [
{
"$ref": "#/$defs/ParameterCategory"
},
{
"type": "null"
}
],
"default": null
},
"shortName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Shortname"
},
"value": {
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/$defs/InventoryItem"
},
{
"$ref": "#/$defs/EntityLink"
},
{
"type": "null"
}
],
"default": null,
"title": "Value"
},
"Unit": {
"anyOf": [
{
"$ref": "#/$defs/Unit"
},
{
"$ref": "#/$defs/EntityLink"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"Added": {
"anyOf": [
{
"$ref": "#/$defs/AuditFields"
},
{
"type": "null"
}
],
"default": null
},
"validation": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ValueValidation"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Validation"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"sequence": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sequence"
},
"originalShortName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Originalshortname"
},
"originalName": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Originalname"
}
},
"title": "ParameterValue",
"type": "object"
}
Fields:
-
parameter(Parameter) -
id(str | None) -
category(ParameterCategory | None) -
short_name(str | None) -
value(str | SerializeAsEntityLink[InventoryItem] | None) -
unit(SerializeAsEntityLink[Unit] | None) -
added(AuditFields | None) -
validation(list[ValueValidation] | None) -
name(str | None) -
sequence(str | None) -
original_short_name(str | None) -
original_name(str | None)
Validators:
set_parameter_fields
pydantic-validator
set_parameter_fields() -> ParameterValue
Source code in src/albert/resources/parameter_groups.py
validate_parameter_value
pydantic-validator
Source code in src/albert/resources/parameter_groups.py
generate_data_template_patches
generate_data_template_patches(
initial_patches: PatchPayload,
updated_data_template: DataTemplate,
existing_data_template: DataTemplate,
)