<commit_before>cellulario
===========

_*Cellular IO - A self-contained and self-managed IO loop*_

[![Maturity](https://img.shields.io/pypi/status/cellulario.svg)](https://pypi.python.org/pypi/cellulario)
[![License](https://img.shields.io/pypi/l/cellulario.svg)](https://pypi.python.org/pypi/cellulario)
[![Change Log](https://img.shields.io/badge/change-log-blue.svg)](https://github.com/mayfield/cellulario/blob/master/CHANGELOG.md)
[![Build Status](https://semaphoreci.com/api/v1/projects/a1b17c52-185a-4cc6-ad28-d7f5883bca42/533645/shields_badge.svg)](https://semaphoreci.com/mayfield/cellulario)
[![Build Status](https://semaphoreci.com/api/v1/projects/3a285086-d1cf-4585-97ec-6b96e707b0c9/595977/shields_badge.svg)](https://semaphoreci.com/mayfield/cellulario)
[![Version](https://img.shields.io/pypi/v/cellulario.svg)](https://pypi.python.org/pypi/cellulario)

About
--------

Cellular IO is an interface for IO loop style programming that bundles the IOloop
lifecycle into the inner cell of a standard python data interface.  If the cell
is used like a generator then the ioloop is managed inside the generator during
calls to __next__.  If callbacks are used then the cell will block the current
execution context until the sum of IO routines are complete.

An IOCell can consist of multiple levels of cascading IO routines.  A first tier
may do requests that add requests of a second tier to the workqueue.  The cell
coordinator keeps track of the different io tiers to ensure they are scheduled
according to the strategy chosen by the user, be it latency, bandwidth, or just
FIFO.


Installation
--------

    python3 ./setup.py build
    python3 ./setup.py install


Compatibility
--------
<commit_msg>Fix readme<commit_after>cellulario
===========

_*Cellular IO - A self-contained and self-managed IO loop*_

[![Maturity](https://img.shields.io/pypi/status/cellulario.svg)](https://pypi.python.org/pypi/cellulario)
[![License](https://img.shields.io/pypi/l/cellulario.svg)](https://pypi.python.org/pypi/cellulario)
[![Change Log](https://img.shields.io/badge/change-log-blue.svg)](https://github.com/mayfield/cellulario/blob/master/CHANGELOG.md)
[![Build Status](https://semaphoreci.com/api/v1/projects/3a285086-d1cf-4585-97ec-6b96e707b0c9/595977/shields_badge.svg)](https://semaphoreci.com/mayfield/cellulario)
[![Version](https://img.shields.io/pypi/v/cellulario.svg)](https://pypi.python.org/pypi/cellulario)

About
--------

Cellular IO is an interface for IO loop style programming that bundles the IOloop
lifecycle into the inner cell of a standard python data interface.  If the cell
is used like a generator then the ioloop is managed inside the generator during
calls to __next__.  If callbacks are used then the cell will block the current
execution context until the sum of IO routines are complete.

An IOCell can consist of multiple levels of cascading IO routines.  A first tier
may do requests that add requests of a second tier to the workqueue.  The cell
coordinator keeps track of the different io tiers to ensure they are scheduled
according to the strategy chosen by the user, be it latency, bandwidth, or just
FIFO.


Installation
--------

    python3 ./setup.py build
    python3 ./setup.py install


Compatibility
--------

{'fraction_non_alphanumeric': 0.12687710695678822, 'fraction_numerical': 0.026969046889365616, 'mean_word_length': 4.359605911330049, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 22, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2780080', 'n_tokens_mistral': 1144, 'n_tokens_neox': 1030, 'n_words': 299}