Skip to content

Commit da5a6fe

Browse files
remove excess models
Signed-off-by: varun-edachali-dbx <varun.edachali@databricks.com>
1 parent 1b794c7 commit da5a6fe

File tree

4 files changed

+4
-299
lines changed

4 files changed

+4
-299
lines changed

src/databricks/sql/backend/sea/models/__init__.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,49 +4,19 @@
44
This package contains data models for SEA API requests and responses.
55
"""
66

7-
from databricks.sql.backend.sea.models.base import (
8-
ServiceError,
9-
StatementStatus,
10-
ExternalLink,
11-
ResultData,
12-
ColumnInfo,
13-
ResultManifest,
14-
)
15-
167
from databricks.sql.backend.sea.models.requests import (
17-
StatementParameter,
18-
ExecuteStatementRequest,
19-
GetStatementRequest,
20-
CancelStatementRequest,
21-
CloseStatementRequest,
228
CreateSessionRequest,
239
DeleteSessionRequest,
2410
)
2511

2612
from databricks.sql.backend.sea.models.responses import (
27-
ExecuteStatementResponse,
28-
GetStatementResponse,
2913
CreateSessionResponse,
3014
)
3115

3216
__all__ = [
33-
# Base models
34-
"ServiceError",
35-
"StatementStatus",
36-
"ExternalLink",
37-
"ResultData",
38-
"ColumnInfo",
39-
"ResultManifest",
4017
# Request models
41-
"StatementParameter",
42-
"ExecuteStatementRequest",
43-
"GetStatementRequest",
44-
"CancelStatementRequest",
45-
"CloseStatementRequest",
4618
"CreateSessionRequest",
4719
"DeleteSessionRequest",
4820
# Response models
49-
"ExecuteStatementResponse",
50-
"GetStatementResponse",
5121
"CreateSessionResponse",
5222
]

src/databricks/sql/backend/sea/models/base.py

Lines changed: 0 additions & 68 deletions
This file was deleted.

src/databricks/sql/backend/sea/models/requests.py

Lines changed: 2 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -1,111 +1,5 @@
1-
"""
2-
Request models for the SEA (Statement Execution API) backend.
3-
4-
These models define the structures used in SEA API requests.
5-
"""
6-
7-
from typing import Dict, List, Any, Optional, Union
8-
from dataclasses import dataclass, field
9-
10-
11-
@dataclass
12-
class StatementParameter:
13-
"""Parameter for a SQL statement."""
14-
15-
name: str
16-
value: Optional[str] = None
17-
type: Optional[str] = None
18-
19-
20-
@dataclass
21-
class ExecuteStatementRequest:
22-
"""Request to execute a SQL statement."""
23-
24-
warehouse_id: str
25-
statement: str
26-
session_id: str
27-
disposition: str = "EXTERNAL_LINKS"
28-
format: str = "JSON_ARRAY"
29-
wait_timeout: str = "10s"
30-
on_wait_timeout: str = "CONTINUE"
31-
row_limit: Optional[int] = None
32-
byte_limit: Optional[int] = None
33-
parameters: Optional[List[StatementParameter]] = None
34-
catalog: Optional[str] = None
35-
schema: Optional[str] = None
36-
result_compression: Optional[str] = None
37-
38-
def to_dict(self) -> Dict[str, Any]:
39-
"""Convert the request to a dictionary for JSON serialization."""
40-
result: Dict[str, Any] = {
41-
"warehouse_id": self.warehouse_id,
42-
"session_id": self.session_id,
43-
"statement": self.statement,
44-
"disposition": self.disposition,
45-
"format": self.format,
46-
"wait_timeout": self.wait_timeout,
47-
"on_wait_timeout": self.on_wait_timeout,
48-
}
49-
50-
if self.row_limit is not None and self.row_limit > 0:
51-
result["row_limit"] = self.row_limit
52-
53-
if self.byte_limit is not None and self.byte_limit > 0:
54-
result["byte_limit"] = self.byte_limit
55-
56-
if self.catalog:
57-
result["catalog"] = self.catalog
58-
59-
if self.schema:
60-
result["schema"] = self.schema
61-
62-
if self.result_compression:
63-
result["result_compression"] = self.result_compression
64-
65-
if self.parameters:
66-
result["parameters"] = [
67-
{
68-
"name": param.name,
69-
**({"value": param.value} if param.value is not None else {}),
70-
**({"type": param.type} if param.type is not None else {}),
71-
}
72-
for param in self.parameters
73-
]
74-
75-
return result
76-
77-
78-
@dataclass
79-
class GetStatementRequest:
80-
"""Request to get information about a statement."""
81-
82-
statement_id: str
83-
84-
def to_dict(self) -> Dict[str, Any]:
85-
"""Convert the request to a dictionary for JSON serialization."""
86-
return {"statement_id": self.statement_id}
87-
88-
89-
@dataclass
90-
class CancelStatementRequest:
91-
"""Request to cancel a statement."""
92-
93-
statement_id: str
94-
95-
def to_dict(self) -> Dict[str, Any]:
96-
"""Convert the request to a dictionary for JSON serialization."""
97-
return {"statement_id": self.statement_id}
98-
99-
100-
@dataclass
101-
class CloseStatementRequest:
102-
"""Request to close a statement."""
103-
104-
statement_id: str
105-
106-
def to_dict(self) -> Dict[str, Any]:
107-
"""Convert the request to a dictionary for JSON serialization."""
108-
return {"statement_id": self.statement_id}
1+
from typing import Dict, Any, Optional
2+
from dataclasses import dataclass
1093

1104

1115
@dataclass

src/databricks/sql/backend/sea/models/responses.py

Lines changed: 2 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,5 @@
1-
"""
2-
Response models for the SEA (Statement Execution API) backend.
3-
4-
These models define the structures used in SEA API responses.
5-
"""
6-
7-
from typing import Dict, List, Any, Optional, Union
8-
from dataclasses import dataclass, field
9-
10-
from databricks.sql.backend.types import CommandState
11-
from databricks.sql.backend.sea.models.base import (
12-
StatementStatus,
13-
ResultManifest,
14-
ResultData,
15-
ServiceError,
16-
)
17-
18-
19-
@dataclass
20-
class ExecuteStatementResponse:
21-
"""Response from executing a SQL statement."""
22-
23-
statement_id: str
24-
status: StatementStatus
25-
manifest: Optional[ResultManifest] = None
26-
result: Optional[ResultData] = None
27-
28-
@classmethod
29-
def from_dict(cls, data: Dict[str, Any]) -> "ExecuteStatementResponse":
30-
"""Create an ExecuteStatementResponse from a dictionary."""
31-
status_data = data.get("status", {})
32-
error = None
33-
if "error" in status_data:
34-
error_data = status_data["error"]
35-
error = ServiceError(
36-
message=error_data.get("message", ""),
37-
error_code=error_data.get("error_code"),
38-
)
39-
40-
state = CommandState.from_sea_state(status_data.get("state", ""))
41-
if state is None:
42-
raise ValueError(f"Invalid state: {status_data.get('state', '')}")
43-
status = StatementStatus(
44-
state=state,
45-
error=error,
46-
sql_state=status_data.get("sql_state"),
47-
)
48-
49-
return cls(
50-
statement_id=data.get("statement_id", ""),
51-
status=status,
52-
manifest=data.get("manifest"), # We'll parse this more fully if needed
53-
result=data.get("result"), # We'll parse this more fully if needed
54-
)
55-
56-
57-
@dataclass
58-
class GetStatementResponse:
59-
"""Response from getting information about a statement."""
60-
61-
statement_id: str
62-
status: StatementStatus
63-
manifest: Optional[ResultManifest] = None
64-
result: Optional[ResultData] = None
65-
66-
@classmethod
67-
def from_dict(cls, data: Dict[str, Any]) -> "GetStatementResponse":
68-
"""Create a GetStatementResponse from a dictionary."""
69-
status_data = data.get("status", {})
70-
error = None
71-
if "error" in status_data:
72-
error_data = status_data["error"]
73-
error = ServiceError(
74-
message=error_data.get("message", ""),
75-
error_code=error_data.get("error_code"),
76-
)
77-
78-
state = CommandState.from_sea_state(status_data.get("state", ""))
79-
if state is None:
80-
raise ValueError(f"Invalid state: {status_data.get('state', '')}")
81-
82-
status = StatementStatus(
83-
state=state,
84-
error=error,
85-
sql_state=status_data.get("sql_state"),
86-
)
87-
88-
return cls(
89-
statement_id=data.get("statement_id", ""),
90-
status=status,
91-
manifest=data.get("manifest"), # We'll parse this more fully if needed
92-
result=data.get("result"), # We'll parse this more fully if needed
93-
)
1+
from typing import Dict, Any
2+
from dataclasses import dataclass
943

954

965
@dataclass

0 commit comments

Comments
 (0)