Merge branch 'master' of github.com:python-bonobo/bonobo

This commit is contained in:
Romain Dorgueil
2018-01-08 08:13:04 +01:00
11 changed files with 47 additions and 25 deletions

View File

@ -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)

View File

@ -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:

View File

@ -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']

View File

@ -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
:::::::::::::::::::::::: ::::::::::::::::::::::::

View File

@ -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`.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)'],