The ClearML Python Package supports the [automatic logging](../fundamentals/logger.md#automatic-reporting) that documents
experiments for you, and an extensive set of powerful features and functionality you can use to improve experimentation
and other workflows.
:::tip Installation
For installation instructions, see [Getting Started](../getting_started/ds/ds_first_steps.md#install-clearml).
:::
The ClearML Python Package collects the scripts’ entire execution information, including:
* Git repository (branch, commit ID, and uncommitted changes)
* Working directory and entry point
* Hyperparameters
* Initial weights model, model snapshots (checkpoints), output model
* Artifacts, metrics, logs, other reported data (from libraries and visualization toolkits), and debug samples.
In conjunction with the ClearML Hosted Service (or self-hosted [ClearML Server](../deploying_clearml/clearml_server.md))
and [ClearML Agent](../clearml_agent.md), the ClearML Python Package allows you and your teammates to collaborate
programmatically and use the [ClearML Web UI](../webapp/webapp_overview.md).
## Classes and Modules
### Task
The `Task` class is the code template for all Task features and functionality including:
* Data collection and storage from scripts
* Automatic bindings with frameworks, libraries, and visualization tools
* A robust set of methods for Task execution (cloning, connecting parameter dictionaries, configurations, and models)
* and more!
See an [overview](task_sdk.md) of `Task`'s pythonic methods or the [Task SDK reference page](task_sdk.md).
### Model
The `model` module contains three classes that provide support for working with models in ClearML:
*`Model` - represents an existing model in ClearML that can be loaded and connected to a Task
*`InputModel` - represents an existing model that you can load into ClearML
*`OutputModel` - represents the experiment output model that is always connected to the Task
See an [overview](../clearml_sdk/model_sdk.md) of the Model classes' pythonic methods, or the SDK reference pages for [`Model`](../references/sdk/model_model.md),
[`InputModel`](../references/sdk/model_inputmodel.md), and [`OutputModel`](../references/sdk/model_outputmodel.md).
### Logger
The `Logger` class is the ClearML console log and metric statistics interface. The class contains methods for:
* Explicit reporting
* Setting an upload destination for debug sample storage
* Controlling ClearML's logging of TensorBoard and Matplotlib outputs
See the [Logger SDK reference page](../references/sdk/logger.md).
Use the ClearmlJob to create and manage jobs based on existing tasks. The class supports changing a job's parameters,
configurations, and other execution details.
See reference page [here](../references/sdk/automation_job_clearmljob.md).
### AutoScaler
The `AutoScaler` class facilitates implementing resource budgeting. See class methods [here](https://github.com/allegroai/clearml/blob/master/clearml/automation/auto_scaler.py).
ClearML also provides a class specifically for AWS autoscaling. See [code](https://github.com/allegroai/clearml/blob/master/clearml/automation/aws_auto_scaler.py#L22)
and [example script](https://github.com/allegroai/clearml/blob/master/examples/services/aws-autoscaler/aws_autoscaler.py).
### TaskScheduler
The `TaskScheduler` class supports methods for scheduling periodic execution (like cron jobs). See the [code](https://github.com/allegroai/clearml/blob/master/clearml/automation/scheduler.py#L481)
and [example](https://github.com/allegroai/clearml/blob/master/examples/scheduler/cron_example.py).
### TriggerScheduler
The `TriggerScheduler` class facilitates triggering task execution in the case that specific events occur in the system
(e.g. model publication, dataset creation, task failure). See [code](https://github.com/allegroai/clearml/blob/master/clearml/automation/trigger.py#L148)
and [usage example](https://github.com/allegroai/clearml/blob/master/examples/scheduler/trigger_example.py).
## Examples
The `clearml` GitHub repository includes an [examples folder](https://github.com/allegroai/clearml/tree/master/examples)
with example scripts demonstrating how to use the various functionalities of the ClearML SDK.