Changing branch model to use master instead of 0.3. Version named branches will stay for maintenance, while master will be the bleeding edge (still with passing test suite).

This commit is contained in:
Romain Dorgueil
2017-05-02 20:39:36 +02:00
parent 3a7d0c9772
commit 45d7e1383f
4 changed files with 55 additions and 64 deletions

View File

@ -1,58 +1,52 @@
# This file has been auto-generated. # This file has been auto-generated.
# All changes will be lost, see Projectfile. # All changes will be lost, see Projectfile.
# #
# Updated at 2017-05-01 08:35:15.162008 # Updated at 2017-05-02 20:38:38.468986
PACKAGE ?= bonobo
PYTHON ?= $(shell which python) PYTHON ?= $(shell which python)
PYTHON_BASENAME ?= $(shell basename $(PYTHON)) PYTHON_BASENAME ?= $(shell basename $(PYTHON))
PYTHON_DIRNAME ?= $(shell dirname $(PYTHON))
PYTHON_REQUIREMENTS_FILE ?= requirements.txt PYTHON_REQUIREMENTS_FILE ?= requirements.txt
PYTHON_REQUIREMENTS_DEV_FILE ?= requirements-dev.txt PYTHON_REQUIREMENTS_DEV_FILE ?= requirements-dev.txt
QUICK ?= QUICK ?=
VIRTUAL_ENV ?= .virtualenv-$(PYTHON_BASENAME) PIP ?= $(PYTHON_DIRNAME)/pip
PIP ?= $(VIRTUAL_ENV)/bin/pip
PIP_INSTALL_OPTIONS ?= PIP_INSTALL_OPTIONS ?=
PYTEST ?= $(VIRTUAL_ENV)/bin/pytest PYTEST ?= $(PYTHON_DIRNAME)/pytest
PYTEST_OPTIONS ?= --capture=no --cov=bonobo --cov-report html PYTEST_OPTIONS ?= --capture=no --cov=$(PACKAGE) --cov-report html
SPHINX_OPTS ?= SPHINX_BUILD ?= $(PYTHON_DIRNAME)/sphinx-build
SPHINX_BUILD ?= $(VIRTUAL_ENV)/bin/sphinx-build SPHINX_OPTIONS ?=
SPHINX_SOURCEDIR ?= docs SPHINX_SOURCEDIR ?= docs
SPHINX_BUILDDIR ?= $(SPHINX_SOURCEDIR)/_build SPHINX_BUILDDIR ?= $(SPHINX_SOURCEDIR)/_build
YAPF ?= $(VIRTUAL_ENV)/bin/yapf YAPF ?= $(PYTHON_DIRNAME)/yapf
YAPF_OPTIONS ?= -rip YAPF_OPTIONS ?= -rip
.PHONY: $(SPHINX_SOURCEDIR) clean format install install-dev lint test .PHONY: $(SPHINX_SOURCEDIR) clean format install install-dev lint test
# Installs the local project dependencies. # Installs the local project dependencies.
install: $(VIRTUAL_ENV) install:
if [ -z "$(QUICK)" ]; then \ if [ -z "$(QUICK)" ]; then \
$(PIP) install -U pip wheel $(PIP_INSTALL_OPTIONS) -r $(PYTHON_REQUIREMENTS_FILE) ; \ $(PIP) install -U pip wheel $(PYTHON_PIP_INSTALL_OPTIONS) -r $(PYTHON_REQUIREMENTS_FILE) ; \
fi fi
# Installs the local project dependencies, including development-only libraries. # Installs the local project dependencies, including development-only libraries.
install-dev: $(VIRTUAL_ENV) install-dev:
if [ -z "$(QUICK)" ]; then \ if [ -z "$(QUICK)" ]; then \
$(PIP) install -U pip wheel $(PIP_INSTALL_OPTIONS) -r $(PYTHON_REQUIREMENTS_DEV_FILE) ; \ $(PIP) install -U pip wheel $(PYTHON_PIP_INSTALL_OPTIONS) -r $(PYTHON_REQUIREMENTS_DEV_FILE) ; \
fi fi
# Cleans up the local mess. # Cleans up the local mess.
clean: clean:
rm -rf build rm -rf build dist *.egg-info
rm -rf dist
# Setup the local virtualenv, or use the one provided by the current environment.
$(VIRTUAL_ENV):
virtualenv -p $(PYTHON) $(VIRTUAL_ENV)
$(PIP) install -U pip wheel
ln -fs $(VIRTUAL_ENV)/bin/activate activate-$(PYTHON_BASENAME)
lint: install-dev lint: install-dev
$(VIRTUAL_ENV)/bin/pylint --py3k bonobo -f html > pylint.html $(PYTHON_DIRNAME)/pylint --py3k $(PACKAGE) -f html > pylint.html
test: install-dev test: install-dev
$(PYTEST) $(PYTEST_OPTIONS) tests $(PYTEST) $(PYTEST_OPTIONS) tests
$(SPHINX_SOURCEDIR): install-dev $(SPHINX_SOURCEDIR): install-dev
$(SPHINX_BUILD) -b html -D latex_paper_size=a4 $(SPHINX_OPTS) $(SPHINX_SOURCEDIR) $(SPHINX_BUILDDIR)/html $(SPHINX_BUILD) -b html -D latex_paper_size=a4 $(SPHINX_OPTIONS) $(SPHINX_SOURCEDIR) $(SPHINX_BUILDDIR)/html
format: install-dev format: install-dev
$(YAPF) $(YAPF_OPTIONS) . $(YAPF) $(YAPF_OPTIONS) .

View File

@ -1,16 +1,12 @@
==========
🐵 bonobo 🐵 bonobo
========= ==========
Data-processing. By monkeys. For humans. Data-processing for humans.
.. image:: https://img.shields.io/pypi/v/bonobo.svg .. image:: https://img.shields.io/pypi/v/bonobo.svg
:target: https://pypi.python.org/pypi/bonobo :target: https://pypi.python.org/pypi/bonobo
:alt: PyPI :alt: PyPI
.. image:: https://img.shields.io/pypi/wheel/bonobo.svg
:target: https://pypi.python.org/pypi/bonobo
:alt: Wheel
.. image:: https://img.shields.io/pypi/pyversions/bonobo.svg .. image:: https://img.shields.io/pypi/pyversions/bonobo.svg
:target: https://pypi.python.org/pypi/bonobo :target: https://pypi.python.org/pypi/bonobo
:alt: Versions :alt: Versions
@ -27,29 +23,30 @@ Data-processing. By monkeys. For humans.
:target: https://ci.appveyor.com/project/hartym/bonobo?branch=0.3 :target: https://ci.appveyor.com/project/hartym/bonobo?branch=0.3
:alt: Continuous Integration (Windows) :alt: Continuous Integration (Windows)
.. image:: https://landscape.io/github/python-bonobo/bonobo/0.3/landscape.svg?style=flat .. image:: https://landscape.io/github/python-bonobo/bonobo/0.3/landscape.svg?style=flat
:target: https://landscape.io/github/python-bonobo/bonobo/0.3 :target: https://landscape.io/github/python-bonobo/bonobo/0.3
:alt: Code Health from landscape :alt: Code Health from landscape
.. image:: https://codeclimate.com/github/python-bonobo/bonobo/badges/gpa.svg
:target: https://codeclimate.com/github/python-bonobo/bonobo
:alt: Code Climate
.. image:: https://img.shields.io/coveralls/python-bonobo/bonobo/0.3.svg .. image:: https://img.shields.io/coveralls/python-bonobo/bonobo/0.3.svg
:target: https://coveralls.io/github/python-bonobo/bonobo?branch=0.3 :target: https://coveralls.io/github/python-bonobo/bonobo?branch=0.3
:alt: Coverage :alt: Coverage
Bonobo is a data-processing library for python 3.5+ that emphasises writing Bonobo is an extract-transform-load framework for python 3.5+ (see comparisons with other data tools).
simple, atomic, plain old python functions and chaining them using a basic
acyclic graph. The nodes will need a bit of plumbery to be runnable in
different means (iteratively, in threads, in processes, on different machines
...) but that should be as transparent as possible.
The only thing asked of the developer is to write "pure" functions to Bonobo uses plain old python objects (functions, generators and iterators), allows to link them in a directed graph and
process data (create a new dict, don't change in place, etc.), and everything execute them using a parallelized strategy, without having to worry about the underlying complexity.
should be fine from this point.
It's a young rewrite of an old python2.7 tool that ran millions of Developpers can focus on writing simple and atomic operations, that are by-design easy to unit-test, while the
transformations per day for years on production, so as though it may not yet framework focus on applying them concurrently to rows of data.
be complete or fully stable (please, allow us to reach 1.0), the underlying
concepts work. One thing to note: write pure transformations and you'll be safe.
Bonobo is a young rewrite of an old python2.7 tool that ran millions of transformations per day for years on production,
so as though it may not yet be complete or fully stable (please, allow us to reach 1.0), the basics are there.
---- ----

View File

@ -1 +1 @@
__version__ = '0.2.2' __version__ = '0.3.0a1'

View File

@ -11,14 +11,10 @@ tolines = lambda c: list(filter(None, map(lambda s: s.strip(), c.split('\n'))))
def read(filename, flt=None): def read(filename, flt=None):
try: try:
with open(filename, 'rt') as f: with open(filename) as f:
content = f.read().strip() content = f.read().strip()
return flt(content) if callable(flt) else content return flt(content) if callable(flt) else content
except EnvironmentError: except EnvironmentError:
# File not found? Let's say it's empty.
return ''
except UnicodeError:
# Problem decoding the file? Let's not stop on this (but it's a temp fix).
return '' return ''
@ -42,40 +38,44 @@ else:
setup( setup(
name='bonobo', name='bonobo',
description='Bonobo', description=
('Bonobo, a simple, modern and atomic extract-transform-load toolkit for '
'python 3.5+.'),
license='Apache License, Version 2.0', license='Apache License, Version 2.0',
install_requires=[ install_requires=[
'colorama >=0.3,<1.0', 'fs >=2.0,<3.0', 'psutil >=5.2,<6.0', 'requests >=2.0,<3.0', 'stevedore >=1.21,<2.0' 'colorama >=0.3,<1.0', 'fs >=2.0,<3.0', 'psutil >=5.2,<6.0',
'requests >=2.0,<3.0', 'stevedore >=1.21,<2.0'
], ],
version=version, version=version,
long_description=read('README.rst'), long_description=read('README.rst'),
classifiers=read('classifiers.txt', tolines), classifiers=read('classifiers.txt', tolines),
packages=find_packages(exclude=['ez_setup', 'example', 'test']), packages=find_packages(exclude=['ez_setup', 'example', 'test']),
include_package_data=True, include_package_data=True,
data_files=[ data_files=[('share/jupyter/nbextensions/bonobo-jupyter', [
( 'bonobo/ext/jupyter/static/extension.js',
'share/jupyter/nbextensions/bonobo-jupyter', [ 'bonobo/ext/jupyter/static/index.js',
'bonobo/ext/jupyter/static/extension.js', 'bonobo/ext/jupyter/static/index.js', 'bonobo/ext/jupyter/static/index.js.map'
'bonobo/ext/jupyter/static/index.js.map' ])],
]
)
],
extras_require={ extras_require={
'dev': [ 'dev': [
'coverage >=4,<5', 'pylint >=1,<2', 'pytest >=3,<4', 'pytest-cov >=2,<3', 'pytest-timeout >=1,<2', 'sphinx', 'coverage >=4,<5', 'pylint >=1,<2', 'pytest >=3,<4',
'pytest-cov >=2,<3', 'pytest-timeout >=1,<2', 'sphinx',
'sphinx_rtd_theme', 'yapf' 'sphinx_rtd_theme', 'yapf'
], ],
'jupyter': ['jupyter >=1.0,<1.1', 'ipywidgets >=6.0.0.beta5'] 'jupyter': ['jupyter >=1.0,<1.1', 'ipywidgets >=6.0.0.beta5']
}, },
entry_points={ entry_points={
'bonobo.commands': [ 'bonobo.commands': [
'init = bonobo.commands.init:register', 'run = bonobo.commands.run:register', 'init = bonobo.commands.init:register',
'run = bonobo.commands.run:register',
'version = bonobo.commands.version:register' 'version = bonobo.commands.version:register'
], ],
'console_scripts': ['bonobo = bonobo.commands:entrypoint'], 'console_scripts': ['bonobo = bonobo.commands:entrypoint'],
'edgy.project.features': ['bonobo = ' 'edgy.project.features':
'bonobo.ext.edgy.project.feature:BonoboFeature'] ['bonobo = '
'bonobo.ext.edgy.project.feature:BonoboFeature']
}, },
url='https://www.bonobo-project.org/', url='https://www.bonobo-project.org/',
download_url='https://github.com/python-bonobo/bonobo/tarball/{version}'.format(version=version), download_url=
) 'https://github.com/python-bonobo/bonobo/tarball/{version}'.format(
version=version), )