diff --git a/Makefile b/Makefile index 244e031..c281228 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # This file has been auto-generated. # All changes will be lost, see Projectfile. # -# Updated at 2017-04-21 10:27:25.709949 +# Updated at 2017-04-23 14:52:31.862565 PYTHON ?= $(shell which python) PYTHON_BASENAME ?= $(shell basename $(PYTHON)) @@ -10,7 +10,6 @@ PYTHON_REQUIREMENTS_DEV_FILE ?= requirements-dev.txt QUICK ?= VIRTUAL_ENV ?= .virtualenv-$(PYTHON_BASENAME) PIP ?= $(VIRTUAL_ENV)/bin/pip -PIP_INSTALL_OPTIONS ?= PYTEST ?= $(VIRTUAL_ENV)/bin/pytest PYTEST_OPTIONS ?= --capture=no --cov=bonobo --cov-report html SPHINX_OPTS ?= @@ -25,13 +24,13 @@ YAPF_OPTIONS ?= -rip # Installs the local project dependencies. install: $(VIRTUAL_ENV) if [ -z "$(QUICK)" ]; then \ - $(PIP) install -U pip wheel $(PIP_INSTALL_OPTIONS) -r $(PYTHON_REQUIREMENTS_FILE) ; \ + $(PIP) install -U pip wheel -r $(PYTHON_REQUIREMENTS_FILE) ; \ fi # Installs the local project dependencies, including development-only libraries. install-dev: $(VIRTUAL_ENV) if [ -z "$(QUICK)" ]; then \ - $(PIP) install -U pip wheel $(PIP_INSTALL_OPTIONS) -r $(PYTHON_REQUIREMENTS_DEV_FILE) ; \ + $(PIP) install -U pip wheel -r $(PYTHON_REQUIREMENTS_DEV_FILE) ; \ fi # Cleans up the local mess. diff --git a/Projectfile b/Projectfile index 0873ff4..6e80bb7 100644 --- a/Projectfile +++ b/Projectfile @@ -22,6 +22,7 @@ enable_features = { install_requires = [ 'blessings >=1.6,<1.7', + 'colorama >=0.3,<0.4', 'psutil >=5.0,<5.1', 'requests >=2.12,<2.13', 'stevedore >=1.19,<1.20', diff --git a/bonobo/context/execution.py b/bonobo/context/execution.py index 2f23318..ddd5894 100644 --- a/bonobo/context/execution.py +++ b/bonobo/context/execution.py @@ -164,8 +164,7 @@ class LoopingExecutionContext(Wrapper): :return: to hell """ - from blessings import Terminal - term = Terminal() + from bonobo.util import terminal as term print(term.bold(term.red('\U0001F4A3 {} in {}'.format(type(exc).__name__, self.wrapped)))) print(trace) diff --git a/bonobo/examples/datasets/fablabs.py b/bonobo/examples/datasets/fablabs.py index a228f53..c4e6d86 100644 --- a/bonobo/examples/datasets/fablabs.py +++ b/bonobo/examples/datasets/fablabs.py @@ -1,8 +1,6 @@ import json import os -from blessings import Terminal - from bonobo import Tee, JsonWriter, Graph, get_examples_path from bonobo.ext.opendatasoft import OpenDataSoftAPI @@ -15,7 +13,6 @@ API_DATASET = 'fablabs-in-the-world' API_NETLOC = 'datanova.laposte.fr' ROWS = 100 -t = Terminal() __path__ = os.path.dirname(__file__) diff --git a/bonobo/ext/console/plugin.py b/bonobo/ext/console/plugin.py index 94bda40..556fb39 100644 --- a/bonobo/ext/console/plugin.py +++ b/bonobo/ext/console/plugin.py @@ -21,8 +21,7 @@ import blessings import psutil from bonobo.core.plugins import Plugin - -t = blessings.Terminal() +from bonobo.util import terminal as t @lru_cache(1) diff --git a/bonobo/util/__init__.py b/bonobo/util/__init__.py index 1b616e1..b1637bb 100644 --- a/bonobo/util/__init__.py +++ b/bonobo/util/__init__.py @@ -3,20 +3,21 @@ import functools from pprint import pprint as _pprint -import blessings - -from .helpers import console_run, jupyter_run from .tokens import NOT_MODIFIED +import colorama as _colorama +_colorama.init() +import blessings as _blessings +terminal = _blessings.Terminal() + __all__ = [ 'Limit', 'NOT_MODIFIED', 'PrettyPrint', 'Tee', - 'console_run', - 'jupyter_run', 'noop', 'pprint', + 'terminal', ] @@ -51,10 +52,9 @@ pprint = Tee(_pprint) def PrettyPrint(title_keys=('title', 'name', 'id'), print_values=True, sort=True): - term = blessings.Terminal() - def _pprint(*args, **kwargs): - nonlocal title_keys, term, sort, print_values + global terminal + nonlocal title_keys, sort, print_values row = args[0] for key in title_keys: diff --git a/config/conda.yml b/config/conda.yml index 3826f4e..ed20ebd 100644 --- a/config/conda.yml +++ b/config/conda.yml @@ -7,6 +7,7 @@ dependencies: - pip: - psycopg2 >=2.6.1 - blessings >=1.6,<1.7 + - colorama >=0.3,<0.4 - psutil >=5.0,<5.1 - requests >=2.12,<2.13 - stevedore >=1.19,<1.20 diff --git a/setup.py b/setup.py index 1d12879..df95728 100644 --- a/setup.py +++ b/setup.py @@ -8,71 +8,63 @@ root_dir = os.path.dirname(os.path.abspath(__file__)) tolines = lambda c: list(filter(None, map(lambda s: s.strip(), c.split('\n')))) - def read(filename, flt=None): try: with open(filename) as f: content = f.read().strip() return flt(content) if callable(flt) else content - except EnvironmentError: + except FileNotFoundError: return '' - # Py3 compatibility hacks, borrowed from IPython. try: execfile except NameError: - def execfile(fname, globs, locs=None): locs = locs or globs exec(compile(open(fname).read(), fname, "exec"), globs, locs) - version_ns = {} -try: - execfile(os.path.join(root_dir, 'bonobo/_version.py'), version_ns) -except EnvironmentError: - version = 'dev' -else: - version = version_ns.get('__version__', 'dev') +execfile(os.path.join(root_dir, 'bonobo/_version.py'), version_ns) +version = version_ns.get('__version__', 'dev') setup( - name='bonobo', - description='Bonobo', - license='Apache License, Version 2.0', - install_requires=[ - 'blessings >=1.6,<1.7', 'psutil >=5.0,<5.1', 'requests >=2.12,<2.13', 'stevedore >=1.19,<1.20', - 'toolz >=0.8,<0.9' - ], - version=version, - long_description=read('README.rst'), - classifiers=read('classifiers.txt', tolines), - packages=find_packages(exclude=['ez_setup', 'example', 'test']), - include_package_data=True, - data_files=[ - ( - 'share/jupyter/nbextensions/bonobo-jupyter', [ - 'bonobo/ext/jupyter/static/extension.js', 'bonobo/ext/jupyter/static/index.js', - 'bonobo/ext/jupyter/static/index.js.map' - ] - ) - ], - extras_require={ - 'dev': [ - 'coverage >=4.3,<4.4', 'mock >=2.0,<2.1', 'nose >=1.3,<1.4', 'pylint >=1.6,<1.7', 'pytest >=3,<4', - 'pytest-cov >=2.4,<2.5', 'pytest-timeout >=1.2,<1.3', 'sphinx', 'sphinx_rtd_theme', 'yapf' - ], - 'jupyter': ['jupyter >=1.0,<1.1', 'ipywidgets >=6.0.0.beta5'] - }, - entry_points={ - 'bonobo.commands': [ - 'init = bonobo.commands.init:register', 'run = bonobo.commands.run:register', - 'version = bonobo.commands.version:register' - ], - 'console_scripts': ['bonobo = bonobo.commands:entrypoint', 'bb = bonobo.commands:entrypoint'], - 'edgy.project.features': ['bonobo = ' - 'bonobo.ext.edgy.project.feature:BonoboFeature'] - }, - url='https://bonobo-project.org/', - download_url='https://github.com/python-bonobo/bonobo/tarball/{version}'.format(version=version), + name = 'bonobo', + description = 'Bonobo', + license = 'Apache License, Version 2.0', + install_requires = ['blessings >=1.6,<1.7', + 'colorama >=0.3,<0.4', + 'psutil >=5.0,<5.1', + 'requests >=2.12,<2.13', + 'stevedore >=1.19,<1.20', + 'toolz >=0.8,<0.9'], + version = version, + long_description = read('README.rst'), + classifiers = read('classifiers.txt', tolines), + packages = find_packages(exclude=['ez_setup', 'example', 'test']), + include_package_data = True, + data_files = [('share/jupyter/nbextensions/bonobo-jupyter', + ['bonobo/ext/jupyter/static/extension.js', + 'bonobo/ext/jupyter/static/index.js', + 'bonobo/ext/jupyter/static/index.js.map'])], + extras_require = {'dev': ['coverage >=4.3,<4.4', + 'mock >=2.0,<2.1', + 'nose >=1.3,<1.4', + 'pylint >=1.6,<1.7', + 'pytest >=3,<4', + 'pytest-cov >=2.4,<2.5', + 'pytest-timeout >=1.2,<1.3', + 'sphinx', + 'sphinx_rtd_theme', + 'yapf'], + 'jupyter': ['jupyter >=1.0,<1.1', 'ipywidgets >=6.0.0.beta5']}, + entry_points = {'bonobo.commands': ['init = bonobo.commands.init:register', + 'run = bonobo.commands.run:register', + 'version = bonobo.commands.version:register'], + 'console_scripts': ['bonobo = bonobo.commands:entrypoint', + 'bb = bonobo.commands:entrypoint'], + 'edgy.project.features': ['bonobo = ' + 'bonobo.ext.edgy.project.feature:BonoboFeature']}, + url = 'https://bonobo-project.org/', + download_url = 'https://github.com/python-bonobo/bonobo/tarball/{version}'.format(version=version), )