Python package and CLI 1.37.0
Deployments now block until fully available.
How to install this version
Review the changes below before installing. To install this version, activate a compatible Python virtual environment and run:
python -m pip install "relationalai==1.37.0"For the latest installation instructions, see Start building with PyRel.
We recommend that all customers upgrade to PyRel 1.37.0. This release updates third-party dependencies to versions released in response to security advisories.
New Features and Enhancements
Section titled “New Features and Enhancements”-
Model deployment now waits for the initial data refresh by default with no timeout, so deployment scripts may take longer to finish. To return without waiting, use
rai models deploy --no-waitorModel.deploy(wait=False). Remove the now-redundant--waitflag to avoid a deprecation warning. Model deployment is in Public Preview. -
You can now limit how long
Model.deploy()waits for the initial data refresh, for example withmodel.deploy(wait_timeout=300)for a five-minute limit. If the refresh takes longer, Python raisesTimeoutError, but the refresh continues. The timeout applies only to waiting for the refresh, not the entire deployment. -
Deployed models now use regular Snowflake tables for outputs by default, rather than dynamic tables that Snowflake refreshes automatically. To keep using dynamic tables, explicitly set
deployment.outputs.type: dynamic_tablebefore redeploying. Upgrading PyRel alone does not convert tables you have already deployed. -
You can now use
${VAR}to read an environment variable or${VAR:-default}to provide a default value in PyRel configuration files. If for some reason you have the literal${VAR}text in your settings, escape it with$${VAR}before upgrading to avoid unexpected substitution orValueErrors. The existing{{ env_var('VAR') }}syntax still works. -
Some errors when you deploy or remove a model now suggest running
rai doctorto check your environment and deployment state. You still see the original error, and these checks do not fix the problem automatically. -
In Python notebooks, model deployment progress now shows timers and counts that update in the same output area instead of static progress lines. Warnings and final results stay visible, and notebooks without widget support still show text output.
Bug Fixes
Section titled “Bug Fixes”-
Some deployed Snowflake queries now count or sum all intended input rows when you select the totals alongside split text, generated range values, or regular-expression matches, instead of failing with an invalid identifier error.
-
Fixed an issue caused
rankto quietly fail for entities excluded by a chained.where(...)filter. -
Some model queries with nested aggregates now run faster in Snowflake.
-
Fixed in issue that caused some model queries running in Snowflake to count duplicated even when
distinctwas used. -
Queries that first access the same deployed model at the same time now share setup and wait until the model is ready, avoiding duplicate deployments, SQL errors, and hangs. This does not make all model operations safe to run concurrently: do not change model definitions while queries run.
-
Some rules that derive properties from grouped sums no longer fail with unused-variable or cyclic-dependency errors when the sum is written before its input filters in the same
where(...)expression. -
With
compiler.dry_runenabled,Model.deploy()now returns without waiting for an initial data refresh, since a dry run does not start one. A successful dry run does not guarantee that a real deployment or refresh will succeed. -
You can now deploy a model with dynamic-table outputs in Snowflake even when a source view reads another dynamic table. Source names containing
$or escaped quotes also work in this setup, and SQL text that only looks like a source reference stays unchanged. Source dynamic tables still refresh on their own schedules, which can delay updates in your model’s output. -
You can now create diagnostic ZIP files with
rai doctor reportin notebook environments where it previously failed withOSError: [Errno 95] Operation not supported. Without an active Streamlit app, the notebook helper now prints the ZIP’s location and file-browser guidance instead of offering a download button that does not appear. The full ZIP must fit in memory before it is saved. -
Diagnostic bundles from the RAI CLI now report plan-row counts correctly even with large or multiline CSV fields, include rules and inline data in local model history, and provide corrected troubleshooting instructions. Review bundles for sensitive information before sharing them: they now include more model data. Automatic redaction of selected settings remains enabled.
Security
Section titled “Security”- This update includes dependency updates related to recent security fixes. We recommend all users fully re-install
relationalaiin their environments to ensure its dependencies have all been updated.