mex.common.merged package¶
Submodules¶
mex.common.merged.main module¶
- mex.common.merged.main._apply_lenient_fallback(extracted_sources_and_values: Iterable[tuple[MergedPrimarySourceIdentifier, str | int | float | None | bool]], additive_rule_sources_and_values: Iterable[tuple[MergedPrimarySourceIdentifier, str | int | float | None | bool]], subtracted_values: list[str | int | float | None | bool]) list[str | int | float | None | bool]¶
Apply lenient fallback by returning first available value from any source.
- Parameters:
extracted_sources_and_values – (source, value) tuples from extracted items
additive_rule_sources_and_values – (source, value) tuples from additive rules
subtracted_values – Values that were subtracted/removed
- Returns:
List containing the first available value, or empty list if none found
- mex.common.merged.main._collect_additive_values(field: str, rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse) list[tuple[MergedPrimarySourceIdentifier, str | int | float | None | bool]]¶
Collect values from additive rules for a specific field.
- Parameters:
field – Name of the field to extract values from
rule_set – Rule set containing additive rules
- Returns:
List of (source, value) tuples from the additive rules
- mex.common.merged.main._collect_extracted_values(field: str, extracted_items: Iterable[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup]) list[tuple[MergedPrimarySourceIdentifier, str | int | float | None | bool]]¶
Collect values from extracted items for a specific field.
- Parameters:
field – Name of the field to extract values from
extracted_items – Iterable of extracted model instances
- Returns:
List of (source, value) tuples from the extracted items
- mex.common.merged.main._collect_preventive_sources(field: str, rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse) list[MergedPrimarySourceIdentifier]¶
Collect sources from preventive rules for a specific field.
- Parameters:
field – Name of the field to extract sources from
rule_set – Rule set containing preventive rules
- Returns:
List of sources that should be prevented/blocked
- mex.common.merged.main._collect_subtractive_values(field: str, rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse) list[str | int | float | None | bool]¶
Collect values from subtractive rules for a specific field.
- Parameters:
field – Name of the field to extract values from
rule_set – Rule set containing subtractive rules
- Returns:
List of values that should be subtracted/removed
- mex.common.merged.main._create_merged_dict(mergeable_fields: Iterable[str], extracted_items: Iterable[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup], rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse, validation: Literal[Validation.STRICT, Validation.LENIENT, Validation.IGNORE]) dict[str, list[str | int | float | None | bool] | str | int | float | None | bool]¶
Create a merged dictionary by processing all mergeable fields.
- Parameters:
mergeable_fields – Names of fields that should be processed for merging
extracted_items – Iterable of extracted model instances
rule_set – Rule set containing additive, subtractive, and preventive rules
validation – Validation mode (STRICT, LENIENT, or IGNORE)
- Returns:
Dictionary mapping field names to lists of merged values
- mex.common.merged.main._ensure_rule_set(rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse | None, stem_type: str) AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse¶
Ensure a rule set instance exists, creating a default one if needed.
- Parameters:
rule_set – Existing rule set instance, or None to create a default
stem_type – Entity stem type (e.g., “Person”, “ContactPoint”) for creation
- Returns:
A rule set instance (either the provided one or a newly created default)
- Raises:
KeyError – If stem_type does not correspond to a valid rule set class
- mex.common.merged.main._ensure_same_entity_type(keeper: AdditiveAccessPlatform | AdditiveActivity | AdditiveBibliographicResource | AdditiveConsent | AdditiveContactPoint | AdditiveDistribution | AdditiveOrganization | AdditiveOrganizationalUnit | AdditivePerson | AdditivePrimarySource | AdditiveResource | AdditiveVariable | AdditiveVariableGroup | SubtractiveAccessPlatform | SubtractiveActivity | SubtractiveBibliographicResource | SubtractiveConsent | SubtractiveContactPoint | SubtractiveDistribution | SubtractiveOrganization | SubtractiveOrganizationalUnit | SubtractivePerson | SubtractivePrimarySource | SubtractiveResource | SubtractiveVariable | SubtractiveVariableGroup | PreventiveAccessPlatform | PreventiveActivity | PreventiveBibliographicResource | PreventiveConsent | PreventiveContactPoint | PreventiveDistribution | PreventiveOrganization | PreventiveOrganizationalUnit | PreventivePerson | PreventivePrimarySource | PreventiveResource | PreventiveVariable | PreventiveVariableGroup | WorkflowAccessPlatform | WorkflowActivity | WorkflowBibliographicResource | WorkflowConsent | WorkflowContactPoint | WorkflowDistribution | WorkflowOrganization | WorkflowOrganizationalUnit | WorkflowPerson | WorkflowPrimarySource | WorkflowResource | WorkflowVariable | WorkflowVariableGroup | AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse, goner: AdditiveAccessPlatform | AdditiveActivity | AdditiveBibliographicResource | AdditiveConsent | AdditiveContactPoint | AdditiveDistribution | AdditiveOrganization | AdditiveOrganizationalUnit | AdditivePerson | AdditivePrimarySource | AdditiveResource | AdditiveVariable | AdditiveVariableGroup | SubtractiveAccessPlatform | SubtractiveActivity | SubtractiveBibliographicResource | SubtractiveConsent | SubtractiveContactPoint | SubtractiveDistribution | SubtractiveOrganization | SubtractiveOrganizationalUnit | SubtractivePerson | SubtractivePrimarySource | SubtractiveResource | SubtractiveVariable | SubtractiveVariableGroup | PreventiveAccessPlatform | PreventiveActivity | PreventiveBibliographicResource | PreventiveConsent | PreventiveContactPoint | PreventiveDistribution | PreventiveOrganization | PreventiveOrganizationalUnit | PreventivePerson | PreventivePrimarySource | PreventiveResource | PreventiveVariable | PreventiveVariableGroup | WorkflowAccessPlatform | WorkflowActivity | WorkflowBibliographicResource | WorkflowConsent | WorkflowContactPoint | WorkflowDistribution | WorkflowOrganization | WorkflowOrganizationalUnit | WorkflowPerson | WorkflowPrimarySource | WorkflowResource | WorkflowVariable | WorkflowVariableGroup | AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse) None¶
Ensure two items to be merged share the same entity type.
- Parameters:
keeper – Item that survives the merge
goner – Item that is merged into keeper
- Raises:
MergingError – When keeper and goner are not of the same type
- mex.common.merged.main._filter_usable_values(possible_sources_and_values: Iterable[tuple[MergedPrimarySourceIdentifier, str | int | float | None | bool]], prevented_sources: list[MergedPrimarySourceIdentifier], subtracted_values: list[str | int | float | None | bool]) list[str | int | float | None | bool]¶
Filter values by removing prevented sources and subtracted values.
- Parameters:
possible_sources_and_values – Iterable of (source, value) tuples to filter
prevented_sources – List of sources that should be excluded
subtracted_values – List of values that should be excluded
- Returns:
List of unique, filtered values
- mex.common.merged.main._get_merged_class(extracted_items: list[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup], rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse | None, validation: Literal[Validation.STRICT, Validation.LENIENT, Validation.IGNORE]) type[MergedAccessPlatform | MergedActivity | MergedBibliographicResource | MergedConsent | MergedContactPoint | MergedDistribution | MergedOrganization | MergedOrganizationalUnit | MergedPerson | MergedPrimarySource | MergedResource | MergedVariable | MergedVariableGroup | PreviewAccessPlatform | PreviewActivity | PreviewBibliographicResource | PreviewConsent | PreviewContactPoint | PreviewDistribution | PreviewOrganization | PreviewOrganizationalUnit | PreviewPerson | PreviewPrimarySource | PreviewResource | PreviewVariable | PreviewVariableGroup] | None¶
Determine the appropriate merged model class based on validation mode.
- Parameters:
extracted_items – List of extracted model instances
rule_set – Rule set containing entity type information, or None
validation – Validation mode determining whether to use Preview or Merged models
- Returns:
The appropriate model class (Preview* for LENIENT, Merged* for STRICT/IGNORE), or None if neither extracted_items nor rule_set was given.
- mex.common.merged.main._pick_usable_values(field: str, extracted_items: Iterable[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup], rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse, validation: Literal[Validation.STRICT, Validation.LENIENT, Validation.IGNORE]) list[str | int | float | None | bool]¶
Pick usable values for a field from given extracted items and rules.
- Parameters:
field – Name of the field to process
extracted_items – Iterable of extracted model instances
rule_set – Rule set containing additive, subtractive, and preventive rules
validation – Validation mode (STRICT, LENIENT, or IGNORE)
- Returns:
List of usable values after applying all rules and validation logic
- mex.common.merged.main.create_merged_item(identifier: Identifier, extracted_items: Iterable[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup], rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse | None, validation: Literal[Validation.LENIENT]) PreviewAccessPlatform | PreviewActivity | PreviewBibliographicResource | PreviewConsent | PreviewContactPoint | PreviewDistribution | PreviewOrganization | PreviewOrganizationalUnit | PreviewPerson | PreviewPrimarySource | PreviewResource | PreviewVariable | PreviewVariableGroup¶
- mex.common.merged.main.create_merged_item(identifier: Identifier, extracted_items: Iterable[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup], rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse | None, validation: Literal[Validation.STRICT]) MergedAccessPlatform | MergedActivity | MergedBibliographicResource | MergedConsent | MergedContactPoint | MergedDistribution | MergedOrganization | MergedOrganizationalUnit | MergedPerson | MergedPrimarySource | MergedResource | MergedVariable | MergedVariableGroup
- mex.common.merged.main.create_merged_item(identifier: Identifier, extracted_items: Iterable[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup], rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse | None, validation: Literal[Validation.IGNORE]) MergedAccessPlatform | MergedActivity | MergedBibliographicResource | MergedConsent | MergedContactPoint | MergedDistribution | MergedOrganization | MergedOrganizationalUnit | MergedPerson | MergedPrimarySource | MergedResource | MergedVariable | MergedVariableGroup | None
Merge a list of extracted items with a set of rules.
- Parameters:
identifier – Identifier the finished merged item should have
extracted_items – List of extracted items, can be empty
rule_set – Rule set, with potentially empty rules
validation –
Controls how strictly the merged item needs to validate: - STRICT: Validates all required fields and list lengths. Returns a
fully validated merged item or raises MergingError on validation failure
- LENIENT: Skips validation checks and returns a “preview” merged item
that may be missing required fields and even may be using blocked values
IGNORE: In case of validation errors, this mode will safely return None
- Raises:
MergingError – When the given items cannot be merged (in STRICT mode)
MergingError – When neither extracted nor rule items are given (in STRICT mode)
- Returns:
Instance of a merged or preview item
- mex.common.merged.main.is_item_publishable(rule_set: AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest | AccessPlatformRuleSetResponse | ActivityRuleSetResponse | BibliographicResourceRuleSetResponse | ConsentRuleSetResponse | ContactPointRuleSetResponse | DistributionRuleSetResponse | OrganizationRuleSetResponse | OrganizationalUnitRuleSetResponse | PersonRuleSetResponse | PrimarySourceRuleSetResponse | ResourceRuleSetResponse | VariableRuleSetResponse | VariableGroupRuleSetResponse | None, publishing_target: PublishingTarget) bool¶
Check if item is publishable.
E.g. - return False if publishing target is in ForbiddenPublishingTarget in Workflow rule
- mex.common.merged.main.merge_rule_set_responses(keeper: RuleSetResponseT, goner: RuleSetResponseT, valid_primary_sources: list[MergedPrimarySourceIdentifier]) RuleSetResponseT¶
Merge two rule set responses of the same type into a new response.
Each of the contained rules (additive, subtractive, preventive and workflow) is merged with merge_rules, combining the values of keeper and goner while removing duplicates. The stableTargetId of keeper is kept for the result, while the stableTargetId of goner is discarded.
- Parameters:
keeper – Rule set response that survives the merge; its values come first and its stableTargetId is carried over to the result
goner – Rule set response of the same type that is merged into keeper; its values are appended and its stableTargetId is ignored
valid_primary_sources – Primary source identifiers whose preventive entries from goner may be kept
- Raises:
MergingError – When keeper and goner are not of the same type
- Returns:
A new rule set response of the same type with the merged rules and the stableTargetId of keeper
- mex.common.merged.main.merge_rules(keeper: RuleT, goner: RuleT, valid_primary_sources: list[MergedPrimarySourceIdentifier]) RuleT¶
Merge two rules of the same type into a new rule.
Works for any rule type (additive, subtractive, preventive or workflow). For each mergeable field, the resulting rule contains the concatenation of keeper and goner values with duplicates removed while preserving order.
For preventive rules, the primary source identifiers contributed by goner are only kept when they are part of valid_primary_sources; keeper values are always kept. For other rule types valid_primary_sources has no effect.
- Parameters:
keeper – Rule that survives the merge; its values come first
goner – Rule of the same type that is merged into keeper; its values are appended
valid_primary_sources – Primary source identifiers whose preventive entries from goner may be kept
- Raises:
MergingError – When keeper and goner are not of the same type
- Returns:
A new rule instance of the same type with the merged field values