|
4 | 4 | These models define the structures used in SEA API responses. |
5 | 5 | """ |
6 | 6 |
|
7 | | -from typing import Dict, Any, List |
| 7 | +from typing import Dict, Any, List, Optional |
8 | 8 | from dataclasses import dataclass |
9 | 9 |
|
10 | 10 | from databricks.sql.backend.types import CommandState |
@@ -160,32 +160,26 @@ def from_dict(cls, data: Dict[str, Any]) -> "CreateSessionResponse": |
160 | 160 | class GetChunksResponse: |
161 | 161 | """Response from getting chunks for a statement.""" |
162 | 162 |
|
163 | | - statement_id: str |
164 | | - external_links: List[ExternalLink] |
| 163 | + data: Optional[List[List[Any]]] = None |
| 164 | + external_links: Optional[List[ExternalLink]] = None |
| 165 | + byte_count: Optional[int] = None |
| 166 | + chunk_index: Optional[int] = None |
| 167 | + next_chunk_index: Optional[int] = None |
| 168 | + next_chunk_internal_link: Optional[str] = None |
| 169 | + row_count: Optional[int] = None |
| 170 | + row_offset: Optional[int] = None |
165 | 171 |
|
166 | 172 | @classmethod |
167 | 173 | def from_dict(cls, data: Dict[str, Any]) -> "GetChunksResponse": |
168 | 174 | """Create a GetChunksResponse from a dictionary.""" |
169 | | - external_links = [] |
170 | | - if "external_links" in data: |
171 | | - for link_data in data["external_links"]: |
172 | | - external_links.append( |
173 | | - ExternalLink( |
174 | | - external_link=link_data.get("external_link", ""), |
175 | | - expiration=link_data.get("expiration", ""), |
176 | | - chunk_index=link_data.get("chunk_index", 0), |
177 | | - byte_count=link_data.get("byte_count", 0), |
178 | | - row_count=link_data.get("row_count", 0), |
179 | | - row_offset=link_data.get("row_offset", 0), |
180 | | - next_chunk_index=link_data.get("next_chunk_index"), |
181 | | - next_chunk_internal_link=link_data.get( |
182 | | - "next_chunk_internal_link" |
183 | | - ), |
184 | | - http_headers=link_data.get("http_headers"), |
185 | | - ) |
186 | | - ) |
187 | | - |
| 175 | + result = _parse_result({"result": data}) |
188 | 176 | return cls( |
189 | | - statement_id=data.get("statement_id", ""), |
190 | | - external_links=external_links, |
| 177 | + data=result.data, |
| 178 | + external_links=result.external_links, |
| 179 | + byte_count=result.byte_count, |
| 180 | + chunk_index=result.chunk_index, |
| 181 | + next_chunk_index=result.next_chunk_index, |
| 182 | + next_chunk_internal_link=result.next_chunk_internal_link, |
| 183 | + row_count=result.row_count, |
| 184 | + row_offset=result.row_offset, |
191 | 185 | ) |
0 commit comments