Metadata-Version: 2.4
Name: orca
Version: 1.9
Summary: Python library for task orchestration
Author-email: "UrbanSim Inc." <info@urbansim.com>
License-Expression: BSD-3-Clause
Project-URL: Documentation, https://udst.github.io/orca/
Project-URL: Repository, https://github.com/UDST/orca
Project-URL: Issues, https://github.com/UDST/orca/issues
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
Requires-Dist: numpy>=1.21
Requires-Dist: pandas<4,>=1.5
Requires-Dist: tables>=3.8
Requires-Dist: toolz>=0.12
Provides-Extra: test
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: pytest-cov>=5; extra == "test"
Provides-Extra: docs
Requires-Dist: sphinx>=7; extra == "docs"
Requires-Dist: sphinx_rtd_theme>=2; extra == "docs"
Requires-Dist: numpydoc>=1.6; extra == "docs"
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: ruff>=0.12; extra == "dev"
Requires-Dist: twine>=6; extra == "dev"
Dynamic: license-file

.. image:: https://github.com/UDST/orca/actions/workflows/ci.yml/badge.svg
  :target: https://github.com/UDST/orca/actions/workflows/ci.yml
  :alt: CI

Orca
====

Orca is a Python library for task orchestration. It's designed for workflows like city simulation, where the data representing a model's state is so large that it needs to be managed outside of the task graph.

The building blocks of a workflow are "steps", Python functions that can be assembled on the fly into linear or cyclical pipelines. Steps typically interact with a central data store that persists in memory while the pipeline runs. Derived tables and columns can be updated automatically as base data changes, and pipeline components are evaluated lazily to reduce unnecessary overhead.

Orca is used in `UrbanSim <https://github.com/udst/urbansim>`__ and other projects.

Project scope
-------------

**Status:** Active

**Mission:** Orca provides lightweight Python orchestration for data-intensive
analytical and simulation workflows.

**Architecture:** Orca's reference architecture targets dependency-managed
analytical computation within a Python process.

The project maintains and develops:

* registration and execution of workflow steps;
* managed tables, columns, and other injectable resources;
* dependency tracking and lazy evaluation;
* iterative and cyclical simulation pipelines;
* caching and lifecycle management within a Python process; and
* reusable APIs for composing model workflows.

Development that improves reliability, composability, performance, and
developer usability is welcome within this mission and architecture. Material
changes to the project's mission or execution architecture are considered
through UDST's organization-level governance process.

See the `UDST Project Directory
<https://github.com/UDST/.github/blob/main/PROJECTS.md>`__ for
organization-wide project status and policy.

Documentation
-------------

- `udst.github.io/orca/ <https://udst.github.io/orca/>`__

Installation
------------

- ``pip install orca``
- ``conda install orca --channel conda-forge``
