Skip to main content

Ori is a high-level wrapper around Python’s concurrent.futures module, designed to make multithreading and multiprocessing as easy as possible.

Ori modules

The tools that Ori provides are divided into several modules.

ori.asyncio – Tools to integrate Python asyncio code into a synchronous codebase, and vice-versa.

ori.concurrency – Tools to run Python functions in the background using multithreading or multiprocessing.

ori.poolchain – A way to chain function calls for parallel processing over any list or other iterable.

ori.subprocess – Tools for running external commands as subprocesses and efficiently collecting the standard output and standard error.

Frequently Asked Questions (FAQs)

Who made Ori?

Ori was written by James Mishra and incubated at Neocrym, a record label that uses artificial intelligence to find and promote musicians. Neocrym heavily relies on Ori to make their I/O-bound Python code run faster.

The source code for Ori is owned by Neocrym Records Inc, but licensed to Ori under the MIT License.

Why should I use Ori over directly interfacing with concurrent.futures?

The Python module concurrent.futures was introduced as a high-level abstraction over lower-level interfaces like threading.Thread and multiprocessing.Process. However, concurrent.futures merely moves the problem away from managing threads or processes to managing executors. Ori has the ambitious goal of also abstracting away the executors–making multithreading or multiprocessing no harder than writing single-threaded code.

Is Ori a good replacement for Python’s asyncio?

For the hardcore asyncio user, probably not. Ori is focused on providing high-level abstractions over Python’s concurrent.futures module that provides speed boosts for synchronous, I/O-bound Python.

What do I need to know to contribute to Ori?

Ori manages itself with the Python packaging tool Poetry. You can install Poetry on your system with:

pip3 install poetry
poetry install

To check that your changes to Ori’s codebase match our coding standards, and to reformat any errant code to meet our standards, run this command:

poetry run make lint

To run Ori’s unit tests in the Python virtualenv created by Poetry, just run:

poetry run make test

We can also run tests across multiple versions of Python with Tox, but it requres your system has Docker and Docker Compose installed. If so, just run:

poetry run make tox

Where did the name “Ori” come from?

The name “Ori” is a reference to the god-like villains in the Stargate TV shows. There is no meaningful connection between the villains or concurrency.

Metadata

Release files for ori 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ori 0.1.2
File Size Uploaded
ori-0.1.2.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ori 0.1.2
File Interpreter ABI Platform
ori-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 21.5 kB

Release files / ori-0.1.2.tar.gz

Download URL ori-0.1.2.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
9e185255e67976192ebe86f18d7df17e88b1df57921e07399fd6d079aa08fae5
BLAKE2b-256 checksum
How to use checksums
8ed70d84301e7c9bbd28678998f2cb1fcc0807868117cdba519376b14c193c4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/3.8.5 Darwin/19.5.0

Release files / ori-0.1.2-py3-none-any.whl

Download URL ori-0.1.2-py3-none-any.whl
Size 10.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b3eb4c5a61205d32f404e76f97aedf384cd0bb910de0271cde659d7aa2d5904
BLAKE2b-256 checksum
How to use checksums
74fac72712a82e1ac2dd9af89edd0bed8be235c016d3f64e0cce62c4daf77c2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.0.5 CPython/3.8.5 Darwin/19.5.0

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page