semvec/pypi-packages huggingface dataset:
gestell 1.4.1
The Official Gestell Python SDK
Requires Python: >=3

# Gestell Python SDK

![license](https://img.shields.io/badge/license-MIT-blue)
![python-version](https://img.shields.io/badge/python-3-blue)
![version](https://img.shields.io/badge/version-1.4.1-blue)
[![Coverage Status](https://coveralls.io/repos/github/Gestell-AI/python-sdk/badge.svg?branch=master)](https://coveralls.io/github/Gestell-AI/python-sdk?branch=master)
[![CircleCI](https://dl.circleci.com/status-badge/img/circleci/7sUmZuDYQ6cd8WbCiCCnfR/4vJwvhbzy5DseAhXZ59L2t/tree/master.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/circleci/7sUmZuDYQ6cd8WbCiCCnfR/4vJwvhbzy5DseAhXZ59L2t/tree/master)

A fully featured SDK with extensive code completion and typesystems for interacting with the Gestell Platform. Full featured support for Python 3.X. Uses asynchronous coroutines by design.

![Project Preview](https://github.com/Gestell-AI/python-sdk/blob/master/docs/preview.gif?raw=true)

## Quick Start

First, get an API Key from <https://platform.gestell.ai>. Then install `gestell`:

```bash
pip install gestell
```

Or...

```bash
uv add gestell
```

Second, load the API Key into your terminal session, or, pass it into the SDK:

```bash
# Load it into your terminal session
export GESTELL_API_KEY = "..."
```

Or load it directly in the client:

```python
from gestell import Gestell
gestell = Gestell(key='...', url='...', debug=True)
```

**Gestell will also read and load these environment variables from a `.env` file.**

Finally, start using the Gestell Platform SDK. The SDK can be used both on the client and server side. A public facing app should use it server side only due to the API Key being passed into the SDK and requests:

```python
import asyncio
from typing import List
from gestell import Gestell
from gestell.types import Collection


gestell = Gestell()


async def main():
    response = await gestell.collection.list()
    collections: List[Collection] = response.result
    print(collections)


if __name__ == "__main__":
    asyncio.run(main())
```

## Guide

You can review guides on common workflows and use cases for the Gestell Platform by going to <https://gestell.ai/docs>. There is a full guide to create, prompt, search and gather labels and tables at <https://gestell.ai/docs/guide>.

---

Review the [Contributing Guidelines](./docs/CONTRIBUTING.md) to see how to test and contribute features to the SDK.

Review the [CHANGELOG](./docs/CHANGELOG.md) to see updates and/or improvements to the SDK.
gpu-task-scheduler 0.4.0
A python lib to schedule deep learning tasks on available GPUs.
Requires Python: >=3.6

# GPU Task Scheduler

![](https://img.shields.io/pypi/pyversions/gpu_task_scheduler) ![](https://img.shields.io/pypi/v/gpu_task_scheduler) ![](https://img.shields.io/pypi/dm/gpu_task_scheduler) ![](https://img.shields.io/pypi/l/gpu_task_scheduler) ![](https://img.shields.io/github/stars/sangyx/gpu_task_scheduler?style=social)

A simple Python lib to schedule and execute deep learning tasks on available GPUs. It supports:

- Custom selection of GPUs.
- Maximum concurrency per GPU.
- Dynamic task dispatch using threading.

## 📦 Installation

```bash
pip install gpu_task_scheduler
```

## 🚀 Usage Example

```python
from gpu_task_scheduler import GPUTaskScheduler

tasks = [
    "python train_model.py --epochs 10",
    "bash run_simulation.sh",
    "python evaluate.py --model checkpoint.pth"
]

scheduler = GPUTaskScheduler(
    wait_interval=10,
    allowed_gpu_ids=[0, 1],
    max_tasks_per_gpu=2,
    min_memory=0.8
)
scheduler.run_tasks(tasks)
```

## ⚙️ Parameters

### `GPUTaskScheduler(wait_interval=30, allowed_gpu_ids=None, max_tasks_per_gpu=1, min_memory=0.8)`

| Parameter           | Type        | Default | Description |
|---------------------|-------------|---------|-------------|
| `wait_interval`     | `int`       | `30`    | Number of seconds to wait before checking again if no GPU is available. |
| `allowed_gpu_ids`   | `list[int]` | `None`  | List of GPU indices (e.g., `[0, 1]`) that the scheduler is allowed to use. If `None`, all GPUs are considered. |
| `max_tasks_per_gpu` | `int`       | `1`     | Maximum number of concurrent tasks allowed on a single GPU. Helps share GPU among multiple tasks. |
| `min_memory` | `int` or `float`       | `0.8`     | Minimum free memory (in MiB or as a ratio) required on a GPU to be considered available. |

## 🛠️ Requirements

- Python 3.6+
- `nvidia-smi` available in PATH (NVIDIA drivers installed)