github Azure/azure-sdk-for-python azure-ai-ml_1.35.0

7 hours ago

1.35.0 (2026-09-08)

Bugs Fixed

  • Simplified schedule validation errors so invalid local job paths report the relevant file error instead of errors from every supported job schema.
  • Fixed internal pipeline Command node dropping node-level interactive services (SSH, JupyterLab, TensorBoard, VS Code, etc.) during serialization, which prevented interactive endpoints from being created for Singularity jobs. The services are now serialized into the pipeline REST request and round-tripped on deserialization, matching the public Command node behavior.
  • Fixed MLClient.jobs.create_or_update, archive, and restore failing for previously-fetched jobs across all job types by routing metadata-only edits through the RunHistory PATCH endpoint.
  • Fixed DeploymentTemplate.creation_context always being None when retrieved via get() or list(). The created/modified timestamps and identity returned by the service (as createdTime / modifiedTime / createdBy) are now populated on creation_context, making DeploymentTemplate consistent with Model and Environment.
  • Fixed DeploymentTemplate.creation_context.last_modified_by always being None even after the service began returning the modifying identity. The service sends it as a flattened modifiedBy field (top-level for get(), nested under properties for list()) alongside a present-but-null lastModifiedBy; last_modified_by is now populated from modifiedBy, matching how created_by is read.
  • Fixed deployment_templates.list(name=...) raising AttributeError: 'str' object has no attribute 'request_timeout'. In the list response, requestSettings / livenessProbe / readinessProbe arrive as stringified dicts nested under properties; these are now parsed before conversion, giving list() parity with models.list() / environments.list().
  • Fixed deployment_templates.get(name) failing with a 404 (DeploymentTemplate {name}:latest not found) when no version was supplied, because the literal string "latest" was sent as the version. The latest version is now resolved client-side (the service exposes no latest label and no server-side ordering), and get() accepts a label keyword (label="latest" resolves to the latest version) mirroring models.get(). delete(name) resolves the latest version the same way.
  • Fixed models.get(name, label="latest") returning a Model whose default_deployment_template / allowed_deployment_templates references had asset_id=None. Label resolution goes through the version list endpoint (top=1), whose items omit the deployment-template references; for registry models the resolved version is now re-fetched through the get endpoint, so the label path hydrates these references identically to the explicit version= path.
  • Added MLClient.jobs.begin_delete(name) to delete a job.
  • Fixed loading a registered MLTable data asset via mltable.load("azureml://.../data/<name>/versions/<version>") failing with AttributeError: 'DataVersionEntity' object has no attribute 'additional_properties'. When the dataset_dataplane client was migrated to the TypeSpec (hybrid) model, DataVersionEntity stopped exposing the msrest additional_properties attribute that the mltable package reads (isV2 / legacyDataflow) on the local resolution path. The attribute is now restored as a compatibility shim returning the un-modeled wire keys, so the on-the-wire contract is unchanged.

Other Changes

  • Migrated SDK entities and their consumers off the per-version msrest REST clients onto the shared arm_ml_service hybrid client. This is an internal change; the on-the-wire request/response contract is unchanged.

Don't miss a new azure-sdk-for-python release

NewReleases is sending notifications on new releases.