# {py:mod}`nexusLIMS.db.models` ```{py:module} nexusLIMS.db.models ``` ```{autodoc2-docstring} nexusLIMS.db.models :parser: autodoc2_docstrings_parser :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`TZDateTime ` - ```{autodoc2-docstring} nexusLIMS.db.models.TZDateTime :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`Instrument ` - ```{autodoc2-docstring} nexusLIMS.db.models.Instrument :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`SessionLog ` - ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`UploadLog ` - ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`ExternalUserIdentifier ` - ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier :parser: autodoc2_docstrings_parser :summary: ``` ```` ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`get_external_id ` - ```{autodoc2-docstring} nexusLIMS.db.models.get_external_id :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`get_nexuslims_username ` - ```{autodoc2-docstring} nexusLIMS.db.models.get_nexuslims_username :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`store_external_id ` - ```{autodoc2-docstring} nexusLIMS.db.models.store_external_id :parser: autodoc2_docstrings_parser :summary: ``` * - {py:obj}`get_all_external_ids ` - ```{autodoc2-docstring} nexusLIMS.db.models.get_all_external_ids :parser: autodoc2_docstrings_parser :summary: ``` ```` ### API `````{py:class} TZDateTime(*args: typing.Any, **kwargs: typing.Any) :canonical: nexusLIMS.db.models.TZDateTime Bases: {py:obj}`sqlalchemy.types.TypeDecorator` ```{autodoc2-docstring} nexusLIMS.db.models.TZDateTime :parser: autodoc2_docstrings_parser ``` ````{py:attribute} impl :canonical: nexusLIMS.db.models.TZDateTime.impl ```{autodoc2-docstring} nexusLIMS.db.models.TZDateTime.impl :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} cache_ok :canonical: nexusLIMS.db.models.TZDateTime.cache_ok :value: > True ```{autodoc2-docstring} nexusLIMS.db.models.TZDateTime.cache_ok :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} process_bind_param(value, dialect) :canonical: nexusLIMS.db.models.TZDateTime.process_bind_param ```{autodoc2-docstring} nexusLIMS.db.models.TZDateTime.process_bind_param :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} process_result_value(value, dialect) :canonical: nexusLIMS.db.models.TZDateTime.process_result_value ```{autodoc2-docstring} nexusLIMS.db.models.TZDateTime.process_result_value :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} Instrument(**data: typing.Any) :canonical: nexusLIMS.db.models.Instrument Bases: {py:obj}`sqlmodel.SQLModel` ```{autodoc2-docstring} nexusLIMS.db.models.Instrument :parser: autodoc2_docstrings_parser ``` ````{py:attribute} instrument_pid :canonical: nexusLIMS.db.models.Instrument.instrument_pid **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.instrument_pid :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} api_url :canonical: nexusLIMS.db.models.Instrument.api_url **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.api_url :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} calendar_url :canonical: nexusLIMS.db.models.Instrument.calendar_url **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.calendar_url :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} location :canonical: nexusLIMS.db.models.Instrument.location **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.location :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} display_name :canonical: nexusLIMS.db.models.Instrument.display_name **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.display_name :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} property_tag :canonical: nexusLIMS.db.models.Instrument.property_tag **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.property_tag :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} filestore_path :canonical: nexusLIMS.db.models.Instrument.filestore_path **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.filestore_path :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} harvester :canonical: nexusLIMS.db.models.Instrument.harvester **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.harvester :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} timezone_str :canonical: nexusLIMS.db.models.Instrument.timezone_str **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.timezone_str :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} session_logs :canonical: nexusLIMS.db.models.Instrument.session_logs :value: > 'Relationship(...)' **Type:** list[SessionLog] ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.session_logs :parser: autodoc2_docstrings_parser ``` ```` ````{py:property} name :canonical: nexusLIMS.db.models.Instrument.name :type: str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.name :parser: autodoc2_docstrings_parser ``` ```` ````{py:property} timezone :canonical: nexusLIMS.db.models.Instrument.timezone :type: pytz.tzinfo.BaseTzInfo ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.timezone :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} localize_datetime(_dt: datetime.datetime) -> datetime.datetime :canonical: nexusLIMS.db.models.Instrument.localize_datetime ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.localize_datetime :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} localize_datetime_str(_dt: datetime.datetime, fmt: str = '%Y-%m-%d %H:%M:%S %Z') -> str :canonical: nexusLIMS.db.models.Instrument.localize_datetime_str ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.localize_datetime_str :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} to_dict() -> dict :canonical: nexusLIMS.db.models.Instrument.to_dict ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.to_dict :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} to_json(**kwargs) -> str :canonical: nexusLIMS.db.models.Instrument.to_json ```{autodoc2-docstring} nexusLIMS.db.models.Instrument.to_json :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} SessionLog(**data: typing.Any) :canonical: nexusLIMS.db.models.SessionLog Bases: {py:obj}`sqlmodel.SQLModel` ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog :parser: autodoc2_docstrings_parser ``` ````{py:attribute} id_session_log :canonical: nexusLIMS.db.models.SessionLog.id_session_log **Type:** int | None ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.id_session_log :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} session_identifier :canonical: nexusLIMS.db.models.SessionLog.session_identifier **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.session_identifier :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} instrument :canonical: nexusLIMS.db.models.SessionLog.instrument **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.instrument :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} timestamp :canonical: nexusLIMS.db.models.SessionLog.timestamp **Type:** datetime.datetime ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.timestamp :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} event_type :canonical: nexusLIMS.db.models.SessionLog.event_type **Type:** nexusLIMS.db.enums.EventType ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.event_type :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} record_status :canonical: nexusLIMS.db.models.SessionLog.record_status **Type:** nexusLIMS.db.enums.RecordStatus ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.record_status :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} user :canonical: nexusLIMS.db.models.SessionLog.user **Type:** str | None ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.user :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} instrument_obj :canonical: nexusLIMS.db.models.SessionLog.instrument_obj :value: > 'Relationship(...)' **Type:** nexusLIMS.db.models.Instrument | None ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.instrument_obj :parser: autodoc2_docstrings_parser ``` ```` ````{py:method} insert_log() -> bool :canonical: nexusLIMS.db.models.SessionLog.insert_log ```{autodoc2-docstring} nexusLIMS.db.models.SessionLog.insert_log :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} UploadLog(**data: typing.Any) :canonical: nexusLIMS.db.models.UploadLog Bases: {py:obj}`sqlmodel.SQLModel` ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog :parser: autodoc2_docstrings_parser ``` ````{py:attribute} id :canonical: nexusLIMS.db.models.UploadLog.id **Type:** int | None ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.id :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} session_identifier :canonical: nexusLIMS.db.models.UploadLog.session_identifier **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.session_identifier :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} destination_name :canonical: nexusLIMS.db.models.UploadLog.destination_name **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.destination_name :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} success :canonical: nexusLIMS.db.models.UploadLog.success **Type:** bool ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.success :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} timestamp :canonical: nexusLIMS.db.models.UploadLog.timestamp **Type:** datetime.datetime ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.timestamp :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} record_id :canonical: nexusLIMS.db.models.UploadLog.record_id **Type:** str | None ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.record_id :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} record_url :canonical: nexusLIMS.db.models.UploadLog.record_url **Type:** str | None ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.record_url :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} error_message :canonical: nexusLIMS.db.models.UploadLog.error_message **Type:** str | None ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.error_message :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} metadata_json :canonical: nexusLIMS.db.models.UploadLog.metadata_json **Type:** str | None ```{autodoc2-docstring} nexusLIMS.db.models.UploadLog.metadata_json :parser: autodoc2_docstrings_parser ``` ```` ````` `````{py:class} ExternalUserIdentifier(**data: typing.Any) :canonical: nexusLIMS.db.models.ExternalUserIdentifier Bases: {py:obj}`sqlmodel.SQLModel` ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier :parser: autodoc2_docstrings_parser ``` ````{py:attribute} id :canonical: nexusLIMS.db.models.ExternalUserIdentifier.id **Type:** int | None ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier.id :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} nexuslims_username :canonical: nexusLIMS.db.models.ExternalUserIdentifier.nexuslims_username **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier.nexuslims_username :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} external_system :canonical: nexusLIMS.db.models.ExternalUserIdentifier.external_system **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier.external_system :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} external_id :canonical: nexusLIMS.db.models.ExternalUserIdentifier.external_id **Type:** str ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier.external_id :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} email :canonical: nexusLIMS.db.models.ExternalUserIdentifier.email **Type:** str | None ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier.email :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} created_at :canonical: nexusLIMS.db.models.ExternalUserIdentifier.created_at **Type:** datetime.datetime ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier.created_at :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} last_verified_at :canonical: nexusLIMS.db.models.ExternalUserIdentifier.last_verified_at **Type:** datetime.datetime | None ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier.last_verified_at :parser: autodoc2_docstrings_parser ``` ```` ````{py:attribute} notes :canonical: nexusLIMS.db.models.ExternalUserIdentifier.notes **Type:** str | None ```{autodoc2-docstring} nexusLIMS.db.models.ExternalUserIdentifier.notes :parser: autodoc2_docstrings_parser ``` ```` ````` ````{py:function} get_external_id(nexuslims_username: str, external_system: nexusLIMS.db.enums.ExternalSystem) -> str | None :canonical: nexusLIMS.db.models.get_external_id ```{autodoc2-docstring} nexusLIMS.db.models.get_external_id :parser: autodoc2_docstrings_parser ``` ```` ````{py:function} get_nexuslims_username(external_id: str, external_system: nexusLIMS.db.enums.ExternalSystem) -> str | None :canonical: nexusLIMS.db.models.get_nexuslims_username ```{autodoc2-docstring} nexusLIMS.db.models.get_nexuslims_username :parser: autodoc2_docstrings_parser ``` ```` ````{py:function} store_external_id(nexuslims_username: str, external_system: nexusLIMS.db.enums.ExternalSystem, external_id: str, email: str | None = None, notes: str | None = None) -> nexusLIMS.db.models.ExternalUserIdentifier :canonical: nexusLIMS.db.models.store_external_id ```{autodoc2-docstring} nexusLIMS.db.models.store_external_id :parser: autodoc2_docstrings_parser ``` ```` ````{py:function} get_all_external_ids(nexuslims_username: str) -> dict[str, str] :canonical: nexusLIMS.db.models.get_all_external_ids ```{autodoc2-docstring} nexusLIMS.db.models.get_all_external_ids :parser: autodoc2_docstrings_parser ``` ````