Source code for gws.common.db

import gws
import gws.types as t


[docs]def require_provider(obj: t.IObject, klass='gws.ext.db.provider') -> t.IDbProvider: uid = obj.var('db') if uid: prov = obj.root.find('gws.ext.db.provider', uid) if not prov: raise gws.Error(f'{obj.uid}: db provider {uid!r} not found') else: prov = obj.root.find_first(klass) if not prov: raise gws.Error(f'{obj.uid}: db provider {klass!r} not found') return t.cast(t.IDbProvider, prov)
[docs]class SqlTableConfig(t.Config): """SQL database table""" name: str #: table name geometryColumn: t.Optional[str] #: geometry column name keyColumn: t.Optional[str] #: primary key column name searchColumn: t.Optional[str] #: column to be searched for
#:export
[docs]class SqlTable(t.Data): name: str key_column: str = '' search_column: str = '' geometry_column: str = '' geometry_type: t.GeometryType = '' geometry_crs: t.Crs = ''
#:export
[docs]class SelectArgs(t.Data): extra_where: t.Optional[list] keyword: t.Optional[str] limit: t.Optional[int] map_tolerance: t.Optional[float] shape: t.Optional[t.IShape] sort: t.Optional[str] table: t.SqlTable uids: t.Optional[t.List[str]]
#:export
[docs]class SqlTableColumn(t.Data): name: str type: t.AttributeType geom_type: t.GeometryType native_type: str crs: t.Crs is_key: bool is_geometry: bool