Skip to main content

Concurrency tools for Python.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ori-0.1.2.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

ori-0.1.2-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file ori-0.1.2.tar.gz.

File metadata

  • Download URL: ori-0.1.2.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.5 Darwin/19.5.0

File hashes

Hashes for ori-0.1.2.tar.gz
Algorithm Hash digest
SHA256 9e185255e67976192ebe86f18d7df17e88b1df57921e07399fd6d079aa08fae5
MD5 a38c59bf4e3a88fde458042ea4b14cd3
BLAKE2b-256 8ed70d84301e7c9bbd28678998f2cb1fcc0807868117cdba519376b14c193c4e

See more details on using hashes here.

File details

Details for the file ori-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: ori-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.8.5 Darwin/19.5.0

File hashes

Hashes for ori-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1b3eb4c5a61205d32f404e76f97aedf384cd0bb910de0271cde659d7aa2d5904
MD5 c1d401a3716423317bcd93f5fb4c7878
BLAKE2b-256 74fac72712a82e1ac2dd9af89edd0bed8be235c016d3f64e0cce62c4daf77c2e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page