mex.common.models package¶
Subpackages¶
- mex.common.models.base package
- Submodules
- mex.common.models.base.entity module
- mex.common.models.base.extracted_data module
- mex.common.models.base.field_info module
- mex.common.models.base.filter module
- mex.common.models.base.mapping module
- mex.common.models.base.merged_item module
- mex.common.models.base.model module
BaseModel
BaseModel._convert_list_to_non_list()
BaseModel._convert_non_list_to_list()
BaseModel._fix_value_listyness_for_field()
BaseModel._get_alias_lookup()
BaseModel._get_field_names_allowing_none()
BaseModel._get_list_field_names()
BaseModel.checksum()
BaseModel.fix_listyness()
BaseModel.get_all_fields()
BaseModel.model_computed_fields
BaseModel.model_config
BaseModel.model_fields
BaseModel.model_json_schema()
BaseModel.verify_computed_field_consistency()
- mex.common.models.base.rules module
- mex.common.models.base.schema module
- Module contents
Submodules¶
mex.common.models.access_platform module¶
A way of physically accessing the Resource for re-use.
- class mex.common.models.access_platform.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform, subtractive: SubtractiveAccessPlatform, preventive: PreventiveAccessPlatform, entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update an access platform item.
- entityType: Annotated[Literal['AccessPlatformRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveAccessPlatform, required=True), 'entityType': FieldInfo(annotation=Literal['AccessPlatformRuleSetRequest'], required=False, default='AccessPlatformRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveAccessPlatform, required=True), 'subtractive': FieldInfo(annotation=SubtractiveAccessPlatform, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.access_platform.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform, subtractive: SubtractiveAccessPlatform, preventive: PreventiveAccessPlatform, entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve an access platform item.
- entityType: Annotated[Literal['AccessPlatformRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveAccessPlatform, required=True), 'entityType': FieldInfo(annotation=Literal['AccessPlatformRuleSetResponse'], required=False, default='AccessPlatformRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveAccessPlatform, required=True), 'stableTargetId': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveAccessPlatform, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedAccessPlatformIdentifier¶
- class mex.common.models.access_platform.AdditiveAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditiveAccessPlatform'] = 'AdditiveAccessPlatform')¶
Bases:
_OptionalLists
,_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged access platform items.
- entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['AdditiveAccessPlatform'], required=False, default='AdditiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=Union[TechnicalAccessibility, NoneType], required=False, default=None), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.access_platform.BaseAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists
,_OptionalValues
,_RequiredValues
All fields for a valid access platform except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.access_platform.ExtractedAccessPlatform(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedAccessPlatform'] = 'ExtractedAccessPlatform')¶
Bases:
BaseAccessPlatform
,ExtractedData
An automatically extracted metadata item describing an access platform.
- entityType: Annotated[Literal['ExtractedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedAccessPlatformIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedAccessPlatformIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedAccessPlatformIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['ExtractedAccessPlatform'], required=False, default='ExtractedAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedAccessPlatformIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.access_platform.MergedAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedAccessPlatform'] = 'MergedAccessPlatform', identifier: MergedAccessPlatformIdentifier)¶
Bases:
BaseAccessPlatform
,MergedItem
The result of merging all extracted data and rules for an access platform.
- entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['MergedAccessPlatform'], required=False, default='MergedAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.access_platform.PreventiveAccessPlatform(*, entityType: Literal['PreventiveAccessPlatform'] = 'PreventiveAccessPlatform', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], endpointDescription: list[MergedPrimarySourceIdentifier] = [], endpointType: list[MergedPrimarySourceIdentifier] = [], endpointURL: list[MergedPrimarySourceIdentifier] = [], landingPage: list[MergedPrimarySourceIdentifier] = [], technicalAccessibility: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged access platform items.
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- endpointDescription: list[MergedPrimarySourceIdentifier]¶
- endpointType: list[MergedPrimarySourceIdentifier]¶
- endpointURL: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- landingPage: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveAccessPlatform'], required=False, default='PreventiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- technicalAccessibility: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.access_platform.SubtractiveAccessPlatform(*, endpointDescription: list[Link], endpointType: list[APIType] = [], endpointURL: list[Link] = [], technicalAccessibility: list[TechnicalAccessibility] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractiveAccessPlatform'] = 'SubtractiveAccessPlatform')¶
Bases:
_OptionalLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged access platform items.
- entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=list[Link], required=True), 'endpointType': FieldInfo(annotation=list[APIType], required=False, default=[]), 'endpointURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveAccessPlatform'], required=False, default='SubtractiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=list[TechnicalAccessibility], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.activity module¶
The context a resource was generated in.
This may be a project, an area of work or an administrative procedure.
- class mex.common.models.activity.ActivityRuleSetRequest(*, additive: AdditiveActivity, subtractive: SubtractiveActivity, preventive: PreventiveActivity, entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update an activity item.
- entityType: Annotated[Literal['ActivityRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveActivity, required=True), 'entityType': FieldInfo(annotation=Literal['ActivityRuleSetRequest'], required=False, default='ActivityRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveActivity, required=True), 'subtractive': FieldInfo(annotation=SubtractiveActivity, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.activity.ActivityRuleSetResponse(*, additive: AdditiveActivity, subtractive: SubtractiveActivity, preventive: PreventiveActivity, entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve an activity item.
- entityType: Annotated[Literal['ActivityRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveActivity, required=True), 'entityType': FieldInfo(annotation=Literal['ActivityRuleSetResponse'], required=False, default='ActivityRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveActivity, required=True), 'stableTargetId': FieldInfo(annotation=MergedActivityIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveActivity, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedActivityIdentifier¶
- class mex.common.models.activity.AdditiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['AdditiveActivity'] = 'AdditiveActivity')¶
Bases:
_OptionalLists
,_SparseLists
,AdditiveRule
Rule to add values to merged activity items.
- entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveActivity'], required=False, default='AdditiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.activity.BaseActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [])¶
Bases:
_OptionalLists
,_RequiredLists
All fields for a valid activity except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.activity.ExtractedActivity(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['ExtractedActivity'] = 'ExtractedActivity')¶
Bases:
BaseActivity
,ExtractedData
An automatically extracted metadata set describing an activity.
- entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedActivityIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedActivityIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedActivityIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedActivity'], required=False, default='ExtractedActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedActivityIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.activity.MergedActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['MergedActivity'] = 'MergedActivity', identifier: MergedActivityIdentifier)¶
Bases:
BaseActivity
,MergedItem
The result of merging all extracted data and rules for an activity.
- entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedActivity'], required=False, default='MergedActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedActivityIdentifier, required=True, frozen=True), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.activity.PreventiveActivity(*, entityType: Literal['PreventiveActivity'] = 'PreventiveActivity', abstract: list[MergedPrimarySourceIdentifier] = [], activityType: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], end: list[MergedPrimarySourceIdentifier] = [], externalAssociate: list[MergedPrimarySourceIdentifier] = [], funderOrCommissioner: list[MergedPrimarySourceIdentifier] = [], fundingProgram: list[MergedPrimarySourceIdentifier] = [], involvedPerson: list[MergedPrimarySourceIdentifier] = [], involvedUnit: list[MergedPrimarySourceIdentifier] = [], isPartOfActivity: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], responsibleUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], start: list[MergedPrimarySourceIdentifier] = [], succeeds: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged activity items.
- abstract: list[MergedPrimarySourceIdentifier]¶
- activityType: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- end: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[MergedPrimarySourceIdentifier]¶
- funderOrCommissioner: list[MergedPrimarySourceIdentifier]¶
- fundingProgram: list[MergedPrimarySourceIdentifier]¶
- involvedPerson: list[MergedPrimarySourceIdentifier]¶
- involvedUnit: list[MergedPrimarySourceIdentifier]¶
- isPartOfActivity: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'activityType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'end': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveActivity'], required=False, default='PreventiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'start': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- publication: list[MergedPrimarySourceIdentifier]¶
- responsibleUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- start: list[MergedPrimarySourceIdentifier]¶
- succeeds: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.activity.SubtractiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['SubtractiveActivity'] = 'SubtractiveActivity')¶
Bases:
_OptionalLists
,_SparseLists
,SubtractiveRule
Rule to subtract values from merged activity items.
- entityType: Annotated[Literal['SubtractiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveActivity'], required=False, default='SubtractiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.bibliographic_resource module¶
A book, article, or other documentary resource.
- class mex.common.models.bibliographic_resource.AdditiveBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, repositoryURL: Link | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource')¶
Bases:
_OptionalLists
,_SparseLists
,_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged bibliographic resource items.
- entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveBibliographicResource'], required=False, default='AdditiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])], NoneType], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.bibliographic_resource.BaseBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, repositoryURL: Link | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])¶
Bases:
_OptionalLists
,_RequiredLists
,_OptionalValues
,_RequiredValues
All fields for a valid bibliographic resource except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])], NoneType], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetRequest(*, additive: AdditiveBibliographicResource, subtractive: SubtractiveBibliographicResource, preventive: PreventiveBibliographicResource, entityType: Literal['BibliographicResourceRuleSetRequest'] = 'BibliographicResourceRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a bibliographic resource item.
- entityType: Annotated[Literal['BibliographicResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveBibliographicResource, required=True), 'entityType': FieldInfo(annotation=Literal['BibliographicResourceRuleSetRequest'], required=False, default='BibliographicResourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveBibliographicResource, required=True), 'subtractive': FieldInfo(annotation=SubtractiveBibliographicResource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.bibliographic_resource.BibliographicResourceRuleSetResponse(*, additive: AdditiveBibliographicResource, subtractive: SubtractiveBibliographicResource, preventive: PreventiveBibliographicResource, entityType: Literal['BibliographicResourceRuleSetResponse'] = 'BibliographicResourceRuleSetResponse', stableTargetId: MergedBibliographicResourceIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a bibliographic resource item.
- entityType: Annotated[Literal['BibliographicResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveBibliographicResource, required=True), 'entityType': FieldInfo(annotation=Literal['BibliographicResourceRuleSetResponse'], required=False, default='BibliographicResourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveBibliographicResource, required=True), 'stableTargetId': FieldInfo(annotation=MergedBibliographicResourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveBibliographicResource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedBibliographicResourceIdentifier¶
- class mex.common.models.bibliographic_resource.ExtractedBibliographicResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, repositoryURL: Link | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['ExtractedBibliographicResource'] = 'ExtractedBibliographicResource')¶
Bases:
BaseBibliographicResource
,ExtractedData
An automatically extracted metadata item describing a bibliographic resource.
- entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedBibliographicResourceIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedBibliographicResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedBibliographicResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedBibliographicResource'], required=False, default='ExtractedBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])], NoneType], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedBibliographicResourceIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.bibliographic_resource.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, repositoryURL: Link | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier)¶
Bases:
BaseBibliographicResource
,MergedItem
The result of merging all extracted data and rules for a bibliographic resource.
- entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedBibliographicResource'], required=False, default='MergedBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedBibliographicResourceIdentifier, required=True, frozen=True), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])], NoneType], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.bibliographic_resource.PreventiveBibliographicResource(*, entityType: Literal['PreventiveBibliographicResource'] = 'PreventiveBibliographicResource', abstract: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], alternateIdentifier: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], bibliographicResourceType: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], edition: list[MergedPrimarySourceIdentifier] = [], editor: list[MergedPrimarySourceIdentifier] = [], editorOfSeries: list[MergedPrimarySourceIdentifier] = [], isbnIssn: list[MergedPrimarySourceIdentifier] = [], issue: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], journal: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], pages: list[MergedPrimarySourceIdentifier] = [], publicationPlace: list[MergedPrimarySourceIdentifier] = [], publicationYear: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], repositoryURL: list[MergedPrimarySourceIdentifier] = [], section: list[MergedPrimarySourceIdentifier] = [], subtitle: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], titleOfBook: list[MergedPrimarySourceIdentifier] = [], titleOfSeries: list[MergedPrimarySourceIdentifier] = [], volume: list[MergedPrimarySourceIdentifier] = [], volumeOfSeries: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged bibliographic resource items.
- abstract: list[MergedPrimarySourceIdentifier]¶
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- alternateIdentifier: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- bibliographicResourceType: list[MergedPrimarySourceIdentifier]¶
- contributingUnit: list[MergedPrimarySourceIdentifier]¶
- creator: list[MergedPrimarySourceIdentifier]¶
- distribution: list[MergedPrimarySourceIdentifier]¶
- doi: list[MergedPrimarySourceIdentifier]¶
- edition: list[MergedPrimarySourceIdentifier]¶
- editor: list[MergedPrimarySourceIdentifier]¶
- editorOfSeries: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: list[MergedPrimarySourceIdentifier]¶
- issue: list[MergedPrimarySourceIdentifier]¶
- issued: list[MergedPrimarySourceIdentifier]¶
- journal: list[MergedPrimarySourceIdentifier]¶
- keyword: list[MergedPrimarySourceIdentifier]¶
- language: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternateIdentifier': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'edition': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'editor': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveBibliographicResource'], required=False, default='PreventiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'issue': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'issued': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'journal': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'language': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'pages': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publicationPlace': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publicationYear': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'section': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'subtitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'volume': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'volumeOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- pages: list[MergedPrimarySourceIdentifier]¶
- publicationPlace: list[MergedPrimarySourceIdentifier]¶
- publicationYear: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- repositoryURL: list[MergedPrimarySourceIdentifier]¶
- section: list[MergedPrimarySourceIdentifier]¶
- subtitle: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- titleOfBook: list[MergedPrimarySourceIdentifier]¶
- titleOfSeries: list[MergedPrimarySourceIdentifier]¶
- volume: list[MergedPrimarySourceIdentifier]¶
- volumeOfSeries: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.bibliographic_resource.SubtractiveBibliographicResource(*, accessRestriction: list[AccessRestriction] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')¶
Bases:
_OptionalLists
,_SparseLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged bibliographic resource items.
- entityType: Annotated[Literal['SubtractiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]], required=False, default=[]), 'edition': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]], required=False, default=[]), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveBibliographicResource'], required=False, default='SubtractiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[]), 'issued': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=list[License], required=False, default=[]), 'pages': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]], required=False, default=[]), 'publicationPlace': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]], required=False, default=[]), 'publicationYear': FieldInfo(annotation=list[Year], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'section': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]], required=False, default=[]), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[]), 'volumeOfSeries': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.consent module¶
A consent - for example, an interdepartmental project.
- class mex.common.models.consent.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, hasConsentType: ConsentType | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent')¶
Bases:
_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged consent items.
- entityType: Annotated[Literal['AdditiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['AdditiveConsent'], required=False, default='AdditiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=Union[ConsentStatus, NoneType], required=False, default=None), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=Union[MergedPersonIdentifier, NoneType], required=False, default=None), 'isIndicatedAtTime': FieldInfo(annotation=Union[YearMonthDayTime, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.consent.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)¶
Bases:
_OptionalValues
,_RequiredValues
All fields for a valid consent except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.consent.ConsentRuleSetRequest(*, additive: AdditiveConsent, subtractive: SubtractiveConsent, preventive: PreventiveConsent, entityType: Literal['ConsentRuleSetRequest'] = 'ConsentRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a consent item.
- entityType: Annotated[Literal['ConsentRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveConsent, required=True), 'entityType': FieldInfo(annotation=Literal['ConsentRuleSetRequest'], required=False, default='ConsentRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveConsent, required=True), 'subtractive': FieldInfo(annotation=SubtractiveConsent, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.consent.ConsentRuleSetResponse(*, additive: AdditiveConsent, subtractive: SubtractiveConsent, preventive: PreventiveConsent, entityType: Literal['ConsentRuleSetResponse'] = 'ConsentRuleSetResponse', stableTargetId: MergedConsentIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a consent item.
- entityType: Annotated[Literal['ConsentRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveConsent, required=True), 'entityType': FieldInfo(annotation=Literal['ConsentRuleSetResponse'], required=False, default='ConsentRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveConsent, required=True), 'stableTargetId': FieldInfo(annotation=MergedConsentIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveConsent, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedConsentIdentifier¶
- class mex.common.models.consent.ExtractedConsent(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['ExtractedConsent'] = 'ExtractedConsent')¶
Bases:
BaseConsent
,ExtractedData
An automatically extracted metadata set describing a consent.
- entityType: Annotated[Literal['ExtractedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedConsentIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedConsentIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedConsentIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['ExtractedConsent'], required=False, default='ExtractedConsent', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedConsentIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.consent.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier)¶
Bases:
BaseConsent
,MergedItem
The result of merging all extracted data and rules for a consent.
- entityType: Annotated[Literal['MergedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['MergedConsent'], required=False, default='MergedConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'identifier': FieldInfo(annotation=MergedConsentIdentifier, required=True, frozen=True), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.consent.PreventiveConsent(*, entityType: Literal['PreventiveConsent'] = 'PreventiveConsent', hasConsentType: list[MergedPrimarySourceIdentifier] = [], hasConsentStatus: list[MergedPrimarySourceIdentifier] = [], hasDataSubject: list[MergedPrimarySourceIdentifier] = [], isIndicatedAtTime: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged consent items.
- entityType: Annotated[Literal['PreventiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: list[MergedPrimarySourceIdentifier]¶
- hasConsentType: list[MergedPrimarySourceIdentifier]¶
- hasDataSubject: list[MergedPrimarySourceIdentifier]¶
- isIndicatedAtTime: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['PreventiveConsent'], required=False, default='PreventiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasConsentType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasDataSubject': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isIndicatedAtTime': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.consent.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')¶
Bases:
_VariadicValues
,SubtractiveRule
Rule to subtract values from merged consent items.
- entityType: Annotated[Literal['SubtractiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['SubtractiveConsent'], required=False, default='SubtractiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=list[ConsentStatus], required=False, default=[]), 'hasConsentType': FieldInfo(annotation=list[ConsentType], required=False, default=[]), 'hasDataSubject': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'isIndicatedAtTime': FieldInfo(annotation=list[YearMonthDayTime], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.contact_point module¶
A contact point - for example, an interdepartmental project.
- class mex.common.models.contact_point.AdditiveContactPoint(*, email: list[Email] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint')¶
Bases:
_SparseLists
,AdditiveRule
Rule to add values to merged contact point items.
- entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveContactPoint'], required=False, default='AdditiveContactPoint', alias='$type', alias_priority=2, frozen=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.contact_point.BaseContactPoint(*, email: Annotated[list[Email], MinLen(min_length=1)])¶
Bases:
_RequiredLists
All fields for a valid contact point except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.contact_point.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint, subtractive: SubtractiveContactPoint, preventive: PreventiveContactPoint, entityType: Literal['ContactPointRuleSetRequest'] = 'ContactPointRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a contact point item.
- entityType: Annotated[Literal['ContactPointRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveContactPoint, required=True), 'entityType': FieldInfo(annotation=Literal['ContactPointRuleSetRequest'], required=False, default='ContactPointRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveContactPoint, required=True), 'subtractive': FieldInfo(annotation=SubtractiveContactPoint, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.contact_point.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint, subtractive: SubtractiveContactPoint, preventive: PreventiveContactPoint, entityType: Literal['ContactPointRuleSetResponse'] = 'ContactPointRuleSetResponse', stableTargetId: MergedContactPointIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a contact point item.
- entityType: Annotated[Literal['ContactPointRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveContactPoint, required=True), 'entityType': FieldInfo(annotation=Literal['ContactPointRuleSetResponse'], required=False, default='ContactPointRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveContactPoint, required=True), 'stableTargetId': FieldInfo(annotation=MergedContactPointIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveContactPoint, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedContactPointIdentifier¶
- class mex.common.models.contact_point.ExtractedContactPoint(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], email: Annotated[list[Email], MinLen(min_length=1)], entityType: Literal['ExtractedContactPoint'] = 'ExtractedContactPoint')¶
Bases:
BaseContactPoint
,ExtractedData
An automatically extracted metadata set describing a contact point.
- entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedContactPointIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedContactPointIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedContactPointIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['ExtractedContactPoint'], required=False, default='ExtractedContactPoint', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedContactPointIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.contact_point.MergedContactPoint(*, email: Annotated[list[Email], MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier)¶
Bases:
BaseContactPoint
,MergedItem
The result of merging all extracted data and rules for a contact point.
- entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['MergedContactPoint'], required=False, default='MergedContactPoint', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedContactPointIdentifier, required=True, frozen=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.contact_point.PreventiveContactPoint(*, entityType: Literal['PreventiveContactPoint'] = 'PreventiveContactPoint', email: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged contact point items.
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveContactPoint'], required=False, default='PreventiveContactPoint', alias='$type', alias_priority=2, frozen=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.contact_point.SubtractiveContactPoint(*, email: list[Email] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')¶
Bases:
_SparseLists
,SubtractiveRule
Rule to subtract values from merged contact point items.
- entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveContactPoint'], required=False, default='SubtractiveContactPoint', alias='$type', alias_priority=2, frozen=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.distribution module¶
A specific representation of a dataset.
- class mex.common.models.distribution.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])] | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution')¶
Bases:
_OptionalLists
,_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged distribution items.
- entityType: Annotated[Literal['AdditiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveDistribution'], required=False, default='AdditiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.distribution.BaseDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, title: Annotated[str, MinLen(min_length=1)], accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [])¶
Bases:
_OptionalLists
,_OptionalValues
,_RequiredValues
All fields for a valid distribution except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.distribution.DistributionRuleSetRequest(*, additive: AdditiveDistribution, subtractive: SubtractiveDistribution, preventive: PreventiveDistribution, entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a distribution item.
- entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveDistribution, required=True), 'entityType': FieldInfo(annotation=Literal['DistributionRuleSetRequest'], required=False, default='DistributionRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveDistribution, required=True), 'subtractive': FieldInfo(annotation=SubtractiveDistribution, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.distribution.DistributionRuleSetResponse(*, additive: AdditiveDistribution, subtractive: SubtractiveDistribution, preventive: PreventiveDistribution, entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a distribution item.
- entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveDistribution, required=True), 'entityType': FieldInfo(annotation=Literal['DistributionRuleSetRequest'], required=False, default='DistributionRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveDistribution, required=True), 'stableTargetId': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveDistribution, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedAccessPlatformIdentifier¶
- class mex.common.models.distribution.ExtractedDistribution(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, title: Annotated[str, MinLen(min_length=1)], accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['ExtractedDistribution'] = 'ExtractedDistribution')¶
Bases:
BaseDistribution
,ExtractedData
An automatically extracted metadata set describing a distribution.
- entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedDistributionIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedDistributionIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedDistributionIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedDistribution'], required=False, default='ExtractedDistribution', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedDistributionIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.distribution.MergedDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, title: Annotated[str, MinLen(min_length=1)], accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['MergedDistribution'] = 'MergedDistribution', identifier: MergedDistributionIdentifier)¶
Bases:
BaseDistribution
,MergedItem
The result of merging all extracted data and rules for a distribution.
- entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedDistribution'], required=False, default='MergedDistribution', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedDistributionIdentifier, required=True, frozen=True), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.distribution.PreventiveDistribution(*, entityType: Literal['PreventiveDistribution'] = 'PreventiveDistribution', accessRestriction: list[MergedPrimarySourceIdentifier] = [], accessService: list[MergedPrimarySourceIdentifier] = [], accessURL: list[MergedPrimarySourceIdentifier] = [], downloadURL: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], mediaType: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged distribution items.
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- accessService: list[MergedPrimarySourceIdentifier]¶
- accessURL: list[MergedPrimarySourceIdentifier]¶
- downloadURL: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- mediaType: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessService': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveDistribution'], required=False, default='PreventiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'mediaType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'modified': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.distribution.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])]] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')¶
Bases:
_OptionalLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged distribution items.
- entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveDistribution'], required=False, default='SubtractiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'title': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.organization module¶
Represents a collection of people organized together.
This can be any community or other social, commercial or political structure.
- class mex.common.models.organization.AdditiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization')¶
Bases:
_OptionalLists
,_SparseLists
,AdditiveRule
Rule to add values to merged organization items.
- entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveOrganization'], required=False, default='AdditiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=False, default=[]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.organization.BaseOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])¶
Bases:
_OptionalLists
,_RequiredLists
All fields for a valid organization except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.organization.ExtractedOrganization(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')¶
Bases:
BaseOrganization
,ExtractedData
An automatically extracted metadata set describing an organization.
- entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedOrganizationIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedOrganizationIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedOrganizationIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedOrganization'], required=False, default='ExtractedOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedOrganizationIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.organization.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier)¶
Bases:
BaseOrganization
,MergedItem
The result of merging all extracted data and rules for an organization.
- entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedOrganization'], required=False, default='MergedOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedOrganizationIdentifier, required=True, frozen=True), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.organization.OrganizationRuleSetRequest(*, additive: AdditiveOrganization, subtractive: SubtractiveOrganization, preventive: PreventiveOrganization, entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update an organization item.
- entityType: Annotated[Literal['OrganizationRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganization, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationRuleSetRequest'], required=False, default='OrganizationRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganization, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganization, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.organization.OrganizationRuleSetResponse(*, additive: AdditiveOrganization, subtractive: SubtractiveOrganization, preventive: PreventiveOrganization, entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve an organization item.
- entityType: Annotated[Literal['OrganizationRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganization, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationRuleSetResponse'], required=False, default='OrganizationRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganization, required=True), 'stableTargetId': FieldInfo(annotation=MergedOrganizationIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganization, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedOrganizationIdentifier¶
- class mex.common.models.organization.PreventiveOrganization(*, entityType: Literal['PreventiveOrganization'] = 'PreventiveOrganization', alternativeName: list[MergedPrimarySourceIdentifier] = [], geprisId: list[MergedPrimarySourceIdentifier] = [], gndId: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], officialName: list[MergedPrimarySourceIdentifier] = [], rorId: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], viafId: list[MergedPrimarySourceIdentifier] = [], wikidataId: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged organization items.
- alternativeName: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[MergedPrimarySourceIdentifier]¶
- gndId: list[MergedPrimarySourceIdentifier]¶
- isniId: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveOrganization'], required=False, default='PreventiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'gndId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isniId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'officialName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'rorId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'viafId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- officialName: list[MergedPrimarySourceIdentifier]¶
- rorId: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- viafId: list[MergedPrimarySourceIdentifier]¶
- wikidataId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.organization.SubtractiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')¶
Bases:
_OptionalLists
,_SparseLists
,SubtractiveRule
Rule to subtract values from merged organization items.
- entityType: Annotated[Literal['SubtractiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveOrganization'], required=False, default='SubtractiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=False, default=[]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.organizational_unit module¶
An organizational unit which is part of some larger organization.
- class mex.common.models.organizational_unit.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit')¶
Bases:
_OptionalLists
,_SparseLists
,_OptionalValues
,AdditiveRule
Rule to add values to merged organizational units.
- entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveOrganizationalUnit'], required=False, default='AdditiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[Text], required=False, default=[]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.organizational_unit.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])¶
Bases:
_OptionalLists
,_RequiredLists
,_OptionalValues
All fields for a valid organizational unit except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.organizational_unit.ExtractedOrganizationalUnit(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')¶
Bases:
BaseOrganizationalUnit
,ExtractedData
An automatically extracted metadata set describing an organizational unit.
- entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedOrganizationalUnitIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedOrganizationalUnitIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedOrganizationalUnitIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedOrganizationalUnit'], required=False, default='ExtractedOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedOrganizationalUnitIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.organizational_unit.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)¶
Bases:
BaseOrganizationalUnit
,MergedItem
The result of merging all extracted data and rules for an organizational unit.
- entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedOrganizationalUnit'], required=False, default='MergedOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedOrganizationalUnitIdentifier, required=True, frozen=True), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.organizational_unit.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit, subtractive: SubtractiveOrganizationalUnit, preventive: PreventiveOrganizationalUnit, entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update an organizational unit item.
- entityType: Annotated[Literal['OrganizationalUnitRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganizationalUnit, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationalUnitRuleSetRequest'], required=False, default='OrganizationalUnitRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganizationalUnit, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganizationalUnit, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.organizational_unit.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit, subtractive: SubtractiveOrganizationalUnit, preventive: PreventiveOrganizationalUnit, entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve an organizational unit item.
- entityType: Annotated[Literal['OrganizationalUnitRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganizationalUnit, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationalUnitRuleSetResponse'], required=False, default='OrganizationalUnitRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganizationalUnit, required=True), 'stableTargetId': FieldInfo(annotation=MergedOrganizationalUnitIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganizationalUnit, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedOrganizationalUnitIdentifier¶
- class mex.common.models.organizational_unit.PreventiveOrganizationalUnit(*, entityType: Literal['PreventiveOrganizationalUnit'] = 'PreventiveOrganizationalUnit', alternativeName: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], name: list[MergedPrimarySourceIdentifier] = [], parentUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], unitOf: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged organizational units.
- alternativeName: list[MergedPrimarySourceIdentifier]¶
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveOrganizationalUnit'], required=False, default='PreventiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'parentUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- name: list[MergedPrimarySourceIdentifier]¶
- parentUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- unitOf: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.organizational_unit.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')¶
Bases:
_OptionalLists
,_SparseLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged organizational units.
- entityType: Annotated[Literal['SubtractiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveOrganizationalUnit'], required=False, default='SubtractiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[Text], required=False, default=[]), 'parentUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.person module¶
A person related to a source and/or resource, i.e. a project leader.
- class mex.common.models.person.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson')¶
Bases:
_OptionalLists
,AdditiveRule
Rule to add values to merged person items.
- entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditivePerson'], required=False, default='AdditivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.person.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])¶
Bases:
_OptionalLists
All fields for a valid person except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.person.ExtractedPerson(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')¶
Bases:
BasePerson
,ExtractedData
An automatically extracted metadata set describing a person.
- entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedPersonIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedPersonIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedPersonIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedPerson'], required=False, default='ExtractedPerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedPersonIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.person.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier)¶
Bases:
BasePerson
,MergedItem
The result of merging all extracted data and rules for a person.
- entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedPerson'], required=False, default='MergedPerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedPersonIdentifier, required=True, frozen=True), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.person.PersonRuleSetRequest(*, additive: AdditivePerson, subtractive: SubtractivePerson, preventive: PreventivePerson, entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a person item.
- entityType: Annotated[Literal['PersonRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePerson, required=True), 'entityType': FieldInfo(annotation=Literal['PersonRuleSetRequest'], required=False, default='PersonRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePerson, required=True), 'subtractive': FieldInfo(annotation=SubtractivePerson, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.person.PersonRuleSetResponse(*, additive: AdditivePerson, subtractive: SubtractivePerson, preventive: PreventivePerson, entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a person item.
- entityType: Annotated[Literal['PersonRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePerson, required=True), 'entityType': FieldInfo(annotation=Literal['PersonRuleSetResponse'], required=False, default='PersonRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePerson, required=True), 'stableTargetId': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractivePerson, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedPersonIdentifier¶
- class mex.common.models.person.PreventivePerson(*, entityType: Literal['PreventivePerson'] = 'PreventivePerson', affiliation: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], familyName: list[MergedPrimarySourceIdentifier] = [], fullName: list[MergedPrimarySourceIdentifier] = [], givenName: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], memberOf: list[MergedPrimarySourceIdentifier] = [], orcidId: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged person items.
- affiliation: list[MergedPrimarySourceIdentifier]¶
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[MergedPrimarySourceIdentifier]¶
- fullName: list[MergedPrimarySourceIdentifier]¶
- givenName: list[MergedPrimarySourceIdentifier]¶
- isniId: list[MergedPrimarySourceIdentifier]¶
- memberOf: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventivePerson'], required=False, default='PreventivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'fullName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'givenName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isniId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- orcidId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.person.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')¶
Bases:
_OptionalLists
,SubtractiveRule
Rule to subtract values from merged person items.
- entityType: Annotated[Literal['SubtractivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractivePerson'], required=False, default='SubtractivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.primary_source module¶
A collection of information, that is managed and curated by an RKI unit.
- class mex.common.models.primary_source.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource')¶
Bases:
_OptionalLists
,_OptionalValues
,AdditiveRule
Rule to add values to merged primary source items.
- entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditivePrimarySource'], required=False, default='AdditivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.primary_source.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists
,_OptionalValues
All fields for a valid primary source except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.primary_source.ExtractedPrimarySource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedPrimarySource'] = 'ExtractedPrimarySource')¶
Bases:
BasePrimarySource
,ExtractedData
An automatically extracted metadata set describing a primary source.
- entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedPrimarySourceIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedPrimarySourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedPrimarySourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedPrimarySource'], required=False, default='ExtractedPrimarySource', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedPrimarySourceIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.primary_source.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier)¶
Bases:
BasePrimarySource
,MergedItem
The result of merging all extracted data and rules for a primary source.
- entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedPrimarySource'], required=False, default='MergedPrimarySource', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.primary_source.PreventivePrimarySource(*, entityType: Literal['PreventivePrimarySource'] = 'PreventivePrimarySource', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], locatedAt: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], version: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged primary source items.
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- locatedAt: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventivePrimarySource'], required=False, default='PreventivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- version: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.primary_source.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource, subtractive: SubtractivePrimarySource, preventive: PreventivePrimarySource, entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a primary source item.
- entityType: Annotated[Literal['PrimarySourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePrimarySource, required=True), 'entityType': FieldInfo(annotation=Literal['PrimarySourceRuleSetRequest'], required=False, default='PrimarySourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePrimarySource, required=True), 'subtractive': FieldInfo(annotation=SubtractivePrimarySource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.primary_source.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource, subtractive: SubtractivePrimarySource, preventive: PreventivePrimarySource, entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a primary source item.
- entityType: Annotated[Literal['PrimarySourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePrimarySource, required=True), 'entityType': FieldInfo(annotation=Literal['PrimarySourceRuleSetResponse'], required=False, default='PrimarySourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePrimarySource, required=True), 'stableTargetId': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractivePrimarySource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedPrimarySourceIdentifier¶
- class mex.common.models.primary_source.SubtractivePrimarySource(*, version: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractivePrimarySource'] = 'SubtractivePrimarySource')¶
Bases:
_OptionalLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged primary source items.
- entityType: Annotated[Literal['SubtractivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractivePrimarySource'], required=False, default='SubtractivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.resource module¶
A defined piece or collection of information.
- class mex.common.models.resource.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource')¶
Bases:
_OptionalLists
,_SparseLists
,_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged resource items.
- entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['AdditiveResource'], required=False, default='AdditiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.resource.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])¶
Bases:
_OptionalLists
,_RequiredLists
,_OptionalValues
,_RequiredValues
All fields for a valid resource except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.resource.ExtractedResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')¶
Bases:
BaseResource
,ExtractedData
An automatically extracted metadata set describing a resource.
- entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedResourceIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['ExtractedResource'], required=False, default='ExtractedResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedResourceIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.resource.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier)¶
Bases:
BaseResource
,MergedItem
The result of merging all extracted data and rules for a resource.
- entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['MergedResource'], required=False, default='MergedResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedResourceIdentifier, required=True, frozen=True), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.resource.PreventiveResource(*, entityType: Literal['PreventiveResource'] = 'PreventiveResource', accessPlatform: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], accrualPeriodicity: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], anonymizationPseudonymization: list[MergedPrimarySourceIdentifier] = [], conformsTo: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], contributor: list[MergedPrimarySourceIdentifier] = [], created: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], externalPartner: list[MergedPrimarySourceIdentifier] = [], hasLegalBasis: list[MergedPrimarySourceIdentifier] = [], hasPersonalData: list[MergedPrimarySourceIdentifier] = [], icd10code: list[MergedPrimarySourceIdentifier] = [], instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier] = [], isPartOf: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], loincId: list[MergedPrimarySourceIdentifier] = [], maxTypicalAge: list[MergedPrimarySourceIdentifier] = [], meshId: list[MergedPrimarySourceIdentifier] = [], method: list[MergedPrimarySourceIdentifier] = [], methodDescription: list[MergedPrimarySourceIdentifier] = [], minTypicalAge: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], populationCoverage: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], qualityInformation: list[MergedPrimarySourceIdentifier] = [], resourceCreationMethod: list[MergedPrimarySourceIdentifier] = [], resourceTypeGeneral: list[MergedPrimarySourceIdentifier] = [], resourceTypeSpecific: list[MergedPrimarySourceIdentifier] = [], rights: list[MergedPrimarySourceIdentifier] = [], sizeOfDataBasis: list[MergedPrimarySourceIdentifier] = [], spatial: list[MergedPrimarySourceIdentifier] = [], stateOfDataProcessing: list[MergedPrimarySourceIdentifier] = [], temporal: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], wasGeneratedBy: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged resource items.
- accessPlatform: list[MergedPrimarySourceIdentifier]¶
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- accrualPeriodicity: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- anonymizationPseudonymization: list[MergedPrimarySourceIdentifier]¶
- conformsTo: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- contributingUnit: list[MergedPrimarySourceIdentifier]¶
- contributor: list[MergedPrimarySourceIdentifier]¶
- created: list[MergedPrimarySourceIdentifier]¶
- creator: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- distribution: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- doi: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MergedPrimarySourceIdentifier]¶
- hasLegalBasis: list[MergedPrimarySourceIdentifier]¶
- hasPersonalData: list[MergedPrimarySourceIdentifier]¶
- icd10code: list[MergedPrimarySourceIdentifier]¶
- instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier]¶
- isPartOf: list[MergedPrimarySourceIdentifier]¶
- keyword: list[MergedPrimarySourceIdentifier]¶
- language: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- loincId: list[MergedPrimarySourceIdentifier]¶
- maxTypicalAge: list[MergedPrimarySourceIdentifier]¶
- meshId: list[MergedPrimarySourceIdentifier]¶
- method: list[MergedPrimarySourceIdentifier]¶
- methodDescription: list[MergedPrimarySourceIdentifier]¶
- minTypicalAge: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accrualPeriodicity': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveResource'], required=False, default='PreventiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'icd10code': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'language': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'loincId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'meshId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'method': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'modified': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'populationCoverage': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'rights': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'spatial': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'temporal': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: list[MergedPrimarySourceIdentifier]¶
- populationCoverage: list[MergedPrimarySourceIdentifier]¶
- publication: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- qualityInformation: list[MergedPrimarySourceIdentifier]¶
- resourceCreationMethod: list[MergedPrimarySourceIdentifier]¶
- resourceTypeGeneral: list[MergedPrimarySourceIdentifier]¶
- resourceTypeSpecific: list[MergedPrimarySourceIdentifier]¶
- rights: list[MergedPrimarySourceIdentifier]¶
- sizeOfDataBasis: list[MergedPrimarySourceIdentifier]¶
- spatial: list[MergedPrimarySourceIdentifier]¶
- stateOfDataProcessing: list[MergedPrimarySourceIdentifier]¶
- temporal: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- wasGeneratedBy: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.resource.ResourceRuleSetRequest(*, additive: AdditiveResource, subtractive: SubtractiveResource, preventive: PreventiveResource, entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a resource item.
- entityType: Annotated[Literal['ResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveResource, required=True), 'entityType': FieldInfo(annotation=Literal['ResourceRuleSetRequest'], required=False, default='ResourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveResource, required=True), 'subtractive': FieldInfo(annotation=SubtractiveResource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.resource.ResourceRuleSetResponse(*, additive: AdditiveResource, subtractive: SubtractiveResource, preventive: PreventiveResource, entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a resource item.
- entityType: Annotated[Literal['ResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveResource, required=True), 'entityType': FieldInfo(annotation=Literal['ResourceRuleSetResponse'], required=False, default='ResourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveResource, required=True), 'stableTargetId': FieldInfo(annotation=MergedResourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveResource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedResourceIdentifier¶
- class mex.common.models.resource.SubtractiveResource(*, accessRestriction: list[AccessRestriction] = [], accrualPeriodicity: list[Frequency] = [], created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]] = [], hasPersonalData: list[PersonalData] = [], license: list[License] = [], maxTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]] = [], minTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], sizeOfDataBasis: list[str] = [], temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]] = [], wasGeneratedBy: list[MergedActivityIdentifier] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['SubtractiveResource'] = 'SubtractiveResource')¶
Bases:
_OptionalLists
,_SparseLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged resource items.
- entityType: Annotated[Literal['SubtractiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'accrualPeriodicity': FieldInfo(annotation=list[Frequency], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveResource'], required=False, default='SubtractiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=list[PersonalData], required=False, default=[]), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=list[License], required=False, default=[]), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]], required=False, default=[]), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]], required=False, default=[]), 'modified': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=list[str], required=False, default=[]), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]]], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
mex.common.models.variable module¶
A single piece of information within a resource.
- class mex.common.models.variable.AdditiveVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['AdditiveVariable'] = 'AdditiveVariable')¶
Bases:
_OptionalLists
,_SparseLists
,_OptionalValues
,AdditiveRule
Rule to add values to merged variable items.
- entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveVariable'], required=False, default='AdditiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])¶
Bases:
_OptionalLists
,_RequiredLists
,_OptionalValues
All fields for a valid variable except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')¶
Bases:
BaseVariable
,ExtractedData
An automatically extracted metadata set describing a variable.
- entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedVariableIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedVariableIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedVariableIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedVariable'], required=False, default='ExtractedVariable', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedVariableIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.variable.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier)¶
Bases:
BaseVariable
,MergedItem
The result of merging all extracted data and rules for a variable.
- entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedVariable'], required=False, default='MergedVariable', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedVariableIdentifier, required=True, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable.PreventiveVariable(*, entityType: Literal['PreventiveVariable'] = 'PreventiveVariable', belongsTo: list[MergedPrimarySourceIdentifier] = [], codingSystem: list[MergedPrimarySourceIdentifier] = [], dataType: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [], usedIn: list[MergedPrimarySourceIdentifier] = [], valueSet: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged variable items.
- belongsTo: list[MergedPrimarySourceIdentifier]¶
- codingSystem: list[MergedPrimarySourceIdentifier]¶
- dataType: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'dataType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveVariable'], required=False, default='PreventiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- usedIn: list[MergedPrimarySourceIdentifier]¶
- valueSet: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.variable.SubtractiveVariable(*, codingSystem: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]] = [], dataType: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]] = [], label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['SubtractiveVariable'] = 'SubtractiveVariable')¶
Bases:
_OptionalLists
,_SparseLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged variable items.
- entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]], required=False, default=[]), 'dataType': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveVariable'], required=False, default='SubtractiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable.VariableRuleSetRequest(*, additive: AdditiveVariable, subtractive: SubtractiveVariable, preventive: PreventiveVariable, entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a variable item.
- entityType: Annotated[Literal['VariableRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariable, required=True), 'entityType': FieldInfo(annotation=Literal['VariableRuleSetRequest'], required=False, default='VariableRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariable, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariable, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable.VariableRuleSetResponse(*, additive: AdditiveVariable, subtractive: SubtractiveVariable, preventive: PreventiveVariable, entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a variable item.
- entityType: Annotated[Literal['VariableRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariable, required=True), 'entityType': FieldInfo(annotation=Literal['VariableRuleSetResponse'], required=False, default='VariableRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariable, required=True), 'stableTargetId': FieldInfo(annotation=MergedVariableIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariable, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedVariableIdentifier¶
mex.common.models.variable_group module¶
The grouping of variables according to a certain aspect.
- class mex.common.models.variable_group.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup')¶
Bases:
_SparseLists
,AdditiveRule
Rule to add values to merged variable group items.
- entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveVariableGroup'], required=False, default='AdditiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Text], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable_group.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])¶
Bases:
_RequiredLists
All fields for a valid variable group except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable_group.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')¶
Bases:
BaseVariableGroup
,ExtractedData
An automatically extracted metadata set describing a variable group.
- entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- property identifier: ExtractedVariableGroupIdentifier¶
Return the computed identifier for this extracted data item.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedVariableGroupIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedVariableGroupIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['ExtractedVariableGroup'], required=False, default='ExtractedVariableGroup', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedVariableGroupIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.variable_group.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier)¶
Bases:
BaseVariableGroup
,MergedItem
The result of merging all extracted data and rules for a variable group.
- entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['MergedVariableGroup'], required=False, default='MergedVariableGroup', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedVariableGroupIdentifier, required=True, frozen=True), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable_group.PreventiveVariableGroup(*, entityType: Literal['PreventiveVariableGroup'] = 'PreventiveVariableGroup', containedBy: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged variable group items.
- containedBy: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveVariableGroup'], required=False, default='PreventiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable_group.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')¶
Bases:
_SparseLists
,SubtractiveRule
Rule to subtract values from merged variable group items.
- entityType: Annotated[Literal['SubtractiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveVariableGroup'], required=False, default='SubtractiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Text], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable_group.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup, subtractive: SubtractiveVariableGroup, preventive: PreventiveVariableGroup, entityType: Literal['VariableGroupRuleSetRequest'] = 'VariableGroupRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a variable group item.
- entityType: Annotated[Literal['VariableGroupRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariableGroup, required=True), 'entityType': FieldInfo(annotation=Literal['VariableGroupRuleSetRequest'], required=False, default='VariableGroupRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariableGroup, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariableGroup, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.variable_group.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup, subtractive: SubtractiveVariableGroup, preventive: PreventiveVariableGroup, entityType: Literal['VariableGroupRuleSetResponse'] = 'VariableGroupRuleSetResponse', stableTargetId: MergedVariableGroupIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a variable group item.
- entityType: Annotated[Literal['VariableGroupRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariableGroup, required=True), 'entityType': FieldInfo(annotation=Literal['VariableGroupRuleSetResponse'], required=False, default='VariableGroupRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariableGroup, required=True), 'stableTargetId': FieldInfo(annotation=MergedVariableGroupIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariableGroup, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- stableTargetId: MergedVariableGroupIdentifier¶
Module contents¶
These models implement the types defined by the mex-model in their various stages.
The current set of entity types includes:
AccessPlatform
Activity
BibliographicResource
Consent
ContactPoint
Distribution
Organization
OrganizationalUnit
Person
PrimarySource
Resource
Variable
VariableGroup
Each entity type T is modelled for the following use cases:
BaseT defines all fields according to mex-model except for provenance fields
ExtractedT defines an automatically extracted metadata item including provenance
MergedT defines the result of merging extracted items and rules into a single item
AdditiveT defines a rule to add values to specific fields of a merged item
SubtractiveT defines a rule to subtract (or block) specific values for specific fields from contributing to a merged item
PreventiveT defines a rule to prevent (or block) specific primary sources from contributing to specific fields of a merged item
TRuleSet classes are used for CRUD operations on a set of three rules
ExtractedTEntityFilter defines how an entity filter specification should look like
ExtractedTMapping defines how a raw data to extracted item mapping should look like
Since these models for different use cases have a lot of overlapping attributes, we use a number of intermediate private classes to compose the public classes:
_Stem defines a static class attribute stemType, e.g. Person or PrimarySource, which is added to all intermediate and exported classes
_OptionalLists defines all fields typed as lists with an arity of 0-n
_RequiredLists defines all fields typed as lists with an arity of 1-n
_SparseLists re-defines all fields from _RequiredLists with an arity of 0-n
_OptionalValues defines all fields with optional values (arity of 0-1)
_RequiredValues defines all fields with required values (arity of 1)
_SparseValues re-defines all fields from _RequiredValues with an arity of 0-1
_VariadicValues re-defines all fields from _OptionalValues and _RequiredValues as list fields with an arity of 0-n
_BaseRuleSet bundles the additive, subtractive and preventive rules for one type
These private classes are used to compose the public classes like so:
BaseT: _OptionalLists, _RequiredLists, _OptionalValues, _RequiredValues
ExtractedT: BaseT, ExtractedData
MergedT: BaseT, MergedItem
AdditiveT: _OptionalLists, _SparseLists, _OptionalValues, _SparseValues, AdditiveRule
SubtractiveT: _OptionalLists, _SparseLists, _VariadicValues, SubtractiveRule
PreventiveT: all fields from BaseT re-typed as MergedPrimarySourceIdentifier
TRuleSetRequest: bundle of all three rules for one type used to create new rules
TRuleSetResponse: bundle of all three rules for one type including a stableTargetId
ExtractedTEntityFilter: all BaseT fields re-typed as a list of EntityFilter
ExtractedTMapping: all BaseT fields re-typed as lists of subclasses of GenericField
In addition to the classes themselves, mex.common.models also exposes various lists of models, lookups by class name and typing for unions of models.
- class mex.common.models.AccessPlatformRuleSetRequest(*, additive: AdditiveAccessPlatform, subtractive: SubtractiveAccessPlatform, preventive: PreventiveAccessPlatform, entityType: Literal['AccessPlatformRuleSetRequest'] = 'AccessPlatformRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update an access platform item.
- additive: AdditiveAccessPlatform¶
- entityType: Annotated[Literal['AccessPlatformRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveAccessPlatform, required=True), 'entityType': FieldInfo(annotation=Literal['AccessPlatformRuleSetRequest'], required=False, default='AccessPlatformRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveAccessPlatform, required=True), 'subtractive': FieldInfo(annotation=SubtractiveAccessPlatform, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveAccessPlatform¶
- subtractive: SubtractiveAccessPlatform¶
- class mex.common.models.AccessPlatformRuleSetResponse(*, additive: AdditiveAccessPlatform, subtractive: SubtractiveAccessPlatform, preventive: PreventiveAccessPlatform, entityType: Literal['AccessPlatformRuleSetResponse'] = 'AccessPlatformRuleSetResponse', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve an access platform item.
- additive: AdditiveAccessPlatform¶
- entityType: Annotated[Literal['AccessPlatformRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveAccessPlatform, required=True), 'entityType': FieldInfo(annotation=Literal['AccessPlatformRuleSetResponse'], required=False, default='AccessPlatformRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveAccessPlatform, required=True), 'stableTargetId': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveAccessPlatform, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveAccessPlatform¶
- stableTargetId: MergedAccessPlatformIdentifier¶
- subtractive: SubtractiveAccessPlatform¶
- class mex.common.models.ActivityRuleSetRequest(*, additive: AdditiveActivity, subtractive: SubtractiveActivity, preventive: PreventiveActivity, entityType: Literal['ActivityRuleSetRequest'] = 'ActivityRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update an activity item.
- additive: AdditiveActivity¶
- entityType: Annotated[Literal['ActivityRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveActivity, required=True), 'entityType': FieldInfo(annotation=Literal['ActivityRuleSetRequest'], required=False, default='ActivityRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveActivity, required=True), 'subtractive': FieldInfo(annotation=SubtractiveActivity, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveActivity¶
- subtractive: SubtractiveActivity¶
- class mex.common.models.ActivityRuleSetResponse(*, additive: AdditiveActivity, subtractive: SubtractiveActivity, preventive: PreventiveActivity, entityType: Literal['ActivityRuleSetResponse'] = 'ActivityRuleSetResponse', stableTargetId: MergedActivityIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve an activity item.
- additive: AdditiveActivity¶
- entityType: Annotated[Literal['ActivityRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveActivity, required=True), 'entityType': FieldInfo(annotation=Literal['ActivityRuleSetResponse'], required=False, default='ActivityRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveActivity, required=True), 'stableTargetId': FieldInfo(annotation=MergedActivityIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveActivity, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveActivity¶
- stableTargetId: MergedActivityIdentifier¶
- subtractive: SubtractiveActivity¶
- class mex.common.models.AdditiveAccessPlatform(*, technicalAccessibility: TechnicalAccessibility | None = None, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditiveAccessPlatform'] = 'AdditiveAccessPlatform')¶
Bases:
_OptionalLists
,_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged access platform items.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- entityType: Annotated[Literal['AdditiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['AdditiveAccessPlatform'], required=False, default='AdditiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=Union[TechnicalAccessibility, NoneType], required=False, default=None), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- technicalAccessibility: TechnicalAccessibility | None¶
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- class mex.common.models.AdditiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['AdditiveActivity'] = 'AdditiveActivity')¶
Bases:
_OptionalLists
,_SparseLists
,AdditiveRule
Rule to add values to merged activity items.
- activityType: list[ActivityType]¶
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- end: list[YearMonthDay | YearMonth | Year]¶
- entityType: Annotated[Literal['AdditiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]¶
- funderOrCommissioner: list[MergedOrganizationIdentifier]¶
- fundingProgram: list[str]¶
- involvedPerson: list[MergedPersonIdentifier]¶
- involvedUnit: list[MergedOrganizationalUnitIdentifier]¶
- isPartOfActivity: list[MergedActivityIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveActivity'], required=False, default='AdditiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- publication: list[MergedBibliographicResourceIdentifier]¶
- responsibleUnit: list[MergedOrganizationalUnitIdentifier]¶
- start: list[YearMonthDay | YearMonth | Year]¶
- succeeds: list[MergedActivityIdentifier]¶
- class mex.common.models.AdditiveBibliographicResource(*, accessRestriction: AccessRestriction | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, repositoryURL: Link | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['AdditiveBibliographicResource'] = 'AdditiveBibliographicResource')¶
Bases:
_OptionalLists
,_SparseLists
,_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged bibliographic resource items.
- accessRestriction: AccessRestriction | None¶
- alternateIdentifier: list[str]¶
- bibliographicResourceType: list[BibliographicResourceType]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: list[MergedPersonIdentifier]¶
- editorOfSeries: list[MergedPersonIdentifier]¶
- entityType: Annotated[Literal['AdditiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: list[IsbnIssnStr]¶
- issue: VolumeOrIssueStr | None¶
- issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveBibliographicResource'], required=False, default='AdditiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])], NoneType], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- pages: Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publisher: list[MergedOrganizationIdentifier]¶
- section: SectionStr | None¶
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.AdditiveConsent(*, hasConsentStatus: ConsentStatus | None = None, hasDataSubject: MergedPersonIdentifier | None = None, isIndicatedAtTime: YearMonthDayTime | None = None, hasConsentType: ConsentType | None = None, entityType: Literal['AdditiveConsent'] = 'AdditiveConsent')¶
Bases:
_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged consent items.
- entityType: Annotated[Literal['AdditiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: ConsentStatus | None¶
- hasConsentType: ConsentType | None¶
- hasDataSubject: MergedPersonIdentifier | None¶
- isIndicatedAtTime: YearMonthDayTime | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['AdditiveConsent'], required=False, default='AdditiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=Union[ConsentStatus, NoneType], required=False, default=None), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=Union[MergedPersonIdentifier, NoneType], required=False, default=None), 'isIndicatedAtTime': FieldInfo(annotation=Union[YearMonthDayTime, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.AdditiveContactPoint(*, email: list[Email] = [], entityType: Literal['AdditiveContactPoint'] = 'AdditiveContactPoint')¶
Bases:
_SparseLists
,AdditiveRule
Rule to add values to merged contact point items.
- entityType: Annotated[Literal['AdditiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveContactPoint'], required=False, default='AdditiveContactPoint', alias='$type', alias_priority=2, frozen=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.AdditiveDistribution(*, accessRestriction: AccessRestriction | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, title: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])] | None = None, accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['AdditiveDistribution'] = 'AdditiveDistribution')¶
Bases:
_OptionalLists
,_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged distribution items.
- accessRestriction: AccessRestriction | None¶
- accessService: MergedAccessPlatformIdentifier | None¶
- entityType: Annotated[Literal['AdditiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveDistribution'], required=False, default='AdditiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- title: Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)] | None¶
- class mex.common.models.AdditiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['AdditiveOrganization'] = 'AdditiveOrganization')¶
Bases:
_OptionalLists
,_SparseLists
,AdditiveRule
Rule to add values to merged organization items.
- entityType: Annotated[Literal['AdditiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]¶
- gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveOrganization'], required=False, default='AdditiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=False, default=[]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]¶
- viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]¶
- wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.AdditiveOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: list[Text] = [], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['AdditiveOrganizationalUnit'] = 'AdditiveOrganizationalUnit')¶
Bases:
_OptionalLists
,_SparseLists
,_OptionalValues
,AdditiveRule
Rule to add values to merged organizational units.
- entityType: Annotated[Literal['AdditiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveOrganizationalUnit'], required=False, default='AdditiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[Text], required=False, default=[]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- unitOf: list[MergedOrganizationIdentifier]¶
- class mex.common.models.AdditivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['AdditivePerson'] = 'AdditivePerson')¶
Bases:
_OptionalLists
,AdditiveRule
Rule to add values to merged person items.
- affiliation: list[MergedOrganizationIdentifier]¶
- entityType: Annotated[Literal['AdditivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]¶
- fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]¶
- givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- memberOf: list[MergedOrganizationalUnitIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditivePerson'], required=False, default='AdditivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.AdditivePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['AdditivePrimarySource'] = 'AdditivePrimarySource')¶
Bases:
_OptionalLists
,_OptionalValues
,AdditiveRule
Rule to add values to merged primary source items.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- entityType: Annotated[Literal['AdditivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditivePrimarySource'], required=False, default='AdditivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- version: Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])] | None¶
- class mex.common.models.AdditiveResource(*, accessRestriction: AccessRestriction | None = None, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['AdditiveResource'] = 'AdditiveResource')¶
Bases:
_OptionalLists
,_SparseLists
,_OptionalValues
,_SparseValues
,AdditiveRule
Rule to add values to merged resource items.
- accessPlatform: list[MergedAccessPlatformIdentifier]¶
- accessRestriction: AccessRestriction | None¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]¶
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- contributor: list[MergedPersonIdentifier]¶
- created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- entityType: Annotated[Literal['AdditiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MergedOrganizationIdentifier]¶
- hasPersonalData: PersonalData | None¶
- icd10code: list[str]¶
- isPartOf: list[MergedResourceIdentifier]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: Annotated[int, Field(examples=['99', '21'])] | None¶
- meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]¶
- minTypicalAge: Annotated[int, Field(examples=['0', '18'])] | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=Union[AccessRestriction, NoneType], required=False, default=None), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['AdditiveResource'], required=False, default='AdditiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- publication: list[MergedBibliographicResourceIdentifier]¶
- publisher: list[MergedOrganizationIdentifier]¶
- resourceCreationMethod: list[ResourceCreationMethod]¶
- resourceTypeGeneral: list[ResourceTypeGeneral]¶
- sizeOfDataBasis: str | None¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None¶
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- wasGeneratedBy: MergedActivityIdentifier | None¶
- class mex.common.models.AdditiveRule¶
Bases:
BaseEntity
Base rule to add values to merged items.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.AdditiveVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['AdditiveVariable'] = 'AdditiveVariable')¶
Bases:
_OptionalLists
,_SparseLists
,_OptionalValues
,AdditiveRule
Rule to add values to merged variable items.
- belongsTo: list[MergedVariableGroupIdentifier]¶
- codingSystem: CodingSystemStr | None¶
- dataType: DataTypeStr | None¶
- entityType: Annotated[Literal['AdditiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveVariable'], required=False, default='AdditiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- usedIn: list[MergedResourceIdentifier]¶
- valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]¶
- class mex.common.models.AdditiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['AdditiveVariableGroup'] = 'AdditiveVariableGroup')¶
Bases:
_SparseLists
,AdditiveRule
Rule to add values to merged variable group items.
- containedBy: list[MergedResourceIdentifier]¶
- entityType: Annotated[Literal['AdditiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['AdditiveVariableGroup'], required=False, default='AdditiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Text], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.BaseAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists
,_OptionalValues
,_RequiredValues
All fields for a valid access platform except for provenance.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- technicalAccessibility: TechnicalAccessibility¶
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- class mex.common.models.BaseActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [])¶
Bases:
_OptionalLists
,_RequiredLists
All fields for a valid activity except for provenance.
- activityType: list[ActivityType]¶
- contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]¶
- end: list[YearMonthDay | YearMonth | Year]¶
- externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]¶
- funderOrCommissioner: list[MergedOrganizationIdentifier]¶
- fundingProgram: list[str]¶
- involvedPerson: list[MergedPersonIdentifier]¶
- involvedUnit: list[MergedOrganizationalUnitIdentifier]¶
- isPartOfActivity: list[MergedActivityIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- publication: list[MergedBibliographicResourceIdentifier]¶
- responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]¶
- start: list[YearMonthDay | YearMonth | Year]¶
- succeeds: list[MergedActivityIdentifier]¶
- class mex.common.models.BaseBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, repositoryURL: Link | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [])¶
Bases:
_OptionalLists
,_RequiredLists
,_OptionalValues
,_RequiredValues
All fields for a valid bibliographic resource except for provenance.
- accessRestriction: AccessRestriction¶
- alternateIdentifier: list[str]¶
- bibliographicResourceType: list[BibliographicResourceType]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1)]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: list[MergedPersonIdentifier]¶
- editorOfSeries: list[MergedPersonIdentifier]¶
- isbnIssn: list[IsbnIssnStr]¶
- issue: VolumeOrIssueStr | None¶
- issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])], NoneType], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- pages: Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publisher: list[MergedOrganizationIdentifier]¶
- section: SectionStr | None¶
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.BaseConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None)¶
Bases:
_OptionalValues
,_RequiredValues
All fields for a valid consent except for provenance.
- hasConsentStatus: ConsentStatus¶
- hasConsentType: ConsentType | None¶
- hasDataSubject: MergedPersonIdentifier¶
- isIndicatedAtTime: YearMonthDayTime¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.BaseContactPoint(*, email: Annotated[list[Email], MinLen(min_length=1)])¶
Bases:
_RequiredLists
All fields for a valid contact point except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.BaseDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, title: Annotated[str, MinLen(min_length=1)], accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [])¶
Bases:
_OptionalLists
,_OptionalValues
,_RequiredValues
All fields for a valid distribution except for provenance.
- accessRestriction: AccessRestriction¶
- accessService: MergedAccessPlatformIdentifier | None¶
- issued: YearMonthDayTime | YearMonthDay | YearMonth | Year¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- title: Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)]¶
- class mex.common.models.BaseModel¶
Bases:
BaseModel
Common base class for all MEx model classes.
- classmethod _convert_list_to_non_list(field_name: str, value: list[Any]) Any ¶
Convert a list value to a non-list value by unpacking it if possible.
- classmethod _convert_non_list_to_list(field_name: str, value: Any) list[Any] | None ¶
Convert a non-list value to a list value by wrapping it in a list.
- classmethod _fix_value_listyness_for_field(field_name: str, value: Any) Any ¶
Check actual and desired shape of a value and fix it if necessary.
- classmethod _get_alias_lookup() dict[str, str] ¶
Build a cached mapping from field alias to field names.
- classmethod _get_field_names_allowing_none() list[str] ¶
Build a cached list of fields can be set to None.
- classmethod _get_list_field_names() list[str] ¶
Build a cached list of fields that look like lists.
- checksum() str ¶
Calculate md5 checksum for this model.
- classmethod fix_listyness(data: Any, handler: ValidatorFunctionWrapHandler) Any ¶
Adjust the listyness of to-be-parsed data to match the desired shape.
If that data is a Mapping and the model defines a list[T] field but the raw data contains just a value of type T, it will be wrapped into a list. If the raw data contains a literal None, but the list field is defined as required, we substitute an empty list.
If the model does not expect a list, but the raw data contains a list with no entries, it will be substituted with None. If the raw data contains exactly one entry, then it will be unpacked from the list. If it contains more than one entry however, an error is raised, because we would not know which to choose.
- Parameters:
data – Raw data or instance to be parsed
handler – Validator function wrap handler
- Returns:
data with fixed list shapes
- classmethod get_all_fields() dict[str, GenericFieldInfo] ¶
Return a combined dict of defined and computed fields.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- classmethod model_json_schema(by_alias: bool = True, ref_template: str = '#/$defs/{model}', schema_generator: type[~pydantic.json_schema.GenerateJsonSchema] = <class 'mex.common.models.base.schema.JsonSchemaGenerator'>, mode: ~typing.Literal['validation', 'serialization'] = 'validation') dict[str, Any] ¶
Generates a JSON schema for a model class.
- Parameters:
by_alias – Whether to use attribute aliases or not.
ref_template – The reference template.
schema_generator – Overriding the logic used to generate the JSON schema
mode – The mode in which to generate the schema.
- Returns:
The JSON schema for the given model class.
- classmethod verify_computed_field_consistency(data: Any, handler: ValidatorFunctionWrapHandler) Any ¶
Validate that parsed values for computed fields are consistent.
Parsing a dictionary with a value for a computed field that is consistent with what that field would have computed anyway is allowed. Omitting values for computed fields is perfectly valid as well. However, if the parsed value is different from the computed value, a validation error is raised.
- Parameters:
data – Raw data or instance to be parsed
handler – Validator function wrap handler
- Returns:
data with consistent computed fields.
- class mex.common.models.BaseOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [])¶
Bases:
_OptionalLists
,_RequiredLists
All fields for a valid organization except for provenance.
- geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]¶
- gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]¶
- viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]¶
- wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.BaseOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [])¶
Bases:
_OptionalLists
,_RequiredLists
,_OptionalValues
All fields for a valid organizational unit except for provenance.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- unitOf: list[MergedOrganizationIdentifier]¶
- class mex.common.models.BasePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [])¶
Bases:
_OptionalLists
All fields for a valid person except for provenance.
- affiliation: list[MergedOrganizationIdentifier]¶
- familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]¶
- fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]¶
- givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- memberOf: list[MergedOrganizationalUnitIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.BasePrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [])¶
Bases:
_OptionalLists
,_OptionalValues
All fields for a valid primary source except for provenance.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- version: Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])] | None¶
- class mex.common.models.BaseResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [])¶
Bases:
_OptionalLists
,_RequiredLists
,_OptionalValues
,_RequiredValues
All fields for a valid resource except for provenance.
- accessPlatform: list[MergedAccessPlatformIdentifier]¶
- accessRestriction: AccessRestriction¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]¶
- contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- contributor: list[MergedPersonIdentifier]¶
- created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- externalPartner: list[MergedOrganizationIdentifier]¶
- hasPersonalData: PersonalData | None¶
- icd10code: list[str]¶
- isPartOf: list[MergedResourceIdentifier]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: Annotated[int, Field(examples=['99', '21'])] | None¶
- meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]¶
- minTypicalAge: Annotated[int, Field(examples=['0', '18'])] | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- publication: list[MergedBibliographicResourceIdentifier]¶
- publisher: list[MergedOrganizationIdentifier]¶
- resourceCreationMethod: list[ResourceCreationMethod]¶
- resourceTypeGeneral: list[ResourceTypeGeneral]¶
- sizeOfDataBasis: str | None¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]¶
- wasGeneratedBy: MergedActivityIdentifier | None¶
- class mex.common.models.BaseVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [])¶
Bases:
_OptionalLists
,_RequiredLists
,_OptionalValues
All fields for a valid variable except for provenance.
- belongsTo: list[MergedVariableGroupIdentifier]¶
- codingSystem: CodingSystemStr | None¶
- dataType: DataTypeStr | None¶
- label: Annotated[list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], Field(min_length=1)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]¶
- valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]¶
- class mex.common.models.BaseVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)])¶
Bases:
_RequiredLists
All fields for a valid variable group except for provenance.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'ignore', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.ConsentRuleSetRequest(*, additive: AdditiveConsent, subtractive: SubtractiveConsent, preventive: PreventiveConsent, entityType: Literal['ConsentRuleSetRequest'] = 'ConsentRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a consent item.
- additive: AdditiveConsent¶
- entityType: Annotated[Literal['ConsentRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveConsent, required=True), 'entityType': FieldInfo(annotation=Literal['ConsentRuleSetRequest'], required=False, default='ConsentRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveConsent, required=True), 'subtractive': FieldInfo(annotation=SubtractiveConsent, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveConsent¶
- subtractive: SubtractiveConsent¶
- class mex.common.models.ConsentRuleSetResponse(*, additive: AdditiveConsent, subtractive: SubtractiveConsent, preventive: PreventiveConsent, entityType: Literal['ConsentRuleSetResponse'] = 'ConsentRuleSetResponse', stableTargetId: MergedConsentIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a consent item.
- additive: AdditiveConsent¶
- entityType: Annotated[Literal['ConsentRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveConsent, required=True), 'entityType': FieldInfo(annotation=Literal['ConsentRuleSetResponse'], required=False, default='ConsentRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveConsent, required=True), 'stableTargetId': FieldInfo(annotation=MergedConsentIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveConsent, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveConsent¶
- stableTargetId: MergedConsentIdentifier¶
- subtractive: SubtractiveConsent¶
- class mex.common.models.ContactPointRuleSetRequest(*, additive: AdditiveContactPoint, subtractive: SubtractiveContactPoint, preventive: PreventiveContactPoint, entityType: Literal['ContactPointRuleSetRequest'] = 'ContactPointRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a contact point item.
- additive: AdditiveContactPoint¶
- entityType: Annotated[Literal['ContactPointRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveContactPoint, required=True), 'entityType': FieldInfo(annotation=Literal['ContactPointRuleSetRequest'], required=False, default='ContactPointRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveContactPoint, required=True), 'subtractive': FieldInfo(annotation=SubtractiveContactPoint, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveContactPoint¶
- subtractive: SubtractiveContactPoint¶
- class mex.common.models.ContactPointRuleSetResponse(*, additive: AdditiveContactPoint, subtractive: SubtractiveContactPoint, preventive: PreventiveContactPoint, entityType: Literal['ContactPointRuleSetResponse'] = 'ContactPointRuleSetResponse', stableTargetId: MergedContactPointIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a contact point item.
- additive: AdditiveContactPoint¶
- entityType: Annotated[Literal['ContactPointRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveContactPoint, required=True), 'entityType': FieldInfo(annotation=Literal['ContactPointRuleSetResponse'], required=False, default='ContactPointRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveContactPoint, required=True), 'stableTargetId': FieldInfo(annotation=MergedContactPointIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveContactPoint, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveContactPoint¶
- stableTargetId: MergedContactPointIdentifier¶
- subtractive: SubtractiveContactPoint¶
- class mex.common.models.DistributionRuleSetRequest(*, additive: AdditiveDistribution, subtractive: SubtractiveDistribution, preventive: PreventiveDistribution, entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a distribution item.
- additive: AdditiveDistribution¶
- entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveDistribution, required=True), 'entityType': FieldInfo(annotation=Literal['DistributionRuleSetRequest'], required=False, default='DistributionRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveDistribution, required=True), 'subtractive': FieldInfo(annotation=SubtractiveDistribution, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveDistribution¶
- subtractive: SubtractiveDistribution¶
- class mex.common.models.DistributionRuleSetResponse(*, additive: AdditiveDistribution, subtractive: SubtractiveDistribution, preventive: PreventiveDistribution, entityType: Literal['DistributionRuleSetRequest'] = 'DistributionRuleSetRequest', stableTargetId: MergedAccessPlatformIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a distribution item.
- additive: AdditiveDistribution¶
- entityType: Annotated[Literal['DistributionRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveDistribution, required=True), 'entityType': FieldInfo(annotation=Literal['DistributionRuleSetRequest'], required=False, default='DistributionRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveDistribution, required=True), 'stableTargetId': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveDistribution, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveDistribution¶
- stableTargetId: MergedAccessPlatformIdentifier¶
- subtractive: SubtractiveDistribution¶
- class mex.common.models.ExtractedAccessPlatform(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedAccessPlatform'] = 'ExtractedAccessPlatform')¶
Bases:
BaseAccessPlatform
,ExtractedData
An automatically extracted metadata item describing an access platform.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- entityType: Annotated[Literal['ExtractedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedAccessPlatformIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedAccessPlatformIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedAccessPlatformIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['ExtractedAccessPlatform'], required=False, default='ExtractedAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedAccessPlatformIdentifier¶
Return the computed stableTargetId for this extracted data item.
- technicalAccessibility: TechnicalAccessibility¶
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- class mex.common.models.ExtractedActivity(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['ExtractedActivity'] = 'ExtractedActivity')¶
Bases:
BaseActivity
,ExtractedData
An automatically extracted metadata set describing an activity.
- activityType: list[ActivityType]¶
- contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]¶
- end: list[YearMonthDay | YearMonth | Year]¶
- entityType: Annotated[Literal['ExtractedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]¶
- funderOrCommissioner: list[MergedOrganizationIdentifier]¶
- fundingProgram: list[str]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedActivityIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- involvedPerson: list[MergedPersonIdentifier]¶
- involvedUnit: list[MergedOrganizationalUnitIdentifier]¶
- isPartOfActivity: list[MergedActivityIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedActivityIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedActivityIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedActivity'], required=False, default='ExtractedActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- publication: list[MergedBibliographicResourceIdentifier]¶
- responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]¶
- property stableTargetId: MergedActivityIdentifier¶
Return the computed stableTargetId for this extracted data item.
- start: list[YearMonthDay | YearMonth | Year]¶
- succeeds: list[MergedActivityIdentifier]¶
- class mex.common.models.ExtractedBibliographicResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, repositoryURL: Link | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['ExtractedBibliographicResource'] = 'ExtractedBibliographicResource')¶
Bases:
BaseBibliographicResource
,ExtractedData
An automatically extracted metadata item describing a bibliographic resource.
- accessRestriction: AccessRestriction¶
- alternateIdentifier: list[str]¶
- bibliographicResourceType: list[BibliographicResourceType]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1)]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: list[MergedPersonIdentifier]¶
- editorOfSeries: list[MergedPersonIdentifier]¶
- entityType: Annotated[Literal['ExtractedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedBibliographicResourceIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- isbnIssn: list[IsbnIssnStr]¶
- issue: VolumeOrIssueStr | None¶
- issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedBibliographicResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedBibliographicResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedBibliographicResource'], required=False, default='ExtractedBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])], NoneType], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- pages: Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publisher: list[MergedOrganizationIdentifier]¶
- section: SectionStr | None¶
- property stableTargetId: MergedBibliographicResourceIdentifier¶
Return the computed stableTargetId for this extracted data item.
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.ExtractedConsent(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['ExtractedConsent'] = 'ExtractedConsent')¶
Bases:
BaseConsent
,ExtractedData
An automatically extracted metadata set describing a consent.
- entityType: Annotated[Literal['ExtractedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- hasConsentStatus: ConsentStatus¶
- hasConsentType: ConsentType | None¶
- hasDataSubject: MergedPersonIdentifier¶
- property identifier: ExtractedConsentIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- isIndicatedAtTime: YearMonthDayTime¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedConsentIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedConsentIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['ExtractedConsent'], required=False, default='ExtractedConsent', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedConsentIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.ExtractedContactPoint(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], email: Annotated[list[Email], MinLen(min_length=1)], entityType: Literal['ExtractedContactPoint'] = 'ExtractedContactPoint')¶
Bases:
BaseContactPoint
,ExtractedData
An automatically extracted metadata set describing a contact point.
- entityType: Annotated[Literal['ExtractedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedContactPointIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedContactPointIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedContactPointIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['ExtractedContactPoint'], required=False, default='ExtractedContactPoint', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedContactPointIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.ExtractedData(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])¶
Bases:
BaseEntity
Base model for all extracted data classes.
This class adds two important attributes for metadata provenance: hadPrimarySource and identifierInPrimarySource, which are used to uniquely identify an item in its original primary source. The attribute stableTargetId has to be set by each concrete subclass, like ExtractedPerson, because it needs to have the correct type, e.g. MergedPersonIdentifier.
This class also adds a validator to automatically set identifiers for provenance. See below, for a full description.
- _get_identifier(identifier_type: type[_ExtractedIdentifierT]) _ExtractedIdentifierT ¶
Consult the identity provider to get the identifier for this item.
- Parameters:
identifier_type – ExtractedIdentifier-subclass to cast the identifier to
- Returns:
Identifier of the correct type
- _get_stable_target_id(identifier_type: type[_MergedIdentifierT]) _MergedIdentifierT ¶
Consult the identity provider to get the stableTargetId for this item.
- Parameters:
identifier_type – MergedIdentifier-subclass to cast the identifier to
- Returns:
StableTargetId of the correct type
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- identifierInPrimarySource: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.ExtractedDistribution(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, title: Annotated[str, MinLen(min_length=1)], accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['ExtractedDistribution'] = 'ExtractedDistribution')¶
Bases:
BaseDistribution
,ExtractedData
An automatically extracted metadata set describing a distribution.
- accessRestriction: AccessRestriction¶
- accessService: MergedAccessPlatformIdentifier | None¶
- entityType: Annotated[Literal['ExtractedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedDistributionIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- issued: YearMonthDayTime | YearMonthDay | YearMonth | Year¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedDistributionIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedDistributionIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedDistribution'], required=False, default='ExtractedDistribution', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- property stableTargetId: MergedDistributionIdentifier¶
Return the computed stableTargetId for this extracted data item.
- title: Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)]¶
- class mex.common.models.ExtractedOrganization(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['ExtractedOrganization'] = 'ExtractedOrganization')¶
Bases:
BaseOrganization
,ExtractedData
An automatically extracted metadata set describing an organization.
- entityType: Annotated[Literal['ExtractedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]¶
- gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedOrganizationIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedOrganizationIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedOrganizationIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedOrganization'], required=False, default='ExtractedOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]¶
- property stableTargetId: MergedOrganizationIdentifier¶
Return the computed stableTargetId for this extracted data item.
- viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]¶
- wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.ExtractedOrganizationalUnit(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['ExtractedOrganizationalUnit'] = 'ExtractedOrganizationalUnit')¶
Bases:
BaseOrganizationalUnit
,ExtractedData
An automatically extracted metadata set describing an organizational unit.
- entityType: Annotated[Literal['ExtractedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedOrganizationalUnitIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedOrganizationalUnitIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedOrganizationalUnitIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedOrganizationalUnit'], required=False, default='ExtractedOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- property stableTargetId: MergedOrganizationalUnitIdentifier¶
Return the computed stableTargetId for this extracted data item.
- unitOf: list[MergedOrganizationIdentifier]¶
- class mex.common.models.ExtractedPerson(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['ExtractedPerson'] = 'ExtractedPerson')¶
Bases:
BasePerson
,ExtractedData
An automatically extracted metadata set describing a person.
- affiliation: list[MergedOrganizationIdentifier]¶
- entityType: Annotated[Literal['ExtractedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]¶
- fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]¶
- givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedPersonIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- memberOf: list[MergedOrganizationalUnitIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedPersonIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedPersonIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedPerson'], required=False, default='ExtractedPerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]¶
- property stableTargetId: MergedPersonIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.ExtractedPrimarySource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['ExtractedPrimarySource'] = 'ExtractedPrimarySource')¶
Bases:
BasePrimarySource
,ExtractedData
An automatically extracted metadata set describing a primary source.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- entityType: Annotated[Literal['ExtractedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedPrimarySourceIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedPrimarySourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedPrimarySourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedPrimarySource'], required=False, default='ExtractedPrimarySource', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedPrimarySourceIdentifier¶
Return the computed stableTargetId for this extracted data item.
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- version: Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])] | None¶
- class mex.common.models.ExtractedPrimarySourceIdentifier¶
Bases:
ExtractedIdentifier
Identifier for extracted primary sources.
- class mex.common.models.ExtractedResource(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['ExtractedResource'] = 'ExtractedResource')¶
Bases:
BaseResource
,ExtractedData
An automatically extracted metadata set describing a resource.
- accessPlatform: list[MergedAccessPlatformIdentifier]¶
- accessRestriction: AccessRestriction¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]¶
- contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- contributor: list[MergedPersonIdentifier]¶
- created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- entityType: Annotated[Literal['ExtractedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MergedOrganizationIdentifier]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- hasPersonalData: PersonalData | None¶
- icd10code: list[str]¶
- property identifier: ExtractedResourceIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- isPartOf: list[MergedResourceIdentifier]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: Annotated[int, Field(examples=['99', '21'])] | None¶
- meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]¶
- minTypicalAge: Annotated[int, Field(examples=['0', '18'])] | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedResourceIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['ExtractedResource'], required=False, default='ExtractedResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- publication: list[MergedBibliographicResourceIdentifier]¶
- publisher: list[MergedOrganizationIdentifier]¶
- resourceCreationMethod: list[ResourceCreationMethod]¶
- resourceTypeGeneral: list[ResourceTypeGeneral]¶
- sizeOfDataBasis: str | None¶
- property stableTargetId: MergedResourceIdentifier¶
Return the computed stableTargetId for this extracted data item.
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]¶
- wasGeneratedBy: MergedActivityIdentifier | None¶
- class mex.common.models.ExtractedVariable(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['ExtractedVariable'] = 'ExtractedVariable')¶
Bases:
BaseVariable
,ExtractedData
An automatically extracted metadata set describing a variable.
- belongsTo: list[MergedVariableGroupIdentifier]¶
- codingSystem: CodingSystemStr | None¶
- dataType: DataTypeStr | None¶
- entityType: Annotated[Literal['ExtractedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedVariableIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- label: Annotated[list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], Field(min_length=1)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedVariableIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedVariableIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['ExtractedVariable'], required=False, default='ExtractedVariable', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedVariableIdentifier¶
Return the computed stableTargetId for this extracted data item.
- usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]¶
- valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]¶
- class mex.common.models.ExtractedVariableGroup(*, hadPrimarySource: MergedPrimarySourceIdentifier, identifierInPrimarySource: Annotated[str, MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')], containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['ExtractedVariableGroup'] = 'ExtractedVariableGroup')¶
Bases:
BaseVariableGroup
,ExtractedData
An automatically extracted metadata set describing a variable group.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]¶
- entityType: Annotated[Literal['ExtractedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hadPrimarySource: Annotated[MergedPrimarySourceIdentifier, Field(description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True)]¶
- property identifier: ExtractedVariableGroupIdentifier¶
Return the computed identifier for this extracted data item.
- identifierInPrimarySource: Annotated[str, Field(description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], min_length=1, max_length=1000, pattern='^[^\\n\\r]+$', frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {'identifier': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.ExtractedVariableGroupIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed identifier for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True), 'stableTargetId': ComputedFieldInfo(wrapped_property=<property object>, return_type=<class 'mex.common.types.identifier.MergedVariableGroupIdentifier'>, alias=None, alias_priority=None, title=None, field_title_generator=None, description='Return the computed stableTargetId for this extracted data item.', deprecated=None, examples=None, json_schema_extra=None, repr=True)}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['ExtractedVariableGroup'], required=False, default='ExtractedVariableGroup', alias='$type', alias_priority=2, frozen=True), 'hadPrimarySource': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, description='The stableTargetId of the primary source, that this item was extracted from. This field is mandatory for all extracted items to aid with data provenance. Extracted primary sources also have this field and are all extracted from a static primary source for MEx. The extracted primary source for MEx has its own merged item as a primary source.', frozen=True), 'identifierInPrimarySource': FieldInfo(annotation=str, required=True, description='This is the identifier the original item had in its source system. It is only unique amongst items coming from the same system, because identifier formats are likely to overlap between systems. The value for `identifierInPrimarySource` is therefore only unique in composition with `hadPrimarySource`. MEx uses this composite key to assign a stable and globally unique `identifier` per extracted item.', examples=['123456', 'item-501', 'D7/x4/zz.final3'], frozen=True, metadata=[MinLen(min_length=1), MaxLen(max_length=1000), _PydanticGeneralMetadata(pattern='^[^\\n\\r]+$')]), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- property stableTargetId: MergedVariableGroupIdentifier¶
Return the computed stableTargetId for this extracted data item.
- class mex.common.models.GenericFieldInfo(alias: str | None, annotation: type[Any] | None, frozen: bool)¶
Bases:
object
Abstraction class for unifying FieldInfo and ComputedFieldInfo objects.
- alias: str | None¶
- annotation: type[Any] | None¶
- frozen: bool¶
- class mex.common.models.MergedAccessPlatform(*, technicalAccessibility: TechnicalAccessibility, endpointDescription: Link | None = None, endpointType: APIType | None = None, endpointURL: Link | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedAccessPlatform'] = 'MergedAccessPlatform', identifier: MergedAccessPlatformIdentifier)¶
Bases:
BaseAccessPlatform
,MergedItem
The result of merging all extracted data and rules for an access platform.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- entityType: Annotated[Literal['MergedAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedAccessPlatformIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'endpointType': FieldInfo(annotation=Union[APIType, NoneType], required=False, default=None), 'endpointURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['MergedAccessPlatform'], required=False, default='MergedAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedAccessPlatformIdentifier, required=True, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=TechnicalAccessibility, required=True), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- technicalAccessibility: TechnicalAccessibility¶
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- class mex.common.models.MergedActivity(*, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['MergedActivity'] = 'MergedActivity', identifier: MergedActivityIdentifier)¶
Bases:
BaseActivity
,MergedItem
The result of merging all extracted data and rules for an activity.
- activityType: list[ActivityType]¶
- contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]¶
- end: list[YearMonthDay | YearMonth | Year]¶
- entityType: Annotated[Literal['MergedActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]¶
- funderOrCommissioner: list[MergedOrganizationIdentifier]¶
- fundingProgram: list[str]¶
- identifier: Annotated[MergedActivityIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- involvedPerson: list[MergedPersonIdentifier]¶
- involvedUnit: list[MergedOrganizationalUnitIdentifier]¶
- isPartOfActivity: list[MergedActivityIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedActivity'], required=False, default='MergedActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedActivityIdentifier, required=True, frozen=True), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- publication: list[MergedBibliographicResourceIdentifier]¶
- responsibleUnit: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]¶
- start: list[YearMonthDay | YearMonth | Year]¶
- succeeds: list[MergedActivityIdentifier]¶
- class mex.common.models.MergedBibliographicResource(*, accessRestriction: AccessRestriction, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, edition: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])] | None = None, issue: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, license: License | None = None, pages: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None = None, publicationPlace: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])] | None = None, publicationYear: Year | None = None, repositoryURL: Link | None = None, section: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])] | None = None, volume: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, volumeOfSeries: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])] | None = None, creator: Annotated[list[MergedPersonIdentifier], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['MergedBibliographicResource'] = 'MergedBibliographicResource', identifier: MergedBibliographicResourceIdentifier)¶
Bases:
BaseBibliographicResource
,MergedItem
The result of merging all extracted data and rules for a bibliographic resource.
- accessRestriction: AccessRestriction¶
- alternateIdentifier: list[str]¶
- bibliographicResourceType: list[BibliographicResourceType]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- creator: Annotated[list[MergedPersonIdentifier], Field(min_length=1)]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- edition: EditionStr | None¶
- editor: list[MergedPersonIdentifier]¶
- editorOfSeries: list[MergedPersonIdentifier]¶
- entityType: Annotated[Literal['MergedBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedBibliographicResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isbnIssn: list[IsbnIssnStr]¶
- issue: VolumeOrIssueStr | None¶
- issued: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'edition': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])], NoneType], required=False, default=None), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedBibliographicResource'], required=False, default='MergedBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedBibliographicResourceIdentifier, required=True, frozen=True), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'pages': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])], NoneType], required=False, default=None), 'publicationPlace': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])], NoneType], required=False, default=None), 'publicationYear': FieldInfo(annotation=Union[Year, NoneType], required=False, default=None), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=Union[Link, NoneType], required=False, default=None), 'section': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])], NoneType], required=False, default=None), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None), 'volumeOfSeries': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- pages: Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])] | None¶
- publicationPlace: PublicationPlaceStr | None¶
- publisher: list[MergedOrganizationIdentifier]¶
- section: SectionStr | None¶
- volume: VolumeOrIssueStr | None¶
- volumeOfSeries: VolumeOrIssueStr | None¶
- class mex.common.models.MergedConsent(*, hasConsentStatus: ConsentStatus, hasDataSubject: MergedPersonIdentifier, isIndicatedAtTime: YearMonthDayTime, hasConsentType: ConsentType | None = None, entityType: Literal['MergedConsent'] = 'MergedConsent', identifier: MergedConsentIdentifier)¶
Bases:
BaseConsent
,MergedItem
The result of merging all extracted data and rules for a consent.
- entityType: Annotated[Literal['MergedConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: ConsentStatus¶
- hasConsentType: ConsentType | None¶
- hasDataSubject: MergedPersonIdentifier¶
- identifier: Annotated[MergedConsentIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isIndicatedAtTime: YearMonthDayTime¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['MergedConsent'], required=False, default='MergedConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=ConsentStatus, required=True), 'hasConsentType': FieldInfo(annotation=Union[ConsentType, NoneType], required=False, default=None), 'hasDataSubject': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'identifier': FieldInfo(annotation=MergedConsentIdentifier, required=True, frozen=True), 'isIndicatedAtTime': FieldInfo(annotation=YearMonthDayTime, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.MergedContactPoint(*, email: Annotated[list[Email], MinLen(min_length=1)], entityType: Literal['MergedContactPoint'] = 'MergedContactPoint', identifier: MergedContactPointIdentifier)¶
Bases:
BaseContactPoint
,MergedItem
The result of merging all extracted data and rules for a contact point.
- entityType: Annotated[Literal['MergedContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedContactPointIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['MergedContactPoint'], required=False, default='MergedContactPoint', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedContactPointIdentifier, required=True, frozen=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.MergedDistribution(*, accessRestriction: AccessRestriction, issued: YearMonthDayTime | YearMonthDay | YearMonth | Year, title: Annotated[str, MinLen(min_length=1)], accessService: MergedAccessPlatformIdentifier | None = None, license: License | None = None, mediaType: MIMEType | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['MergedDistribution'] = 'MergedDistribution', identifier: MergedDistributionIdentifier)¶
Bases:
BaseDistribution
,MergedItem
The result of merging all extracted data and rules for a distribution.
- accessRestriction: AccessRestriction¶
- accessService: MergedAccessPlatformIdentifier | None¶
- entityType: Annotated[Literal['MergedDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedDistributionIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- issued: YearMonthDayTime | YearMonthDay | YearMonth | Year¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accessService': FieldInfo(annotation=Union[MergedAccessPlatformIdentifier, NoneType], required=False, default=None), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedDistribution'], required=False, default='MergedDistribution', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedDistributionIdentifier, required=True, frozen=True), 'issued': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year], required=True), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'mediaType': FieldInfo(annotation=Union[MIMEType, NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'title': FieldInfo(annotation=str, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- title: Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)]¶
- class mex.common.models.MergedItem¶
Bases:
BaseEntity
Base model for all merged item classes.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.MergedOrganization(*, officialName: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['MergedOrganization'] = 'MergedOrganization', identifier: MergedOrganizationIdentifier)¶
Bases:
BaseOrganization
,MergedItem
The result of merging all extracted data and rules for an organization.
- entityType: Annotated[Literal['MergedOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]¶
- gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]¶
- identifier: Annotated[MergedOrganizationIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedOrganization'], required=False, default='MergedOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedOrganizationIdentifier, required=True, frozen=True), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]¶
- viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]¶
- wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.MergedOrganizationalUnit(*, parentUnit: MergedOrganizationalUnitIdentifier | None = None, name: Annotated[list[Text], MinLen(min_length=1)], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['MergedOrganizationalUnit'] = 'MergedOrganizationalUnit', identifier: MergedOrganizationalUnitIdentifier)¶
Bases:
BaseOrganizationalUnit
,MergedItem
The result of merging all extracted data and rules for an organizational unit.
- entityType: Annotated[Literal['MergedOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedOrganizationalUnitIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedOrganizationalUnit'], required=False, default='MergedOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedOrganizationalUnitIdentifier, required=True, frozen=True), 'name': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'parentUnit': FieldInfo(annotation=Union[MergedOrganizationalUnitIdentifier, NoneType], required=False, default=None), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- parentUnit: MergedOrganizationalUnitIdentifier | None¶
- unitOf: list[MergedOrganizationIdentifier]¶
- class mex.common.models.MergedPerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['MergedPerson'] = 'MergedPerson', identifier: MergedPersonIdentifier)¶
Bases:
BasePerson
,MergedItem
The result of merging all extracted data and rules for a person.
- affiliation: list[MergedOrganizationIdentifier]¶
- entityType: Annotated[Literal['MergedPerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]¶
- fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]¶
- givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]¶
- identifier: Annotated[MergedPersonIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- memberOf: list[MergedOrganizationalUnitIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedPerson'], required=False, default='MergedPerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedPersonIdentifier, required=True, frozen=True), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.MergedPrimarySource(*, version: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])] | None = None, alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['MergedPrimarySource'] = 'MergedPrimarySource', identifier: MergedPrimarySourceIdentifier)¶
Bases:
BasePrimarySource
,MergedItem
The result of merging all extracted data and rules for a primary source.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- entityType: Annotated[Literal['MergedPrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedPrimarySourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedPrimarySource'], required=False, default='MergedPrimarySource', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])], NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- version: Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])] | None¶
- class mex.common.models.MergedPrimarySourceIdentifier¶
Bases:
MergedIdentifier
Identifier for merged primary sources.
- class mex.common.models.MergedResource(*, accessRestriction: AccessRestriction, accrualPeriodicity: Frequency | None = None, created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, doi: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])] | None = None, hasPersonalData: PersonalData | None = None, license: License | None = None, maxTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])] | None = None, minTypicalAge: Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])] | None = None, modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None = None, sizeOfDataBasis: str | None = None, temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None = None, wasGeneratedBy: MergedActivityIdentifier | None = None, contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]], MinLen(min_length=1)], theme: Annotated[list[Theme], MinLen(min_length=1)], title: Annotated[list[Text], MinLen(min_length=1)], unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], MinLen(min_length=1)], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['MergedResource'] = 'MergedResource', identifier: MergedResourceIdentifier)¶
Bases:
BaseResource
,MergedItem
The result of merging all extracted data and rules for a resource.
- accessPlatform: list[MergedAccessPlatformIdentifier]¶
- accessRestriction: AccessRestriction¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]¶
- contact: Annotated[list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]], Field(min_length=1)]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- contributor: list[MergedPersonIdentifier]¶
- created: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: DoiStr | None¶
- entityType: Annotated[Literal['MergedResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MergedOrganizationIdentifier]¶
- hasPersonalData: PersonalData | None¶
- icd10code: list[str]¶
- identifier: Annotated[MergedResourceIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- isPartOf: list[MergedResourceIdentifier]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: Annotated[int, Field(examples=['99', '21'])] | None¶
- meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]¶
- minTypicalAge: Annotated[int, Field(examples=['0', '18'])] | None¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=AccessRestriction, required=True), 'accrualPeriodicity': FieldInfo(annotation=Union[Frequency, NoneType], required=False, default=None), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=True, metadata=[MinLen(min_length=1)]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])], NoneType], required=False, default=None), 'entityType': FieldInfo(annotation=Literal['MergedResource'], required=False, default='MergedResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=Union[PersonalData, NoneType], required=False, default=None), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'identifier': FieldInfo(annotation=MergedResourceIdentifier, required=True, frozen=True), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=Union[License, NoneType], required=False, default=None), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])], NoneType], required=False, default=None), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=Union[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])], NoneType], required=False, default=None), 'modified': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, NoneType], required=False, default=None), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])], NoneType], required=False, default=None), 'theme': FieldInfo(annotation=list[Theme], required=True, metadata=[MinLen(min_length=1)]), 'title': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'wasGeneratedBy': FieldInfo(annotation=Union[MergedActivityIdentifier, NoneType], required=False, default=None)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: YearMonthDayTime | YearMonthDay | YearMonth | Year | None¶
- publication: list[MergedBibliographicResourceIdentifier]¶
- publisher: list[MergedOrganizationIdentifier]¶
- resourceCreationMethod: list[ResourceCreationMethod]¶
- resourceTypeGeneral: list[ResourceTypeGeneral]¶
- sizeOfDataBasis: str | None¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])] | None¶
- unitInCharge: Annotated[list[MergedOrganizationalUnitIdentifier], Field(min_length=1)]¶
- wasGeneratedBy: MergedActivityIdentifier | None¶
- class mex.common.models.MergedVariable(*, codingSystem: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])] | None = None, dataType: Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])] | None = None, label: MinLen(min_length=1)], usedIn: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['MergedVariable'] = 'MergedVariable', identifier: MergedVariableIdentifier)¶
Bases:
BaseVariable
,MergedItem
The result of merging all extracted data and rules for a variable.
- belongsTo: list[MergedVariableGroupIdentifier]¶
- codingSystem: CodingSystemStr | None¶
- dataType: DataTypeStr | None¶
- entityType: Annotated[Literal['MergedVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedVariableIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- label: Annotated[list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], Field(min_length=1)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])], NoneType], required=False, default=None), 'dataType': FieldInfo(annotation=Union[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])], NoneType], required=False, default=None), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['MergedVariable'], required=False, default='MergedVariable', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedVariableIdentifier, required=True, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=True, metadata=[MinLen(min_length=1)]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- usedIn: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]¶
- valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]¶
- class mex.common.models.MergedVariableGroup(*, containedBy: Annotated[list[MergedResourceIdentifier], MinLen(min_length=1)], label: Annotated[list[Text], MinLen(min_length=1)], entityType: Literal['MergedVariableGroup'] = 'MergedVariableGroup', identifier: MergedVariableGroupIdentifier)¶
Bases:
BaseVariableGroup
,MergedItem
The result of merging all extracted data and rules for a variable group.
- containedBy: Annotated[list[MergedResourceIdentifier], Field(min_length=1)]¶
- entityType: Annotated[Literal['MergedVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- identifier: Annotated[MergedVariableGroupIdentifier, FieldInfo(annotation=NoneType, required=True, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=True, metadata=[MinLen(min_length=1)]), 'entityType': FieldInfo(annotation=Literal['MergedVariableGroup'], required=False, default='MergedVariableGroup', alias='$type', alias_priority=2, frozen=True), 'identifier': FieldInfo(annotation=MergedVariableGroupIdentifier, required=True, frozen=True), 'label': FieldInfo(annotation=list[Text], required=True, metadata=[MinLen(min_length=1)])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.OrganizationRuleSetRequest(*, additive: AdditiveOrganization, subtractive: SubtractiveOrganization, preventive: PreventiveOrganization, entityType: Literal['OrganizationRuleSetRequest'] = 'OrganizationRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update an organization item.
- additive: AdditiveOrganization¶
- entityType: Annotated[Literal['OrganizationRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganization, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationRuleSetRequest'], required=False, default='OrganizationRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganization, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganization, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveOrganization¶
- subtractive: SubtractiveOrganization¶
- class mex.common.models.OrganizationRuleSetResponse(*, additive: AdditiveOrganization, subtractive: SubtractiveOrganization, preventive: PreventiveOrganization, entityType: Literal['OrganizationRuleSetResponse'] = 'OrganizationRuleSetResponse', stableTargetId: MergedOrganizationIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve an organization item.
- additive: AdditiveOrganization¶
- entityType: Annotated[Literal['OrganizationRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganization, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationRuleSetResponse'], required=False, default='OrganizationRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganization, required=True), 'stableTargetId': FieldInfo(annotation=MergedOrganizationIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganization, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveOrganization¶
- stableTargetId: MergedOrganizationIdentifier¶
- subtractive: SubtractiveOrganization¶
- class mex.common.models.OrganizationalUnitRuleSetRequest(*, additive: AdditiveOrganizationalUnit, subtractive: SubtractiveOrganizationalUnit, preventive: PreventiveOrganizationalUnit, entityType: Literal['OrganizationalUnitRuleSetRequest'] = 'OrganizationalUnitRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update an organizational unit item.
- additive: AdditiveOrganizationalUnit¶
- entityType: Annotated[Literal['OrganizationalUnitRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganizationalUnit, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationalUnitRuleSetRequest'], required=False, default='OrganizationalUnitRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganizationalUnit, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganizationalUnit, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveOrganizationalUnit¶
- subtractive: SubtractiveOrganizationalUnit¶
- class mex.common.models.OrganizationalUnitRuleSetResponse(*, additive: AdditiveOrganizationalUnit, subtractive: SubtractiveOrganizationalUnit, preventive: PreventiveOrganizationalUnit, entityType: Literal['OrganizationalUnitRuleSetResponse'] = 'OrganizationalUnitRuleSetResponse', stableTargetId: MergedOrganizationalUnitIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve an organizational unit item.
- additive: AdditiveOrganizationalUnit¶
- entityType: Annotated[Literal['OrganizationalUnitRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveOrganizationalUnit, required=True), 'entityType': FieldInfo(annotation=Literal['OrganizationalUnitRuleSetResponse'], required=False, default='OrganizationalUnitRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveOrganizationalUnit, required=True), 'stableTargetId': FieldInfo(annotation=MergedOrganizationalUnitIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveOrganizationalUnit, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveOrganizationalUnit¶
- stableTargetId: MergedOrganizationalUnitIdentifier¶
- subtractive: SubtractiveOrganizationalUnit¶
- class mex.common.models.PersonRuleSetRequest(*, additive: AdditivePerson, subtractive: SubtractivePerson, preventive: PreventivePerson, entityType: Literal['PersonRuleSetRequest'] = 'PersonRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a person item.
- additive: AdditivePerson¶
- entityType: Annotated[Literal['PersonRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePerson, required=True), 'entityType': FieldInfo(annotation=Literal['PersonRuleSetRequest'], required=False, default='PersonRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePerson, required=True), 'subtractive': FieldInfo(annotation=SubtractivePerson, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventivePerson¶
- subtractive: SubtractivePerson¶
- class mex.common.models.PersonRuleSetResponse(*, additive: AdditivePerson, subtractive: SubtractivePerson, preventive: PreventivePerson, entityType: Literal['PersonRuleSetResponse'] = 'PersonRuleSetResponse', stableTargetId: MergedPersonIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a person item.
- additive: AdditivePerson¶
- entityType: Annotated[Literal['PersonRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePerson, required=True), 'entityType': FieldInfo(annotation=Literal['PersonRuleSetResponse'], required=False, default='PersonRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePerson, required=True), 'stableTargetId': FieldInfo(annotation=MergedPersonIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractivePerson, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventivePerson¶
- stableTargetId: MergedPersonIdentifier¶
- subtractive: SubtractivePerson¶
- class mex.common.models.PreventiveAccessPlatform(*, entityType: Literal['PreventiveAccessPlatform'] = 'PreventiveAccessPlatform', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], endpointDescription: list[MergedPrimarySourceIdentifier] = [], endpointType: list[MergedPrimarySourceIdentifier] = [], endpointURL: list[MergedPrimarySourceIdentifier] = [], landingPage: list[MergedPrimarySourceIdentifier] = [], technicalAccessibility: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged access platform items.
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- endpointDescription: list[MergedPrimarySourceIdentifier]¶
- endpointType: list[MergedPrimarySourceIdentifier]¶
- endpointURL: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- landingPage: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'endpointURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveAccessPlatform'], required=False, default='PreventiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- technicalAccessibility: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveActivity(*, entityType: Literal['PreventiveActivity'] = 'PreventiveActivity', abstract: list[MergedPrimarySourceIdentifier] = [], activityType: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], end: list[MergedPrimarySourceIdentifier] = [], externalAssociate: list[MergedPrimarySourceIdentifier] = [], funderOrCommissioner: list[MergedPrimarySourceIdentifier] = [], fundingProgram: list[MergedPrimarySourceIdentifier] = [], involvedPerson: list[MergedPrimarySourceIdentifier] = [], involvedUnit: list[MergedPrimarySourceIdentifier] = [], isPartOfActivity: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], responsibleUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], start: list[MergedPrimarySourceIdentifier] = [], succeeds: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged activity items.
- abstract: list[MergedPrimarySourceIdentifier]¶
- activityType: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- end: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[MergedPrimarySourceIdentifier]¶
- funderOrCommissioner: list[MergedPrimarySourceIdentifier]¶
- fundingProgram: list[MergedPrimarySourceIdentifier]¶
- involvedPerson: list[MergedPrimarySourceIdentifier]¶
- involvedUnit: list[MergedPrimarySourceIdentifier]¶
- isPartOfActivity: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'activityType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'end': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveActivity'], required=False, default='PreventiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'start': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- publication: list[MergedPrimarySourceIdentifier]¶
- responsibleUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- start: list[MergedPrimarySourceIdentifier]¶
- succeeds: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveBibliographicResource(*, entityType: Literal['PreventiveBibliographicResource'] = 'PreventiveBibliographicResource', abstract: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], alternateIdentifier: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], bibliographicResourceType: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], edition: list[MergedPrimarySourceIdentifier] = [], editor: list[MergedPrimarySourceIdentifier] = [], editorOfSeries: list[MergedPrimarySourceIdentifier] = [], isbnIssn: list[MergedPrimarySourceIdentifier] = [], issue: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], journal: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], pages: list[MergedPrimarySourceIdentifier] = [], publicationPlace: list[MergedPrimarySourceIdentifier] = [], publicationYear: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], repositoryURL: list[MergedPrimarySourceIdentifier] = [], section: list[MergedPrimarySourceIdentifier] = [], subtitle: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], titleOfBook: list[MergedPrimarySourceIdentifier] = [], titleOfSeries: list[MergedPrimarySourceIdentifier] = [], volume: list[MergedPrimarySourceIdentifier] = [], volumeOfSeries: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged bibliographic resource items.
- abstract: list[MergedPrimarySourceIdentifier]¶
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- alternateIdentifier: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- bibliographicResourceType: list[MergedPrimarySourceIdentifier]¶
- contributingUnit: list[MergedPrimarySourceIdentifier]¶
- creator: list[MergedPrimarySourceIdentifier]¶
- distribution: list[MergedPrimarySourceIdentifier]¶
- doi: list[MergedPrimarySourceIdentifier]¶
- edition: list[MergedPrimarySourceIdentifier]¶
- editor: list[MergedPrimarySourceIdentifier]¶
- editorOfSeries: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: list[MergedPrimarySourceIdentifier]¶
- issue: list[MergedPrimarySourceIdentifier]¶
- issued: list[MergedPrimarySourceIdentifier]¶
- journal: list[MergedPrimarySourceIdentifier]¶
- keyword: list[MergedPrimarySourceIdentifier]¶
- language: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternateIdentifier': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'edition': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'editor': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveBibliographicResource'], required=False, default='PreventiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'issue': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'issued': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'journal': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'language': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'pages': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publicationPlace': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publicationYear': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'section': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'subtitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'volume': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'volumeOfSeries': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- pages: list[MergedPrimarySourceIdentifier]¶
- publicationPlace: list[MergedPrimarySourceIdentifier]¶
- publicationYear: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- repositoryURL: list[MergedPrimarySourceIdentifier]¶
- section: list[MergedPrimarySourceIdentifier]¶
- subtitle: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- titleOfBook: list[MergedPrimarySourceIdentifier]¶
- titleOfSeries: list[MergedPrimarySourceIdentifier]¶
- volume: list[MergedPrimarySourceIdentifier]¶
- volumeOfSeries: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveConsent(*, entityType: Literal['PreventiveConsent'] = 'PreventiveConsent', hasConsentType: list[MergedPrimarySourceIdentifier] = [], hasConsentStatus: list[MergedPrimarySourceIdentifier] = [], hasDataSubject: list[MergedPrimarySourceIdentifier] = [], isIndicatedAtTime: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged consent items.
- entityType: Annotated[Literal['PreventiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: list[MergedPrimarySourceIdentifier]¶
- hasConsentType: list[MergedPrimarySourceIdentifier]¶
- hasDataSubject: list[MergedPrimarySourceIdentifier]¶
- isIndicatedAtTime: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['PreventiveConsent'], required=False, default='PreventiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasConsentType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasDataSubject': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isIndicatedAtTime': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.PreventiveContactPoint(*, entityType: Literal['PreventiveContactPoint'] = 'PreventiveContactPoint', email: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged contact point items.
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveContactPoint'], required=False, default='PreventiveContactPoint', alias='$type', alias_priority=2, frozen=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.PreventiveDistribution(*, entityType: Literal['PreventiveDistribution'] = 'PreventiveDistribution', accessRestriction: list[MergedPrimarySourceIdentifier] = [], accessService: list[MergedPrimarySourceIdentifier] = [], accessURL: list[MergedPrimarySourceIdentifier] = [], downloadURL: list[MergedPrimarySourceIdentifier] = [], issued: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], mediaType: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged distribution items.
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- accessService: list[MergedPrimarySourceIdentifier]¶
- accessURL: list[MergedPrimarySourceIdentifier]¶
- downloadURL: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- mediaType: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessService': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveDistribution'], required=False, default='PreventiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'mediaType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'modified': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveOrganization(*, entityType: Literal['PreventiveOrganization'] = 'PreventiveOrganization', alternativeName: list[MergedPrimarySourceIdentifier] = [], geprisId: list[MergedPrimarySourceIdentifier] = [], gndId: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], officialName: list[MergedPrimarySourceIdentifier] = [], rorId: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], viafId: list[MergedPrimarySourceIdentifier] = [], wikidataId: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged organization items.
- alternativeName: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[MergedPrimarySourceIdentifier]¶
- gndId: list[MergedPrimarySourceIdentifier]¶
- isniId: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveOrganization'], required=False, default='PreventiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'gndId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isniId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'officialName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'rorId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'viafId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- officialName: list[MergedPrimarySourceIdentifier]¶
- rorId: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- viafId: list[MergedPrimarySourceIdentifier]¶
- wikidataId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveOrganizationalUnit(*, entityType: Literal['PreventiveOrganizationalUnit'] = 'PreventiveOrganizationalUnit', alternativeName: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], name: list[MergedPrimarySourceIdentifier] = [], parentUnit: list[MergedPrimarySourceIdentifier] = [], shortName: list[MergedPrimarySourceIdentifier] = [], unitOf: list[MergedPrimarySourceIdentifier] = [], website: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged organizational units.
- alternativeName: list[MergedPrimarySourceIdentifier]¶
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveOrganizationalUnit'], required=False, default='PreventiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'parentUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- name: list[MergedPrimarySourceIdentifier]¶
- parentUnit: list[MergedPrimarySourceIdentifier]¶
- shortName: list[MergedPrimarySourceIdentifier]¶
- unitOf: list[MergedPrimarySourceIdentifier]¶
- website: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventivePerson(*, entityType: Literal['PreventivePerson'] = 'PreventivePerson', affiliation: list[MergedPrimarySourceIdentifier] = [], email: list[MergedPrimarySourceIdentifier] = [], familyName: list[MergedPrimarySourceIdentifier] = [], fullName: list[MergedPrimarySourceIdentifier] = [], givenName: list[MergedPrimarySourceIdentifier] = [], isniId: list[MergedPrimarySourceIdentifier] = [], memberOf: list[MergedPrimarySourceIdentifier] = [], orcidId: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged person items.
- affiliation: list[MergedPrimarySourceIdentifier]¶
- email: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[MergedPrimarySourceIdentifier]¶
- fullName: list[MergedPrimarySourceIdentifier]¶
- givenName: list[MergedPrimarySourceIdentifier]¶
- isniId: list[MergedPrimarySourceIdentifier]¶
- memberOf: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventivePerson'], required=False, default='PreventivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'fullName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'givenName': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isniId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- orcidId: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventivePrimarySource(*, entityType: Literal['PreventivePrimarySource'] = 'PreventivePrimarySource', alternativeTitle: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], locatedAt: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], version: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged primary source items.
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- locatedAt: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventivePrimarySource'], required=False, default='PreventivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- version: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveResource(*, entityType: Literal['PreventiveResource'] = 'PreventiveResource', accessPlatform: list[MergedPrimarySourceIdentifier] = [], accessRestriction: list[MergedPrimarySourceIdentifier] = [], accrualPeriodicity: list[MergedPrimarySourceIdentifier] = [], alternativeTitle: list[MergedPrimarySourceIdentifier] = [], anonymizationPseudonymization: list[MergedPrimarySourceIdentifier] = [], conformsTo: list[MergedPrimarySourceIdentifier] = [], contact: list[MergedPrimarySourceIdentifier] = [], contributingUnit: list[MergedPrimarySourceIdentifier] = [], contributor: list[MergedPrimarySourceIdentifier] = [], created: list[MergedPrimarySourceIdentifier] = [], doi: list[MergedPrimarySourceIdentifier] = [], creator: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], distribution: list[MergedPrimarySourceIdentifier] = [], documentation: list[MergedPrimarySourceIdentifier] = [], externalPartner: list[MergedPrimarySourceIdentifier] = [], hasLegalBasis: list[MergedPrimarySourceIdentifier] = [], hasPersonalData: list[MergedPrimarySourceIdentifier] = [], icd10code: list[MergedPrimarySourceIdentifier] = [], instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier] = [], isPartOf: list[MergedPrimarySourceIdentifier] = [], keyword: list[MergedPrimarySourceIdentifier] = [], language: list[MergedPrimarySourceIdentifier] = [], license: list[MergedPrimarySourceIdentifier] = [], loincId: list[MergedPrimarySourceIdentifier] = [], maxTypicalAge: list[MergedPrimarySourceIdentifier] = [], meshId: list[MergedPrimarySourceIdentifier] = [], method: list[MergedPrimarySourceIdentifier] = [], methodDescription: list[MergedPrimarySourceIdentifier] = [], minTypicalAge: list[MergedPrimarySourceIdentifier] = [], modified: list[MergedPrimarySourceIdentifier] = [], populationCoverage: list[MergedPrimarySourceIdentifier] = [], publication: list[MergedPrimarySourceIdentifier] = [], publisher: list[MergedPrimarySourceIdentifier] = [], qualityInformation: list[MergedPrimarySourceIdentifier] = [], resourceCreationMethod: list[MergedPrimarySourceIdentifier] = [], resourceTypeGeneral: list[MergedPrimarySourceIdentifier] = [], resourceTypeSpecific: list[MergedPrimarySourceIdentifier] = [], rights: list[MergedPrimarySourceIdentifier] = [], sizeOfDataBasis: list[MergedPrimarySourceIdentifier] = [], spatial: list[MergedPrimarySourceIdentifier] = [], stateOfDataProcessing: list[MergedPrimarySourceIdentifier] = [], temporal: list[MergedPrimarySourceIdentifier] = [], theme: list[MergedPrimarySourceIdentifier] = [], title: list[MergedPrimarySourceIdentifier] = [], unitInCharge: list[MergedPrimarySourceIdentifier] = [], wasGeneratedBy: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged resource items.
- accessPlatform: list[MergedPrimarySourceIdentifier]¶
- accessRestriction: list[MergedPrimarySourceIdentifier]¶
- accrualPeriodicity: list[MergedPrimarySourceIdentifier]¶
- alternativeTitle: list[MergedPrimarySourceIdentifier]¶
- anonymizationPseudonymization: list[MergedPrimarySourceIdentifier]¶
- conformsTo: list[MergedPrimarySourceIdentifier]¶
- contact: list[MergedPrimarySourceIdentifier]¶
- contributingUnit: list[MergedPrimarySourceIdentifier]¶
- contributor: list[MergedPrimarySourceIdentifier]¶
- created: list[MergedPrimarySourceIdentifier]¶
- creator: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- distribution: list[MergedPrimarySourceIdentifier]¶
- documentation: list[MergedPrimarySourceIdentifier]¶
- doi: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MergedPrimarySourceIdentifier]¶
- hasLegalBasis: list[MergedPrimarySourceIdentifier]¶
- hasPersonalData: list[MergedPrimarySourceIdentifier]¶
- icd10code: list[MergedPrimarySourceIdentifier]¶
- instrumentToolOrApparatus: list[MergedPrimarySourceIdentifier]¶
- isPartOf: list[MergedPrimarySourceIdentifier]¶
- keyword: list[MergedPrimarySourceIdentifier]¶
- language: list[MergedPrimarySourceIdentifier]¶
- license: list[MergedPrimarySourceIdentifier]¶
- loincId: list[MergedPrimarySourceIdentifier]¶
- maxTypicalAge: list[MergedPrimarySourceIdentifier]¶
- meshId: list[MergedPrimarySourceIdentifier]¶
- method: list[MergedPrimarySourceIdentifier]¶
- methodDescription: list[MergedPrimarySourceIdentifier]¶
- minTypicalAge: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'accrualPeriodicity': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contact': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveResource'], required=False, default='PreventiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'icd10code': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'language': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'license': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'loincId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'meshId': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'method': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'modified': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'populationCoverage': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'rights': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'spatial': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'temporal': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'title': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: list[MergedPrimarySourceIdentifier]¶
- populationCoverage: list[MergedPrimarySourceIdentifier]¶
- publication: list[MergedPrimarySourceIdentifier]¶
- publisher: list[MergedPrimarySourceIdentifier]¶
- qualityInformation: list[MergedPrimarySourceIdentifier]¶
- resourceCreationMethod: list[MergedPrimarySourceIdentifier]¶
- resourceTypeGeneral: list[MergedPrimarySourceIdentifier]¶
- resourceTypeSpecific: list[MergedPrimarySourceIdentifier]¶
- rights: list[MergedPrimarySourceIdentifier]¶
- sizeOfDataBasis: list[MergedPrimarySourceIdentifier]¶
- spatial: list[MergedPrimarySourceIdentifier]¶
- stateOfDataProcessing: list[MergedPrimarySourceIdentifier]¶
- temporal: list[MergedPrimarySourceIdentifier]¶
- theme: list[MergedPrimarySourceIdentifier]¶
- title: list[MergedPrimarySourceIdentifier]¶
- unitInCharge: list[MergedPrimarySourceIdentifier]¶
- wasGeneratedBy: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveRule¶
Bases:
BaseEntity
Base rule to prevent primary sources for fields of merged items.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.PreventiveVariable(*, entityType: Literal['PreventiveVariable'] = 'PreventiveVariable', belongsTo: list[MergedPrimarySourceIdentifier] = [], codingSystem: list[MergedPrimarySourceIdentifier] = [], dataType: list[MergedPrimarySourceIdentifier] = [], description: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [], usedIn: list[MergedPrimarySourceIdentifier] = [], valueSet: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged variable items.
- belongsTo: list[MergedPrimarySourceIdentifier]¶
- codingSystem: list[MergedPrimarySourceIdentifier]¶
- dataType: list[MergedPrimarySourceIdentifier]¶
- description: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'dataType': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveVariable'], required=False, default='PreventiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- usedIn: list[MergedPrimarySourceIdentifier]¶
- valueSet: list[MergedPrimarySourceIdentifier]¶
- class mex.common.models.PreventiveVariableGroup(*, entityType: Literal['PreventiveVariableGroup'] = 'PreventiveVariableGroup', containedBy: list[MergedPrimarySourceIdentifier] = [], label: list[MergedPrimarySourceIdentifier] = [])¶
Bases:
_Stem
,PreventiveRule
Rule to prevent primary sources for fields of merged variable group items.
- containedBy: list[MergedPrimarySourceIdentifier]¶
- entityType: Annotated[Literal['PreventiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[MergedPrimarySourceIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['PreventiveVariableGroup'], required=False, default='PreventiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[MergedPrimarySourceIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.PrimarySourceRuleSetRequest(*, additive: AdditivePrimarySource, subtractive: SubtractivePrimarySource, preventive: PreventivePrimarySource, entityType: Literal['PrimarySourceRuleSetRequest'] = 'PrimarySourceRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a primary source item.
- additive: AdditivePrimarySource¶
- entityType: Annotated[Literal['PrimarySourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePrimarySource, required=True), 'entityType': FieldInfo(annotation=Literal['PrimarySourceRuleSetRequest'], required=False, default='PrimarySourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePrimarySource, required=True), 'subtractive': FieldInfo(annotation=SubtractivePrimarySource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventivePrimarySource¶
- subtractive: SubtractivePrimarySource¶
- class mex.common.models.PrimarySourceRuleSetResponse(*, additive: AdditivePrimarySource, subtractive: SubtractivePrimarySource, preventive: PreventivePrimarySource, entityType: Literal['PrimarySourceRuleSetResponse'] = 'PrimarySourceRuleSetResponse', stableTargetId: MergedPrimarySourceIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a primary source item.
- additive: AdditivePrimarySource¶
- entityType: Annotated[Literal['PrimarySourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditivePrimarySource, required=True), 'entityType': FieldInfo(annotation=Literal['PrimarySourceRuleSetResponse'], required=False, default='PrimarySourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventivePrimarySource, required=True), 'stableTargetId': FieldInfo(annotation=MergedPrimarySourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractivePrimarySource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventivePrimarySource¶
- stableTargetId: MergedPrimarySourceIdentifier¶
- subtractive: SubtractivePrimarySource¶
- class mex.common.models.ResourceRuleSetRequest(*, additive: AdditiveResource, subtractive: SubtractiveResource, preventive: PreventiveResource, entityType: Literal['ResourceRuleSetRequest'] = 'ResourceRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a resource item.
- additive: AdditiveResource¶
- entityType: Annotated[Literal['ResourceRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveResource, required=True), 'entityType': FieldInfo(annotation=Literal['ResourceRuleSetRequest'], required=False, default='ResourceRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveResource, required=True), 'subtractive': FieldInfo(annotation=SubtractiveResource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveResource¶
- subtractive: SubtractiveResource¶
- class mex.common.models.ResourceRuleSetResponse(*, additive: AdditiveResource, subtractive: SubtractiveResource, preventive: PreventiveResource, entityType: Literal['ResourceRuleSetResponse'] = 'ResourceRuleSetResponse', stableTargetId: MergedResourceIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a resource item.
- additive: AdditiveResource¶
- entityType: Annotated[Literal['ResourceRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveResource, required=True), 'entityType': FieldInfo(annotation=Literal['ResourceRuleSetResponse'], required=False, default='ResourceRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveResource, required=True), 'stableTargetId': FieldInfo(annotation=MergedResourceIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveResource, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveResource¶
- stableTargetId: MergedResourceIdentifier¶
- subtractive: SubtractiveResource¶
- class mex.common.models.SubtractiveAccessPlatform(*, endpointDescription: list[Link], endpointType: list[APIType] = [], endpointURL: list[Link] = [], technicalAccessibility: list[TechnicalAccessibility] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], landingPage: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractiveAccessPlatform'] = 'SubtractiveAccessPlatform')¶
Bases:
_OptionalLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged access platform items.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- entityType: Annotated[Literal['SubtractiveAccessPlatform'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'endpointDescription': FieldInfo(annotation=list[Link], required=True), 'endpointType': FieldInfo(annotation=list[APIType], required=False, default=[]), 'endpointURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveAccessPlatform'], required=False, default='SubtractiveAccessPlatform', alias='$type', alias_priority=2, frozen=True), 'landingPage': FieldInfo(annotation=list[Link], required=False, default=[]), 'technicalAccessibility': FieldInfo(annotation=list[TechnicalAccessibility], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- technicalAccessibility: list[TechnicalAccessibility]¶
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- class mex.common.models.SubtractiveActivity(*, contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], responsibleUnit: list[MergedOrganizationalUnitIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], activityType: list[ActivityType] = [], alternativeTitle: list[Text] = [], documentation: list[Link] = [], end: list[YearMonthDay | YearMonth | Year] = [], externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(func=Identifier)]] = [], funderOrCommissioner: list[MergedOrganizationIdentifier] = [], fundingProgram: list[str] = [], involvedPerson: list[MergedPersonIdentifier] = [], involvedUnit: list[MergedOrganizationalUnitIdentifier] = [], isPartOfActivity: list[MergedActivityIdentifier] = [], publication: list[MergedBibliographicResourceIdentifier] = [], shortName: list[Text] = [], start: list[YearMonthDay | YearMonth | Year] = [], succeeds: list[MergedActivityIdentifier] = [], theme: list[Theme] = [], website: list[Link] = [], entityType: Literal['SubtractiveActivity'] = 'SubtractiveActivity')¶
Bases:
_OptionalLists
,_SparseLists
,SubtractiveRule
Rule to subtract values from merged activity items.
- activityType: list[ActivityType]¶
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- end: list[YearMonthDay | YearMonth | Year]¶
- entityType: Annotated[Literal['SubtractiveActivity'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalAssociate: list[Annotated[MergedOrganizationIdentifier | MergedPersonIdentifier, AfterValidator(Identifier)]]¶
- funderOrCommissioner: list[MergedOrganizationIdentifier]¶
- fundingProgram: list[str]¶
- involvedPerson: list[MergedPersonIdentifier]¶
- involvedUnit: list[MergedOrganizationalUnitIdentifier]¶
- isPartOfActivity: list[MergedActivityIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'activityType': FieldInfo(annotation=list[ActivityType], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'end': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveActivity'], required=False, default='SubtractiveActivity', alias='$type', alias_priority=2, frozen=True), 'externalAssociate': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationIdentifier, MergedPersonIdentifier], AfterValidator]], required=False, default=[]), 'funderOrCommissioner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'fundingProgram': FieldInfo(annotation=list[str], required=False, default=[]), 'involvedPerson': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'involvedUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'isPartOfActivity': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'responsibleUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'start': FieldInfo(annotation=list[Union[YearMonthDay, YearMonth, Year]], required=False, default=[]), 'succeeds': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- publication: list[MergedBibliographicResourceIdentifier]¶
- responsibleUnit: list[MergedOrganizationalUnitIdentifier]¶
- start: list[YearMonthDay | YearMonth | Year]¶
- succeeds: list[MergedActivityIdentifier]¶
- class mex.common.models.SubtractiveBibliographicResource(*, accessRestriction: list[AccessRestriction] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]] = [], edition: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]] = [], issue: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], license: list[License] = [], pages: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]] = [], publicationPlace: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]] = [], publicationYear: list[Year] = [], repositoryURL: list[Link] = [], section: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]] = [], volume: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], volumeOfSeries: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]] = [], creator: list[MergedPersonIdentifier] = [], title: list[Text] = [], abstract: list[Text] = [], alternateIdentifier: list[str] = [], alternativeTitle: list[Text] = [], bibliographicResourceType: list[BibliographicResourceType] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], distribution: list[MergedDistributionIdentifier] = [], editor: list[MergedPersonIdentifier] = [], editorOfSeries: list[MergedPersonIdentifier] = [], isbnIssn: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]] = [], journal: list[Text] = [], keyword: list[Text] = [], language: list[Language] = [], publisher: list[MergedOrganizationIdentifier] = [], subtitle: list[Text] = [], titleOfBook: list[Text] = [], titleOfSeries: list[Text] = [], entityType: Literal['SubtractiveBibliographicResource'] = 'SubtractiveBibliographicResource')¶
Bases:
_OptionalLists
,_SparseLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged bibliographic resource items.
- accessRestriction: list[AccessRestriction]¶
- alternateIdentifier: list[str]¶
- bibliographicResourceType: list[BibliographicResourceType]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: list[DoiStr]¶
- edition: list[EditionStr]¶
- editor: list[MergedPersonIdentifier]¶
- editorOfSeries: list[MergedPersonIdentifier]¶
- entityType: Annotated[Literal['SubtractiveBibliographicResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- isbnIssn: list[IsbnIssnStr]¶
- issue: list[VolumeOrIssueStr]¶
- issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'abstract': FieldInfo(annotation=list[Text], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'alternateIdentifier': FieldInfo(annotation=list[str], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'bibliographicResourceType': FieldInfo(annotation=list[BibliographicResourceType], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'doi': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]], required=False, default=[]), 'edition': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['5', 'Band 2,1', 'Band 2,2', '3rd edition'])]], required=False, default=[]), 'editor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'editorOfSeries': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveBibliographicResource'], required=False, default='SubtractiveBibliographicResource', alias='$type', alias_priority=2, frozen=True), 'isbnIssn': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['ISBN 90-70002-34-5', 'ISBN 90-70002-34-x', 'ISBN 90-70002-34-5x', 'ISBN 90-700-02-34-5', 'ISBN: 978-3-642-11746-6', '978-3-642-11746-6', 'ISSN 0176-6996', 'ISSN 1430-855X', '1430-8551', '1467-9442'])]], required=False, default=[]), 'issue': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[]), 'issued': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'journal': FieldInfo(annotation=list[Text], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=list[License], required=False, default=[]), 'pages': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]], required=False, default=[]), 'publicationPlace': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Berlin', 'Chigago', 'NYC/NY', 'Tampa, FL'])]], required=False, default=[]), 'publicationYear': FieldInfo(annotation=list[Year], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'repositoryURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'section': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Kapitel 1', 'A Section About Public Health', 'Chapter XII: The History of Public Health', '12', 'A', 'B.'])]], required=False, default=[]), 'subtitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfBook': FieldInfo(annotation=list[Text], required=False, default=[]), 'titleOfSeries': FieldInfo(annotation=list[Text], required=False, default=[]), 'volume': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[]), 'volumeOfSeries': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2', 'Q3', '11/12', "Winter '23"])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- pages: list[Annotated[str, Field(examples=['1', '45-67', '45 - 67', 'II', 'XI', '10i'])]]¶
- publicationPlace: list[PublicationPlaceStr]¶
- publisher: list[MergedOrganizationIdentifier]¶
- section: list[SectionStr]¶
- volume: list[VolumeOrIssueStr]¶
- volumeOfSeries: list[VolumeOrIssueStr]¶
- class mex.common.models.SubtractiveConsent(*, hasConsentType: list[ConsentType] = [], hasConsentStatus: list[ConsentStatus] = [], hasDataSubject: list[MergedPersonIdentifier] = [], isIndicatedAtTime: list[YearMonthDayTime] = [], entityType: Literal['SubtractiveConsent'] = 'SubtractiveConsent')¶
Bases:
_VariadicValues
,SubtractiveRule
Rule to subtract values from merged consent items.
- entityType: Annotated[Literal['SubtractiveConsent'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- hasConsentStatus: list[ConsentStatus]¶
- hasConsentType: list[ConsentType]¶
- hasDataSubject: list[MergedPersonIdentifier]¶
- isIndicatedAtTime: list[YearMonthDayTime]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'entityType': FieldInfo(annotation=Literal['SubtractiveConsent'], required=False, default='SubtractiveConsent', alias='$type', alias_priority=2, frozen=True), 'hasConsentStatus': FieldInfo(annotation=list[ConsentStatus], required=False, default=[]), 'hasConsentType': FieldInfo(annotation=list[ConsentType], required=False, default=[]), 'hasDataSubject': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'isIndicatedAtTime': FieldInfo(annotation=list[YearMonthDayTime], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.SubtractiveContactPoint(*, email: list[Email] = [], entityType: Literal['SubtractiveContactPoint'] = 'SubtractiveContactPoint')¶
Bases:
_SparseLists
,SubtractiveRule
Rule to subtract values from merged contact point items.
- entityType: Annotated[Literal['SubtractiveContactPoint'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveContactPoint'], required=False, default='SubtractiveContactPoint', alias='$type', alias_priority=2, frozen=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.SubtractiveDistribution(*, accessRestriction: list[AccessRestriction] = [], issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], title: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])]] = [], accessURL: list[Link] = [], downloadURL: list[Link] = [], entityType: Literal['SubtractiveDistribution'] = 'SubtractiveDistribution')¶
Bases:
_OptionalLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged distribution items.
- accessRestriction: list[AccessRestriction]¶
- entityType: Annotated[Literal['SubtractiveDistribution'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- issued: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'accessURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'downloadURL': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveDistribution'], required=False, default='SubtractiveDistribution', alias='$type', alias_priority=2, frozen=True), 'issued': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'title': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['theNameOfTheFile'], metadata=[MinLen(min_length=1)])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- title: list[Annotated[str, Field(examples=['theNameOfTheFile'], min_length=1)]]¶
- class mex.common.models.SubtractiveOrganization(*, officialName: list[Text] = [], alternativeName: list[Text] = [], geprisId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]] = [], gndId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], rorId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]] = [], shortName: list[Text] = [], viafId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]] = [], wikidataId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]] = [], entityType: Literal['SubtractiveOrganization'] = 'SubtractiveOrganization')¶
Bases:
_OptionalLists
,_SparseLists
,SubtractiveRule
Rule to subtract values from merged organization items.
- entityType: Annotated[Literal['SubtractiveOrganization'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- geprisId: list[Annotated[str, Field(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$', examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'})]]¶
- gndId: list[Annotated[str, Field(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$', examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'})]]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveOrganization'], required=False, default='SubtractiveOrganization', alias='$type', alias_priority=2, frozen=True), 'geprisId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://gepris.dfg.de/gepris/institution/10179'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://gepris\\.dfg\\.de/gepris/institution/[0-9]{1,64}$')])]], required=False, default=[]), 'gndId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://d-nb.info/gnd/17690-4'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://d\\-nb\\.info/gnd/[-X0-9]{3,10}$')])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'officialName': FieldInfo(annotation=list[Text], required=False, default=[]), 'rorId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://ror\\.org/[a-z0-9]{9}$')])]], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'viafId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$')])]], required=False, default=[]), 'wikidataId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://www.wikidata.org/entity/Q679041'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- rorId: list[Annotated[str, Field(pattern='^https://ror\\.org/[a-z0-9]{9}$', examples=['https://ror.org/01k5qnb77'], json_schema_extra={'format': 'uri'})]]¶
- viafId: list[Annotated[str, Field(pattern='^https://viaf\\.org/viaf/[0-9]{2,22}$', examples=['https://viaf.org/viaf/123556639'], json_schema_extra={'format': 'uri'})]]¶
- wikidataId: list[Annotated[str, Field(examples=['http://www.wikidata.org/entity/Q679041'], pattern='^https://www\\.wikidata\\.org/entity/[PQ0-9]{2,64}$', json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.SubtractiveOrganizationalUnit(*, parentUnit: list[MergedOrganizationalUnitIdentifier] = [], name: list[Text] = [], alternativeName: list[Text] = [], email: list[Email] = [], shortName: list[Text] = [], unitOf: list[MergedOrganizationIdentifier] = [], website: list[Link] = [], entityType: Literal['SubtractiveOrganizationalUnit'] = 'SubtractiveOrganizationalUnit')¶
Bases:
_OptionalLists
,_SparseLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged organizational units.
- entityType: Annotated[Literal['SubtractiveOrganizationalUnit'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeName': FieldInfo(annotation=list[Text], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveOrganizationalUnit'], required=False, default='SubtractiveOrganizationalUnit', alias='$type', alias_priority=2, frozen=True), 'name': FieldInfo(annotation=list[Text], required=False, default=[]), 'parentUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'shortName': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitOf': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'website': FieldInfo(annotation=list[Link], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- parentUnit: list[MergedOrganizationalUnitIdentifier]¶
- unitOf: list[MergedOrganizationIdentifier]¶
- class mex.common.models.SubtractivePerson(*, affiliation: list[MergedOrganizationIdentifier] = [], email: list[Email] = [], familyName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]] = [], fullName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]] = [], givenName: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]] = [], isniId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]] = [], memberOf: list[MergedOrganizationalUnitIdentifier] = [], orcidId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]] = [], entityType: Literal['SubtractivePerson'] = 'SubtractivePerson')¶
Bases:
_OptionalLists
,SubtractiveRule
Rule to subtract values from merged person items.
- affiliation: list[MergedOrganizationIdentifier]¶
- entityType: Annotated[Literal['SubtractivePerson'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- familyName: list[Annotated[str, Field(examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]]¶
- fullName: list[Annotated[str, Field(examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]]¶
- givenName: list[Annotated[str, Field(examples=['Romāns', 'Marie Salomea', 'May-Britt'])]]¶
- isniId: list[Annotated[str, Field(pattern='^https://isni\\.org/isni/[X0-9]{16}$', examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'})]]¶
- memberOf: list[MergedOrganizationalUnitIdentifier]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'affiliation': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'email': FieldInfo(annotation=list[Email], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractivePerson'], required=False, default='SubtractivePerson', alias='$type', alias_priority=2, frozen=True), 'familyName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Patapoutian', 'Skłodowska-Curie', 'Muta Maathai'])]], required=False, default=[]), 'fullName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Juturna Felicitás', 'M. Berhanu', 'Keone Seong-Hyeon'])]], required=False, default=[]), 'givenName': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Romāns', 'Marie Salomea', 'May-Britt'])]], required=False, default=[]), 'isniId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://isni.org/isni/0000000109403744'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://isni\\.org/isni/[X0-9]{16}$')])]], required=False, default=[]), 'memberOf': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'orcidId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://orcid\\.org/[-X0-9]{9,21}$')])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- orcidId: list[Annotated[str, Field(pattern='^https://orcid\\.org/[-X0-9]{9,21}$', examples=['https://orcid.org/0000-0002-9079-593X'], json_schema_extra={'format': 'uri'})]]¶
- class mex.common.models.SubtractivePrimarySource(*, version: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]] = [], alternativeTitle: list[Text] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], description: list[Text] = [], documentation: list[Link] = [], locatedAt: list[Link] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], entityType: Literal['SubtractivePrimarySource'] = 'SubtractivePrimarySource')¶
Bases:
_OptionalLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged primary source items.
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- entityType: Annotated[Literal['SubtractivePrimarySource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractivePrimarySource'], required=False, default='SubtractivePrimarySource', alias='$type', alias_priority=2, frozen=True), 'locatedAt': FieldInfo(annotation=list[Link], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'version': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['v1', '2023-01-16', 'Schema 9'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- version: list[Annotated[str, Field(examples=['v1', '2023-01-16', 'Schema 9'])]]¶
- class mex.common.models.SubtractiveResource(*, accessRestriction: list[AccessRestriction] = [], accrualPeriodicity: list[Frequency] = [], created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], doi: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]] = [], hasPersonalData: list[PersonalData] = [], license: list[License] = [], maxTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]] = [], minTypicalAge: list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]] = [], modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year] = [], sizeOfDataBasis: list[str] = [], temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]] = [], wasGeneratedBy: list[MergedActivityIdentifier] = [], contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(func=Identifier)]] = [], theme: list[Theme] = [], title: list[Text] = [], unitInCharge: list[MergedOrganizationalUnitIdentifier] = [], accessPlatform: list[MergedAccessPlatformIdentifier] = [], alternativeTitle: list[Text] = [], anonymizationPseudonymization: list[AnonymizationPseudonymization] = [], conformsTo: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]] = [], contributingUnit: list[MergedOrganizationalUnitIdentifier] = [], contributor: list[MergedPersonIdentifier] = [], creator: list[MergedPersonIdentifier] = [], description: list[Text] = [], distribution: list[MergedDistributionIdentifier] = [], documentation: list[Link] = [], externalPartner: list[MergedOrganizationIdentifier] = [], hasLegalBasis: list[Text] = [], icd10code: list[str] = [], instrumentToolOrApparatus: list[Text] = [], isPartOf: list[MergedResourceIdentifier] = [], keyword: list[Text] = [], language: list[Language] = [], loincId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]] = [], meshId: list[~typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]] = [], method: list[Text] = [], methodDescription: list[Text] = [], populationCoverage: list[Text] = [], publication: list[MergedBibliographicResourceIdentifier] = [], publisher: list[MergedOrganizationIdentifier] = [], qualityInformation: list[Text] = [], resourceCreationMethod: list[ResourceCreationMethod] = [], resourceTypeGeneral: list[ResourceTypeGeneral] = [], resourceTypeSpecific: list[Text] = [], rights: list[Text] = [], spatial: list[Text] = [], stateOfDataProcessing: list[DataProcessingState] = [], entityType: Literal['SubtractiveResource'] = 'SubtractiveResource')¶
Bases:
_OptionalLists
,_SparseLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged resource items.
- accessPlatform: list[MergedAccessPlatformIdentifier]¶
- accessRestriction: list[AccessRestriction]¶
- anonymizationPseudonymization: list[AnonymizationPseudonymization]¶
- conformsTo: list[Annotated[str, Field(examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]]¶
- contact: list[Annotated[MergedOrganizationalUnitIdentifier | MergedPersonIdentifier | MergedContactPointIdentifier, AfterValidator(Identifier)]]¶
- contributingUnit: list[MergedOrganizationalUnitIdentifier]¶
- contributor: list[MergedPersonIdentifier]¶
- created: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]¶
- creator: list[MergedPersonIdentifier]¶
- distribution: list[MergedDistributionIdentifier]¶
- doi: list[DoiStr]¶
- entityType: Annotated[Literal['SubtractiveResource'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- externalPartner: list[MergedOrganizationIdentifier]¶
- hasPersonalData: list[PersonalData]¶
- icd10code: list[str]¶
- isPartOf: list[MergedResourceIdentifier]¶
- loincId: list[LoincIdStr]¶
- maxTypicalAge: list[Annotated[int, Field(examples=['99', '21'])]]¶
- meshId: list[Annotated[str, Field(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$', examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'})]]¶
- minTypicalAge: list[Annotated[int, Field(examples=['0', '18'])]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'accessPlatform': FieldInfo(annotation=list[MergedAccessPlatformIdentifier], required=False, default=[]), 'accessRestriction': FieldInfo(annotation=list[AccessRestriction], required=False, default=[]), 'accrualPeriodicity': FieldInfo(annotation=list[Frequency], required=False, default=[]), 'alternativeTitle': FieldInfo(annotation=list[Text], required=False, default=[]), 'anonymizationPseudonymization': FieldInfo(annotation=list[AnonymizationPseudonymization], required=False, default=[]), 'conformsTo': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['FHIR', 'LOINC', 'SNOMED', 'ICD-10'])]], required=False, default=[]), 'contact': FieldInfo(annotation=list[Annotated[Union[MergedOrganizationalUnitIdentifier, MergedPersonIdentifier, MergedContactPointIdentifier], AfterValidator]], required=False, default=[]), 'contributingUnit': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'contributor': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'created': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'creator': FieldInfo(annotation=list[MergedPersonIdentifier], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'distribution': FieldInfo(annotation=list[MergedDistributionIdentifier], required=False, default=[]), 'documentation': FieldInfo(annotation=list[Link], required=False, default=[]), 'doi': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://doi.org/10.1007/978-1-0716-2441-8_7', 'https://doi.org/10.2807/1560-7917.ES.2022.27.46.2200849', 'https://doi.org/10.3389/fmicb.2022.868887', 'http://dx.doi.org/10.25646/5147', 'https://doi.org/10.1016/j.vaccine.2022.11.065'], metadata=[_PydanticGeneralMetadata(pattern='^(((http)|(https))://(dx.)?doi.org/)(10.\\d{4,9}/[-._;()/:A-Z0-9]+)$')])]], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveResource'], required=False, default='SubtractiveResource', alias='$type', alias_priority=2, frozen=True), 'externalPartner': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'hasLegalBasis': FieldInfo(annotation=list[Text], required=False, default=[]), 'hasPersonalData': FieldInfo(annotation=list[PersonalData], required=False, default=[]), 'icd10code': FieldInfo(annotation=list[str], required=False, default=[]), 'instrumentToolOrApparatus': FieldInfo(annotation=list[Text], required=False, default=[]), 'isPartOf': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'keyword': FieldInfo(annotation=list[Text], required=False, default=[]), 'language': FieldInfo(annotation=list[Language], required=False, default=[]), 'license': FieldInfo(annotation=list[License], required=False, default=[]), 'loincId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['https://loinc.org/95209-3', 'https://loinc.org/LA26211-5'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^https://loinc.org/([a-zA-z]*)|(([0-9]*(-[0-9])*))$')])]], required=False, default=[]), 'maxTypicalAge': FieldInfo(annotation=list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['99', '21'])]], required=False, default=[]), 'meshId': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['http://id.nlm.nih.gov/mesh/D001604'], json_schema_extra={'format': 'uri'}, metadata=[_PydanticGeneralMetadata(pattern='^http://id\\.nlm\\.nih\\.gov/mesh/[A-Z0-9]{2,64}$')])]], required=False, default=[]), 'method': FieldInfo(annotation=list[Text], required=False, default=[]), 'methodDescription': FieldInfo(annotation=list[Text], required=False, default=[]), 'minTypicalAge': FieldInfo(annotation=list[Annotated[int, FieldInfo(annotation=NoneType, required=True, examples=['0', '18'])]], required=False, default=[]), 'modified': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year]], required=False, default=[]), 'populationCoverage': FieldInfo(annotation=list[Text], required=False, default=[]), 'publication': FieldInfo(annotation=list[MergedBibliographicResourceIdentifier], required=False, default=[]), 'publisher': FieldInfo(annotation=list[MergedOrganizationIdentifier], required=False, default=[]), 'qualityInformation': FieldInfo(annotation=list[Text], required=False, default=[]), 'resourceCreationMethod': FieldInfo(annotation=list[ResourceCreationMethod], required=False, default=[]), 'resourceTypeGeneral': FieldInfo(annotation=list[ResourceTypeGeneral], required=False, default=[]), 'resourceTypeSpecific': FieldInfo(annotation=list[Text], required=False, default=[]), 'rights': FieldInfo(annotation=list[Text], required=False, default=[]), 'sizeOfDataBasis': FieldInfo(annotation=list[str], required=False, default=[]), 'spatial': FieldInfo(annotation=list[Text], required=False, default=[]), 'stateOfDataProcessing': FieldInfo(annotation=list[DataProcessingState], required=False, default=[]), 'temporal': FieldInfo(annotation=list[Union[YearMonthDayTime, YearMonthDay, YearMonth, Year, Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]]], required=False, default=[]), 'theme': FieldInfo(annotation=list[Theme], required=False, default=[]), 'title': FieldInfo(annotation=list[Text], required=False, default=[]), 'unitInCharge': FieldInfo(annotation=list[MergedOrganizationalUnitIdentifier], required=False, default=[]), 'wasGeneratedBy': FieldInfo(annotation=list[MergedActivityIdentifier], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- modified: list[YearMonthDayTime | YearMonthDay | YearMonth | Year]¶
- publication: list[MergedBibliographicResourceIdentifier]¶
- publisher: list[MergedOrganizationIdentifier]¶
- resourceCreationMethod: list[ResourceCreationMethod]¶
- resourceTypeGeneral: list[ResourceTypeGeneral]¶
- sizeOfDataBasis: list[str]¶
- stateOfDataProcessing: list[DataProcessingState]¶
- temporal: list[YearMonthDayTime | YearMonthDay | YearMonth | Year | Annotated[str, Field(examples=['2022-01 bis 2022-03', 'Sommer 2023', 'nach 2013', '1998-2008'])]]¶
- unitInCharge: list[MergedOrganizationalUnitIdentifier]¶
- wasGeneratedBy: list[MergedActivityIdentifier]¶
- class mex.common.models.SubtractiveRule¶
Bases:
BaseEntity
Base rule to subtract values from merged items.
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.SubtractiveVariable(*, codingSystem: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]] = [], dataType: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]] = [], label: list[~mex.common.types.text.Annotated[~mex.common.types.text.Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]] = [], usedIn: list[MergedResourceIdentifier] = [], belongsTo: list[MergedVariableGroupIdentifier] = [], description: list[Text] = [], valueSet: list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]] = [], entityType: Literal['SubtractiveVariable'] = 'SubtractiveVariable')¶
Bases:
_OptionalLists
,_SparseLists
,_VariadicValues
,SubtractiveRule
Rule to subtract values from merged variable items.
- belongsTo: list[MergedVariableGroupIdentifier]¶
- codingSystem: list[CodingSystemStr]¶
- dataType: list[DataTypeStr]¶
- entityType: Annotated[Literal['SubtractiveVariable'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- label: list[Annotated[Text, Field(examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'belongsTo': FieldInfo(annotation=list[MergedVariableGroupIdentifier], required=False, default=[]), 'codingSystem': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['SF-36 Version 1'])]], required=False, default=[]), 'dataType': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['integer', 'string', 'image', 'int55', 'number'])]], required=False, default=[]), 'description': FieldInfo(annotation=list[Text], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveVariable'], required=False, default='SubtractiveVariable', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Annotated[Text, FieldInfo(annotation=NoneType, required=True, examples=[{'language': 'de', 'value': 'Mehrere Treppenabsätze steigen'}])]], required=False, default=[]), 'usedIn': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'valueSet': FieldInfo(annotation=list[Annotated[str, FieldInfo(annotation=NoneType, required=True, examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- usedIn: list[MergedResourceIdentifier]¶
- valueSet: list[Annotated[str, Field(examples=['Ja, stark eingeschränkt', 'Ja, etwas eingeschränkt', 'Nein, überhaupt nicht eingeschränkt'])]]¶
- class mex.common.models.SubtractiveVariableGroup(*, containedBy: list[MergedResourceIdentifier] = [], label: list[Text] = [], entityType: Literal['SubtractiveVariableGroup'] = 'SubtractiveVariableGroup')¶
Bases:
_SparseLists
,SubtractiveRule
Rule to subtract values from merged variable group items.
- containedBy: list[MergedResourceIdentifier]¶
- entityType: Annotated[Literal['SubtractiveVariableGroup'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'containedBy': FieldInfo(annotation=list[MergedResourceIdentifier], required=False, default=[]), 'entityType': FieldInfo(annotation=Literal['SubtractiveVariableGroup'], required=False, default='SubtractiveVariableGroup', alias='$type', alias_priority=2, frozen=True), 'label': FieldInfo(annotation=list[Text], required=False, default=[])}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- class mex.common.models.VariableGroupRuleSetRequest(*, additive: AdditiveVariableGroup, subtractive: SubtractiveVariableGroup, preventive: PreventiveVariableGroup, entityType: Literal['VariableGroupRuleSetRequest'] = 'VariableGroupRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a variable group item.
- additive: AdditiveVariableGroup¶
- entityType: Annotated[Literal['VariableGroupRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariableGroup, required=True), 'entityType': FieldInfo(annotation=Literal['VariableGroupRuleSetRequest'], required=False, default='VariableGroupRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariableGroup, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariableGroup, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveVariableGroup¶
- subtractive: SubtractiveVariableGroup¶
- class mex.common.models.VariableGroupRuleSetResponse(*, additive: AdditiveVariableGroup, subtractive: SubtractiveVariableGroup, preventive: PreventiveVariableGroup, entityType: Literal['VariableGroupRuleSetResponse'] = 'VariableGroupRuleSetResponse', stableTargetId: MergedVariableGroupIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a variable group item.
- additive: AdditiveVariableGroup¶
- entityType: Annotated[Literal['VariableGroupRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariableGroup, required=True), 'entityType': FieldInfo(annotation=Literal['VariableGroupRuleSetResponse'], required=False, default='VariableGroupRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariableGroup, required=True), 'stableTargetId': FieldInfo(annotation=MergedVariableGroupIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariableGroup, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveVariableGroup¶
- stableTargetId: MergedVariableGroupIdentifier¶
- subtractive: SubtractiveVariableGroup¶
- class mex.common.models.VariableRuleSetRequest(*, additive: AdditiveVariable, subtractive: SubtractiveVariable, preventive: PreventiveVariable, entityType: Literal['VariableRuleSetRequest'] = 'VariableRuleSetRequest')¶
Bases:
_BaseRuleSet
Set of rules to create or update a variable item.
- additive: AdditiveVariable¶
- entityType: Annotated[Literal['VariableRuleSetRequest'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariable, required=True), 'entityType': FieldInfo(annotation=Literal['VariableRuleSetRequest'], required=False, default='VariableRuleSetRequest', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariable, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariable, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveVariable¶
- subtractive: SubtractiveVariable¶
- class mex.common.models.VariableRuleSetResponse(*, additive: AdditiveVariable, subtractive: SubtractiveVariable, preventive: PreventiveVariable, entityType: Literal['VariableRuleSetResponse'] = 'VariableRuleSetResponse', stableTargetId: MergedVariableIdentifier)¶
Bases:
_BaseRuleSet
Set of rules to retrieve a variable item.
- additive: AdditiveVariable¶
- entityType: Annotated[Literal['VariableRuleSetResponse'], FieldInfo(annotation=NoneType, required=True, alias='$type', alias_priority=2, frozen=True)]¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'populate_by_name': True, 'str_max_length': 100000, 'str_min_length': 1, 'str_strip_whitespace': True, 'use_enum_values': True, 'validate_assignment': True, 'validate_default': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'additive': FieldInfo(annotation=AdditiveVariable, required=True), 'entityType': FieldInfo(annotation=Literal['VariableRuleSetResponse'], required=False, default='VariableRuleSetResponse', alias='$type', alias_priority=2, frozen=True), 'preventive': FieldInfo(annotation=PreventiveVariable, required=True), 'stableTargetId': FieldInfo(annotation=MergedVariableIdentifier, required=True), 'subtractive': FieldInfo(annotation=SubtractiveVariable, required=True)}¶
Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.
This replaces Model.__fields__ from Pydantic V1.
- preventive: PreventiveVariable¶
- stableTargetId: MergedVariableIdentifier¶
- subtractive: SubtractiveVariable¶
- mex.common.models.generate_entity_filter_schema(extracted_model: type[AnyExtractedModel]) type[BaseModel] ¶
Create a mapping schema for an entity filter for an extracted model class.
Example entity filter: If activity starts before 2016: do not extract.
- Parameters:
extracted_model – a pydantic model for an extracted model class
- Returns:
model of the mapping schema for an entity filter
- mex.common.models.generate_mapping_schema(extracted_model: type[AnyExtractedModel]) type[BaseModel] ¶
Create a mapping schema the MEx extracted model class.
Pydantic models are dynamically created for the given entity type from depending on the respective fields and their types.
- Parameters:
extracted_model – a pydantic model for an extracted model class
- Returns:
dynamic mapping model for the provided extracted model class