mirror of
https://github.com/Kaelio/ktx.git
synced 2026-06-10 08:05:14 +02:00
refactor: remove legacy ktx compatibility shims (#211)
* refactor: remove legacy ktx compatibility shims * fix: restore overlay collision guidance
This commit is contained in:
parent
a954a29a76
commit
96952fb43c
59 changed files with 294 additions and 342 deletions
|
|
@ -327,7 +327,7 @@ def introspect_database_response(
|
|||
now: NowProvider | None = None,
|
||||
) -> DatabaseIntrospectionResponse:
|
||||
driver = _driver_name(request.driver)
|
||||
if driver not in {"postgres", "postgresql"}:
|
||||
if driver != "postgres":
|
||||
raise ValueError('database introspection supports only driver "postgres"')
|
||||
|
||||
rows = (load_rows or _load_postgres_rows)(request)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ from semantic_layer.models import QueryResult, SourceDefinition
|
|||
|
||||
|
||||
class SemanticLayerQueryRequest(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
sources: list[dict[str, Any]]
|
||||
query: dict[str, Any]
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ from concurrent.futures import ProcessPoolExecutor
|
|||
from typing import Literal
|
||||
|
||||
import sqlglot
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from pydantic import BaseModel, Field
|
||||
from sqlglot import exp
|
||||
|
||||
SqlAnalysisClause = Literal["select", "where", "join", "groupBy", "having", "orderBy"]
|
||||
|
|
@ -23,8 +23,6 @@ class AnalyzeSqlBatchRequest(BaseModel):
|
|||
|
||||
|
||||
class AnalyzeSqlBatchResult(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
tables_touched: list[str] = Field(default_factory=list)
|
||||
columns_by_clause: dict[SqlAnalysisClause, list[str]] = Field(default_factory=dict)
|
||||
error: str | None = None
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from dataclasses import asdict
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from pydantic import BaseModel, Field
|
||||
from semantic_layer.table_identifier_parser import (
|
||||
ParseTableIdentifierItem as SharedParseTableIdentifierItem,
|
||||
parse_table_identifier_batch,
|
||||
|
|
@ -30,8 +29,6 @@ class ParseTableIdentifierBatchRequest(BaseModel):
|
|||
|
||||
|
||||
class ParsedIdentifier(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
ok: bool
|
||||
catalog: str | None = None
|
||||
schema_: str | None = Field(default=None, alias="schema")
|
||||
|
|
@ -60,7 +57,15 @@ def parse_table_identifier_response(
|
|||
)
|
||||
return ParseTableIdentifierBatchResponse(
|
||||
results={
|
||||
key: ParsedIdentifier.model_validate(asdict(value))
|
||||
key: ParsedIdentifier(
|
||||
ok=value.ok,
|
||||
catalog=value.catalog,
|
||||
schema=value.schema_,
|
||||
name=value.name,
|
||||
canonical_table=value.canonical_table,
|
||||
reason=value.reason,
|
||||
detail=value.detail,
|
||||
)
|
||||
for key, value in shared_results.items()
|
||||
}
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue