Coverage for dj/models/engine.py: 100%
20 statements
« prev ^ index » next coverage.py v7.2.3, created at 2023-04-17 20:05 -0700
« prev ^ index » next coverage.py v7.2.3, created at 2023-04-17 20:05 -0700
1"""
2Models for columns.
3"""
4import enum
5from typing import Optional
7from sqlalchemy.sql.schema import Column as SqlaColumn
8from sqlalchemy.types import Enum
9from sqlmodel import Field, SQLModel
11from dj.models.base import BaseSQLModel
14class Dialect(str, enum.Enum):
15 """
16 SQL dialect
17 """
19 SPARK = "spark"
20 TRINO = "trino"
23class Engine(BaseSQLModel, table=True): # type: ignore
24 """
25 A query engine.
26 """
28 id: Optional[int] = Field(default=None, primary_key=True)
29 name: str
30 version: str
31 uri: Optional[str]
32 dialect: Optional[Dialect] = Field(sa_column=SqlaColumn(Enum(Dialect)))
35class EngineInfo(SQLModel):
36 """
37 Class for engine creation
38 """
40 name: str
41 version: str
42 uri: Optional[str]
43 dialect: Optional[Dialect]