Metadata-Version: 2.1
Name: mp-boilerplate
Version: 0.3.2
Summary: A collection of patterns to use over top of the built in multiprocessing package
Home-page: https://github.com/markanewman/mp_boilerplate
Author: @markanewman
Author-email: mp_boilerplate@trinetteandmark.com
License: UNKNOWN
Project-URL: Bug Reports, https://github.com/markanewman/mp_boilerplate/issues
Project-URL: Source, https://github.com/markanewman/mp_boilerplate
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.6, <4
Description-Content-Type: text/markdown
Requires-Dist: progressbar2 (<4.0.0,>=3.51.4)
Requires-Dist: typeguard (<3.0.0,>=2.7.1)

# mp_boilerplate

A collection of patterns to use over top of the built in multiprocessing package.

# Install

```{shell}
pip install mp_boilerplate
```

# Use Case: (E)xtract (P)arallel (T)ransform (S)ave

The extract parallel transform save (EPTS) use case is as follows:

* A producer(single)/consumer(multiple) that applies a transform
* A producer(multiple)/consumer(single) that saves the transform

This usually means: read a file/folder, do something to each item, save the result.

```{py}
import mp_boilerplate as mpb
import typing as t
from typeguard import typechecked

def extract() -> t.Iterator:
    for i in range(100):
        yield i
def transform(i):
    return i + 1
def save(items: t.Iterator):
    for item in items:
        print(item)

if __name__ == '__main__':
    worker = mpb.EPTS(extract, transform, save)
    worker.start()
    worker.join()
```


