mex.editor package¶
Subpackages¶
- mex.editor.api package
- mex.editor.consent package
- Submodules
- mex.editor.consent.main module
- mex.editor.consent.state module
ConsentState
ConsentState.backend_vars
ConsentState.base_vars
ConsentState.class_subclasses
ConsentState.computed_vars
ConsentState.display_name
ConsentState.event_handlers
ConsentState.inherited_backend_vars
ConsentState.inherited_vars
ConsentState.load_user
ConsentState.set_display_name
ConsentState.setvar
ConsentState.vars
- Module contents
- mex.editor.create package
- Submodules
- mex.editor.create.main module
- mex.editor.create.state module
CreateState
CreateState.available_stem_types
CreateState.backend_vars
CreateState.base_vars
CreateState.class_subclasses
CreateState.computed_vars
CreateState.event_handlers
CreateState.inherited_backend_vars
CreateState.inherited_vars
CreateState.reset_stem_type
CreateState.set_available_stem_types
CreateState.setvar
CreateState.vars
- Module contents
- mex.editor.edit package
- Submodules
- mex.editor.edit.main module
- mex.editor.edit.state module
EditState
EditState.backend_vars
EditState.base_vars
EditState.class_subclasses
EditState.computed_vars
EditState.event_handlers
EditState.inherited_backend_vars
EditState.inherited_vars
EditState.item_title
EditState.load_item_title
EditState.set_item_title
EditState.setvar
EditState.show_submit_success_toast_on_redirect
EditState.vars
- Module contents
- mex.editor.ingest package
- Submodules
- mex.editor.ingest.main module
- mex.editor.ingest.models module
- mex.editor.ingest.state module
IngestState
IngestState.aux_providers
IngestState.backend_vars
IngestState.base_vars
IngestState.class_subclasses
IngestState.computed_vars
IngestState.current_aux_provider
IngestState.current_page
IngestState.current_results_length
IngestState.disable_next_page
IngestState.disable_previous_page
IngestState.event_handlers
IngestState.go_to_first_page
IngestState.go_to_next_page
IngestState.go_to_previous_page
IngestState.handle_submit
IngestState.ingest_result
IngestState.inherited_backend_vars
IngestState.inherited_vars
IngestState.is_loading
IngestState.limit
IngestState.query_string
IngestState.refresh
IngestState.resolve_identifiers
IngestState.results_extracted
IngestState.results_transformed
IngestState.scroll_to_top
IngestState.set_aux_providers
IngestState.set_current_aux_provider
IngestState.set_current_page
IngestState.set_is_loading
IngestState.set_limit
IngestState.set_page
IngestState.set_query_string
IngestState.set_results_extracted
IngestState.set_results_transformed
IngestState.set_total
IngestState.setvar
IngestState.toggle_show_properties
IngestState.total
IngestState.total_pages
IngestState.vars
- mex.editor.ingest.transform module
- Module contents
- mex.editor.login package
- Submodules
- mex.editor.login.main module
- mex.editor.login.state module
LoginLdapState
LoginLdapState.backend_vars
LoginLdapState.base_vars
LoginLdapState.class_subclasses
LoginLdapState.computed_vars
LoginLdapState.event_handlers
LoginLdapState.inherited_backend_vars
LoginLdapState.inherited_vars
LoginLdapState.login
LoginLdapState.password
LoginLdapState.set_password
LoginLdapState.set_username
LoginLdapState.setvar
LoginLdapState.username
LoginLdapState.vars
LoginMExState
LoginMExState.backend_vars
LoginMExState.base_vars
LoginMExState.class_subclasses
LoginMExState.computed_vars
LoginMExState.event_handlers
LoginMExState.inherited_backend_vars
LoginMExState.inherited_vars
LoginMExState.login
LoginMExState.password
LoginMExState.set_password
LoginMExState.set_username
LoginMExState.setvar
LoginMExState.username
LoginMExState.vars
- Module contents
- mex.editor.merge package
- Submodules
- mex.editor.merge.main module
- mex.editor.merge.state module
MergeState
MergeState._refresh_extracted()
MergeState._refresh_merged()
MergeState.backend_vars
MergeState.base_vars
MergeState.class_subclasses
MergeState.clear_input
MergeState.computed_vars
MergeState.entity_types_extracted
MergeState.entity_types_merged
MergeState.event_handlers
MergeState.handle_submit
MergeState.inherited_backend_vars
MergeState.inherited_vars
MergeState.is_loading
MergeState.limit
MergeState.query_strings
MergeState.refresh
MergeState.results_count
MergeState.results_extracted
MergeState.results_merged
MergeState.select_item
MergeState.selected_items
MergeState.set_entity_type_extracted
MergeState.set_entity_type_merged
MergeState.set_entity_types_extracted
MergeState.set_entity_types_merged
MergeState.set_is_loading
MergeState.set_limit
MergeState.set_query_strings
MergeState.set_results_count
MergeState.set_results_extracted
MergeState.set_results_merged
MergeState.set_selected_items
MergeState.set_total_count
MergeState.setvar
MergeState.submit_merge_items
MergeState.total_count
MergeState.vars
- Module contents
- mex.editor.rules package
- Submodules
- mex.editor.rules.main module
additive_rule_input()
badge_input()
editor_additive_value()
editor_edit_button()
editor_field()
editor_primary_source()
editor_primary_source_stack()
editor_static_value()
editor_value_card()
editor_value_switch()
field_name()
href_input()
new_additive_button()
primary_source_name()
primary_source_switch()
remove_additive_button()
rule_page_header()
submit_button()
text_input()
validation_errors()
validation_message()
- mex.editor.rules.models module
- mex.editor.rules.state module
RuleState
RuleState._get_editable_primary_source_by_field_name()
RuleState._get_extracted_items()
RuleState._get_primary_sources_by_field_name()
RuleState._get_rule_set()
RuleState._send_rule_set_request()
RuleState.add_additive_value
RuleState.backend_vars
RuleState.base_vars
RuleState.class_subclasses
RuleState.clear_validation_messages
RuleState.computed_vars
RuleState.event_handlers
RuleState.fields
RuleState.inherited_backend_vars
RuleState.inherited_vars
RuleState.item_id
RuleState.refresh
RuleState.remove_additive_value
RuleState.resolve_identifiers
RuleState.set_badge_value
RuleState.set_fields
RuleState.set_href_value
RuleState.set_identifier_value
RuleState.set_item_id
RuleState.set_stem_type
RuleState.set_text_value
RuleState.set_validation_messages
RuleState.setvar
RuleState.show_submit_success_toast
RuleState.stem_type
RuleState.submit_rule_set
RuleState.toggle_field_value
RuleState.toggle_field_value_editing
RuleState.toggle_primary_source
RuleState.validation_messages
RuleState.vars
- mex.editor.rules.transform module
_create_editor_primary_source()
_get_primary_source_id_from_model()
_transform_editor_value_to_model_value()
_transform_fields_to_additive()
_transform_fields_to_preventive()
_transform_fields_to_subtractive()
_transform_model_to_editor_primary_sources()
_transform_model_to_input_config()
_transform_model_values_to_editor_values()
get_required_mergeable_field_names()
transform_fields_to_rule_set()
transform_fields_to_title()
transform_models_to_fields()
transform_validation_error_to_messages()
- Module contents
- mex.editor.search package
- Submodules
- mex.editor.search.main module
- mex.editor.search.models module
- mex.editor.search.state module
SearchState
SearchState.backend_vars
SearchState.base_vars
SearchState.class_subclasses
SearchState.computed_vars
SearchState.current_page
SearchState.current_results_length
SearchState.disable_next_page
SearchState.disable_previous_page
SearchState.entity_types
SearchState.event_handlers
SearchState.get_available_primary_sources
SearchState.go_to_first_page
SearchState.go_to_next_page
SearchState.go_to_previous_page
SearchState.had_primary_sources
SearchState.handle_submit
SearchState.inherited_backend_vars
SearchState.inherited_vars
SearchState.is_loading
SearchState.limit
SearchState.load_search_params
SearchState.push_search_params
SearchState.query_string
SearchState.refresh
SearchState.resolve_identifiers
SearchState.results
SearchState.scroll_to_top
SearchState.set_current_page
SearchState.set_entity_type
SearchState.set_entity_types
SearchState.set_had_primary_source
SearchState.set_had_primary_sources
SearchState.set_is_loading
SearchState.set_limit
SearchState.set_page
SearchState.set_query_string
SearchState.set_results
SearchState.set_total
SearchState.setvar
SearchState.total
SearchState.total_pages
SearchState.vars
- mex.editor.search.transform module
- Module contents
Submodules¶
mex.editor.components module¶
- mex.editor.components.render_badge(text: str | None) Component ¶
Render a generic badge with the given text.
- mex.editor.components.render_external_link(value: EditorValue) Component ¶
Render an editor value as a clickable external link that opens in a new tab.
- mex.editor.components.render_identifier(value: EditorValue) Component ¶
Render an editor value as a clickable internal link that loads the edit page.
- mex.editor.components.render_link(value: EditorValue) Component ¶
Render an editor value as an internal or external link.
- mex.editor.components.render_span(text: str | None) Component ¶
Render a generic span with the given text.
- mex.editor.components.render_text(value: EditorValue) Component ¶
Render an editor value as a text span.
- mex.editor.components.render_value(value: EditorValue) Component ¶
Render a single editor value.
mex.editor.exceptions module¶
- mex.editor.exceptions.escalate_error(namespace: str, summary: str, payload: object) Generator[EventSpec, None, None] ¶
Escalate an error by spreading it to the python and browser logs and the UI.
mex.editor.fields module¶
mex.editor.layout module¶
- mex.editor.layout.app_logo() Component ¶
Return the app logo with icon and label.
Return a navigation bar component.
Return a link component for the given navigation item.
- mex.editor.layout.page(*children: Component) Component ¶
Return a page fragment with navigation bar and given children.
- mex.editor.layout.user_button() Component ¶
Return a user button with an icon that indicates their access rights.
Return a user menu with a trigger, the user’s name and a logout button.
mex.editor.logging module¶
mex.editor.main module¶
- mex.editor.main.editor_api() None ¶
Start the editor api.
- mex.editor.main.editor_frontend() None ¶
Start the editor frontend.
- mex.editor.main.main() None ¶
Start the editor api together with frontend.
mex.editor.models module¶
- class mex.editor.models.EditorValue(*, text: str | None = None, identifier: str | None = None, badge: str | None = None, href: str | None = None, external: bool = False, enabled: bool = True, being_edited: bool = False, **extra_data: Any)¶
Bases:
Base
Model for describing atomic values in the editor.
- badge: str | None¶
- being_edited: bool¶
- enabled: bool¶
- external: bool¶
- href: str | None¶
- identifier: str | None¶
- text: str | None¶
- class mex.editor.models.ModelConfig(*, title: str, preview: list[str] = [], icon: str)¶
Bases:
BaseModel
Configuration for how to display an entity type in the frontend.
- icon: str¶
- 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]] = {'icon': FieldInfo(annotation=str, required=True), 'preview': FieldInfo(annotation=list[str], required=False, default=[]), 'title': FieldInfo(annotation=str, 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.
- preview: list[str]¶
- title: str¶
Bases:
Base
Model for one navigation bar item.
mex.editor.security module¶
- mex.editor.security.has_read_access_mex(username: str, password: str) bool ¶
Verify if provided credentials have read access.
- mex.editor.security.has_write_access_ldap(username: str, password: str) bool ¶
Verify if provided credentials have ldap write access.
- mex.editor.security.has_write_access_mex(username: str, password: str) bool ¶
Verify if provided credentials have write access.
mex.editor.settings module¶
- class mex.editor.settings.EditorSettings(_env_file: Path | str | Sequence[Path | str] | None = PosixPath('.'), _env_file_encoding: str | None = None, _env_nested_delimiter: str | None = None, _secrets_dir: str | Path | None = None, *, pdb: bool = False, MEX_SINK: list[Sink] = [Sink.NDJSON], MEX_ASSETS_DIR: Path = PosixPath('/home/runner/work/mex-editor/mex-editor/assets'), MEX_WORK_DIR: Path = PosixPath('/home/runner/work/mex-editor/mex-editor'), MEX_IDENTITY_PROVIDER: IdentityProvider = IdentityProvider.MEMORY, MEX_BACKEND_API_URL: Url = Url('http://localhost:8080/'), MEX_BACKEND_API_KEY: SecretStr = SecretStr('**********'), MEX_BACKEND_API_PARALLELIZATION: int = 1, MEX_BACKEND_API_CHUNK_SIZE: int = 25, MEX_VERIFY_SESSION: bool | AssetsPath = True, MEX_ORGANIGRAM_PATH: AssetsPath = AssetsPath('raw-data/organigram/organizational_units.json'), MEX_PRIMARY_SOURCES_PATH: AssetsPath = AssetsPath('raw-data/primary-sources/primary-sources.json'), MEX_LDAP_URL: SecretStr = SecretStr('**********'), MEX_LDAP_SEARCH_BASE: str = 'DC=rki,DC=local', MEX_WIKI_API_URL: Url = Url('http://wikidata/'), MEX_WEB_USER_AGENT: str = 'rki/mex', MEX_ORCID_API_URL: Url = Url('https://orcid/'), MEX_EDITOR_API_HOST: Annotated[str, MinLen(min_length=1), MaxLen(max_length=250)] = 'localhost', MEX_EDITOR_API_PORT: Annotated[int, Gt(gt=0), Lt(lt=65536)] = 8031, MEX_EDITOR_FRONTEND_PORT: Annotated[int, Gt(gt=0), Lt(lt=65536)] = 8030, MEX_EDITOR_API_ROOT_PATH: str = '', MEX_BACKEND_API_USER_DATABASE: EditorUserDatabase = EditorUserDatabase(read={}, write={}))¶
Bases:
BaseSettings
Settings definition for the editor service.
- editor_api_host: str¶
- editor_api_port: int¶
- editor_api_root_path: str¶
- editor_frontend_port: int¶
- editor_user_database: EditorUserDatabase¶
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}¶
A dictionary of computed field names and their corresponding ComputedFieldInfo objects.
- model_config: ClassVar[SettingsConfigDict] = {'arbitrary_types_allowed': True, 'case_sensitive': False, 'cli_avoid_json': False, 'cli_enforce_required': False, 'cli_exit_on_error': True, 'cli_flag_prefix_char': '-', 'cli_hide_none_type': False, 'cli_ignore_unknown_args': False, 'cli_implicit_flags': False, 'cli_kebab_case': False, 'cli_parse_args': None, 'cli_parse_none_str': None, 'cli_prefix': '', 'cli_prog_name': None, 'cli_use_class_docs_for_groups': False, 'enable_decoding': True, 'env_file': '.env', 'env_file_encoding': 'utf-8', 'env_ignore_empty': False, 'env_nested_delimiter': '__', 'env_parse_enums': None, 'env_parse_none_str': None, 'env_prefix': 'mex_', 'extra': 'ignore', 'json_file': None, 'json_file_encoding': None, 'nested_model_default_partial_update': False, 'populate_by_name': True, 'protected_namespaces': ('model_validate', 'model_dump', 'settings_customise_sources'), 'secrets_dir': None, 'toml_file': None, 'validate_assignment': True, 'validate_default': True, 'yaml_file': None, 'yaml_file_encoding': None}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_fields: ClassVar[Dict[str, FieldInfo]] = {'assets_dir': FieldInfo(annotation=Path, required=False, default=PosixPath('/home/runner/work/mex-editor/mex-editor/assets'), alias_priority=2, validation_alias='MEX_ASSETS_DIR', description='Path to directory that contains input files treated as read-only, looks for a folder named `assets` in the current directory by default.'), 'backend_api_chunk_size': FieldInfo(annotation=int, required=False, default=25, alias_priority=2, validation_alias='MEX_BACKEND_API_CHUNK_SIZE', description='How many items to load into the backend in one chunk.'), 'backend_api_key': FieldInfo(annotation=SecretStr, required=False, default=SecretStr('**********'), alias_priority=2, validation_alias='MEX_BACKEND_API_KEY', description='Backend API key with write access to call POST/PUT endpoints'), 'backend_api_parallelization': FieldInfo(annotation=int, required=False, default=1, alias_priority=2, validation_alias='MEX_BACKEND_API_PARALLELIZATION', description='How many simultaneous threads may spin up to load data into the backend.'), 'backend_api_url': FieldInfo(annotation=Url, required=False, default=Url('http://localhost:8080/'), alias_priority=2, validation_alias='MEX_BACKEND_API_URL', description='MEx backend API url.'), 'debug': FieldInfo(annotation=bool, required=False, default=False, alias='pdb', alias_priority=2, validation_alias='MEX_DEBUG', description='Jump into post-mortem debugging after any uncaught exception.'), 'editor_api_host': FieldInfo(annotation=str, required=False, default='localhost', alias_priority=2, validation_alias='MEX_EDITOR_API_HOST', description='Host that the editor api will run on.', metadata=[MinLen(min_length=1), MaxLen(max_length=250)]), 'editor_api_port': FieldInfo(annotation=int, required=False, default=8031, alias_priority=2, validation_alias='MEX_EDITOR_API_PORT', description='Port that the editor api should listen on.', metadata=[Gt(gt=0), Lt(lt=65536)]), 'editor_api_root_path': FieldInfo(annotation=str, required=False, default='', alias_priority=2, validation_alias='MEX_EDITOR_API_ROOT_PATH', description='Root path that the editor server should run under.'), 'editor_frontend_port': FieldInfo(annotation=int, required=False, default=8030, alias_priority=2, validation_alias='MEX_EDITOR_FRONTEND_PORT', description='Port that the editor frontend should serve on.', metadata=[Gt(gt=0), Lt(lt=65536)]), 'editor_user_database': FieldInfo(annotation=EditorUserDatabase, required=False, default=EditorUserDatabase(read={}, write={}), alias_priority=2, validation_alias='MEX_BACKEND_API_USER_DATABASE', description='Database of users.'), 'identity_provider': FieldInfo(annotation=IdentityProvider, required=False, default=<IdentityProvider.MEMORY: 'memory'>, alias_priority=2, validation_alias='MEX_IDENTITY_PROVIDER', description='Provider to assign identifiers to new model instances.'), 'ldap_search_base': FieldInfo(annotation=str, required=False, default='DC=rki,DC=local', alias_priority=2, validation_alias='MEX_LDAP_SEARCH_BASE', description='Search base for the ldap connector.'), 'ldap_url': FieldInfo(annotation=SecretStr, required=False, default=SecretStr('**********'), alias_priority=2, validation_alias='MEX_LDAP_URL', description='LDAP server for person queries with authentication credentials. Must follow format `ldap://user:pw@host:port`, where `user` is the username, and `pw` is the password for authenticating against ldap, `host` is the url of the ldap server, and `port` is the port of the ldap server.'), 'mex_web_user_agent': FieldInfo(annotation=str, required=False, default='rki/mex', alias_priority=2, validation_alias='MEX_WEB_USER_AGENT', description='User agent is sent in request headers to external services.'), 'orcid_api_url': FieldInfo(annotation=Url, required=False, default=Url('https://orcid/'), alias_priority=2, validation_alias='MEX_ORCID_API_URL', description='URL of orcid api.'), 'organigram_path': FieldInfo(annotation=AssetsPath, required=False, default=AssetsPath("raw-data/organigram/organizational_units.json"), alias_priority=2, validation_alias='MEX_ORGANIGRAM_PATH', description='Path to the JSON file describing the organizational units, absolute path or relative to `assets_dir`.'), 'primary_sources_path': FieldInfo(annotation=AssetsPath, required=False, default=AssetsPath("raw-data/primary-sources/primary-sources.json"), alias_priority=2, validation_alias='MEX_PRIMARY_SOURCES_PATH', description='Path to the JSON file describing the primary sources, absolute path or relative to `assets_dir`.'), 'sink': FieldInfo(annotation=list[Sink], required=False, default=[<Sink.NDJSON: 'ndjson'>], alias_priority=2, validation_alias='MEX_SINK', description='Where to send data that is extracted or ingested. Defaults to writing ndjson files, but can be configured to push to the backend or the graph.'), 'verify_session': FieldInfo(annotation=Union[bool, AssetsPath], required=False, default=True, alias_priority=2, validation_alias='MEX_VERIFY_SESSION', description="Either a boolean that controls whether we verify the server's TLS certificate, or a path to a CA bundle to use. If a path is given, it can be either absolute or relative to the `assets_dir`. Defaults to True."), 'wiki_api_url': FieldInfo(annotation=Url, required=False, default=Url('http://wikidata/'), alias_priority=2, validation_alias='MEX_WIKI_API_URL', description='URL of the Wikidata API used to resolve an ID to an organization.'), 'work_dir': FieldInfo(annotation=Path, required=False, default=PosixPath('/home/runner/work/mex-editor/mex-editor'), alias_priority=2, validation_alias='MEX_WORK_DIR', description='Path to directory that stores generated and temporary files. Defaults to the current working directory.')}¶
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.editor.state module¶
- class mex.editor.state.State(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='Merge', path='/merge', raw_path='/merge/', underline='none'), NavItem(title='Ingest', path='/ingest', raw_path='/ingest/', underline='none')], **kwargs)¶
Bases:
State
The base state for the app.
- static _update_raw_path(nav_item: NavItem, **params: int | str | list[str]) None ¶
Update the raw path of a nav item with the given parameters.
- backend_vars: ClassVar[Dict[str, Any]] = {}¶
- backend_version¶
Base class of converting a var to another var type.
- base_vars: ClassVar[Dict[str, Var]] = {'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))), '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)))}¶
- check_ldap_login = EventHandler(event_actions={}, fn=<function State.check_ldap_login>, state_full_name='reflex___state____state.mex___editor___state____state')¶
- check_mex_login = EventHandler(event_actions={}, fn=<function State.check_mex_login>, state_full_name='reflex___state____state.mex___editor___state____state')¶
- class_subclasses: ClassVar[Set[Type[BaseState]]] = {<class 'mex.editor.consent.state.ConsentState'>, <class 'mex.editor.ingest.state.IngestState'>, <class 'mex.editor.login.state.LoginLdapState'>, <class 'mex.editor.login.state.LoginMExState'>, <class 'mex.editor.merge.state.MergeState'>, <class 'mex.editor.rules.state.RuleState'>, <class 'mex.editor.search.state.SearchState'>}¶
- computed_vars: ClassVar[Dict[str, ComputedVar]] = {'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>)}¶
- editor_version¶
Base class of converting a var to another var type.
- event_handlers: ClassVar[Dict[str, EventHandler]] = {'check_ldap_login': EventHandler(event_actions={}, fn=<function State.check_ldap_login>, state_full_name='reflex___state____state.mex___editor___state____state'), 'check_mex_login': EventHandler(event_actions={}, fn=<function State.check_mex_login>, state_full_name='reflex___state____state.mex___editor___state____state'), 'load_nav': EventHandler(event_actions={}, fn=<function State.load_nav>, state_full_name='reflex___state____state.mex___editor___state____state'), 'logout': EventHandler(event_actions={}, fn=<function State.logout>, state_full_name='reflex___state____state.mex___editor___state____state'), 'push_url_params': EventHandler(event_actions={}, fn=<function State.push_url_params>, state_full_name='reflex___state____state.mex___editor___state____state'), 'set_nav_items': EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.set_nav_items>, state_full_name='reflex___state____state.mex___editor___state____state'), 'set_target_path_after_login': EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.set_target_path_after_login>, state_full_name='reflex___state____state.mex___editor___state____state'), 'set_user_ldap': EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.set_user_ldap>, state_full_name='reflex___state____state.mex___editor___state____state'), 'set_user_mex': EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.set_user_mex>, state_full_name='reflex___state____state.mex___editor___state____state'), 'setvar': EventHandlerSetVar(event_actions={}, fn=<function EventHandlerSetVar.setvar>, state_full_name='reflex___state____state.mex___editor___state____state', state_cls=<class 'mex.editor.state.State'>)}¶
- inherited_backend_vars: ClassVar[Dict[str, Any]] = {}¶
- inherited_vars: ClassVar[Dict[str, Var]] = {'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))), '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)))}¶
- logout = EventHandler(event_actions={}, fn=<function State.logout>, state_full_name='reflex___state____state.mex___editor___state____state')¶
Base class of converting a var to another var type.
- push_url_params = EventHandler(event_actions={}, fn=<function State.push_url_params>, state_full_name='reflex___state____state.mex___editor___state____state')¶
- set_target_path_after_login = EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.set_target_path_after_login>, state_full_name='reflex___state____state.mex___editor___state____state')¶
- set_user_ldap = EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.set_user_ldap>, state_full_name='reflex___state____state.mex___editor___state____state')¶
- set_user_mex = EventHandler(event_actions={}, fn=<function reflex___state____state.mex___editor___state____state.set_user_mex>, state_full_name='reflex___state____state.mex___editor___state____state')¶
- setvar: ClassVar[EventHandler] = EventHandlerSetVar(event_actions={}, fn=<function EventHandlerSetVar.setvar>, state_full_name='reflex___state____state.mex___editor___state____state', state_cls=<class 'mex.editor.state.State'>)¶
- target_path_after_login: str | None¶
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>), '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)))}¶
mex.editor.transform module¶
- mex.editor.transform.ensure_list(values: object) list[object] ¶
Wrap single objects in lists, replace None with [] and return lists untouched.
- mex.editor.transform.transform_models_to_preview(models: Sequence[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 | ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup | PreviewAccessPlatform | PreviewActivity | PreviewBibliographicResource | PreviewConsent | PreviewContactPoint | PreviewDistribution | PreviewOrganization | PreviewOrganizationalUnit | PreviewPerson | PreviewPrimarySource | PreviewResource | PreviewVariable | PreviewVariableGroup | MergedAccessPlatform | MergedActivity | MergedBibliographicResource | MergedConsent | MergedContactPoint | MergedDistribution | MergedOrganization | MergedOrganizationalUnit | MergedPerson | MergedPrimarySource | MergedResource | MergedVariable | MergedVariableGroup]) list[EditorValue] ¶
Converts a list of models into editor values based on the preview config.
- mex.editor.transform.transform_models_to_stem_type(models: Sequence[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 | ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup | PreviewAccessPlatform | PreviewActivity | PreviewBibliographicResource | PreviewConsent | PreviewContactPoint | PreviewDistribution | PreviewOrganization | PreviewOrganizationalUnit | PreviewPerson | PreviewPrimarySource | PreviewResource | PreviewVariable | PreviewVariableGroup | MergedAccessPlatform | MergedActivity | MergedBibliographicResource | MergedConsent | MergedContactPoint | MergedDistribution | MergedOrganization | MergedOrganizationalUnit | MergedPerson | MergedPrimarySource | MergedResource | MergedVariable | MergedVariableGroup]) str | None ¶
Get the stem type from a list of models.
- mex.editor.transform.transform_models_to_title(models: Sequence[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 | ExtractedAccessPlatform | ExtractedActivity | ExtractedBibliographicResource | ExtractedConsent | ExtractedContactPoint | ExtractedDistribution | ExtractedOrganization | ExtractedOrganizationalUnit | ExtractedPerson | ExtractedPrimarySource | ExtractedResource | ExtractedVariable | ExtractedVariableGroup | PreviewAccessPlatform | PreviewActivity | PreviewBibliographicResource | PreviewConsent | PreviewContactPoint | PreviewDistribution | PreviewOrganization | PreviewOrganizationalUnit | PreviewPerson | PreviewPrimarySource | PreviewResource | PreviewVariable | PreviewVariableGroup | MergedAccessPlatform | MergedActivity | MergedBibliographicResource | MergedConsent | MergedContactPoint | MergedDistribution | MergedOrganization | MergedOrganizationalUnit | MergedPerson | MergedPrimarySource | MergedResource | MergedVariable | MergedVariableGroup]) list[EditorValue] ¶
Convert a list of models into editor values based on the title config.
- mex.editor.transform.transform_value(value: object, allow_link: bool = True) EditorValue ¶
Transform a single object into an editor value ready for rendering.
- mex.editor.transform.transform_values(values: object, allow_link: bool = True) list[EditorValue] ¶
Convert a single object or a list of objects into a list of editor values.
mex.editor.types module¶
- class mex.editor.types.EditorUserDatabase(*, read: dict[str, EditorUserPassword] = {}, write: dict[str, EditorUserPassword] = {})¶
Bases:
BaseModel
Database containing usernames and passwords for the editor users.
- 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]] = {'read': FieldInfo(annotation=dict[str, EditorUserPassword], required=False, default={}), 'write': FieldInfo(annotation=dict[str, EditorUserPassword], 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.
- read: dict[str, EditorUserPassword]¶
- write: dict[str, EditorUserPassword]¶
- class mex.editor.types.EditorUserPassword(secret_value: SecretType)¶
Bases:
SecretStr
An editor password used for basic authentication along with a username.
mex.editor.utils module¶
- async mex.editor.utils.resolve_editor_value(editor_value: EditorValue) None ¶
Resolve editor text values to human readable display values.
- mex.editor.utils.resolve_identifier(identifier: str) str ¶
Resolve identifiers to human readable display values.