Metadata-Version: 2.4
Name: roboflow-workflows
Version: 0.1.0
Summary: Roboflow Workflows execution engine and block library
License: LICENSE.core (Apache 2.0) applies to all files in this repository
        except for files in or under any directory that contains a superseding
        license file (such as the models located in `inference/models/`
        which are governed by their own individual licenses and
        the files and folders in the `inference/enterprise/` and `inference_cli/lib/enterprise/` directories which are
        governed by the Roboflow Enterprise License located at
        `inference/enterprise/LICENSE.txt`).
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic<2.12.0,>=2.8.0
Requires-Dist: typing-extensions<=4.15.0,>=4.8.0
Requires-Dist: networkx<4.0.0,>=3.0.0
Requires-Dist: packaging~=24.0
Requires-Dist: numpy<2.4,>=1.26
Requires-Dist: supervision<0.30.0,>=0.29.0
Requires-Dist: opencv-python<4.13.0,>=4.8.1.78
Requires-Dist: opencv-contrib-python<4.13.0,>=4.8.1.78
Requires-Dist: pillow<13.0.0,>=12.3.0
Requires-Dist: shapely<2.1.0,>=2.0.4
Requires-Dist: scikit-image<=0.25.2,>=0.19.0
Requires-Dist: pycocotools<2.1.0,>=2.0.10
Requires-Dist: pybase64~=1.0.0
Requires-Dist: filelock<=4.0.0,>=3.20.3
Requires-Dist: requests<3.0.0,>=2.33.0
Requires-Dist: urllib3<3.0.0,>=2.7.0
Requires-Dist: torch<3.0.0,>=2.0.1
Requires-Dist: torchvision
Requires-Dist: inference-models>=0.37.1
Requires-Dist: inference-sdk>=1.6.0
Requires-Dist: msgpack
Requires-Dist: websocket-client~=1.9.0
Requires-Dist: openai<2.0.0,>=1.17.0
Requires-Dist: anthropic~=0.49.0
Requires-Dist: boto3<=1.41.5,>=1.40.0
Requires-Dist: botocore<=1.41.5,>=1.40.0
Requires-Dist: httpx~=0.28.1
Requires-Dist: requests-toolbelt~=1.0.0
Requires-Dist: pandas<3.0.0,>=2.2.3
Requires-Dist: matplotlib
Requires-Dist: qrcode~=8.0.0
Requires-Dist: zxing-cpp~=2.2.0
Requires-Dist: trackers~=2.4.0
Requires-Dist: onvif-zeep-async==2.0.0
Requires-Dist: zeep<5.0,>=4.0
Requires-Dist: simple-pid~=2.0.1
Requires-Dist: slack-sdk~=3.33.4
Requires-Dist: twilio~=9.3.7
Provides-Extra: enterprise
Requires-Dist: asyncua~=1.1.5; extra == "enterprise"
Requires-Dist: paho-mqtt~=1.6.1; extra == "enterprise"
Requires-Dist: pylogix==1.0.5; extra == "enterprise"
Requires-Dist: pymodbus<=3.8.3,>=3.6.9; extra == "enterprise"
Requires-Dist: psycopg[binary]<4,>=3.2; extra == "enterprise"
Requires-Dist: fastapi<0.129,>=0.100; extra == "enterprise"
Provides-Extra: test
Requires-Dist: pytest<10.0.0,>=9.0.3; extra == "test"
Requires-Dist: pytest-asyncio<=0.21.1; extra == "test"
Requires-Dist: pytest-timeout>=2.2.0; extra == "test"
Requires-Dist: requests-mock~=1.12.1; extra == "test"
Requires-Dist: aioresponses; extra == "test"
Dynamic: license-file

# roboflow-workflows

Roboflow Workflows execution engine and block library.

`roboflow-workflows` is the Python distribution for the Workflows engine that
powers [Roboflow Inference](https://github.com/roboflow/inference).  It can be
installed independently for use in standalone pipelines or embedded in the
full Inference server.

## Installation

```bash
pip install roboflow-workflows
```

Optional extras:

```bash
pip install "roboflow-workflows[enterprise]"  # enterprise sink blocks
pip install "roboflow-workflows[test]"        # test-only dependencies
```

## Local development (from this repository)

```bash
# Provision font assets (required by visualization blocks).
python workflows/build_scripts/download_fonts.py

# Install the package in editable mode with test + enterprise deps.
pip install -e './workflows[test,enterprise]'

# Run package unit and isolation tests.
cd workflows
python -m pytest tests/unit_tests tests/isolation

# Build a wheel from the same project directory (fonts already provisioned).
uv lock --check
uv build --out-dir ../dist
```

For editing `roboflow_workflows` source while running the full Inference
server, install both projects together from the repository root:

```bash
pip install -e ./inference_models -e './workflows[test,enterprise]' -e .
```

The dev images also support mounting `workflows/roboflow_workflows` at
`/app/roboflow_workflows`, alongside the existing `/app/inference` mount.
Provision local fonts first, since a bind mount replaces bundled image files.

## Font assets

Visualization blocks require pre-provisioned font files.  Font binaries are
downloaded by `workflows/build_scripts/download_fonts.py` (or
`make download_fonts` at the repository root) and are gitignored.  They are
embedded as package-data in the published wheel so that offline environments
work without a checkout.
