This release is a pre-release and may not be stable for production use.
horos
End-to-end tooling for perception tasks: annotate → train → evaluate → deploy.
- Models are adapters behind
horos/backends/; nothing above that layer knows which architecture is underneath. - License metadata travels with every model, run, and export artifact.
- Target deployment platform is NVIDIA Jetson.
Install
The install scripts detect your platform (OS, NVIDIA GPU, Jetson) and install the
matching torch build plus horos into ./.venv:
# Ubuntu / macOS / Jetson
./install.sh
# Windows
install.bat
What they decide for you:
| Platform | torch source |
|---|---|
| Linux + NVIDIA GPU | PyPI (Linux wheels bundle CUDA) |
| Linux without GPU | PyTorch CPU index (saves ~2 GB) |
| macOS | PyPI universal build (MPS) |
| Windows + NVIDIA GPU | PyTorch index matching your CUDA (cu118/cu124/cu126) — the PyPI Windows wheel is CPU-only |
| Windows without GPU | PyPI (CPU) |
| Jetson | never installed by the script — see below |
Or simply:
pip install horos
horos doctor # verifies the environment; `horos doctor --fix` installs what's missing
pip install horos does the right thing per platform: on Linux/aarch64 (Jetson)
it deliberately skips rfdetr/torch so pip can never replace the CUDA JetPack
torch — horos doctor --fix completes the install there with the right sources.
Use a dedicated environment. horos pins rfdetr exactly (upstream has had
silent annotation-corruption bugs; reproducibility wins) and requires
transformers >= 5.1 — installing into a shared ML environment will upgrade
transformers, supervision, huggingface-hub and friends, which can break
other projects living in that environment. The install scripts create an
isolated ./.venv for exactly this reason.
Jetson (read this — it matters)
On Jetson, torch must come from NVIDIA's JetPack-matched wheel. The PyPI torch has
no CUDA support on Jetson, and a plain pip install horos may silently replace your
CUDA-enabled torch with a CPU-only build — everything still runs, just an order of
magnitude slower.
./install.sh handles this automatically on Jetson: it creates the venv with
--system-site-packages, verifies the existing torch has CUDA (warning loudly if
not), and installs horos with --no-deps so pip can never swap torch out.
Doing it by hand:
pip install horos --no-deps
pip install pydantic flask pyyaml pillow "transformers>=5.1,<6" supervision
# torch/torchvision: use the NVIDIA wheel matching your JetPack version
horos warns at backend load time if it detects a Jetson platform where
torch.cuda.is_available() is False.
Development
python -m venv .venv && . .venv/bin/activate
pip install -e . --no-deps
pip install pydantic flask pyyaml pillow pytest ruff
pytest tests/test_invariants.py && pytest
Metadata
Release files for horos 0.1.1.dev0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| horos-0.1.1.dev0.tar.gz | 85.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| horos-0.1.1.dev0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 186.7 kB
Release files / horos-0.1.1.dev0.tar.gz
| Download URL | horos-0.1.1.dev0.tar.gz |
|---|---|
| Size | 85.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
535fcae11f455c087d8c8a34e7675db780aa95539a916a454936e70c6e3af3be
|
|
BLAKE2b-256 checksum How to use checksums |
6b0d57c28de213c37a5789ef671bead0f2e8613e4a685a6c12bbf25107433ab6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.6
|
Release files / horos-0.1.1.dev0-py3-none-any.whl
| Download URL | horos-0.1.1.dev0-py3-none-any.whl |
|---|---|
| Size | 101.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b0ff667128a57a88c34ec5a28dabdbed4b462c7d66bfdc8129519e4d9e1138a5
|
|
BLAKE2b-256 checksum How to use checksums |
b04f7946382a9020df89db662da610224777e1f2e966282cdbc7ddec85ad5908
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.6
|