Python SDK Changelog
3.3.0 (2026-06-29)
Features
get_model_run_outputtransparently waits for an output that is still being computed, polling until it is ready instead of failing fast.- Raises a clear error if the output is still computing after the poll timeout (default 300s).
- Exposes
Model.input_aggregations(list[InputAggregation]ofid,name,key).
3.2.0 (2026-06-19)
Features
ModelSummarynow includes a requiredrevisionfield.ModelGroupnow exposestimeHorizonand amodelslist (id,revision,createdAt).display_namevalues no longer include the.r<n>revision suffix; readrevisionfor the revision number.Model.summaryexposes the terse model summary;descriptionnow carries long-form markdown. After the migration,descriptionis an empty string for existing models until a long-form description is published; the previous terse text lives insummary.
3.0.0 (2026-05-21)
Features
- Internal network requests use the new API gateway. This is not a true breaking change, but
3.0.0will be the minimum version required in the future when the previous paths are deprecated. - The client now retries rate-limited responses, so bulk workloads self-throttle instead of failing on the first rate-limit response. A
max_retriesclient option (default 3) tunes or disables the behaviour; set it to0to manage retries yourself. - A new
RateLimitError(subclass ofApiError) is raised when retries are exhausted, with aretry_afterattribute carrying the server’s hint so you can back off without guessing.
2.2.0 (2026-04-29)
Features
- Multiple
Clientinstances in the same process now share one auth token resulting in less authorisation calls.
2.1.0 (2026-04-27)
Features
- Add
has_aggregation_errorstoModelRunnow so callers can detect runs whose input aggregations failed to process.
2.0.0 (2026-04-21)
Features
Model.noteschanged tostr | None(previouslystr) so you can branch when they’re absent. Note that this field is only populated for models authored by your organisation.- Add
description: strtoModeltype — exposes the new top-level model description from the API. - Breaking: Remove the high specificity
ModelMetadataPydantic class.model.model_metadatais nowdict[str, Any]and contains the arbitrary bag of metadata specific to the model. If you were previously reading this field, usemodel.model_metadata["<field>"], and remove anyfrom pd4castr_api_sdk.models import ModelMetadataimports.