mex.drop package¶
Subpackages¶
- mex.drop.api package
- mex.drop.browse package
- Submodules
- mex.drop.browse.main module
- mex.drop.browse.models module
- mex.drop.browse.state module
BrowseStateBrowseState.backend_varsBrowseState.base_varsBrowseState.class_subclassesBrowseState.computed_varsBrowseState.event_handlersBrowseState.file_listBrowseState.inherited_backend_varsBrowseState.inherited_varsBrowseState.label_file_table_created_columnBrowseState.label_file_table_modified_columnBrowseState.label_file_table_name_columnBrowseState.refreshBrowseState.set_file_listBrowseState.setvarBrowseState.vars
- Module contents
- mex.drop.login package
- Submodules
- mex.drop.login.main module
- mex.drop.login.state module
LoginStateLoginState.api_keyLoginState.backend_varsLoginState.base_varsLoginState.class_subclassesLoginState.computed_varsLoginState.event_handlersLoginState.inherited_backend_varsLoginState.inherited_varsLoginState.label_api_keyLoginState.label_button_loginLoginState.label_invalid_credentialsLoginState.label_missing_api_keyLoginState.label_unknown_api_keyLoginState.label_x_systemLoginState.loginLoginState.set_api_keyLoginState.set_x_systemLoginState.setvarLoginState.varsLoginState.x_system
- Module contents
- mex.drop.sinks package
- mex.drop.upload package
- Submodules
- mex.drop.upload.main module
- mex.drop.upload.models module
- mex.drop.upload.state module
UploadStateUploadState.backend_varsUploadState.base_varsUploadState.cancel_uploadUploadState.class_subclassesUploadState.computed_varsUploadState.event_handlersUploadState.handle_uploadUploadState.inherited_backend_varsUploadState.inherited_varsUploadState.label_drag_and_drop_hintUploadState.label_drag_and_drop_select_buttonUploadState.label_drag_and_drop_supported_formats_formatUploadState.label_drag_and_drop_titleUploadState.label_file_table_action_columnUploadState.label_file_table_remove_buttonUploadState.label_file_table_selected_file_columnUploadState.label_submit_buttonUploadState.set_temp_filesUploadState.setvarUploadState.submit_dataUploadState.temp_filesUploadState.vars
- Module contents
Submodules¶
mex.drop.exceptions module¶
- mex.drop.exceptions.custom_backend_handler(exception: Exception) EventSpec¶
Custom backend exception handler.
Reflex calls this without a state, so there is no session locale to translate with. Errors that a user can actually act on are caught and translated in the state event that raises them, leaving only unexpected errors for this fallback.
mex.drop.files_io module¶
- mex.drop.files_io.check_duplicate_filenames(files: list[UploadFile]) None¶
Check for duplicate filenames.
- async mex.drop.files_io.validate_file_extension(content_type: str | None, filename: str) None¶
Validate uploaded file content type and extension.
- async mex.drop.files_io.write_to_file(content: bytes, out_file: Path) None¶
Write content to file. Parse content according to file type.
mex.drop.label_var module¶
- mex.drop.label_var.label_var(fget: None = None, label_id: str = '', initial_value: Any | Unset = types.Unset(), cache: bool = True, deps: list[str | Var[str]] | None = None, interval: timedelta | int | None = None, backend: bool | None = None, **kwargs: Any) Callable[[Callable[[StateT], ReturnT]], ComputedVar[str]]¶
- mex.drop.label_var.label_var(fget: Callable[[StateT], ReturnT], label_id: str, initial_value: ReturnT | types.Unset = types.Unset(), cache: bool = True, deps: list[str | Var[str]] | None = None, interval: timedelta | int | None = None, backend: bool | None = None, **kwargs: Any) ComputedVar[str]
A decorator to translate the given label_id base on the current locale.
- Parameters:
fget – The getter function.
label_id – The msgid to search for in the currents locale .po file
initial_value – The initial value of the computed var.
cache – Whether to cache the computed value.
deps – Explicit var dependencies to track.
interval – Interval at which the computed var should be updated.
backend – Whether the computed var is a backend var.
**kwargs – additional attributes to set on the instance
- Returns:
A ComputedVar instance containing the translated label_id.
- Raises:
ValueError – If caching is disabled and an update interval is set.
VarDependencyError – If user supplies dependencies without caching.
ComputedVarSignatureError – If the getter function has more than one argument.
mex.drop.layout module¶
- mex.drop.layout.app_logo() Component¶
Return the app logo with the MEx wordmark and the app name.
- mex.drop.layout.language_switcher() Component¶
Return a language switcher with one button segment per available locale.
- mex.drop.layout.language_switcher_segment(locale: MExLocale) Component¶
Return one segment of the language switcher for the given locale.
- mex.drop.layout.logout_button() Component¶
Return a logout button with a trailing arrow icon.
- mex.drop.layout.mex_wordmark() Component¶
Return the MEx wordmark as an inline svg, tinted with the text color.
The path is filled with currentColor, so the same component works on the light login card and on the solid accent nav bar.
Return a navigation bar component.
Return a link component for the given navigation item.
- mex.drop.layout.page(*children: Component) Component¶
Return a page fragment with navigation bar and given children.
Return a flat user menu with the current X-System and a logout button.
mex.drop.locale_service module¶
- class mex.drop.locale_service.LocaleService¶
Bases:
objectA service singleton to control the current locale used by the app.
- __init__() None¶
Initialize with all available locales in _drop_locale_path.
- classmethod get() Self¶
Get singleton instance of the LocaleService.
- Returns:
The LocaleService singleton.
- get_ui_label(locale_id: str, msg_id: str) str¶
Get the text for a given locale_id and the msg_id.
- Parameters:
locale_id – The locale to use.
msg_id – The message id of the message to get the text for.
- Returns:
The message of the msg_id for the given locale_id.
- class mex.drop.locale_service.MExLocale(*, id: str, label: str, language: str, code: str)¶
Bases:
BaseModelRepresents a locale with id and label.
- code: str¶
- id: str¶
- label: str¶
- language: str¶
- model_config = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- values() Iterable[str]¶
Expose locale values to avoid reflex bug.
mex.drop.logging module¶
mex.drop.main module¶
- mex.drop.main.drop_api() None¶
Start the drop api.
- mex.drop.main.drop_frontend() None¶
Start the drop frontend.
- mex.drop.main.main() None¶
Start the drop api together with frontend.
mex.drop.models module¶
Bases:
BaseModelModel for one navigation bar item.
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
mex.drop.security module¶
- mex.drop.security.get_authorized_x_systems(user_database: UserDatabase, api_key: APIKey) list[Annotated[str, Annotated[str, StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern='^[a-zA-Z0-9\\._-]{1,128}$', ascii_only=None)]]] | None¶
Get authorized x-systems from database.
- Parameters:
user_database – database dictionary
api_key – API key to check
- Returns:
optional list of authorized x-systems
- mex.drop.security.get_current_authorized_x_systems(api_key: ~typing.Annotated[str | None, ~fastapi.params.Depends(dependency=<fastapi.security.api_key.APIKeyHeader object at 0x7f2437ee0440>, use_cache=True, scope=None)]) list[Annotated[str, Annotated[str, StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern='^[a-zA-Z0-9\\._-]{1,128}$', ascii_only=None)]]]¶
Get the current authorized x-systems.
- Raises:
HTTPException if no header is provided or no x-system is authorized –
- Parameters:
api_key – the API key for x-system lookup
- Settings:
drop_user_database: checked for presence of api_key
- Returns:
list of authorized x-systems
- mex.drop.security.is_authorized(x_system: Annotated[str, Annotated[str, StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern='^[a-zA-Z0-9\\._-]{1,128}$', ascii_only=None)]], authorized_x_systems: list[Annotated[str, Annotated[str, StringConstraints(strip_whitespace=None, to_upper=None, to_lower=None, strict=None, min_length=None, max_length=None, pattern='^[a-zA-Z0-9\\._-]{1,128}$', ascii_only=None)]]]) bool¶
Check if the provided x-system is in the authorized x-systems.
- Parameters:
x_system – x-system to check
authorized_x_systems – list of authorized x-systems
- Returns:
True if x_system or admin is in the authorized_x_systems else False
mex.drop.settings module¶
- class mex.drop.settings.DropSettings(_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, *, MEX_DEBUG: bool = False, MEX_SINK: list[Sink] = [Sink.NDJSON], MEX_ASSETS_DIR: Path = PosixPath('/home/runner/work/mex-drop/mex-drop/assets'), MEX_OPS_DIR: Path = PosixPath('/home/runner/work/mex-drop/mex-drop/ops'), MEX_WORK_DIR: Path = PosixPath('/home/runner/work/mex-drop/mex-drop'), MEX_IDENTITY_PROVIDER: IdentityProvider = IdentityProvider.MEMORY, MEX_ASSETS_CONNECTOR: AssetsConnectorType = AssetsConnectorType.FILESYSTEM, MEX_BACKEND_API_URL: HttpUrl = HttpUrl('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 | OpsPath = True, MEX_ORGANIGRAM_PATH: str = 'raw-data/organigram/organizational_units.json', MEX_PRIMARY_SOURCES_PATH: str = 'raw-data/primary-sources/primary-sources.json', MEX_LDAP_URL: SecretStr = SecretStr('**********'), MEX_LDAP_SEARCH_BASE: str = 'dc=ldapmock,dc=local', MEX_WIKI_API_URL: HttpUrl = HttpUrl('http://wikidata/'), MEX_WEB_USER_AGENT: str = 'rki/mex', MEX_ORCID_API_URL: HttpUrl = HttpUrl('https://orcid/'), MEX_DROP_API_HOST: Annotated[str, MinLen(min_length=1), MaxLen(max_length=250)] = 'localhost', MEX_DROP_API_PORT: Annotated[int, Gt(gt=0), Lt(lt=65536)] = 8021, MEX_DROP_FRONTEND_PORT: Annotated[int, Gt(gt=0), Lt(lt=65536)] = 8020, MEX_DROP_API_ROOT_PATH: str = '', MEX_DROP_DIRECTORY: WorkPath = WorkPath('data'), MEX_DROP_API_KEY_DATABASE: UserDatabase = {})¶
Bases:
BaseSettingsSettings definition for the drop server.
- drop_api_host: str¶
- drop_api_key_database: UserDatabase¶
- drop_api_port: int¶
- drop_api_root_path: str¶
- drop_directory: WorkPath¶
- drop_frontend_port: int¶
- model_config = {'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_shortcuts': None, 'cli_show_env_vars': False, '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_nested_max_split': None, 'env_parse_enums': None, 'env_parse_none_str': None, 'env_prefix': 'mex_', 'env_prefix_target': 'variable', '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_by_alias': True, 'validate_by_name': True, 'validate_default': True, 'yaml_config_section': None, 'yaml_file': None, 'yaml_file_encoding': None}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- classmethod validate_user_database(value: dict[str, list[str]]) UserDatabase¶
Ensure keys are APIKeys and values are XSystems.
mex.drop.state module¶
- class mex.drop.state.State(parent_state: BaseState | None = None, init_substates: bool = True, _reflex_internal_init: bool = False, **kwargs)¶
Bases:
StateThe app state.
- backend_vars: ClassVar[dict[str, Any]] = {'_available_locales': [MExLocale(id='de', label='Deutsch', language='de', code='DEU'), MExLocale(id='en', label='English', language='en', code='ENG')], '_locale_service': <mex.drop.locale_service.LocaleService object>, '_nav_items': [NavItem(title='layout.nav_bar.upload_navitem', route_ids=['/', '/index'], raw_path='/', active=False), NavItem(title='layout.nav_bar.browse_navitem', route_ids=['/browse'], raw_path='/browse', active=False)], '_reflex_internal_links': None}¶
- base_vars: ClassVar[dict[str, Var]] = {'current_locale': Var.__init_subclass__.<locals>.StringCastedVar(_js_expr='reflex___state____state__mex___drop___state____state.current_locale_rx_state_', _var_type=<class 'str'>, _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___drop___state____state.current_locale_rx_state_', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='current_locale', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=()))), 'user': Var.__init_subclass__.<locals>.ObjectCastedVar(_js_expr='reflex___state____state__mex___drop___state____state.user_rx_state_', _var_type=mex.drop.models.User | None, _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___drop___state____state.user_rx_state_', _var_type=mex.drop.models.User | None, _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='user', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=())))}¶
- change_locale = EventHandler(event_actions={}, fn=<function State.change_locale>, state_full_name='reflex___state____state.mex___drop___state____state')¶
- check_login = EventHandler(event_actions={}, fn=<function State.check_login>, state_full_name='reflex___state____state.mex___drop___state____state')¶
- class_subclasses: ClassVar[set[type[BaseState]]] = {<class 'mex.drop.browse.state.BrowseState'>, <class 'mex.drop.login.state.LoginState'>, <class 'mex.drop.upload.state.UploadState'>}¶
- computed_vars: ClassVar[dict[str, ComputedVar]] = {'label_nav_bar_logout_button': FakeComputedVarBaseClass(_js_expr='label_nav_bar_logout_button_rx_state_', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='label_nav_bar_logout_button', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=()), _cache=True, _backend=False, _initial_value=Unset, _static_deps={None: {'current_locale'}}, _auto_deps=False, _update_interval=None, _fget=<function State.label_nav_bar_logout_button>, _name='label_nav_bar_logout_button'), 'nav_items_translated': FakeComputedVarBaseClass(_js_expr='nav_items_translated_rx_state_', _var_type=list[mex.drop.models.NavItem], _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='nav_items_translated', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=()), _cache=True, _backend=False, _initial_value=Unset, _static_deps={None: {'_locale_service', '_nav_items', 'current_locale'}}, _auto_deps=True, _update_interval=None, _fget=<function State.nav_items_translated>, _name='nav_items_translated')}¶
- current_locale: str = Var.__init_subclass__.<locals>.StringCastedVar(_js_expr='reflex___state____state__mex___drop___state____state.current_locale_rx_state_', _var_type=<class 'str'>, _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___drop___state____state.current_locale_rx_state_', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='current_locale', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=())))¶
- event_handlers: ClassVar[dict[str, EventHandler]] = {'change_locale': EventHandler(event_actions={}, fn=<function State.change_locale>, state_full_name='reflex___state____state.mex___drop___state____state'), 'check_login': EventHandler(event_actions={}, fn=<function State.check_login>, state_full_name='reflex___state____state.mex___drop___state____state'), 'load_nav': EventHandler(event_actions={}, fn=<function State.load_nav>, state_full_name='reflex___state____state.mex___drop___state____state'), 'logout': EventHandler(event_actions={}, fn=<function State.logout>, state_full_name='reflex___state____state.mex___drop___state____state'), 'set_current_locale': BaseState._create_setter.<locals>.EventHandlerDeprecatedSetter(event_actions={}, fn=<function set_current_locale>, state_full_name='reflex___state____state.mex___drop___state____state'), 'set_user': BaseState._create_setter.<locals>.EventHandlerDeprecatedSetter(event_actions={}, fn=<function set_user>, state_full_name='reflex___state____state.mex___drop___state____state'), 'setvar': EventHandlerSetVar(event_actions={}, fn=<function EventHandlerSetVar.setvar>, state_full_name='reflex___state____state.mex___drop___state____state', state_cls=<class 'mex.drop.state.State'>)}¶
- inherited_backend_vars: ClassVar[dict[str, Any]] = {'_reflex_internal_links': None}¶
- inherited_vars: ClassVar[dict[str, Var]] = {'is_hydrated': Var.__init_subclass__.<locals>.BooleanCastedVar(_js_expr='reflex___state____state.is_hydrated_rx_state_', _var_type=<class 'bool'>, _var_data=None, _original=Var(_js_expr='reflex___state____state.is_hydrated_rx_state_', _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, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None, components=()))), 'router': Var.__init_subclass__.<locals>.ObjectCastedVar(_js_expr='reflex___state____state.router_rx_state_', _var_type=<class 'reflex.istate.data.RouterData'>, _var_data=None, _original=Var(_js_expr='reflex___state____state.router_rx_state_', _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, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None, components=())))}¶
Base class of converting a var to another var type.
- logout = EventHandler(event_actions={}, fn=<function State.logout>, state_full_name='reflex___state____state.mex___drop___state____state')¶
Base class of converting a var to another var type.
- set_current_locale = BaseState._create_setter.<locals>.EventHandlerDeprecatedSetter(event_actions={}, fn=<function set_current_locale>, state_full_name='reflex___state____state.mex___drop___state____state')¶
- set_user = BaseState._create_setter.<locals>.EventHandlerDeprecatedSetter(event_actions={}, fn=<function set_user>, state_full_name='reflex___state____state.mex___drop___state____state')¶
- setvar: ClassVar[EventHandler] = EventHandlerSetVar(event_actions={}, fn=<function EventHandlerSetVar.setvar>, state_full_name='reflex___state____state.mex___drop___state____state', state_cls=<class 'mex.drop.state.State'>)¶
- vars: ClassVar[dict[str, Var]] = {'current_locale': Var.__init_subclass__.<locals>.StringCastedVar(_js_expr='reflex___state____state__mex___drop___state____state.current_locale_rx_state_', _var_type=<class 'str'>, _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___drop___state____state.current_locale_rx_state_', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='current_locale', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=()))), 'is_hydrated': Var.__init_subclass__.<locals>.BooleanCastedVar(_js_expr='reflex___state____state.is_hydrated_rx_state_', _var_type=<class 'bool'>, _var_data=None, _original=Var(_js_expr='reflex___state____state.is_hydrated_rx_state_', _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, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None, components=()))), 'label_nav_bar_logout_button': FakeComputedVarBaseClass(_js_expr='label_nav_bar_logout_button_rx_state_', _var_type=<class 'str'>, _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='label_nav_bar_logout_button', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=()), _cache=True, _backend=False, _initial_value=Unset, _static_deps={None: {'current_locale'}}, _auto_deps=False, _update_interval=None, _fget=<function State.label_nav_bar_logout_button>, _name='label_nav_bar_logout_button'), 'nav_items_translated': FakeComputedVarBaseClass(_js_expr='nav_items_translated_rx_state_', _var_type=list[mex.drop.models.NavItem], _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='nav_items_translated', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=()), _cache=True, _backend=False, _initial_value=Unset, _static_deps={None: {'_locale_service', '_nav_items', 'current_locale'}}, _auto_deps=True, _update_interval=None, _fget=<function State.nav_items_translated>, _name='nav_items_translated'), 'router': Var.__init_subclass__.<locals>.ObjectCastedVar(_js_expr='reflex___state____state.router_rx_state_', _var_type=<class 'reflex.istate.data.RouterData'>, _var_data=None, _original=Var(_js_expr='reflex___state____state.router_rx_state_', _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, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state = useContext(StateContexts.reflex___state____state)',), deps=(), position=None, components=()))), 'user': Var.__init_subclass__.<locals>.ObjectCastedVar(_js_expr='reflex___state____state__mex___drop___state____state.user_rx_state_', _var_type=mex.drop.models.User | None, _var_data=None, _original=Var(_js_expr='reflex___state____state__mex___drop___state____state.user_rx_state_', _var_type=mex.drop.models.User | None, _var_data=VarData(state='reflex___state____state.mex___drop___state____state', field_name='user', imports=(('$/utils/context', (ImportVar(tag='StateContexts', is_default=False, alias=None, install=True, render=True, package_path='/'),)), ('react', (ImportVar(tag='useContext', is_default=False, alias=None, install=True, render=True, package_path='/'),))), hooks=('const reflex___state____state__mex___drop___state____state = useContext(StateContexts.reflex___state____state__mex___drop___state____state)',), deps=(), position=None, components=())))}¶
mex.drop.types module¶
- class mex.drop.types.APIKey(secret_value: SecretType)¶
Bases:
SecretStrAn API Key used for authenticating and authorizing a client.
mex.drop.utils module¶
- mex.drop.utils.load_settings() DropSettings¶
Reset the settings store and fetch the drop settings.