# {py:mod}`ovo.core.database.sql_db` ```{py:module} ovo.core.database.sql_db ``` ```{autodoc2-docstring} ovo.core.database.sql_db :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`SqlDBEngine ` - ```` ### API `````{py:class} SqlDBEngine(db_url: str, verbose: bool = False, read_only: bool = False) :canonical: ovo.core.database.sql_db.SqlDBEngine Bases: {py:obj}`ovo.core.database.cache_clearing.CacheClearingEngine` ````{py:method} init() :canonical: ovo.core.database.sql_db.SqlDBEngine.init ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.init ``` ```` ````{py:method} _create_session() -> sqlalchemy.orm.Session :canonical: ovo.core.database.sql_db.SqlDBEngine._create_session ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine._create_session ``` ```` ````{py:method} _check_updated(obj: ovo.core.database.models.Base) :canonical: ovo.core.database.sql_db.SqlDBEngine._check_updated ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine._check_updated ``` ```` ````{py:method} check_read_only() :canonical: ovo.core.database.sql_db.SqlDBEngine.check_read_only ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.check_read_only ``` ```` ````{py:method} save(obj: ovo.core.database.models.Base) :canonical: ovo.core.database.sql_db.SqlDBEngine.save ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.save ``` ```` ````{py:method} save_all(objs: typing.Sequence[ovo.core.database.models.Base]) :canonical: ovo.core.database.sql_db.SqlDBEngine.save_all ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.save_all ``` ```` ````{py:method} remove(model: typing.Type[ovo.core.database.base_db.T], *id_args, **kwargs) :canonical: ovo.core.database.sql_db.SqlDBEngine.remove ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.remove ``` ```` ````{py:method} save_value(model: typing.Type[ovo.core.database.base_db.T], column: str, value, **kwargs) :canonical: ovo.core.database.sql_db.SqlDBEngine.save_value ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.save_value ``` ```` ````{py:method} select(model: typing.Type[ovo.core.database.base_db.T], limit: int = None, order_by=None, **kwargs) -> typing.Sequence[ovo.core.database.base_db.T] :canonical: ovo.core.database.sql_db.SqlDBEngine.select ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.select ``` ```` ````{py:method} count(model: typing.Type[ovo.core.database.base_db.T], **kwargs) -> int :canonical: ovo.core.database.sql_db.SqlDBEngine.count ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.count ``` ```` ````{py:method} count_distinct(model: typing.Type[ovo.core.database.base_db.T], field='id', group_by=None, **kwargs) -> int | dict[typing.Any, int] :canonical: ovo.core.database.sql_db.SqlDBEngine.count_distinct ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.count_distinct ``` ```` ````{py:method} _create_query(session, model: typing.Type[ovo.core.database.base_db.T], columns=None, order_by=None, limit=None, id_args=None, **kwargs) :canonical: ovo.core.database.sql_db.SqlDBEngine._create_query ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine._create_query ``` ```` ````{py:method} _create_order_by(model: typing.Type[ovo.core.database.base_db.T], order_by) :canonical: ovo.core.database.sql_db.SqlDBEngine._create_order_by ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine._create_order_by ``` ```` ````{py:method} _create_order_by_single(model: typing.Type[ovo.core.database.base_db.T], order_by) :canonical: ovo.core.database.sql_db.SqlDBEngine._create_order_by_single ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine._create_order_by_single ``` ```` ````{py:method} _create_filters(model: typing.Type[ovo.core.database.base_db.T], kwargs) :canonical: ovo.core.database.sql_db.SqlDBEngine._create_filters ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine._create_filters ``` ```` ````{py:method} get(model: typing.Type[ovo.core.database.base_db.T], *id_args, **kwargs) -> ovo.core.database.base_db.T :canonical: ovo.core.database.sql_db.SqlDBEngine.get ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.get ``` ```` ````{py:method} get_value(model: typing.Type[ovo.core.database.base_db.T], column: str, *id_args, raw=False, **kwargs) :canonical: ovo.core.database.sql_db.SqlDBEngine.get_value ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.get_value ``` ```` ````{py:method} select_values(model: typing.Type[ovo.core.database.base_db.T], column: str, order_by=None, **kwargs) -> list :canonical: ovo.core.database.sql_db.SqlDBEngine.select_values ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.select_values ``` ```` ````{py:method} select_dict(model: typing.Type[ovo.core.database.base_db.T], key_column: str, value_column: str, order_by=None, **kwargs) -> dict :canonical: ovo.core.database.sql_db.SqlDBEngine.select_dict ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.select_dict ``` ```` ````{py:method} select_unique_values(model: typing.Type[ovo.core.database.base_db.T], column: str, **kwargs) -> set :canonical: ovo.core.database.sql_db.SqlDBEngine.select_unique_values ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.select_unique_values ``` ```` ````{py:method} select_dataframe(model: typing.Type[ovo.core.database.base_db.T], index_col: str = 'id', order_by=None, limit='unset', **kwargs) -> pandas.DataFrame :canonical: ovo.core.database.sql_db.SqlDBEngine.select_dataframe ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.select_dataframe ``` ```` ````{py:method} select_descriptor_values(descriptor_key: str, design_ids: list[str]) -> pandas.Series :canonical: ovo.core.database.sql_db.SqlDBEngine.select_descriptor_values ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.select_descriptor_values ``` ```` ````{py:method} select_design_descriptors(design_id: str, descriptor_keys: list[str]) -> pandas.Series :canonical: ovo.core.database.sql_db.SqlDBEngine.select_design_descriptors ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.select_design_descriptors ``` ```` ````{py:method} select_wide_descriptor_table(design_ids: list[str], descriptor_keys: list[str], **kwargs) -> pandas.DataFrame :canonical: ovo.core.database.sql_db.SqlDBEngine.select_wide_descriptor_table ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.select_wide_descriptor_table ``` ```` ````{py:method} get_design_accepted_values(design_ids: list[str]) :canonical: ovo.core.database.sql_db.SqlDBEngine.get_design_accepted_values ```{autodoc2-docstring} ovo.core.database.sql_db.SqlDBEngine.get_design_accepted_values ``` ```` `````