Demonstration of application design using pipeline processing (generators, coroutines, iteration, functional)
- Setup a virtual environment for the project.
- Activate the virtual environment.
- Install project requirements via PIP.
- pip install -r /path/to/2016-09-12-pipeline-demo/requirements.txt
This project will demonstrate how python applications can be designed as adaptable pipeline processors. Talk slides available at: https://docs.google.com/presentation/d/1cUrmIOHYB0QcAYkMyO8uos6taU2jdwMWFI0pLksmVA8/edit#slide=id.p
An input component is a generator object which lazily consumes string input. Each time a newline is encountered, the generator must split the string at each whitespace, turning the string into an list of strings and yield the list back to the iterating caller.
A filter component is a generator which accepts a list of strings via the send() method. The filter must yield the original list of strings to the caller if no filtering is needed, and None when filtering is required.
A transformer component is a generator which accepts a list of strings via the send() method. The transformer must return a modified list of strings to the caller.
An output component is a generator which accepts a list of strings via the send() method. The output must combine the list by a whitespace and send them to the destination.