Releases: Query-farm/vgi-python
Release list
v0.10.0
Per-argument constraint metadata for agent discovery, surfaced through vgi_function_arguments() (default / choices / range / pattern), plus bind-time enforcement: a const argument that violates a declared choices/ge/le/gt/lt/pattern constraint now fails at bind (scalar + aggregate) instead of silently reaching compute().
v0.9.0
COPY ... TO / FROM secret-bind hook: a worker can now forward the caller's CREATE SECRET credentials for secret-backed cloud writes/reads via the two-phase secret bind (CopyToFunction/CopyFromFunction on_secrets). Adds SecretLines COPY fixtures.
v0.8.11
Adds the vgi-fixtures container image build to the release pipeline.
The release now builds and pushes ghcr.io/query-farm/vgi-fixtures:0.8.11-<worker> (one per fixture worker, plus :0.8.11 and :latest for the base worker) to GHCR. These let the VGI DuckDB extension run its integration suite via the oci:// container transport — full stdio fidelity, no local uv/Python install needed.
No functional changes to the vgi-python package itself.
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.)