Metadata-Version: 2.4
Name: tigrbl-concrete
Version: 0.1.0.dev5
Summary: Concrete implementations of Tigrbl base abstractions.
License-Expression: Apache-2.0
Keywords: tigrbl,sdk,standards,framework
Author: Jacob Stewart
Author-email: jacob@swarmauri.com
Requires-Python: >=3.10,<3.13
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Development Status :: 1 - Planning
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Dist: orjson
Requires-Dist: pydantic (>=2.0)
Requires-Dist: sqlalchemy
Requires-Dist: tigrbl-atoms
Requires-Dist: tigrbl-base
Requires-Dist: tigrbl-core
Requires-Dist: tigrbl-ops-oltp
Requires-Dist: tigrbl-runtime
Requires-Dist: tigrbl-typing
Requires-Dist: uvicorn
Description-Content-Type: text/markdown

![Tigrbl branding](https://github.com/swarmauri/swarmauri-sdk/blob/a170683ecda8ca1c4f912c966d4499649ffb8224/assets/tigrbl.brand.theme.svg)

# tigrbl-concrete

![PyPI - Downloads](https://img.shields.io/pypi/dm/tigrbl-concrete.svg) ![Hits](https://hits.sh/github.com/swarmauri/swarmauri-sdk.svg) ![Python Versions](https://img.shields.io/pypi/pyversions/tigrbl-concrete.svg) ![License](https://img.shields.io/pypi/l/tigrbl-concrete.svg) ![Version](https://img.shields.io/pypi/v/tigrbl-concrete.svg)

## Features

- Modular package in the Tigrbl namespace.
- Supports Python 3.10 through 3.12.
- Distributed as part of the swarmauri-sdk workspace.

## Installation

### uv

```bash
uv add tigrbl-concrete
```

### pip

```bash
pip install tigrbl-concrete
```

## Usage

Import from the shared package-specific module namespaces after installation in your environment.

### Runtime-visible operation metadata

Runtime-visible operations are defined by collected specs (`RouterSpec.collect(...)`,
`OpSpec.collect(...)`) and then installed through binding on the live graph.
Mounted routes are not backfilled into runtime metadata after the fact.

```python
from tigrbl_concrete import TigrblApp, TigrblRouter

app = TigrblApp()
router = TigrblRouter()

@router.get("/health")
def health_check():
    return {"ok": True}

# include_router(...) mounts already-bound operations
app.include_router(router, prefix="/api")
```

