Merge branch 'master' of github.com:python-bonobo/bonobo
This commit is contained in:
8
Makefile
8
Makefile
@ -1,4 +1,4 @@
|
|||||||
# Generated by Medikit 0.4.5 on 2018-01-01.
|
# Generated by Medikit 0.4.3 on 2018-01-08.
|
||||||
# All changes will be overriden.
|
# All changes will be overriden.
|
||||||
|
|
||||||
PACKAGE ?= bonobo
|
PACKAGE ?= bonobo
|
||||||
@ -19,8 +19,9 @@ SPHINX_SOURCEDIR ?= docs
|
|||||||
SPHINX_BUILDDIR ?= $(SPHINX_SOURCEDIR)/_build
|
SPHINX_BUILDDIR ?= $(SPHINX_SOURCEDIR)/_build
|
||||||
YAPF ?= $(PYTHON) -m yapf
|
YAPF ?= $(PYTHON) -m yapf
|
||||||
YAPF_OPTIONS ?= -rip
|
YAPF_OPTIONS ?= -rip
|
||||||
|
SPHINX_AUTOBUILD ?= $(PYTHON_DIRNAME)/sphinx-autobuild
|
||||||
|
|
||||||
.PHONY: $(SPHINX_SOURCEDIR) clean format install install-dev test update update-requirements
|
.PHONY: $(SPHINX_SOURCEDIR) clean format install install-dev test update update-requirements watch-$(SPHINX_SOURCEDIR)
|
||||||
|
|
||||||
# Installs the local project dependencies.
|
# Installs the local project dependencies.
|
||||||
install:
|
install:
|
||||||
@ -57,3 +58,6 @@ $(SPHINX_SOURCEDIR): install-dev
|
|||||||
format: install-dev
|
format: install-dev
|
||||||
$(YAPF) $(YAPF_OPTIONS) .
|
$(YAPF) $(YAPF_OPTIONS) .
|
||||||
$(YAPF) $(YAPF_OPTIONS) Projectfile
|
$(YAPF) $(YAPF_OPTIONS) Projectfile
|
||||||
|
|
||||||
|
watch-$(SPHINX_SOURCEDIR):
|
||||||
|
$(SPHINX_AUTOBUILD) $(SPHINX_SOURCEDIR) $(shell mktemp -d)
|
||||||
|
|||||||
16
Projectfile
16
Projectfile
@ -2,13 +2,12 @@
|
|||||||
|
|
||||||
from medikit import require
|
from medikit import require
|
||||||
|
|
||||||
|
make = require('make')
|
||||||
pytest = require('pytest')
|
pytest = require('pytest')
|
||||||
python = require('python')
|
python = require('python')
|
||||||
sphinx = require('sphinx')
|
sphinx = require('sphinx')
|
||||||
yapf = require('yapf')
|
yapf = require('yapf')
|
||||||
|
|
||||||
# python.set_versions('3.5', '3.6', '3.7') --> not yet implemented in medikit
|
|
||||||
|
|
||||||
python.setup(
|
python.setup(
|
||||||
name='bonobo',
|
name='bonobo',
|
||||||
description='Bonobo, a simple, modern and atomic extract-transform-load toolkit for python 3.5+.',
|
description='Bonobo, a simple, modern and atomic extract-transform-load toolkit for python 3.5+.',
|
||||||
@ -54,8 +53,10 @@ python.add_requirements(
|
|||||||
'stevedore ~=1.27',
|
'stevedore ~=1.27',
|
||||||
'whistle ~=1.0',
|
'whistle ~=1.0',
|
||||||
dev=[
|
dev=[
|
||||||
'pytest-sugar >=0.9,<0.10',
|
'cookiecutter >=1.5,<1.6',
|
||||||
'pytest-timeout ~=1.0',
|
'pytest-sugar >=0.8,<0.9',
|
||||||
|
'pytest-timeout >=1,<2',
|
||||||
|
'sphinx-sitemap >=0.2,<0.3',
|
||||||
],
|
],
|
||||||
docker=[
|
docker=[
|
||||||
'bonobo-docker ~=0.6.0a1',
|
'bonobo-docker ~=0.6.0a1',
|
||||||
@ -69,4 +70,11 @@ python.add_requirements(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@listen(make.on_generate)
|
||||||
|
def on_make_generate(event):
|
||||||
|
event.makefile['SPHINX_AUTOBUILD'] = '$(PYTHON_DIRNAME)/sphinx-autobuild'
|
||||||
|
event.makefile.add_target('watch-$(SPHINX_SOURCEDIR)', '''
|
||||||
|
$(SPHINX_AUTOBUILD) $(SPHINX_SOURCEDIR) $(shell mktemp -d)
|
||||||
|
''', phony=True)
|
||||||
|
|
||||||
# vim: ft=python:
|
# vim: ft=python:
|
||||||
|
|||||||
@ -21,8 +21,11 @@ extensions = [
|
|||||||
'sphinx.ext.ifconfig',
|
'sphinx.ext.ifconfig',
|
||||||
'sphinx.ext.viewcode',
|
'sphinx.ext.viewcode',
|
||||||
'sphinx.ext.graphviz',
|
'sphinx.ext.graphviz',
|
||||||
|
'sphinx_sitemap',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
site_url = 'http://docs.bonobo-project.org/en/master/'
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
templates_path = ['_templates']
|
templates_path = ['_templates']
|
||||||
|
|
||||||
|
|||||||
@ -174,8 +174,8 @@ strategy). Actual behavior of an execution will depend on the strategy chosen, b
|
|||||||
cases.
|
cases.
|
||||||
|
|
||||||
④ Before actually executing the `transformations`, the `ExecutorStrategy` instance will wrap each component in an
|
④ Before actually executing the `transformations`, the `ExecutorStrategy` instance will wrap each component in an
|
||||||
`execution context`, whose responsibility is to hold the state of the transformation. It enables to keep the
|
`execution context`, whose responsibility is to hold the state of the transformation. It enables you to keep the
|
||||||
`transformations` stateless, while allowing to add an external state if required. We'll expand on this later.
|
`transformations` stateless, while allowing you to add an external state if required. We'll expand on this later.
|
||||||
|
|
||||||
Concepts and definitions
|
Concepts and definitions
|
||||||
::::::::::::::::::::::::
|
::::::::::::::::::::::::
|
||||||
|
|||||||
@ -15,7 +15,7 @@ Class-based transformations and configurables
|
|||||||
Bonobo is a bit dumb. If something is callable, it considers it can be used as a transformation, and it's up to the
|
Bonobo is a bit dumb. If something is callable, it considers it can be used as a transformation, and it's up to the
|
||||||
user to provide callables that logically fits in a graph.
|
user to provide callables that logically fits in a graph.
|
||||||
|
|
||||||
You can use plain python objects with a `__call__()` method, and it ill just work.
|
You can use plain python objects with a `__call__()` method, and it will just work.
|
||||||
|
|
||||||
As a lot of transformations needs common machinery, there is a few tools to quickly build transformations, most of
|
As a lot of transformations needs common machinery, there is a few tools to quickly build transformations, most of
|
||||||
them requiring your class to subclass :class:`bonobo.config.Configurable`.
|
them requiring your class to subclass :class:`bonobo.config.Configurable`.
|
||||||
|
|||||||
@ -1,28 +1,38 @@
|
|||||||
-e .[dev]
|
-e .[dev]
|
||||||
alabaster==0.7.10
|
alabaster==0.7.10
|
||||||
|
arrow==0.12.0
|
||||||
attrs==17.4.0
|
attrs==17.4.0
|
||||||
babel==2.5.1
|
babel==2.5.1
|
||||||
|
binaryornot==0.4.4
|
||||||
certifi==2017.11.5
|
certifi==2017.11.5
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
|
click==6.7
|
||||||
|
cookiecutter==1.5.1
|
||||||
coverage==4.4.2
|
coverage==4.4.2
|
||||||
docutils==0.14
|
docutils==0.14
|
||||||
|
future==0.16.0
|
||||||
idna==2.6
|
idna==2.6
|
||||||
imagesize==0.7.1
|
imagesize==0.7.1
|
||||||
|
jinja2-time==0.2.0
|
||||||
jinja2==2.10
|
jinja2==2.10
|
||||||
markupsafe==1.0
|
markupsafe==1.0
|
||||||
pluggy==0.6.0
|
pluggy==0.6.0
|
||||||
|
poyo==0.4.1
|
||||||
py==1.5.2
|
py==1.5.2
|
||||||
pygments==2.2.0
|
pygments==2.2.0
|
||||||
pytest-cov==2.5.1
|
pytest-cov==2.5.1
|
||||||
pytest-sugar==0.9.0
|
pytest-sugar==0.8.0
|
||||||
pytest-timeout==1.2.1
|
pytest-timeout==1.2.1
|
||||||
pytest==3.3.1
|
pytest==3.3.2
|
||||||
|
python-dateutil==2.6.1
|
||||||
pytz==2017.3
|
pytz==2017.3
|
||||||
requests==2.18.4
|
requests==2.18.4
|
||||||
six==1.11.0
|
six==1.11.0
|
||||||
snowballstemmer==1.2.1
|
snowballstemmer==1.2.1
|
||||||
|
sphinx-sitemap==0.2
|
||||||
sphinx==1.6.5
|
sphinx==1.6.5
|
||||||
sphinxcontrib-websupport==1.0.1
|
sphinxcontrib-websupport==1.0.1
|
||||||
termcolor==1.1.0
|
termcolor==1.1.0
|
||||||
urllib3==1.22
|
urllib3==1.22
|
||||||
|
whichcraft==0.4.1
|
||||||
yapf==0.20.0
|
yapf==0.20.0
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
-e .[docker]
|
-e .[docker]
|
||||||
appdirs==1.4.3
|
appdirs==1.4.3
|
||||||
bonobo-docker==0.6.0a1
|
bonobo-docker==0.6.0
|
||||||
certifi==2017.11.5
|
certifi==2017.11.5
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
colorama==0.3.9
|
colorama==0.3.9
|
||||||
@ -22,7 +22,7 @@ requests==2.18.4
|
|||||||
semantic-version==2.6.0
|
semantic-version==2.6.0
|
||||||
six==1.11.0
|
six==1.11.0
|
||||||
stevedore==1.28.0
|
stevedore==1.28.0
|
||||||
unidecode==0.4.21
|
unidecode==1.0.22
|
||||||
urllib3==1.22
|
urllib3==1.22
|
||||||
websocket-client==0.46.0
|
websocket-client==0.46.0
|
||||||
whistle==1.0.0
|
whistle==1.0.0
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
-e .[jupyter]
|
-e .[jupyter]
|
||||||
appnope==0.1.0
|
appnope==0.1.0
|
||||||
attrs==17.4.0
|
|
||||||
bleach==2.1.2
|
bleach==2.1.2
|
||||||
decorator==4.1.2
|
decorator==4.1.2
|
||||||
entrypoints==0.2.3
|
entrypoints==0.2.3
|
||||||
@ -12,7 +11,7 @@ ipywidgets==6.0.1
|
|||||||
jedi==0.11.1
|
jedi==0.11.1
|
||||||
jinja2==2.10
|
jinja2==2.10
|
||||||
jsonschema==2.6.0
|
jsonschema==2.6.0
|
||||||
jupyter-client==5.2.0
|
jupyter-client==5.2.1
|
||||||
jupyter-console==5.2.0
|
jupyter-console==5.2.0
|
||||||
jupyter-core==4.4.0
|
jupyter-core==4.4.0
|
||||||
jupyter==1.0.0
|
jupyter==1.0.0
|
||||||
@ -25,20 +24,17 @@ pandocfilters==1.4.2
|
|||||||
parso==0.1.1
|
parso==0.1.1
|
||||||
pexpect==4.3.1
|
pexpect==4.3.1
|
||||||
pickleshare==0.7.4
|
pickleshare==0.7.4
|
||||||
pluggy==0.6.0
|
|
||||||
prompt-toolkit==1.0.15
|
prompt-toolkit==1.0.15
|
||||||
ptyprocess==0.5.2
|
ptyprocess==0.5.2
|
||||||
py==1.5.2
|
|
||||||
pygments==2.2.0
|
pygments==2.2.0
|
||||||
pytest==3.3.1
|
|
||||||
python-dateutil==2.6.1
|
python-dateutil==2.6.1
|
||||||
pyzmq==17.0.0b3
|
pyzmq==16.0.3
|
||||||
qtconsole==4.3.1
|
qtconsole==4.3.1
|
||||||
simplegeneric==0.8.1
|
simplegeneric==0.8.1
|
||||||
six==1.11.0
|
six==1.11.0
|
||||||
terminado==0.8.1
|
terminado==0.8.1
|
||||||
testpath==0.3.1
|
testpath==0.3.1
|
||||||
tornado==5.0a1
|
tornado==4.5.3
|
||||||
traitlets==4.3.2
|
traitlets==4.3.2
|
||||||
wcwidth==0.1.7
|
wcwidth==0.1.7
|
||||||
webencodings==0.5.1
|
webencodings==0.5.1
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
-e .[sqlalchemy]
|
-e .[sqlalchemy]
|
||||||
appdirs==1.4.3
|
appdirs==1.4.3
|
||||||
bonobo-sqlalchemy==0.6.0a1
|
bonobo-sqlalchemy==0.6.0
|
||||||
certifi==2017.11.5
|
certifi==2017.11.5
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
colorama==0.3.9
|
colorama==0.3.9
|
||||||
@ -20,6 +20,6 @@ requests==2.18.4
|
|||||||
six==1.11.0
|
six==1.11.0
|
||||||
sqlalchemy==1.2.0
|
sqlalchemy==1.2.0
|
||||||
stevedore==1.28.0
|
stevedore==1.28.0
|
||||||
unidecode==0.4.21
|
unidecode==1.0.22
|
||||||
urllib3==1.22
|
urllib3==1.22
|
||||||
whistle==1.0.0
|
whistle==1.0.0
|
||||||
|
|||||||
@ -18,6 +18,6 @@ pytz==2017.3
|
|||||||
requests==2.18.4
|
requests==2.18.4
|
||||||
six==1.11.0
|
six==1.11.0
|
||||||
stevedore==1.28.0
|
stevedore==1.28.0
|
||||||
unidecode==0.4.21
|
unidecode==1.0.22
|
||||||
urllib3==1.22
|
urllib3==1.22
|
||||||
whistle==1.0.0
|
whistle==1.0.0
|
||||||
|
|||||||
5
setup.py
5
setup.py
@ -64,8 +64,9 @@ setup(
|
|||||||
],
|
],
|
||||||
extras_require={
|
extras_require={
|
||||||
'dev': [
|
'dev': [
|
||||||
'coverage (>= 4.4, < 5.0)', 'pytest (>= 3.1, < 4.0)', 'pytest-cov (>= 2.5, < 3.0)',
|
'cookiecutter (>= 1.5, < 1.6)', 'coverage (>= 4.4, < 5.0)', 'pytest (>= 3.1, < 4.0)',
|
||||||
'pytest-sugar (>= 0.9, < 0.10)', 'pytest-timeout (~= 1.0)', 'sphinx (>= 1.6, < 2.0)', 'yapf'
|
'pytest-cov (>= 2.5, < 3.0)', 'pytest-sugar (>= 0.8, < 0.9)', 'pytest-timeout (>= 1, < 2)',
|
||||||
|
'sphinx (>= 1.6, < 2.0)', 'sphinx-sitemap (>= 0.2, < 0.3)', 'yapf'
|
||||||
],
|
],
|
||||||
'docker': ['bonobo-docker (~= 0.6.0a1)'],
|
'docker': ['bonobo-docker (~= 0.6.0a1)'],
|
||||||
'jupyter': ['ipywidgets (~= 6.0)', 'jupyter (~= 1.0)'],
|
'jupyter': ['ipywidgets (~= 6.0)', 'jupyter (~= 1.0)'],
|
||||||
|
|||||||
Reference in New Issue
Block a user