diff --git a/Makefile b/Makefile index 288ff1a..a4d1470 100644 --- a/Makefile +++ b/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. PACKAGE ?= bonobo @@ -19,8 +19,9 @@ SPHINX_SOURCEDIR ?= docs SPHINX_BUILDDIR ?= $(SPHINX_SOURCEDIR)/_build YAPF ?= $(PYTHON) -m yapf 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. install: @@ -57,3 +58,6 @@ $(SPHINX_SOURCEDIR): install-dev format: install-dev $(YAPF) $(YAPF_OPTIONS) . $(YAPF) $(YAPF_OPTIONS) Projectfile + +watch-$(SPHINX_SOURCEDIR): + $(SPHINX_AUTOBUILD) $(SPHINX_SOURCEDIR) $(shell mktemp -d) diff --git a/Projectfile b/Projectfile index 2faba69..61ae5ab 100644 --- a/Projectfile +++ b/Projectfile @@ -2,13 +2,12 @@ from medikit import require +make = require('make') pytest = require('pytest') python = require('python') sphinx = require('sphinx') yapf = require('yapf') -# python.set_versions('3.5', '3.6', '3.7') --> not yet implemented in medikit - python.setup( name='bonobo', 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', 'whistle ~=1.0', dev=[ - 'pytest-sugar >=0.9,<0.10', - 'pytest-timeout ~=1.0', + 'cookiecutter >=1.5,<1.6', + 'pytest-sugar >=0.8,<0.9', + 'pytest-timeout >=1,<2', + 'sphinx-sitemap >=0.2,<0.3', ], docker=[ '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: diff --git a/docs/conf.py b/docs/conf.py index 53ed816..0e394fb 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -21,8 +21,11 @@ extensions = [ 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', '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. templates_path = ['_templates'] diff --git a/docs/tutorial/0.5/tut01.rst b/docs/tutorial/0.5/tut01.rst index e50620d..97181ac 100644 --- a/docs/tutorial/0.5/tut01.rst +++ b/docs/tutorial/0.5/tut01.rst @@ -174,8 +174,8 @@ strategy). Actual behavior of an execution will depend on the strategy chosen, b cases. ④ 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 -`transformations` stateless, while allowing to add an external state if required. We'll expand on this later. +`execution context`, whose responsibility is to hold the state of the transformation. It enables you to keep the +`transformations` stateless, while allowing you to add an external state if required. We'll expand on this later. Concepts and definitions :::::::::::::::::::::::: diff --git a/docs/tutorial/0.5/tut03.rst b/docs/tutorial/0.5/tut03.rst index 8eb7887..47bbde8 100644 --- a/docs/tutorial/0.5/tut03.rst +++ b/docs/tutorial/0.5/tut03.rst @@ -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 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 them requiring your class to subclass :class:`bonobo.config.Configurable`. diff --git a/requirements-dev.txt b/requirements-dev.txt index aa5e833..427aea6 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,28 +1,38 @@ -e .[dev] alabaster==0.7.10 +arrow==0.12.0 attrs==17.4.0 babel==2.5.1 +binaryornot==0.4.4 certifi==2017.11.5 chardet==3.0.4 +click==6.7 +cookiecutter==1.5.1 coverage==4.4.2 docutils==0.14 +future==0.16.0 idna==2.6 imagesize==0.7.1 +jinja2-time==0.2.0 jinja2==2.10 markupsafe==1.0 pluggy==0.6.0 +poyo==0.4.1 py==1.5.2 pygments==2.2.0 pytest-cov==2.5.1 -pytest-sugar==0.9.0 +pytest-sugar==0.8.0 pytest-timeout==1.2.1 -pytest==3.3.1 +pytest==3.3.2 +python-dateutil==2.6.1 pytz==2017.3 requests==2.18.4 six==1.11.0 snowballstemmer==1.2.1 +sphinx-sitemap==0.2 sphinx==1.6.5 sphinxcontrib-websupport==1.0.1 termcolor==1.1.0 urllib3==1.22 +whichcraft==0.4.1 yapf==0.20.0 diff --git a/requirements-docker.txt b/requirements-docker.txt index baa97e3..9bf4324 100644 --- a/requirements-docker.txt +++ b/requirements-docker.txt @@ -1,6 +1,6 @@ -e .[docker] appdirs==1.4.3 -bonobo-docker==0.6.0a1 +bonobo-docker==0.6.0 certifi==2017.11.5 chardet==3.0.4 colorama==0.3.9 @@ -22,7 +22,7 @@ requests==2.18.4 semantic-version==2.6.0 six==1.11.0 stevedore==1.28.0 -unidecode==0.4.21 +unidecode==1.0.22 urllib3==1.22 websocket-client==0.46.0 whistle==1.0.0 diff --git a/requirements-jupyter.txt b/requirements-jupyter.txt index 832cbde..2f56547 100644 --- a/requirements-jupyter.txt +++ b/requirements-jupyter.txt @@ -1,6 +1,5 @@ -e .[jupyter] appnope==0.1.0 -attrs==17.4.0 bleach==2.1.2 decorator==4.1.2 entrypoints==0.2.3 @@ -12,7 +11,7 @@ ipywidgets==6.0.1 jedi==0.11.1 jinja2==2.10 jsonschema==2.6.0 -jupyter-client==5.2.0 +jupyter-client==5.2.1 jupyter-console==5.2.0 jupyter-core==4.4.0 jupyter==1.0.0 @@ -25,20 +24,17 @@ pandocfilters==1.4.2 parso==0.1.1 pexpect==4.3.1 pickleshare==0.7.4 -pluggy==0.6.0 prompt-toolkit==1.0.15 ptyprocess==0.5.2 -py==1.5.2 pygments==2.2.0 -pytest==3.3.1 python-dateutil==2.6.1 -pyzmq==17.0.0b3 +pyzmq==16.0.3 qtconsole==4.3.1 simplegeneric==0.8.1 six==1.11.0 terminado==0.8.1 testpath==0.3.1 -tornado==5.0a1 +tornado==4.5.3 traitlets==4.3.2 wcwidth==0.1.7 webencodings==0.5.1 diff --git a/requirements-sqlalchemy.txt b/requirements-sqlalchemy.txt index 8508033..3c049c1 100644 --- a/requirements-sqlalchemy.txt +++ b/requirements-sqlalchemy.txt @@ -1,6 +1,6 @@ -e .[sqlalchemy] appdirs==1.4.3 -bonobo-sqlalchemy==0.6.0a1 +bonobo-sqlalchemy==0.6.0 certifi==2017.11.5 chardet==3.0.4 colorama==0.3.9 @@ -20,6 +20,6 @@ requests==2.18.4 six==1.11.0 sqlalchemy==1.2.0 stevedore==1.28.0 -unidecode==0.4.21 +unidecode==1.0.22 urllib3==1.22 whistle==1.0.0 diff --git a/requirements.txt b/requirements.txt index 07f51aa..57e16eb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,6 +18,6 @@ pytz==2017.3 requests==2.18.4 six==1.11.0 stevedore==1.28.0 -unidecode==0.4.21 +unidecode==1.0.22 urllib3==1.22 whistle==1.0.0 diff --git a/setup.py b/setup.py index 716967d..81f9b79 100644 --- a/setup.py +++ b/setup.py @@ -64,8 +64,9 @@ setup( ], extras_require={ 'dev': [ - 'coverage (>= 4.4, < 5.0)', 'pytest (>= 3.1, < 4.0)', 'pytest-cov (>= 2.5, < 3.0)', - 'pytest-sugar (>= 0.9, < 0.10)', 'pytest-timeout (~= 1.0)', 'sphinx (>= 1.6, < 2.0)', 'yapf' + 'cookiecutter (>= 1.5, < 1.6)', 'coverage (>= 4.4, < 5.0)', 'pytest (>= 3.1, < 4.0)', + '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)'], 'jupyter': ['ipywidgets (~= 6.0)', 'jupyter (~= 1.0)'],