Project

Project

Represents a project container for organizing ML models and resources.

A Project is the top-level organizational unit in Fiddler that groups related machine learning models, datasets, and monitoring configurations. Projects provide logical separation, access control, and resource management for ML monitoring workflows.

Key Features:

  • Model Organization: Container for related ML models and their versions

  • Resource Isolation: Separate namespaces prevent naming conflicts

  • Access Management: Project-level permissions and access control

  • Monitoring Coordination: Centralized monitoring and alerting configuration

  • Lifecycle Management: Coordinated creation, updates, and deletion of resources

Project Lifecycle:

  1. Creation: Create project with unique name within organization

  2. Model Addition: Add models using Model.create() or Model.from_data()

  3. Configuration: Set up monitoring, alerts, and baseline comparisons

  4. Operations: Publish data, monitor performance, manage alerts

  5. Maintenance: Update configurations, add new model versions

  6. Cleanup: Delete project when no longer needed (removes all contained resources)

Parameters

name (str)

Example

Projects are permanent containers - once created, the name cannot be changed. Deleting a project removes all contained models, datasets, and configurations. Consider the organizational structure carefully before creating projects.

Initialize a Project instance.

Creates a new Project object with the specified name. The project is not created on the Fiddler platform until .create() is called.

Parameters

Parameter
Type
Required
Default
Description

name

str

None

Project name, must be unique within the organization. Should follow slug-like naming conventions: Use lowercase letters, numbers, hyphens, and underscores; Start with a letter or number; Be descriptive of the project’s purpose; Examples: “fraud-detection”, “churn_prediction_2024”, “nlp-models”

Example

The project exists only locally until .create() is called. Project names cannot be changed after creation, so choose descriptive, permanent names. Consider your organization’s naming conventions and project structure.

classmethod get(id_)

Retrieve a project by its unique identifier.

Fetches a project from the Fiddler platform using its UUID. This is the most direct way to retrieve a project when you know its ID.

Parameters

  • id – The unique identifier (UUID) of the project to retrieve. Can be provided as a UUID object or string representation.

  • id_ (UUID | str)

Returns

The project instance with all metadata and configuration.

Return type: Project

Raises

  • NotFound – If no project exists with the specified ID.

  • ApiError – If there’s an error communicating with the Fiddler API.

Example

This method makes an API call to fetch the latest project state from the server. The returned project instance reflects the current state in Fiddler.

classmethod from_name(name)

Retrieve a project by name.

Finds and returns a project using its name within the organization. This is useful when you know the project name but not its UUID. Project names are unique within an organization, making this a reliable lookup method.

Parameters

Parameter
Type
Required
Default
Description

name

str

None

The name of the project to retrieve. Project names are unique within an organization and are case-sensitive.

Returns

The project instance matching the specified name.

Return type: Project

Raises

  • NotFound – If no project exists with the specified name in the organization.

  • ApiError – If there’s an error communicating with the Fiddler API.

Example

Project names are case-sensitive and must match exactly. Use this method when you have a known project name from configuration or user input.

classmethod list()

List all projects in the organization.

Retrieves all projects that the current user has access to within the organization. Returns an iterator for memory efficiency when dealing with many projects.

Yields

Project – Project instances for all accessible projects.

Raises

ApiError – If there’s an error communicating with the Fiddler API. Return type: Iterator[Project]

Example

This method returns an iterator for memory efficiency. Convert to a list with list(Project.list()) if you need to iterate multiple times or get the total count. The iterator fetches projects lazily from the API.

create()

Create the project on the Fiddler platform.

Persists this project instance to the Fiddler platform, making it available for adding models, configuring monitoring, and other operations. The project must have a unique name within the organization.

Returns

This project instance, updated with server-assigned fields like : ID, creation timestamp, and other metadata.

Return type: Project

Raises

  • Conflict – If a project with the same name already exists in the organization.

  • ValidationError – If the project configuration is invalid (e.g., invalid name format).

  • ApiError – If there’s an error communicating with the Fiddler API.

Example

After successful creation, the project instance is updated in-place with server-assigned metadata. The same instance can be used for subsequent operations without needing to fetch it again.

classmethod get_or_create(name)

Get an existing project by name or create a new one if it doesn’t exist.

This is a convenience method that attempts to retrieve a project by name, and if not found, creates a new project with that name. Useful for idempotent project setup in automation scripts and deployment pipelines.

Parameters

Parameter
Type
Required
Default
Description

name

str

None

The name of the project to retrieve or create. Must follow project naming conventions (slug-like format).

Returns

Either the existing project with the specified name, : or a newly created project if none existed.

Return type: Project

Raises

  • ValidationError – If the project name format is invalid.

  • ApiError – If there’s an error communicating with the Fiddler API.

Example

This method is idempotent - calling it multiple times with the same name will return the same project. It logs when creating a new project for visibility in automation scenarios.

delete()

Delete the project and all its contained resources.

Permanently removes the project from the Fiddler platform, including all associated models, datasets, baselines, alerts, and monitoring configurations. This operation cannot be undone.

Raises

  • NotFound – If the project doesn’t exist or has already been deleted.

  • ApiError – If there’s an error communicating with the Fiddler API.

  • PermissionError – If the user doesn’t have permission to delete the project. Return type: None

Example

Requires Fiddler platform version 25.2.0 or higher. Consider exporting important data or configurations before deletion. There is no recovery mechanism once a project is deleted.

property models : Iterator[ModelCompact]

Fetch all the models of this project.

Yields

ModelCompact – Lightweight model objects for this project.

Last updated

Was this helpful?