Skip to content

Commit 0248459

Browse files
committed
work in process
1 parent 3c3285d commit 0248459

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

src/query_farm_server_base/action_decoders.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from typing import Any, Literal, TypeVar, get_args, get_origin # noqa: UP035
22

3+
import io
34
import msgpack
45
import pyarrow as pa
56
import pyarrow.flight as flight
@@ -17,6 +18,12 @@ def serialize_record_batch(value: pa.RecordBatch, _info: Any) -> bytes | None:
1718
return sink.getvalue().to_pybytes()
1819

1920

21+
def serialize_schema(value: pa.Schema, _info: Any) -> bytes | None:
22+
sink = io.BytesIO()
23+
pa.ipc.write_schema(value, sink)
24+
return sink.getvalue()
25+
26+
2027
def serialize_flight_descriptor(value: flight.FlightDescriptor, _info: Any) -> bytes:
2128
return value.serialize()
2229

@@ -195,11 +202,16 @@ class EndpointsParametersParameters(BaseModel):
195202
column_ids: list[int]
196203

197204
table_function_parameters: pa.RecordBatch | None
205+
table_function_input_schema: pa.Schema | None
198206

199207
_validate_table_function_parameters = field_validator(
200208
"table_function_parameters", mode="before"
201209
)(deserialize_record_batch_or_none)
202210

211+
_validate_table_function_input_schema = field_validator(
212+
"table_function_input_schema", mode="before"
213+
)(deserialize_schema_or_none)
214+
203215

204216
class EndpointsParameters(BaseModel):
205217
model_config = ConfigDict(arbitrary_types_allowed=True) # for Pydantic v2

0 commit comments

Comments
 (0)