mex.editor.rules package

Submodules

mex.editor.rules.main module

mex.editor.rules.main.additive_rule_input(field_name: str, input_config: InputConfig, index: int, value: EditorValue) Component

Return an input mask for additive rules.

mex.editor.rules.main.badge_input(field_name: str, index: int, input_config: InputConfig, badge: str | None) Component

Render an input component for editing a badge attribute.

mex.editor.rules.main.editor_additive_value(field_name: str, primary_source: EditorPrimarySource, index: int, value: EditorValue) Component

Render an additive value with buttons for editing and removal.

mex.editor.rules.main.editor_edit_button(field_name: str, primary_source: EditorPrimarySource, value: EditorValue, index: int) Component

Return a button for toggling editing.

mex.editor.rules.main.editor_field(field: EditorField) Component

Return a horizontal grid of cards for editing one field.

mex.editor.rules.main.editor_primary_source(field_name: str, primary_source: EditorPrimarySource) Component

Return a horizontal grid of cards for editing one primary source.

mex.editor.rules.main.editor_primary_source_stack(field_name: str, primary_source: EditorPrimarySource) Component

Render a stack of editor value cards and input elements for a primary source.

mex.editor.rules.main.editor_static_value(field_name: str, primary_source: EditorPrimarySource, index: int, value: EditorValue) Component

Render a static value with an optional subtractive rule switch.

mex.editor.rules.main.editor_value_card(field_name: str, primary_source: EditorPrimarySource, index: int, value: EditorValue) Component

Return a card containing a single editor value.

mex.editor.rules.main.editor_value_switch(field_name: str, primary_source: EditorPrimarySource, value: EditorValue, index: int) Component

Return a switch for toggling subtractive rules.

mex.editor.rules.main.field_name(field: EditorField) Component

Return a card with a field name.

mex.editor.rules.main.href_input(field_name: str, index: int, href: str | None) Component

Render an input component for editing a href attribute.

mex.editor.rules.main.new_additive_button(field_name: str, primary_source_identifier: str) Component

Render a button for adding new additive rules to a given field.

mex.editor.rules.main.primary_source_name(field_name: str, primary_source: EditorPrimarySource) Component

Return the name of a primary source as a card with a preventive rule toggle.

mex.editor.rules.main.primary_source_switch(field_name: str, primary_source: EditorPrimarySource) Component

Return a switch for toggling preventive rules.

mex.editor.rules.main.remove_additive_button(field_name: str, index: int) Component

Render a button to remove an additive value.

mex.editor.rules.main.rule_page_header(title: Component) Component

Wrap the given title in a header component with a save button.

mex.editor.rules.main.submit_button() Component

Render a submit button to save the rule set.

mex.editor.rules.main.text_input(field_name: str, index: int, text: str | None) Component

Render an input component for editing a text attribute.

mex.editor.rules.main.validation_errors() Component

Return an overlay showing validation errors.

mex.editor.rules.main.validation_message(error: ValidationMessage) Component

Render a single validation error message.

mex.editor.rules.models module

class mex.editor.rules.models.EditorField(*, name: str, primary_sources: list[EditorPrimarySource] = [], **extra_data: Any)

Bases: Base

Model for describing the editor state for a single field.

name: str
primary_sources: list[EditorPrimarySource]
class mex.editor.rules.models.EditorPrimarySource(*, name: EditorValue, identifier: MergedPrimarySourceIdentifier, input_config: InputConfig, editor_values: list[EditorValue] = [], enabled: bool = True, **extra_data: Any)

Bases: Base

Model for describing the editor state for one primary source.

editor_values: list[EditorValue]
enabled: bool
identifier: MergedPrimarySourceIdentifier
input_config: InputConfig
name: EditorValue
class mex.editor.rules.models.InputConfig(*, badge_default: str | None = None, badge_options: list[str] = [], badge_titles: list[str] = [], editable_href: bool = False, editable_badge: bool = False, editable_identifier: bool = False, editable_text: bool = False, allow_additive: bool = False, **extra_data: Any)

Bases: Base

Model for configuring input masks.

allow_additive: bool
badge_default: str | None
badge_options: list[str]
badge_titles: list[str]
editable_badge: bool
editable_href: bool
editable_identifier: bool
editable_text: bool
class mex.editor.rules.models.ValidationMessage(*, field_name: str, message: str, input: str, **extra_data: Any)

Bases: Base

Model for describing validation errors.

field_name: str
input: str
message: str

mex.editor.rules.state module

class mex.editor.rules.state.RuleState(parent_state: BaseState | None = None, init_substates: bool = True, _reflex_internal_init: bool = False, *, substates: Dict[str, BaseState] = {}, dirty_vars: Set[str] = {}, dirty_substates: Set[str] = {}, router_data: Dict[str, Any] = {}, router: RouterData = RouterData(session=SessionData(client_token='', client_ip='', session_id=''), headers=HeaderData(host='', origin='', upgrade='', connection='', cookie='', pragma='', cache_control='', user_agent='', sec_websocket_version='', sec_websocket_key='', sec_websocket_extensions='', accept_encoding='', accept_language=''), page=PageData(host='', path='', raw_path='', full_path='', full_raw_path='', params={})), is_hydrated: bool = False, user_mex: User | None = None, user_ldap: User | None = None, target_path_after_login: str | None = None, nav_items: list[NavItem] = [NavItem(title='Search', path='/', raw_path='/?page=1', underline='none'), NavItem(title='Create', path='/create', raw_path='/create/', underline='none'), NavItem(title='Edit', path='/item/[identifier]', raw_path='/item/00000000000000/', underline='none'), NavItem(title='Ingest', path='/ingest', raw_path='/ingest/', underline='none')], item_id: str | None = None, fields: list[EditorField] = [], stem_type: str | None = None, validation_messages: list[ValidationMessage] = [], **kwargs)

Bases: State

Base state for the edit and create components.

_get_editable_primary_source_by_field_name(field_name: str) EditorPrimarySource

Get the (first) primary source that allows an editable rule.

_get_extracted_items() list[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup]

Get the list of extracted items the rules should apply to.

_get_primary_sources_by_field_name(field_name: str) list[EditorPrimarySource]

Get all primary sources for the given field name.

_get_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

Get or create a rule set request or response.

_send_rule_set_request(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

Send the rule set to the backend.

add_additive_value = EventHandler(event_actions={}, fn=<function RuleState.add_additive_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
backend_vars: ClassVar[Dict[str, Any]] = {}
base_vars: ClassVar[Dict[str, Var]] = {'fields': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.fields', _var_type=list[mex.editor.rules.models.EditorField], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.fields', _var_type=list[mex.editor.rules.models.EditorField], _var_data=VarData(state='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', field_name='fields', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state = useContext(StateContexts.reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state)',), deps=(), position=None))), 'item_id': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.item_id', _var_type=typing.Optional[str], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.item_id', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', field_name='item_id', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state = useContext(StateContexts.reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state)',), deps=(), position=None))), 'stem_type': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.stem_type', _var_type=typing.Optional[str], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.stem_type', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', field_name='stem_type', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state = useContext(StateContexts.reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state)',), deps=(), position=None))), 'validation_messages': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.validation_messages', _var_type=list[mex.editor.rules.models.ValidationMessage], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.validation_messages', _var_type=list[mex.editor.rules.models.ValidationMessage], _var_data=VarData(state='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', field_name='validation_messages', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state = useContext(StateContexts.reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state)',), deps=(), position=None)))}
class_subclasses: ClassVar[Set[Type[BaseState]]] = {<class 'mex.editor.create.state.CreateState'>, <class 'mex.editor.edit.state.EditState'>}
clear_validation_messages = EventHandler(event_actions={}, fn=<function RuleState.clear_validation_messages>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
computed_vars: ClassVar[Dict[str, ComputedVar]] = {}
event_handlers: ClassVar[Dict[str, EventHandler]] = {'add_additive_value': EventHandler(event_actions={}, fn=<function RuleState.add_additive_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'clear_validation_messages': EventHandler(event_actions={}, fn=<function RuleState.clear_validation_messages>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'refresh': EventHandler(event_actions={}, fn=<function RuleState.refresh>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'remove_additive_value': EventHandler(event_actions={}, fn=<function RuleState.remove_additive_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'resolve_identifiers': EventHandler(event_actions={}, fn=<function RuleState.resolve_identifiers>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'set_badge_value': EventHandler(event_actions={}, fn=<function RuleState.set_badge_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'set_fields': EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state.set_fields>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'set_href_value': EventHandler(event_actions={}, fn=<function RuleState.set_href_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'set_identifier_value': EventHandler(event_actions={}, fn=<function RuleState.set_identifier_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'set_item_id': EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state.set_item_id>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'set_stem_type': EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state.set_stem_type>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'set_text_value': EventHandler(event_actions={}, fn=<function RuleState.set_text_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'set_validation_messages': EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state.set_validation_messages>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'setvar': EventHandlerSetVar(event_actions={}, fn=<function EventHandlerSetVar.setvar>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', state_cls=<class 'mex.editor.rules.state.RuleState'>), 'show_submit_success_toast': EventHandler(event_actions={}, fn=<function RuleState.show_submit_success_toast>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'submit_rule_set': EventHandler(event_actions={}, fn=<function RuleState.submit_rule_set>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'toggle_field_value': EventHandler(event_actions={}, fn=<function RuleState.toggle_field_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'toggle_field_value_editing': EventHandler(event_actions={}, fn=<function RuleState.toggle_field_value_editing>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state'), 'toggle_primary_source': EventHandler(event_actions={}, fn=<function RuleState.toggle_primary_source>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')}
fields: list[EditorField]

Base class of converting a var to another var type.

inherited_backend_vars: ClassVar[Dict[str, Any]] = {}
inherited_vars: ClassVar[Dict[str, Var]] = {'backend_version': FakeComputedVarBaseClass(_js_expr='backend_version', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None), _cache=True, _backend=False, _initial_value=Unset, _static_deps=set(), _auto_deps=True, _update_interval=None, _fget=<function State.backend_version>), 'editor_version': FakeComputedVarBaseClass(_js_expr='editor_version', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None), _cache=True, _backend=False, _initial_value=Unset, _static_deps=set(), _auto_deps=True, _update_interval=None, _fget=<function State.editor_version>), 'identifier': FakeComputedVarBaseClass(_js_expr='identifier', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state', field_name='', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None), _cache=True, _backend=False, _initial_value=Unset, _static_deps={'router'}, _auto_deps=False, _update_interval=None, _fget=<function BaseState.setup_dynamic_args.<locals>.argsingle_factory.<locals>.inner_func>), 'is_hydrated': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state.is_hydrated', _var_type=<class 'bool'>, _var_data=None, _original=Var(_js_expr='reflex___state____state.is_hydrated', _var_type=<class 'bool'>, _var_data=VarData(state='reflex___state____state', field_name='is_hydrated', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None))), 'nav_items': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state.nav_items', _var_type=list[mex.editor.models.NavItem], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state.nav_items', _var_type=list[mex.editor.models.NavItem], _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='nav_items', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None))), 'router': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state.router', _var_type=<class 'reflex.istate.data.RouterData'>, _var_data=None, _original=Var(_js_expr='reflex___state____state.router', _var_type=<class 'reflex.istate.data.RouterData'>, _var_data=VarData(state='reflex___state____state', field_name='router', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None))), 'target_path_after_login': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state.target_path_after_login', _var_type=typing.Optional[str], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state.target_path_after_login', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='target_path_after_login', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None))), 'user_ldap': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state.user_ldap', _var_type=typing.Optional[mex.editor.models.User], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state.user_ldap', _var_type=<class 'mex.editor.models.User'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='user_ldap', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None))), 'user_mex': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state.user_mex', _var_type=typing.Optional[mex.editor.models.User], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state.user_mex', _var_type=<class 'mex.editor.models.User'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='user_mex', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None)))}
item_id: str | None

Base class of converting a var to another var type.

refresh = EventHandler(event_actions={}, fn=<function RuleState.refresh>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
remove_additive_value = EventHandler(event_actions={}, fn=<function RuleState.remove_additive_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
resolve_identifiers = EventHandler(event_actions={}, fn=<function RuleState.resolve_identifiers>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
set_badge_value = EventHandler(event_actions={}, fn=<function RuleState.set_badge_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
set_fields = EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state.set_fields>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
set_href_value = EventHandler(event_actions={}, fn=<function RuleState.set_href_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
set_identifier_value = EventHandler(event_actions={}, fn=<function RuleState.set_identifier_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
set_item_id = EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state.set_item_id>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
set_stem_type = EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state.set_stem_type>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
set_text_value = EventHandler(event_actions={}, fn=<function RuleState.set_text_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
set_validation_messages = EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state.set_validation_messages>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
setvar: ClassVar[EventHandler] = EventHandlerSetVar(event_actions={}, fn=<function EventHandlerSetVar.setvar>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', state_cls=<class 'mex.editor.rules.state.RuleState'>)
show_submit_success_toast = EventHandler(event_actions={}, fn=<function RuleState.show_submit_success_toast>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
stem_type: str | None

Base class of converting a var to another var type.

submit_rule_set = EventHandler(event_actions={}, fn=<function RuleState.submit_rule_set>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
toggle_field_value = EventHandler(event_actions={}, fn=<function RuleState.toggle_field_value>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
toggle_field_value_editing = EventHandler(event_actions={}, fn=<function RuleState.toggle_field_value_editing>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
toggle_primary_source = EventHandler(event_actions={}, fn=<function RuleState.toggle_primary_source>, state_full_name='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state')
validation_messages: list[ValidationMessage]

Base class of converting a var to another var type.

vars: ClassVar[Dict[str, Var]] = {'backend_version': FakeComputedVarBaseClass(_js_expr='backend_version', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None), _cache=True, _backend=False, _initial_value=Unset, _static_deps=set(), _auto_deps=True, _update_interval=None, _fget=<function State.backend_version>), 'editor_version': FakeComputedVarBaseClass(_js_expr='editor_version', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None), _cache=True, _backend=False, _initial_value=Unset, _static_deps=set(), _auto_deps=True, _update_interval=None, _fget=<function State.editor_version>), 'fields': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.fields', _var_type=list[mex.editor.rules.models.EditorField], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.fields', _var_type=list[mex.editor.rules.models.EditorField], _var_data=VarData(state='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', field_name='fields', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state = useContext(StateContexts.reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state)',), deps=(), position=None))), 'identifier': FakeComputedVarBaseClass(_js_expr='identifier', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state', field_name='', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None), _cache=True, _backend=False, _initial_value=Unset, _static_deps={'router'}, _auto_deps=False, _update_interval=None, _fget=<function BaseState.setup_dynamic_args.<locals>.argsingle_factory.<locals>.inner_func>), 'is_hydrated': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state.is_hydrated', _var_type=<class 'bool'>, _var_data=None, _original=Var(_js_expr='reflex___state____state.is_hydrated', _var_type=<class 'bool'>, _var_data=VarData(state='reflex___state____state', field_name='is_hydrated', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None))), 'item_id': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.item_id', _var_type=typing.Optional[str], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.item_id', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', field_name='item_id', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state = useContext(StateContexts.reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state)',), deps=(), position=None))), 'nav_items': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state.nav_items', _var_type=list[mex.editor.models.NavItem], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state.nav_items', _var_type=list[mex.editor.models.NavItem], _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='nav_items', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None))), 'router': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state.router', _var_type=<class 'reflex.istate.data.RouterData'>, _var_data=None, _original=Var(_js_expr='reflex___state____state.router', _var_type=<class 'reflex.istate.data.RouterData'>, _var_data=VarData(state='reflex___state____state', field_name='router', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None))), 'stem_type': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.stem_type', _var_type=typing.Optional[str], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.stem_type', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', field_name='stem_type', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state = useContext(StateContexts.reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state)',), deps=(), position=None))), 'target_path_after_login': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state.target_path_after_login', _var_type=typing.Optional[str], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state.target_path_after_login', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='target_path_after_login', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None))), 'user_ldap': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state.user_ldap', _var_type=typing.Optional[mex.editor.models.User], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state.user_ldap', _var_type=<class 'mex.editor.models.User'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='user_ldap', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None))), 'user_mex': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state.user_mex', _var_type=typing.Optional[mex.editor.models.User], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state.user_mex', _var_type=<class 'mex.editor.models.User'>, _var_data=VarData(state='reflex___state____state.mex___editor___state____state', field_name='user_mex', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state = useContext(StateContexts.reflex___state____state__mex___editor___state____state)',), deps=(), position=None))), 'validation_messages': Var.__init_subclass__.<locals>.ToVarOperation(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.validation_messages', _var_type=list[mex.editor.rules.models.ValidationMessage], _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state.validation_messages', _var_type=list[mex.editor.rules.models.ValidationMessage], _var_data=VarData(state='reflex___state____state.mex___editor___state____state.mex___editor___rules___state____rule_state', field_name='validation_messages', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, transpile=False),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, transpile=False),))), hooks=('const reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state = useContext(StateContexts.reflex___state____state__mex___editor___state____state__mex___editor___rules___state____rule_state)',), deps=(), position=None)))}

mex.editor.rules.transform module

mex.editor.rules.transform._create_editor_primary_source(primary_source_name: EditorValue, primary_source_id: MergedPrimarySourceIdentifier, editor_values: list[EditorValue], field_name: str, preventive: PreventiveAccessPlatform | PreventiveActivity | PreventiveBibliographicResource | PreventiveConsent | PreventiveContactPoint | PreventiveDistribution | PreventiveOrganization | PreventiveOrganizationalUnit | PreventivePerson | PreventivePrimarySource | PreventiveResource | PreventiveVariable | PreventiveVariableGroup, input_config: InputConfig) EditorPrimarySource

Create a new primary source from the given parameters.

mex.editor.rules.transform._get_primary_source_id_from_model(model: ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup | MergedAccessPlatform | MergedActivity | MergedBibliographicResource | MergedConsent | MergedContactPoint | MergedDistribution | MergedOrganization | MergedOrganizationalUnit | MergedPerson | MergedPrimarySource | MergedResource | MergedVariable | MergedVariableGroup | 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) MergedPrimarySourceIdentifier

Given any model type, try to derive a sensible primary source identifier.

mex.editor.rules.transform._transform_editor_value_to_model_value(value: EditorValue, field_name: str, class_name: str, input_config: InputConfig) Link | Text | str | int | float | None | bool | Year | YearMonth | YearMonthDay | YearMonthDayTime | AccessRestriction | ActivityType | AnonymizationPseudonymization | APIType | BibliographicResourceType | ConsentStatus | ConsentType | DataProcessingState | Frequency | Language | License | MIMEType | PersonalData | ResourceCreationMethod | ResourceTypeGeneral | TechnicalAccessibility | Theme

Transform an editor value back to a value to be used in mex.common.models.

mex.editor.rules.transform._transform_fields_to_additive(fields: list[EditorField], stem_type: str) dict[str, list[Link | Text | str | int | float | None | bool | Year | YearMonth | YearMonthDay | YearMonthDayTime | AccessRestriction | ActivityType | AnonymizationPseudonymization | APIType | BibliographicResourceType | ConsentStatus | ConsentType | DataProcessingState | Frequency | Language | License | MIMEType | PersonalData | ResourceCreationMethod | ResourceTypeGeneral | TechnicalAccessibility | Theme]]

Transform a list of editor fields back to a raw additive rule.

mex.editor.rules.transform._transform_fields_to_preventive(fields: list[EditorField], stem_type: str) dict[str, list[MergedPrimarySourceIdentifier]]

Transform a list of editor fields back to a raw preventive rule.

mex.editor.rules.transform._transform_fields_to_subtractive(fields: list[EditorField], stem_type: str) dict[str, list[str]]

Transform a list of editor fields back to a raw subtractive rule.

mex.editor.rules.transform._transform_model_to_editor_primary_sources(fields_by_name: dict[str, EditorField], model: ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup | AdditiveAccessPlatform | AdditiveActivity | AdditiveBibliographicResource | AdditiveConsent | AdditiveContactPoint | AdditiveDistribution | AdditiveOrganization | AdditiveOrganizationalUnit | AdditivePerson | AdditivePrimarySource | AdditiveResource | AdditiveVariable | AdditiveVariableGroup, subtractive: SubtractiveAccessPlatform | SubtractiveActivity | SubtractiveBibliographicResource | SubtractiveConsent | SubtractiveContactPoint | SubtractiveDistribution | SubtractiveOrganization | SubtractiveOrganizationalUnit | SubtractivePerson | SubtractivePrimarySource | SubtractiveResource | SubtractiveVariable | SubtractiveVariableGroup, preventive: PreventiveAccessPlatform | PreventiveActivity | PreventiveBibliographicResource | PreventiveConsent | PreventiveContactPoint | PreventiveDistribution | PreventiveOrganization | PreventiveOrganizationalUnit | PreventivePerson | PreventivePrimarySource | PreventiveResource | PreventiveVariable | PreventiveVariableGroup) None

With a model and rules, attach an editor primary source to the field.

mex.editor.rules.transform._transform_model_to_input_config(field_name: str, entity_type: str, editable: bool) InputConfig

Determine the input type for a given field of a given model.

mex.editor.rules.transform._transform_model_values_to_editor_values(model: ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup | MergedAccessPlatform | MergedActivity | MergedBibliographicResource | MergedConsent | MergedContactPoint | MergedDistribution | MergedOrganization | MergedOrganizationalUnit | MergedPerson | MergedPrimarySource | MergedResource | MergedVariable | MergedVariableGroup | AdditiveAccessPlatform | AdditiveActivity | AdditiveBibliographicResource | AdditiveConsent | AdditiveContactPoint | AdditiveDistribution | AdditiveOrganization | AdditiveOrganizationalUnit | AdditivePerson | AdditivePrimarySource | AdditiveResource | AdditiveVariable | AdditiveVariableGroup, field_name: str, subtractive: SubtractiveAccessPlatform | SubtractiveActivity | SubtractiveBibliographicResource | SubtractiveConsent | SubtractiveContactPoint | SubtractiveDistribution | SubtractiveOrganization | SubtractiveOrganizationalUnit | SubtractivePerson | SubtractivePrimarySource | SubtractiveResource | SubtractiveVariable | SubtractiveVariableGroup) list[EditorValue]

Given a model, a field and a subtractive rule, create editor values.

mex.editor.rules.transform.transform_fields_to_rule_set(stem_type: str, fields: list[EditorField]) AccessPlatformRuleSetRequest | ActivityRuleSetRequest | BibliographicResourceRuleSetRequest | ConsentRuleSetRequest | ContactPointRuleSetRequest | DistributionRuleSetRequest | OrganizationRuleSetRequest | OrganizationalUnitRuleSetRequest | PersonRuleSetRequest | PrimarySourceRuleSetRequest | ResourceRuleSetRequest | VariableRuleSetRequest | VariableGroupRuleSetRequest

Transform the given fields to a rule set of the given stem type.

Parameters:
  • stem_type – The stemType the resulting rule set should have

  • fields – A list of editor fields to convert into rules

Returns:

Any rule set request model

mex.editor.rules.transform.transform_fields_to_title(stem_type: str, fields: list[EditorField]) list[EditorValue]

Convert a list of editor fields into title values based on the title config.

mex.editor.rules.transform.transform_models_to_fields(extracted_items: list[ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup], additive: AdditiveAccessPlatform | AdditiveActivity | AdditiveBibliographicResource | AdditiveConsent | AdditiveContactPoint | AdditiveDistribution | AdditiveOrganization | AdditiveOrganizationalUnit | AdditivePerson | AdditivePrimarySource | AdditiveResource | AdditiveVariable | AdditiveVariableGroup, subtractive: SubtractiveAccessPlatform | SubtractiveActivity | SubtractiveBibliographicResource | SubtractiveConsent | SubtractiveContactPoint | SubtractiveDistribution | SubtractiveOrganization | SubtractiveOrganizationalUnit | SubtractivePerson | SubtractivePrimarySource | SubtractiveResource | SubtractiveVariable | SubtractiveVariableGroup, preventive: PreventiveAccessPlatform | PreventiveActivity | PreventiveBibliographicResource | PreventiveConsent | PreventiveContactPoint | PreventiveDistribution | PreventiveOrganization | PreventiveOrganizationalUnit | PreventivePerson | PreventivePrimarySource | PreventiveResource | PreventiveVariable | PreventiveVariableGroup) list[EditorField]

Convert the given models and rules into editor field models.

Parameters:
  • extracted_items – A list of extracted models

  • additive – An additive rule model

  • subtractive – A subtractive rule model

  • preventive – A preventive rule model

Returns:

A list of editor field instances

mex.editor.rules.transform.transform_validation_error_to_messages(error: ValidationError) list[ValidationMessage]

Transform a pydantic validation error into validation messages.

Module contents