Restore removed examples that were used in tests.
This commit is contained in:
7
bonobo/examples/types/__init__.py
Normal file
7
bonobo/examples/types/__init__.py
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
from . import bags, dicts, strings
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'bags',
|
||||||
|
'dicts',
|
||||||
|
'strings',
|
||||||
|
]
|
||||||
41
bonobo/examples/types/bags.py
Normal file
41
bonobo/examples/types/bags.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
"""
|
||||||
|
Example on how to use :class:`bonobo.Bag` instances to pass flexible args/kwargs to the next callable.
|
||||||
|
|
||||||
|
.. graphviz::
|
||||||
|
|
||||||
|
digraph {
|
||||||
|
rankdir = LR;
|
||||||
|
stylesheet = "../_static/graphs.css";
|
||||||
|
|
||||||
|
BEGIN [shape="point"];
|
||||||
|
BEGIN -> "extract()" -> "transform(...)" -> "load(...)";
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
from bonobo import Bag, Graph
|
||||||
|
|
||||||
|
|
||||||
|
def extract():
|
||||||
|
yield Bag(topic='foo')
|
||||||
|
yield Bag(topic='bar')
|
||||||
|
yield Bag(topic='baz')
|
||||||
|
|
||||||
|
|
||||||
|
def transform(topic: str):
|
||||||
|
return Bag.inherit(title=topic.title(), rand=randint(10, 99))
|
||||||
|
|
||||||
|
|
||||||
|
def load(topic: str, title: str, rand: int):
|
||||||
|
print('{} ({}) wait={}'.format(title, topic, rand))
|
||||||
|
|
||||||
|
|
||||||
|
graph = Graph()
|
||||||
|
graph.add_chain(extract, transform, load)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from bonobo import run
|
||||||
|
|
||||||
|
run(graph)
|
||||||
43
bonobo/examples/types/dicts.py
Normal file
43
bonobo/examples/types/dicts.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
"""
|
||||||
|
Example on how to use symple python dictionaries to communicate between transformations.
|
||||||
|
|
||||||
|
.. graphviz::
|
||||||
|
|
||||||
|
digraph {
|
||||||
|
rankdir = LR;
|
||||||
|
stylesheet = "../_static/graphs.css";
|
||||||
|
|
||||||
|
BEGIN [shape="point"];
|
||||||
|
BEGIN -> "extract()" -> "transform(row: dict)" -> "load(row: dict)";
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
from bonobo import Graph
|
||||||
|
|
||||||
|
|
||||||
|
def extract():
|
||||||
|
yield {'topic': 'foo'}
|
||||||
|
yield {'topic': 'bar'}
|
||||||
|
yield {'topic': 'baz'}
|
||||||
|
|
||||||
|
|
||||||
|
def transform(row: dict):
|
||||||
|
return {
|
||||||
|
'topic': row['topic'].title(),
|
||||||
|
'randint': randint(10, 99),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def load(row: dict):
|
||||||
|
print(row)
|
||||||
|
|
||||||
|
|
||||||
|
graph = Graph(extract, transform, load)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from bonobo import run
|
||||||
|
|
||||||
|
run(graph)
|
||||||
39
bonobo/examples/types/strings.py
Normal file
39
bonobo/examples/types/strings.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
"""
|
||||||
|
Example on how to use symple python strings to communicate between transformations.
|
||||||
|
|
||||||
|
.. graphviz::
|
||||||
|
|
||||||
|
digraph {
|
||||||
|
rankdir = LR;
|
||||||
|
stylesheet = "../_static/graphs.css";
|
||||||
|
|
||||||
|
BEGIN [shape="point"];
|
||||||
|
BEGIN -> "extract()" -> "transform(s: str)" -> "load(s: str)";
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
from random import randint
|
||||||
|
|
||||||
|
from bonobo import Graph
|
||||||
|
|
||||||
|
|
||||||
|
def extract():
|
||||||
|
yield 'foo'
|
||||||
|
yield 'bar'
|
||||||
|
yield 'baz'
|
||||||
|
|
||||||
|
|
||||||
|
def transform(s: str):
|
||||||
|
return '{} ({})'.format(s.title(), randint(10, 99))
|
||||||
|
|
||||||
|
|
||||||
|
def load(s: str):
|
||||||
|
print(s)
|
||||||
|
|
||||||
|
|
||||||
|
graph = Graph(extract, transform, load)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
from bonobo import run
|
||||||
|
|
||||||
|
run(graph)
|
||||||
Reference in New Issue
Block a user