Metadata-Version: 2.3
Name: pyrseus
Version: 0.1.0
Summary: ExecutorCtx factory, its plugins, and various serial Executors
Project-URL: Homepage, https://github.com/dalleyg/pyrseus
Project-URL: Issues, https://github.com/dalleyg/pyrseus/issues
Author: Gerald Dalley
License-Expression: MIT
Keywords: Executor,ExecutorCtx,InlineExecutor,NoCatchExecutor,concurrent.futures,executor
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Requires-Dist: cloudpickle>=1.6.0
Requires-Dist: psutil
Provides-Extra: ipyparallel
Requires-Dist: ipyparallel; extra == 'ipyparallel'
Provides-Extra: loky
Requires-Dist: loky; extra == 'loky'
Provides-Extra: mpi4py
Requires-Dist: mpi4py>=3.0.0; extra == 'mpi4py'
Description-Content-Type: text/markdown

Pyrseus: Serial Executors and the `ExecutorCtx` Factory
======================================================

Pyrseus extends Python's `concurrent.futures` asynchronous and concurrent
programming package with

 - a collection of non-concurrent executors for light workloads and
   troubleshooting,
 - `ExecutorCtx`, a factory for easily switching between different executors,
   and
 - a collection of ready-built `ExecutorCtx` plugins, supporting executors from
   [concurrent.futures](https://docs.python.org/3/library/concurrent.futures.html),
   [ipyparallel](https://ipyparallel.readthedocs.io),
   [loky](https://loky.readthedocs.io), [mpi4py](https://mpi4py.readthedocs.io),
   and itself. Where relevant, optional
   [cloudpickle](https://github.com/cloudpipe/cloudpickle)-enhanced plugins are
   also provided.

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

Pyrseus supports Linux, macOS, and Windows.

To install just Pyrseus and no plugins for 3rd party executors, run:

    python -m pip install pyrseus

To ensure that the [ipyparallel](https://ipyparallel.readthedocs.io),
[loky](https://loky.readthedocs.io), and/or
[mpi4py](https://mpi4py.readthedocs.io) plugins are also ready to use, run a
command like the following, removing the names of any plugins you don't need::

    python -m pip install 'pyrseus[ipyparallel,loky,mpi4py]'

Note that Pyrseus will auto-detect those packages, so if they're installed
through other means, then the relevant Pyrseus plugins will be automatically
enabled.

For additional instructions, see the [installation
guide](https://pyrseus.readthedocs.io/en/latest/install.html).

Full Documentation
------------------

For full documenation, see the [Pyrseus
Documentation](https://pyrseus.readthedocs.io/). It includes installation
instructions, a detailed summary of all of the executor plugins, guidance for
writing your own plugins, API documenation, and several notebooks showing
example use cases.
