py_research.sql module#
Connect to an SQL server, validate its schema and perform cached analysis queries.
- class ColRef(class_, key, parententity, comparator, impl=None, of_type=None, extra_criteria=())[source]#
Bases:
InstrumentedAttribute[V],Generic[V,S_contra]Reference a column by scheme type, name and value type.
- class Col(*arg, **kw)[source]#
Bases:
MappedColumn[V]Define table column within a table schema.
- Parameters:
arg (Any)
kw (Any)
- classmethod cast_sqla_attr(attr)[source]#
Cast a sqlalchemy attr object to this type.
- Parameters:
attr (MappedColumn)
- Return type:
- column: Column[_T]#
- active_history#
- class ColumnClause[source]#
Bases:
ColumnsClauseRole,ExpressionElementRoleMix sqlalchemy classes to mitigate typing mishabs.
- class Table(sqla_table)[source]#
Bases:
Data[S_cov]Reference to a manifested SQL table.
- Parameters:
sqla_table (Table)
- sqla_table: Table#
- class Query(sel, query_name, schema=None, _subquery=None)[source]#
Bases:
Data[S_cov]SQL data defined by a query.
- Parameters:
sel (Select)
query_name (dataclasses.InitVar[str])
schema (type[S_cov] | None)
_subquery (Subquery | None)
- sel: Select#
SQLAlchemy select statement.
- query_name: dataclasses.InitVar[str]#
Name of this query.
- class DeferredQuery(func, schema=None, _subquery=None)[source]#
Bases:
Data[S_cov]SQL data defined by a query or table-returning Python function.
- Parameters:
- property subquery: Subquery | Table#
Return subquery or table defined by this query.
- class Schema(schema_def=None, db_schema=None, default=False, name=None)[source]#
Bases:
Generic[S_cov,DS]SQL schema defining multiple related tables.
- Parameters:
- class DBSchema[source]#
Bases:
Generic[S_cov]Schema for an entire SQL database.
- class DB(url, schema=<class 'py_research.sql.DBSchema'>, tag='YYYY-MM-dd', validate=True)[source]#
Bases:
Generic[S_cov,DS]Active connection to a SQL server.
- to_table(src, schema=None, name=None, with_external_fk=False)[source]#
Transfer dataframe or sql query results to manifested SQL table.
- Parameters:
src (DataFrame | Query[S_cov] | DeferredQuery[S_cov]) – Source / definition of data.
schema (type[S_cov] | None) – Schema of the table to create.
name (str | None) – Name of the table to create.
with_external_fk (bool) – Whether to include foreign keys to external tables.
- Returns:
Reference to manifested SQL table.
- Return type:
Table[S_cov]
- query(func: Callable[[Params], Select | Table]) Callable[[Params], Query[S]][source]#
- query(*, defer: Literal[True] = False, schema: type[S] = None) Callable[[Callable[[Params], Select | Table]], Callable[[Params], DeferredQuery[S]]]
- query(*, defer: Literal[True] = False, schema: None = None) Callable[[Callable[[Params], Select | Table]], Callable[[Params], DeferredQuery[Any]]]
- query(*, defer: Literal[False] = False, schema: type[S] = None) Callable[[Callable[[Params], Select | Table]], Callable[[Params], Query[S]]]
- query(*, defer: Literal[False] = False, schema: None = None) Callable[[Callable[[Params], Select | Table]], Callable[[Params], Query[Any]]]
Decorator to transform query-returning function into a referencable query.
- Parameters:
func – Function returning a
sqla.Selectable.defer – Whether to defer execution of the query.
schema – Schema of the query’s result.
- Returns:
Decorated function.