orbitalsai


Nameorbitalsai JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/orbitalsai/orbitalsai-python-sdk
SummaryA simple and powerful Python SDK for the OrbitalsAI API
upload_time2025-10-22 13:54:56
maintainerNone
docs_urlNone
authorOrbitalsAI
requires_python>=3.8
licenseMIT
keywords ai transcription audio speech african languages srt subtitles
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # OrbitalsAI Python SDK

[![PyPI version](https://badge.fury.io/py/orbitalsai.svg)](https://badge.fury.io/py/orbitalsai)
[![Python Support](https://img.shields.io/pypi/pyversions/orbitalsai.svg)](https://pypi.org/project/orbitalsai/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A simple and powerful Python SDK for the OrbitalsAI API. Transcribe audio files in multiple African languages with optional SRT subtitle generation.

## ✨ Features

- 🚀 **Simple API** - Just 3 lines to transcribe audio
- 🔄 **Sync & Async** - Use synchronously or asynchronously
- 🌍 **African Languages** - Support for Hausa, Igbo, Yoruba, Swahili, and more
- 📝 **SRT Subtitles** - Generate subtitle files automatically
- 💰 **Balance Management** - Built-in billing and usage tracking
- 🔒 **Secure** - API key authentication
- 📦 **Easy Installation** - `pip install orbitalsai`

## 🚀 Quick Start

### Installation

```bash
pip install orbitalsai
```

### Basic Usage

```python
import orbitalsai

# Initialize client
client = orbitalsai.Client(api_key="your_api_key_here")

# Transcribe audio (waits automatically)
transcript = client.transcribe("audio.mp3")
print(transcript.text)
```

That's it! 🎉

## 📖 Table of Contents

- [Installation](#installation)
- [Quick Start](#quick-start)
- [Authentication](#authentication)
- [Basic Transcription](#basic-transcription)
- [Advanced Features](#advanced-features)
- [Async Usage](#async-usage)
- [Error Handling](#error-handling)
- [API Reference](#api-reference)
- [Supported Languages](#supported-languages)
- [Supported Formats](#supported-formats)
- [Troubleshooting](#troubleshooting)

## 🔑 Authentication

Get your API key from the [OrbitalsAI Dashboard](https://dashboard.orbitalsai.com).

```python
import orbitalsai

client = orbitalsai.Client(api_key="your_api_key_here")
```

## 🎵 Basic Transcription

### Simple Transcription

```python
import orbitalsai

client = orbitalsai.Client(api_key="your_api_key_here")

# Transcribe audio file
transcript = client.transcribe("audio.mp3")
print(transcript.text)
```

### With Language and SRT

```python
import orbitalsai

client = orbitalsai.Client(api_key="your_api_key_here")

# Transcribe in Hausa with SRT subtitles
transcript = client.transcribe(
    "audio.mp3",
    language="hausa",
    generate_srt=True
)

print(transcript.text)
print(transcript.srt_content)  # SRT subtitle content
```

### Don't Wait (Advanced)

```python
import orbitalsai

client = orbitalsai.Client(api_key="your_api_key_here")

# Start transcription without waiting
task = client.transcribe("audio.mp3", wait=False)
print(f"Task started: {task.task_id}")

# Check status later
status = client.get_task(task.task_id)
if status.status == "completed":
    print(status.result_text)

# Or wait for completion
transcript = client.wait_for_task(task.task_id)
print(transcript.text)
```

## 🔄 Async Usage

Perfect for processing multiple files or building web applications.

```python
import asyncio
import orbitalsai

async def main():
    async with orbitalsai.AsyncClient(api_key="your_api_key_here") as client:
        # Transcribe multiple files concurrently
        tasks = await asyncio.gather(
            client.transcribe("audio1.mp3"),
            client.transcribe("audio2.wav"),
            client.transcribe("audio3.m4a")
        )
        
        for transcript in tasks:
            print(transcript.text)

asyncio.run(main())
```

## 💰 Balance Management

### Check Balance

```python
import orbitalsai

client = orbitalsai.Client(api_key="your_api_key_here")

balance = client.get_balance()
print(f"Current balance: ${balance.balance:.2f}")
print(f"Last updated: {balance.last_updated}")
```

### Usage History

```python
import orbitalsai
from datetime import date, timedelta

client = orbitalsai.Client(api_key="QDOBQ2PJ.4ThV4fwk-27hpBvh8pYVvAdOOQlA4Lk1fJQdI6EL9Yk")

# Get last 7 days of usage
end_date = date.today()
start_date = end_date - timedelta(days=7)

usage = client.get_daily_usage(start_date=start_date, end_date=end_date)
print(f"Total cost: ${usage.total_cost:.2f}")
print(f"Total audio processed: {usage.total_audio_seconds:.1f} seconds")

for day in usage.daily_records:
    print(f"{day.date}: ${day.total_cost:.4f} ({day.transcription_usage:.1f}s transcription)")
```

## 🛠️ Advanced Features

### List All Tasks

```python
import orbitalsai

client = orbitalsai.Client(api_key="your_api_key_here")

tasks = client.list_tasks()
for task in tasks:
    print(f"Task {task.task_id}: {task.status} - {task.original_filename}")
```

### Get User Information

```python
import orbitalsai

client = orbitalsai.Client(api_key="your_api_key_here")

user = client.get_user()
print(f"User: {user.first_name} {user.last_name} ({user.email})")
print(f"Verified: {user.is_verified}")
```

## ⚠️ Error Handling

The SDK provides specific exceptions for different error scenarios.

```python
import orbitalsai
from orbitalsai.exceptions import (
    AuthenticationError, InsufficientBalanceError, 
    UnsupportedFileError, UnsupportedLanguageError,
    TranscriptionError, TimeoutError
)

client = orbitalsai.Client(api_key="your_api_key_here")

try:
    transcript = client.transcribe("audio.mp3", language="hausa")
    print(transcript.text)
    
except UnsupportedFileError:
    print("File format not supported")
except UnsupportedLanguageError:
    print("Language not supported")
except InsufficientBalanceError:
    print("Not enough credits")
except AuthenticationError:
    print("Invalid API key")
except TranscriptionError as e:
    print(f"Transcription failed: {e}")
except TimeoutError:
    print("Transcription timed out")
except Exception as e:
    print(f"Unexpected error: {e}")
```

## 📚 API Reference

### Client Methods

#### `transcribe(file_path, language="english", generate_srt=False, wait=True, timeout=300, poll_interval=5)`

Transcribe an audio file.

**Parameters:**
- `file_path` (str): Path to the audio file
- `language` (str): Language code (default: "english")
- `generate_srt` (bool): Generate SRT subtitles (default: False)
- `wait` (bool): Wait for completion (default: True)
- `timeout` (int): Maximum wait time in seconds (default: 300)
- `poll_interval` (int): Seconds between status checks (default: 5)

**Returns:** `Transcript` object (if wait=True) or `TranscriptTask` object (if wait=False)

#### `get_task(task_id)`

Get the status of a transcription task.

**Parameters:**
- `task_id` (int): ID of the task

**Returns:** `TranscriptTask` object

#### `wait_for_task(task_id, timeout=300, poll_interval=5)`

Wait for a task to complete.

**Parameters:**
- `task_id` (int): ID of the task
- `timeout` (int): Maximum wait time in seconds
- `poll_interval` (int): Seconds between status checks

**Returns:** `Transcript` object

#### `list_tasks()`

Get all transcription tasks for the current user.

**Returns:** List of `TranscriptTask` objects

#### `get_balance()`

Get the current user's balance.

**Returns:** `Balance` object

#### `get_usage_history(start_date=None, end_date=None, page=1, page_size=50)`

Get usage history for the current user.

**Returns:** `UsageHistory` object

#### `get_daily_usage(start_date=None, end_date=None, page=1, page_size=30)`

Get daily usage history for the current user.

**Returns:** `DailyUsage` object

#### `get_user()`

Get current user details.

**Returns:** `User` object

### Data Models

#### `Transcript`
- `text` (str): Transcribed text
- `srt_content` (str, optional): SRT subtitle content
- `task_id` (int): Task ID
- `original_filename` (str): Original filename
- `audio_url` (str, optional): URL to processed audio

#### `TranscriptTask`
- `task_id` (int): Task ID
- `status` (str): Task status ("pending", "processing", "completed", "failed")
- `original_filename` (str): Original filename
- `audio_url` (str, optional): URL to processed audio
- `srt_requested` (bool): Whether SRT was requested
- `result_text` (str, optional): Transcribed text
- `srt_content` (str, optional): SRT subtitle content
- `error` (str, optional): Error message if failed

#### `Balance`
- `balance` (float): Current balance in credits
- `last_updated` (datetime): Last update timestamp

## 🌍 Supported Languages

- **English** (`english`)
- **Hausa** (`hausa`)
- **Igbo** (`igbo`)
- **Yoruba** (`yoruba`)
- **Swahili** (`swahili`)
- **Pidgin** (`pidgin`)
- **Kinyarwanda** (`kinyarwanda`)

## 📁 Supported Formats

### Audio Formats
- WAV (`.wav`, `.wave`)
- MP3 (`.mp3`, `.mpeg`)
- OGG (`.ogg`, `.oga`)
- FLAC (`.flac`)
- AAC (`.aac`)
- M4A (`.m4a`)
- WMA (`.wma`)
- AMR (`.amr`)
- 3GP (`.3gp`)

### Maximum File Size
- **200 MB** per file

## 🔧 Troubleshooting

### Common Issues

**Q: I get "Invalid API key" error**
A: Make sure your API key is correct. Get it from the [OrbitalsAI Dashboard](https://dashboard.orbitalsai.com).

**Q: I get "Insufficient balance" error**
A: Add credits to your account through the dashboard.

**Q: I get "Unsupported file format" error**
A: Make sure your audio file is in a supported format (see [Supported Formats](#supported-formats)).

**Q: Transcription takes too long**
A: Large files take longer to process. You can increase the timeout:
```python
transcript = client.transcribe("large_file.mp3", timeout=600)  # 10 minutes
```

**Q: I get "Unsupported language" error**
A: Make sure you're using a supported language code (see [Supported Languages](#supported-languages)).

### Getting Help

- 📧 Email: support@orbitalsai.com
- 🐛 Issues: [GitHub Issues](https://github.com/orbitalsai/orbitalsai-python-sdk/issues)
- 📖 Docs: [Documentation](https://docs.orbitalsai.com)

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## 🙏 Acknowledgments

- Built for the African AI community
- Powered by OrbitalsAI

---

Made by the OrbitalsAI team

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/orbitalsai/orbitalsai-python-sdk",
    "name": "orbitalsai",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "OrbitalsAI <support@orbitalsai.com>",
    "keywords": "ai, transcription, audio, speech, african languages, srt, subtitles",
    "author": "OrbitalsAI",
    "author_email": "OrbitalsAI <support@orbitalsai.com>",
    "download_url": "https://files.pythonhosted.org/packages/5b/e2/e752bc5ff680e0e876adbc8dbe9523f940f550f02d9abee5c7f79fb40b8b/orbitalsai-1.0.0.tar.gz",
    "platform": null,
    "description": "# OrbitalsAI Python SDK\n\n[![PyPI version](https://badge.fury.io/py/orbitalsai.svg)](https://badge.fury.io/py/orbitalsai)\n[![Python Support](https://img.shields.io/pypi/pyversions/orbitalsai.svg)](https://pypi.org/project/orbitalsai/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nA simple and powerful Python SDK for the OrbitalsAI API. Transcribe audio files in multiple African languages with optional SRT subtitle generation.\n\n## \u2728 Features\n\n- \ud83d\ude80 **Simple API** - Just 3 lines to transcribe audio\n- \ud83d\udd04 **Sync & Async** - Use synchronously or asynchronously\n- \ud83c\udf0d **African Languages** - Support for Hausa, Igbo, Yoruba, Swahili, and more\n- \ud83d\udcdd **SRT Subtitles** - Generate subtitle files automatically\n- \ud83d\udcb0 **Balance Management** - Built-in billing and usage tracking\n- \ud83d\udd12 **Secure** - API key authentication\n- \ud83d\udce6 **Easy Installation** - `pip install orbitalsai`\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install orbitalsai\n```\n\n### Basic Usage\n\n```python\nimport orbitalsai\n\n# Initialize client\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\n# Transcribe audio (waits automatically)\ntranscript = client.transcribe(\"audio.mp3\")\nprint(transcript.text)\n```\n\nThat's it! \ud83c\udf89\n\n## \ud83d\udcd6 Table of Contents\n\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Authentication](#authentication)\n- [Basic Transcription](#basic-transcription)\n- [Advanced Features](#advanced-features)\n- [Async Usage](#async-usage)\n- [Error Handling](#error-handling)\n- [API Reference](#api-reference)\n- [Supported Languages](#supported-languages)\n- [Supported Formats](#supported-formats)\n- [Troubleshooting](#troubleshooting)\n\n## \ud83d\udd11 Authentication\n\nGet your API key from the [OrbitalsAI Dashboard](https://dashboard.orbitalsai.com).\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n```\n\n## \ud83c\udfb5 Basic Transcription\n\n### Simple Transcription\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\n# Transcribe audio file\ntranscript = client.transcribe(\"audio.mp3\")\nprint(transcript.text)\n```\n\n### With Language and SRT\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\n# Transcribe in Hausa with SRT subtitles\ntranscript = client.transcribe(\n    \"audio.mp3\",\n    language=\"hausa\",\n    generate_srt=True\n)\n\nprint(transcript.text)\nprint(transcript.srt_content)  # SRT subtitle content\n```\n\n### Don't Wait (Advanced)\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\n# Start transcription without waiting\ntask = client.transcribe(\"audio.mp3\", wait=False)\nprint(f\"Task started: {task.task_id}\")\n\n# Check status later\nstatus = client.get_task(task.task_id)\nif status.status == \"completed\":\n    print(status.result_text)\n\n# Or wait for completion\ntranscript = client.wait_for_task(task.task_id)\nprint(transcript.text)\n```\n\n## \ud83d\udd04 Async Usage\n\nPerfect for processing multiple files or building web applications.\n\n```python\nimport asyncio\nimport orbitalsai\n\nasync def main():\n    async with orbitalsai.AsyncClient(api_key=\"your_api_key_here\") as client:\n        # Transcribe multiple files concurrently\n        tasks = await asyncio.gather(\n            client.transcribe(\"audio1.mp3\"),\n            client.transcribe(\"audio2.wav\"),\n            client.transcribe(\"audio3.m4a\")\n        )\n        \n        for transcript in tasks:\n            print(transcript.text)\n\nasyncio.run(main())\n```\n\n## \ud83d\udcb0 Balance Management\n\n### Check Balance\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\nbalance = client.get_balance()\nprint(f\"Current balance: ${balance.balance:.2f}\")\nprint(f\"Last updated: {balance.last_updated}\")\n```\n\n### Usage History\n\n```python\nimport orbitalsai\nfrom datetime import date, timedelta\n\nclient = orbitalsai.Client(api_key=\"QDOBQ2PJ.4ThV4fwk-27hpBvh8pYVvAdOOQlA4Lk1fJQdI6EL9Yk\")\n\n# Get last 7 days of usage\nend_date = date.today()\nstart_date = end_date - timedelta(days=7)\n\nusage = client.get_daily_usage(start_date=start_date, end_date=end_date)\nprint(f\"Total cost: ${usage.total_cost:.2f}\")\nprint(f\"Total audio processed: {usage.total_audio_seconds:.1f} seconds\")\n\nfor day in usage.daily_records:\n    print(f\"{day.date}: ${day.total_cost:.4f} ({day.transcription_usage:.1f}s transcription)\")\n```\n\n## \ud83d\udee0\ufe0f Advanced Features\n\n### List All Tasks\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\ntasks = client.list_tasks()\nfor task in tasks:\n    print(f\"Task {task.task_id}: {task.status} - {task.original_filename}\")\n```\n\n### Get User Information\n\n```python\nimport orbitalsai\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\nuser = client.get_user()\nprint(f\"User: {user.first_name} {user.last_name} ({user.email})\")\nprint(f\"Verified: {user.is_verified}\")\n```\n\n## \u26a0\ufe0f Error Handling\n\nThe SDK provides specific exceptions for different error scenarios.\n\n```python\nimport orbitalsai\nfrom orbitalsai.exceptions import (\n    AuthenticationError, InsufficientBalanceError, \n    UnsupportedFileError, UnsupportedLanguageError,\n    TranscriptionError, TimeoutError\n)\n\nclient = orbitalsai.Client(api_key=\"your_api_key_here\")\n\ntry:\n    transcript = client.transcribe(\"audio.mp3\", language=\"hausa\")\n    print(transcript.text)\n    \nexcept UnsupportedFileError:\n    print(\"File format not supported\")\nexcept UnsupportedLanguageError:\n    print(\"Language not supported\")\nexcept InsufficientBalanceError:\n    print(\"Not enough credits\")\nexcept AuthenticationError:\n    print(\"Invalid API key\")\nexcept TranscriptionError as e:\n    print(f\"Transcription failed: {e}\")\nexcept TimeoutError:\n    print(\"Transcription timed out\")\nexcept Exception as e:\n    print(f\"Unexpected error: {e}\")\n```\n\n## \ud83d\udcda API Reference\n\n### Client Methods\n\n#### `transcribe(file_path, language=\"english\", generate_srt=False, wait=True, timeout=300, poll_interval=5)`\n\nTranscribe an audio file.\n\n**Parameters:**\n- `file_path` (str): Path to the audio file\n- `language` (str): Language code (default: \"english\")\n- `generate_srt` (bool): Generate SRT subtitles (default: False)\n- `wait` (bool): Wait for completion (default: True)\n- `timeout` (int): Maximum wait time in seconds (default: 300)\n- `poll_interval` (int): Seconds between status checks (default: 5)\n\n**Returns:** `Transcript` object (if wait=True) or `TranscriptTask` object (if wait=False)\n\n#### `get_task(task_id)`\n\nGet the status of a transcription task.\n\n**Parameters:**\n- `task_id` (int): ID of the task\n\n**Returns:** `TranscriptTask` object\n\n#### `wait_for_task(task_id, timeout=300, poll_interval=5)`\n\nWait for a task to complete.\n\n**Parameters:**\n- `task_id` (int): ID of the task\n- `timeout` (int): Maximum wait time in seconds\n- `poll_interval` (int): Seconds between status checks\n\n**Returns:** `Transcript` object\n\n#### `list_tasks()`\n\nGet all transcription tasks for the current user.\n\n**Returns:** List of `TranscriptTask` objects\n\n#### `get_balance()`\n\nGet the current user's balance.\n\n**Returns:** `Balance` object\n\n#### `get_usage_history(start_date=None, end_date=None, page=1, page_size=50)`\n\nGet usage history for the current user.\n\n**Returns:** `UsageHistory` object\n\n#### `get_daily_usage(start_date=None, end_date=None, page=1, page_size=30)`\n\nGet daily usage history for the current user.\n\n**Returns:** `DailyUsage` object\n\n#### `get_user()`\n\nGet current user details.\n\n**Returns:** `User` object\n\n### Data Models\n\n#### `Transcript`\n- `text` (str): Transcribed text\n- `srt_content` (str, optional): SRT subtitle content\n- `task_id` (int): Task ID\n- `original_filename` (str): Original filename\n- `audio_url` (str, optional): URL to processed audio\n\n#### `TranscriptTask`\n- `task_id` (int): Task ID\n- `status` (str): Task status (\"pending\", \"processing\", \"completed\", \"failed\")\n- `original_filename` (str): Original filename\n- `audio_url` (str, optional): URL to processed audio\n- `srt_requested` (bool): Whether SRT was requested\n- `result_text` (str, optional): Transcribed text\n- `srt_content` (str, optional): SRT subtitle content\n- `error` (str, optional): Error message if failed\n\n#### `Balance`\n- `balance` (float): Current balance in credits\n- `last_updated` (datetime): Last update timestamp\n\n## \ud83c\udf0d Supported Languages\n\n- **English** (`english`)\n- **Hausa** (`hausa`)\n- **Igbo** (`igbo`)\n- **Yoruba** (`yoruba`)\n- **Swahili** (`swahili`)\n- **Pidgin** (`pidgin`)\n- **Kinyarwanda** (`kinyarwanda`)\n\n## \ud83d\udcc1 Supported Formats\n\n### Audio Formats\n- WAV (`.wav`, `.wave`)\n- MP3 (`.mp3`, `.mpeg`)\n- OGG (`.ogg`, `.oga`)\n- FLAC (`.flac`)\n- AAC (`.aac`)\n- M4A (`.m4a`)\n- WMA (`.wma`)\n- AMR (`.amr`)\n- 3GP (`.3gp`)\n\n### Maximum File Size\n- **200 MB** per file\n\n## \ud83d\udd27 Troubleshooting\n\n### Common Issues\n\n**Q: I get \"Invalid API key\" error**\nA: Make sure your API key is correct. Get it from the [OrbitalsAI Dashboard](https://dashboard.orbitalsai.com).\n\n**Q: I get \"Insufficient balance\" error**\nA: Add credits to your account through the dashboard.\n\n**Q: I get \"Unsupported file format\" error**\nA: Make sure your audio file is in a supported format (see [Supported Formats](#supported-formats)).\n\n**Q: Transcription takes too long**\nA: Large files take longer to process. You can increase the timeout:\n```python\ntranscript = client.transcribe(\"large_file.mp3\", timeout=600)  # 10 minutes\n```\n\n**Q: I get \"Unsupported language\" error**\nA: Make sure you're using a supported language code (see [Supported Languages](#supported-languages)).\n\n### Getting Help\n\n- \ud83d\udce7 Email: support@orbitalsai.com\n- \ud83d\udc1b Issues: [GitHub Issues](https://github.com/orbitalsai/orbitalsai-python-sdk/issues)\n- \ud83d\udcd6 Docs: [Documentation](https://docs.orbitalsai.com)\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## \ud83d\ude4f Acknowledgments\n\n- Built for the African AI community\n- Powered by OrbitalsAI\n\n---\n\nMade by the OrbitalsAI team\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A simple and powerful Python SDK for the OrbitalsAI API",
    "version": "1.0.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/orbitalsai/orbitalsai-python-sdk/issues",
        "Documentation": "https://docs.orbitalsai.com",
        "Homepage": "https://github.com/orbitalsai/orbitalsai-python-sdk",
        "Repository": "https://github.com/orbitalsai/orbitalsai-python-sdk"
    },
    "split_keywords": [
        "ai",
        " transcription",
        " audio",
        " speech",
        " african languages",
        " srt",
        " subtitles"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b850cf3922d7d396ff405414c3a33884257ee9125bb8f884ada5a793412ae5f2",
                "md5": "68b5cdcfd71a7f9b35f4d81203a2de6a",
                "sha256": "adf5731964d82990b2021e157c893e838eff2dfaa837a5e5aac274230deed3bb"
            },
            "downloads": -1,
            "filename": "orbitalsai-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "68b5cdcfd71a7f9b35f4d81203a2de6a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 15894,
            "upload_time": "2025-10-22T13:54:55",
            "upload_time_iso_8601": "2025-10-22T13:54:55.078574Z",
            "url": "https://files.pythonhosted.org/packages/b8/50/cf3922d7d396ff405414c3a33884257ee9125bb8f884ada5a793412ae5f2/orbitalsai-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5be2e752bc5ff680e0e876adbc8dbe9523f940f550f02d9abee5c7f79fb40b8b",
                "md5": "a90b960a55e42145b7b9c0cf63f0b706",
                "sha256": "8cb5e7540e12e266d8e9b8ad9231c5ab95b425d567e8a5d9df7c7849879bdbde"
            },
            "downloads": -1,
            "filename": "orbitalsai-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a90b960a55e42145b7b9c0cf63f0b706",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 19233,
            "upload_time": "2025-10-22T13:54:56",
            "upload_time_iso_8601": "2025-10-22T13:54:56.703055Z",
            "url": "https://files.pythonhosted.org/packages/5b/e2/e752bc5ff680e0e876adbc8dbe9523f940f550f02d9abee5c7f79fb40b8b/orbitalsai-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-22 13:54:56",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "orbitalsai",
    "github_project": "orbitalsai-python-sdk",
    "github_not_found": true,
    "lcname": "orbitalsai"
}
        
Elapsed time: 1.73703s