Skip to content

Python package and CLI 1.39.0

Deployment adds JSON impact reports.

How to install this version

Review the changes below before installing. To install this version, activate a compatible Python virtual environment and run:

Terminal window
python -m pip install "relationalai==1.39.0"

For the latest installation instructions, see Start building with PyRel.

  • Model deployment can now write an impact report as machine-readable JSON. To use JSON, run rai models:deploy with --plan --plan-format json. Markdown remains the default. Planning is unavailable for local and dry-run configurations. Model deployment is in Public Preview.

  • rai explore:schema now reads column metadata only from the Snowflake schema you select. Its --depth structure mode works without a running warehouse. If your scripts read its JSON output, handle the new columns_unavailable field.

  • Graph Reasoning algorithms in deployed models now return results instead of no rows or zero betweenness when ReasonerLogicLqpConfig.compiler is set to "direct". Graph Reasoning is in Public Preview.

  • PyRel queries now return correct results for several patterns, including aggregates that previously failed when run in your database.

  • PyRel aggregate queries with floating-point defaults such as 0.0 now keep groups with no matching rows in the result.

  • PyRel queries that select a related entity’s property with a fallback alongside the current entity’s ID now compile successfully.

  • Model deployment from a notebook now completes when the operation log that records model changes is enabled. If you interrupt a deployment, PyRel waits for any active plan to finish before it closes the client and propagates the interrupt.

  • When two first deployments start at the same time for one Snowflake schema, one now proceeds and the other reports that a deployment is in progress. Retry the second after the first finishes.

  • During the first refresh after deployment, PyRel now reports failed Snowflake tasks even if they did not write a refresh log. Checks run about once a minute, and Snowflake may retry a failed task.