> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fiddler.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Python Client SDK

> Fiddler's Python client history reference. Contains Python client release highlights, client deprecation notices, and more.

[![PyPI](https://img.shields.io/pypi/v/fiddler-client)](https://pypi.org/project/fiddler-client/)

## 3.12

<Update label="3.12.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * `Model.update()` now supports updating column schema properties (bins, min, max, categories) on existing models
      * Set custom histogram bins: `model.schema["column"].bins = [...]; model.update()`
      * Update value ranges: `model.schema["column"].min = value; model.update()`
      * Update categories: `model.schema["column"].categories = [...]; model.update()`
    * Added explicit `Model.publish_stream()` and `Model.publish_batch()` methods for publishing inference data
      * `publish_stream(events=...)` publishes streaming/live events (a list of event dicts)
      * `publish_batch(source=...)` publishes a batch from a Parquet/CSV file path or a pandas DataFrame
      * Both accept `update=True` to update previously published events

  * **Deprecations**
    * `Model.publish()` is deprecated and now emits a `DeprecationWarning`. Its implicit dispatch is replaced by the explicit `publish_stream()` (streaming events) and `publish_batch()` (batch files and DataFrames) methods. See [Publishing production data](/developers/client-library-reference/publishing-production-data).

  * **Dependencies & Python Support**
    * **Migrated to Pydantic v2** (`pydantic>=2.0`, previously `pydantic>=1.10`). Environments pinned to Pydantic v1 must upgrade to v2.
    * Added support for **Python 3.13 and 3.14** (enabled by the Pydantic v2 migration).
    * Bumped `pandas>=2.1.0` (previously `>=1.2.5`) and `pyarrow>=17.0.0` (previously `>=15.0.0`); `pip` is no longer a runtime dependency.
</Update>

## 3.11

<Update label="3.11.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Added `Model.add_column()` method to dynamically add columns to existing model schemas after initial onboarding. Supports adding input features, outputs, targets, and metadata columns.
      * **Parameters**:
        * `column` (Column): The column definition to add to the model
        * `column_type` (str): Type of column - one of 'inputs', 'outputs', 'targets', or 'metadata' (default)
      * **Important**: New columns have null values for historical events; future events must include the new column
      * **Validation**: Prevents duplicate column names (raises ValueError)
</Update>

<Update label="3.10.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Added a helper function `create_columns_from_df` to create a `ModelSchema` from a pandas `Dataframe`.
</Update>

<Update label="3.9.2" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Added ability to specify `auto_threshold_params` while creating/updating alert rules.
</Update>

<Update label="3.9.1" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * Updated minimum required version of pyarrow from 'pyarrow>=7.0.0' to 'pyarrow>=15.0.0' to address potential security issues from CVE-2025-30065.
</Update>

<Update label="3.9.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Added the ability to create and use Microsoft Teams Webhooks.
</Update>

<Update label="3.8.3" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Bug Fixes**
    * Fixed pydantic validation error for `Webhook` object.
</Update>

<Update label="3.8.2" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * Improved log message for timeout failure on how timeout can be increased.
</Update>

<Update label="3.8.1" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Bug Fixes**
    * Added missing support for specifying `category` while creating Alert Rule.
</Update>

<Update label="3.8.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Added a new `update` method to the `AlertRule` object, allowing updates to the following fields: `warning_threshold`, `critical_threshold`, and `evaluation_delay`.
    * Added ability to create alert rules with Fiddler-determined automatic thresholds.
  * **Modifications**
    * **Project Deletion Uses v3 API**:
      * `project.delete()` now utilizes the v3 API for deleting projects.
      * The method signature remains unchanged.
</Update>

<Update label="3.7.1" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * **Connection Timeout Settings**: You can now configure network timeout settings when [initializing](/developers/python-client-guides/installation-and-setup) the Python client. The new timeout parameter in init() accepts:
      * A single number (in seconds) to set the connection timeout
      * A tuple of two numbers (in seconds) to set both connection and read timeouts separately
</Update>

<Update label="3.7.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  Release highlights:

  * **Robustness via retrying**: this release introduces a persistent HTTP request retrying strategy to enhance fault tolerance in view of transient network problems and retryable HTTP request errors. You can take control of the maximum duration for which an HTTP request is retried by setting the environment variable `FIDDLER_CLIENT_RETRY_MAX_DURATION_SECONDS`.
  * **AWS SageMaker authentication support**: to enable that, install version 2.236.0+ of the [AWS Python SageMaker SDK](https://pypi.org/project/sagemaker/). Then, before calling `init()`, set the environment variable `AWS_PARTNER_APP_AUTH` to `true` and set `AWS_PARTNER_APP_ARN`/`AWS_PARTNER_APP_URL` to meaningful values.
  * **Logging improvements**: messages are now emitted to `stderr` instead of `stdout`. Only if the calling context does not configure a root logger this library will actively declare a handler for its own log messages (this automation can be disabled by setting `auto_attach_log_handler=False` during `init()`).

  Compatibility changes:

  * Pydantic 2.x is now supported (and compatibility with Pydantic 1.x has been retained).
  * Support for Python 3.8 has been dropped.

  API surface additions:

  * Introduced `Project.get_or_create()` to reduce code required for instantiating a project.
  * Introduced `model.remove_column()` to allow for removing a column from a model object.

  Fixes:

  * A transient error during a job status update does not prematurely terminate waiting for a job anymore.
  * GET requests do not contain the `Content-Type` header anymore.
</Update>

<Update label="3.6.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Removed**
    * The `get_slice` and `download_slice` methods are removed. Please use `download_data` to retrieve some data.
    * The `get_mutual_info` method is removed.
    * The `SqlSliceQueryDataSource` option is removed from explain, feature impact and importance. Please use the `DatasetDataSource` instead or the UI.
</Update>

<Update label="3.5.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * New `download_data` method, to download a slice of data given an environment, time range and segment. Resulted file can be downloaded either as a CSV or a Parquet file.
</Update>

<Update label="3.4.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Removed**
    * The `get_fairness` method is removed. Please use charts and custom metrics to track / compute fairness metrics on your model.
</Update>

<Update label="3.3.2" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * Fixed the error while setting notification config for alert rule.
</Update>

<Update label="3.3.1" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * Added validation while adding notifications to alert rules.
    * Upgraded dependencies to resolve known vulnerabilities - deepdiff, mypy, pytest, pytest-mock, python-decouple, types-requests and types-simplejson.
</Update>

<Update label="3.3.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Introduced `upload_feature_impact()` method to upload or update feature impact manually.
</Update>

<Update label="3.2.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Introduced evaluation delay in Alerts Rule.
      * Optional `evaluation_delay` parameter added to `AlertRule.__init__` method.
      * It is used to introduce a delay in the evaluation of the alert.
  * **Modifications**
    * Fix windows file permission error bug with publish method.
</Update>

<Update label="3.1.2" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * Adds support to get schema of Column object by `fdl.Column`
</Update>

<Update label="3.1.1" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * Updated `pydantic` and `typing-extensions` dependencies to support Python 3.12.
</Update>

<Update label="3.1.0" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Introduced the native support for model versions.
      * Optional `version` parameter added to `Model`, `Model.from_data`, `Model.from_name` methods.
      * New `duplicate()` method to seamlessly create new version from existing model.
      * Optional `name` parameter added to `Model.list` to offer the ability to list all the versions of a model.
</Update>

<Update label="3.0.5" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Allowed usage of `group_by()` to form the grouped data for ranking models.
</Update>

<Update label="3.0.4" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * Return Job in ModelDeployment update.
</Update>

<Update label="3.0.3" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * Added `Webhook.from_name()`
  * **Modifications**
    * Import path fix for packtools.
</Update>

<Update label="3.0.2" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **Modifications**
    * Fix pydantic issue with typing-extensions versions > 4.5.0
</Update>

<Update label="3.0.1" description="Python Client SDK" tags={["Python Client SDK"]}>
  * **New Features**
    * General
      * Moving all functions of client to an Object oriented approach
      * Methods return resource object or a deserialized object wherever possible.
      * Support to search model, project, dataset, baselines by their names using `from_name()` method.
      * List methods will return iterator which handles pagination internally.
    * Data
      * Concept of environments was introduced.
      * Ability to download slice data to a parquet file.
      * Publish dataframe as stream instead of batch.
      * New methods for baselines.
      * Multiple datasets can be added to a single model. Ability to choose which dataset to use for computing feature impact / importance, surrogate generation etc.
      * Model can be added without dataset.
      * Ability to generate schema for a model.
      * Model delete is async and returns job details.
      * Added cached properties for `model`: `datasets`, `model_deployment`.
    * Alerts
      * New methods for alerts: `enable_notification`, `disable_notification`, `set_notification_config` and `get_notification_config`.
    * Explainability
      * New methods in explainability: `precompute_feature_impact`, `precompute_feature_importance`, `get_precomputed_feature_importance`, `get_precomputed_feature_impact`, `precompute_predictions`.
      * Decoupled model artifact / surrogate upload and feature impact / importance pre-computation.
  * **Modifications**
    * All IDs will be UUIDs instead of strings
    * Dataset delete is not allowed anymore
</Update>
