frameio-kit


Nameframeio-kit JSON
Version 0.0.3 PyPI version JSON
download
home_pageNone
SummaryA Python framework for building Frame.io apps
upload_time2025-10-07 03:32:35
maintainerNone
docs_urlNone
authorNone
requires_python>=3.13
licenseNone
keywords frameio frame-io frame.io video collaboration sdk api client integration webhook webhooks custom-actions asgi starlette async asyncio automation workflow media events
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # frameio-kit: Build Powerful Frame.io Integrations in Minutes

**frameio-kit** is the fastest way to build robust, scalable integrations with Frame.io. Stop wrestling with webhook signatures, API authentication, and event parsing โ€“ focus on what makes your integration unique.

```python
import os
import uvicorn
from frameio_kit import App, WebhookEvent, ActionEvent, Message

app = App()

@app.on_webhook("file.ready", secret=os.environ["WEBHOOK_SECRET"])
async def on_file_ready(event: WebhookEvent):
    print(f"File {event.resource_id} is ready!")

@app.on_action("my_app.analyze", "Analyze File", "Analyze this file", os.environ["ACTION_SECRET"])
async def analyze_file(event: ActionEvent):
    return Message(title="Analysis Complete", description="File analyzed successfully!")

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=8000)
```

## ๐Ÿš€ Quick Start

Ready to build your first Frame.io integration? Check out our comprehensive documentation:

- **[๐Ÿ“– Getting Started Guide](https://billyshambrook.github.io/frameio-kit/usage/getting_started/)** - Get up and running in 5 minutes
- **[๐ŸŽฃ Webhooks](https://billyshambrook.github.io/frameio-kit/usage/webhooks/)** - React to Frame.io events automatically  
- **[๐ŸŽฌ Custom Actions](https://billyshambrook.github.io/frameio-kit/usage/custom_actions/)** - Build interactive user experiences
- **[๐ŸŒ Client API](https://billyshambrook.github.io/frameio-kit/usage/client_api/)** - Make calls back to Frame.io's API
- **[๐Ÿ”„ Middleware](https://billyshambrook.github.io/frameio-kit/usage/middleware/)** - Add cross-cutting concerns to your integration

## โœจ Why frameio-kit?

- **Async-first architecture** - Handle thousands of concurrent webhooks without breaking a sweat
- **Decorator-based routing** - `@app.on_webhook` and `@app.on_action` make event handling trivial
- **Automatic validation** - Pydantic models give you full type safety and editor support
- **Secure by default** - Built-in signature verification for all requests
- **Zero boilerplate** - No manual JSON parsing or signature verification

## ๐Ÿ“ฆ Installation

We recommend using [uv](https://docs.astral.sh/uv/) for fast, reliable installs:

```bash
uv add frameio-kit
```

Or with pip:
```bash
pip install frameio-kit
```

## ๐Ÿ“š Documentation

Complete documentation is available at [billyshambrook.github.io/frameio-kit](https://billyshambrook.github.io/frameio-kit/), including:

## ๐Ÿค Contributing

Contributions are the heart of open source! We welcome improvements, bug fixes, and new features. Whether you're fixing a typo or adding a major feature, every contribution makes frameio-kit better.

### ๐Ÿ“‹ Prerequisites

- Python 3.13+
- [uv](https://docs.astral.sh/uv/) package manager

### ๐Ÿš€ Quick Start

1. **Fork and clone** the repository:
   ```bash
   git clone https://github.com/billyshambrook/frameio-kit.git
   cd frameio-kit
   ```

2. **Set up the development environment**:
   ```bash
   uv sync
   source .venv/bin/activate  # or activate via your IDE
   ```

3. **Install pre-commit hooks**:
   ```bash
   uv run pre-commit install
   ```

### ๐Ÿงช Development Workflow

**Run tests:**
```bash
uv run pytest
```

**Run code quality checks:**
```bash
uv run pre-commit run --all-files
```

**Build documentation:**
```bash
uv run mkdocs serve
```

### ๐Ÿ”„ Pull Request Process

1. **Fork** the repository on GitHub
2. **Create** a feature branch from `main`
3. **Make** your changes with tests and documentation
4. **Ensure** all tests and pre-commit hooks pass
5. **Commit** your changes with a clear message
6. **Push** to your fork and open a pull request

### ๐Ÿ’ก Getting Help

- **Questions?** Open a [discussion](https://github.com/billyshambrook/frameio-kit/discussions)
- **Bug reports?** Open an [issue](https://github.com/billyshambrook/frameio-kit/issues)
- **Feature requests?** Start with a discussion first!

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "frameio-kit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.13",
    "maintainer_email": null,
    "keywords": "frameio, frame-io, frame.io, video, collaboration, sdk, api, client, integration, webhook, webhooks, custom-actions, asgi, starlette, async, asyncio, automation, workflow, media, events",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/ee/0c/8476c2fc3668bd5d9e721703dc21e66617a9ed575597f5073d602cd037ff/frameio_kit-0.0.3.tar.gz",
    "platform": null,
    "description": "# frameio-kit: Build Powerful Frame.io Integrations in Minutes\n\n**frameio-kit** is the fastest way to build robust, scalable integrations with Frame.io. Stop wrestling with webhook signatures, API authentication, and event parsing \u2013 focus on what makes your integration unique.\n\n```python\nimport os\nimport uvicorn\nfrom frameio_kit import App, WebhookEvent, ActionEvent, Message\n\napp = App()\n\n@app.on_webhook(\"file.ready\", secret=os.environ[\"WEBHOOK_SECRET\"])\nasync def on_file_ready(event: WebhookEvent):\n    print(f\"File {event.resource_id} is ready!\")\n\n@app.on_action(\"my_app.analyze\", \"Analyze File\", \"Analyze this file\", os.environ[\"ACTION_SECRET\"])\nasync def analyze_file(event: ActionEvent):\n    return Message(title=\"Analysis Complete\", description=\"File analyzed successfully!\")\n\nif __name__ == \"__main__\":\n    uvicorn.run(app, host=\"0.0.0.0\", port=8000)\n```\n\n## \ud83d\ude80 Quick Start\n\nReady to build your first Frame.io integration? Check out our comprehensive documentation:\n\n- **[\ud83d\udcd6 Getting Started Guide](https://billyshambrook.github.io/frameio-kit/usage/getting_started/)** - Get up and running in 5 minutes\n- **[\ud83c\udfa3 Webhooks](https://billyshambrook.github.io/frameio-kit/usage/webhooks/)** - React to Frame.io events automatically  \n- **[\ud83c\udfac Custom Actions](https://billyshambrook.github.io/frameio-kit/usage/custom_actions/)** - Build interactive user experiences\n- **[\ud83c\udf10 Client API](https://billyshambrook.github.io/frameio-kit/usage/client_api/)** - Make calls back to Frame.io's API\n- **[\ud83d\udd04 Middleware](https://billyshambrook.github.io/frameio-kit/usage/middleware/)** - Add cross-cutting concerns to your integration\n\n## \u2728 Why frameio-kit?\n\n- **Async-first architecture** - Handle thousands of concurrent webhooks without breaking a sweat\n- **Decorator-based routing** - `@app.on_webhook` and `@app.on_action` make event handling trivial\n- **Automatic validation** - Pydantic models give you full type safety and editor support\n- **Secure by default** - Built-in signature verification for all requests\n- **Zero boilerplate** - No manual JSON parsing or signature verification\n\n## \ud83d\udce6 Installation\n\nWe recommend using [uv](https://docs.astral.sh/uv/) for fast, reliable installs:\n\n```bash\nuv add frameio-kit\n```\n\nOr with pip:\n```bash\npip install frameio-kit\n```\n\n## \ud83d\udcda Documentation\n\nComplete documentation is available at [billyshambrook.github.io/frameio-kit](https://billyshambrook.github.io/frameio-kit/), including:\n\n## \ud83e\udd1d Contributing\n\nContributions are the heart of open source! We welcome improvements, bug fixes, and new features. Whether you're fixing a typo or adding a major feature, every contribution makes frameio-kit better.\n\n### \ud83d\udccb Prerequisites\n\n- Python 3.13+\n- [uv](https://docs.astral.sh/uv/) package manager\n\n### \ud83d\ude80 Quick Start\n\n1. **Fork and clone** the repository:\n   ```bash\n   git clone https://github.com/billyshambrook/frameio-kit.git\n   cd frameio-kit\n   ```\n\n2. **Set up the development environment**:\n   ```bash\n   uv sync\n   source .venv/bin/activate  # or activate via your IDE\n   ```\n\n3. **Install pre-commit hooks**:\n   ```bash\n   uv run pre-commit install\n   ```\n\n### \ud83e\uddea Development Workflow\n\n**Run tests:**\n```bash\nuv run pytest\n```\n\n**Run code quality checks:**\n```bash\nuv run pre-commit run --all-files\n```\n\n**Build documentation:**\n```bash\nuv run mkdocs serve\n```\n\n### \ud83d\udd04 Pull Request Process\n\n1. **Fork** the repository on GitHub\n2. **Create** a feature branch from `main`\n3. **Make** your changes with tests and documentation\n4. **Ensure** all tests and pre-commit hooks pass\n5. **Commit** your changes with a clear message\n6. **Push** to your fork and open a pull request\n\n### \ud83d\udca1 Getting Help\n\n- **Questions?** Open a [discussion](https://github.com/billyshambrook/frameio-kit/discussions)\n- **Bug reports?** Open an [issue](https://github.com/billyshambrook/frameio-kit/issues)\n- **Feature requests?** Start with a discussion first!\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Python framework for building Frame.io apps",
    "version": "0.0.3",
    "project_urls": {
        "Changelog": "https://github.com/billyshambrook/frameio-kit/releases",
        "Discussions": "https://github.com/billyshambrook/frameio-kit/discussions",
        "Documentation": "https://billyshambrook.github.io/frameio-kit/",
        "Homepage": "https://billyshambrook.github.io/frameio-kit/",
        "Issues": "https://github.com/billyshambrook/frameio-kit/issues",
        "Repository": "https://github.com/billyshambrook/frameio-kit"
    },
    "split_keywords": [
        "frameio",
        " frame-io",
        " frame.io",
        " video",
        " collaboration",
        " sdk",
        " api",
        " client",
        " integration",
        " webhook",
        " webhooks",
        " custom-actions",
        " asgi",
        " starlette",
        " async",
        " asyncio",
        " automation",
        " workflow",
        " media",
        " events"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e6267b6a888f0383cb56d15daa683a29d230b4951bb3f8938f820bda2cad3051",
                "md5": "c9cfc506d30ee5091b515ce84a6502ee",
                "sha256": "eaac04eded29c2ba332abfa350d7bd55a75957865ae4459f1655c97e01353874"
            },
            "downloads": -1,
            "filename": "frameio_kit-0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c9cfc506d30ee5091b515ce84a6502ee",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.13",
            "size": 15886,
            "upload_time": "2025-10-07T03:32:34",
            "upload_time_iso_8601": "2025-10-07T03:32:34.520982Z",
            "url": "https://files.pythonhosted.org/packages/e6/26/7b6a888f0383cb56d15daa683a29d230b4951bb3f8938f820bda2cad3051/frameio_kit-0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ee0c8476c2fc3668bd5d9e721703dc21e66617a9ed575597f5073d602cd037ff",
                "md5": "d4be2e7ebe6653e8434d82000770f169",
                "sha256": "765bfa360ef8ba405055a09eb2008ad8b2b54c1dea8901a71d6857ce92998169"
            },
            "downloads": -1,
            "filename": "frameio_kit-0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "d4be2e7ebe6653e8434d82000770f169",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.13",
            "size": 12726,
            "upload_time": "2025-10-07T03:32:35",
            "upload_time_iso_8601": "2025-10-07T03:32:35.566846Z",
            "url": "https://files.pythonhosted.org/packages/ee/0c/8476c2fc3668bd5d9e721703dc21e66617a9ed575597f5073d602cd037ff/frameio_kit-0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-07 03:32:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "billyshambrook",
    "github_project": "frameio-kit",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "frameio-kit"
}
        
Elapsed time: 1.01037s