Releases: Query-farm/vgi-python
Release list
v0.8.10
Performance: scalar UDF constants can now be carried through as typed Arrow scalars.
ConstParamannotated with a pyarrow scalar class —Annotated[pa.Int64Scalar, ConstParam(...)]— now delivers the typedpa.Scalarstraight tocompute()instead of converting it to a Python value. The constant can be passed directly intopyarrow.computewith no per-call scalar re-inference, which is ~40–50x slower on Windows than a typed scalar and dominates per-batch cost for scalar UDFs. Python-type annotations (int/str/float/…) are unchanged, so existing workers are unaffected.- New
vgi.arguments.SCALAR_CLASS_TO_DATATYPE(scalar class → Arrow type), used to infer the Arrow type and to mark which constants are delivered as scalars. - Example fixture
MultiplyFunctionupdated to the idiomatic fast pattern. - CI: boot the http integration worker from the staging dir so
copy_from/copy_totests resolve their relative paths (fixes the http-lane Integration suite).
v0.8.9
Maintenance release.
- Export
CopyFromFormatInfofromvgi.catalog. - Type
ProcessParams/InitParams.secretsasResolvedSecrets(type/scope-aware lookups now type-check). - CI/quality-gate fixes (mypy, ruff, pydoclint, strict docs); run pydoclint via an isolated
uvxenv to avoid the docstring-parser/docstring-parser-fork namespace conflict.
v0.8.8
Worker-side COPY ... FROM / TO custom format support, scope- and type-aware ResolvedSecrets with name-keying, union-typed table varargs decoded as TaggedUnion, and table-buffering functions that can request DuckDB secrets via two-phase bind.
v0.8.7
TCP transport
Adds the raw Arrow-IPC TCP transport from vgi-rpc 0.21.0:
- Worker
--tcp [HOST:]PORTserving (emits theTCP:<host>:<port>discovery line; idle-timeout self-shutdown). - Client
transport="tcp"+Client.from_tcp(host, port); catalog calls routed over TCP too.
Raw TCP framing carries no auth/encryption — loopback/trusted networks only; HTTP remains the transport for untrusted networks.
v0.8.6
Per-parameter documentation for macros: a macro's parameters can now carry descriptions (via the arguments_schema vgi_doc field metadata, mirroring functions), surfaced by the DuckDB extension's vgi_function_arguments() (function_type scalar_macro/table_macro). The example worker's macros are documented as a consistent cross-SDK reference.
🤖 Generated with Claude Code
v0.8.5
Add per-argument descriptions (vgi_doc Arrow field metadata) so a function's arguments can be documented and surfaced via the DuckDB extension's vgi_function_arguments() table function. The example worker's multiply now documents its value/factor arguments (with the const argument clearly identifiable), standardized across all SDKs.
🤖 Generated with Claude Code
v0.8.4
Worker-settable catalog source_url + per-schema tags for vgi-lint metadata. (Function tags already supported.)
v0.8.3
What's changed
Union-tag-preserving argument decode (TaggedUnion)
- feat(arguments): preserve the union tag when decoding union-typed arguments, so the originating union child type survives the round-trip
- test: cover union argument boundary cases — null payload, non-contiguous type codes, and dense unions
- fix(arguments): satisfy strict mypy + ruff for the union-tag decode path
Requires vgi-rpc 0.20.5.
Full changelog: v0.8.2...v0.8.3
v0.8.2
Require vgi-rpc >=0.20.5 and refresh all locked dependencies.
Dependency updates
- vgi-rpc 0.20.4 → 0.20.6
- aiohttp 3.13.5 → 3.14.1
- coverage 7.14.1 → 7.14.2
- griffelib 2.0.2 → 2.1.0
- mkdocstrings-python 2.0.4 → 2.0.5
CI green across Python 3.13/3.14 on Linux, macOS, and Windows, plus the full integration suite (stdio/shm/http/launch).
v0.8.1
Pin vgi-rpc 0.20.4 — shared-memory request-batch fix
Requires vgi-rpc>=0.20.4, which fixes shm-transport request-batch resolution: a worker now resolves shm-routed (offset-only) request batches and caches the client-advertised segment for the connection's lifetime. This makes the integration suite's shared-memory lane pass for accumulate/* and table_buffering/* (previously Expected 1 row in request batch, got 0).
Also: the cross-language bool_in_union integration test now disables itself upstream via mode skip (an arch-dependent Haybarn/DuckDB Arrow serialization bug), so the CI harness drops its filename-based exclusion.
🤖 Generated with Claude Code