Releases: Query-farm/vgi-python
Release list
v0.14.0
HTTP result-cache conditional revalidation
Requires vgi-rpc >= 0.24.0, which surfaces the /init request metadata to a producer's first process() over HTTP. Together with the VGI extension's C++ change (validators on the /init request), result-cache conditional revalidation (304 / not_modified) now works over both transports, not just subprocess.
vgi-rpc>=0.24.0;cache/revalidate.testnow runs on the http lane too (ci skip removed).- No worker code change:
TableProducerState.process()already reads the validators.
Verified: revalidate.test passes over HTTP against published vgi-rpc 0.24.0.
v0.13.0
Per-schema doc in describe.json; refreshed shared landing page v3 (Markdown tables, schema/function descriptions on expand, two-tier green/blue Cupola CTA, INSTALL vgi FROM community line, footer copyright).
v0.12.0
Catalog macros on the landing page + landing-page fixes
- describe.json now surfaces catalog macros (scalar + table) in the schema
functionslist — fixes workers whose callable functions are declared as DuckDB macros (e.g. vgi-volcanos) showing 0 functions. Defaulted macro params render as named args with their default; untyped params showANY. - Landing page: Markdown rendering for catalog/table/view docs; Arrow→DuckDB column/argument type display (
int64→BIGINT,dictionary<…>→VARCHAR); table/view descriptions shown only on expand; footer schema-version line removed.
v0.11.1
Patch: mypy-clean describe.json producer with deterministic (sorted) output so describe.json and the conformance golden are stable across platforms and Python versions; UTF-8 file reads in the conformance checker; regenerated uv.lock.
v0.11.0
Standardized VGI worker HTTP landing page: the shared self-contained landing.html served at GET / with content negotiation, plus GET /describe.json and the lazy per-object column endpoint built from live catalog introspection. Requires vgi-rpc>=0.23.0 for the _vgi_identity cookie.
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.