diff --git a/taskflow/backends/celery/celeryapp.py b/taskflow/backends/celery/celeryapp.py index a973aced..1f537b21 100644 --- a/taskflow/backends/celery/celeryapp.py +++ b/taskflow/backends/celery/celeryapp.py @@ -19,7 +19,8 @@ import logging import traceback as tb -from celery.signals import task_failure, task_success +from celery.signals import task_failure +from celery.signals import task_success LOG = logging.getLogger(__name__) @@ -35,7 +36,7 @@ def task_error_handler(signal=None, sender=None, task_id=None, LOG.error('Trackeback: %s' % (tb.print_tb(traceback), )) wf = sender.name.split('.')[0] task = ('.').join(n for n in (sender.name.split('.')[1:]) if n) - # TODO: Auto-initiate rollback from failed task + # TODO(jlucci): Auto-initiate rollback from failed task @task_success.connect diff --git a/taskflow/backends/memory.py b/taskflow/backends/memory.py index 4196412f..b2c83cf6 100644 --- a/taskflow/backends/memory.py +++ b/taskflow/backends/memory.py @@ -23,7 +23,7 @@ import logging import threading import weakref -import taskflow +import taskflow.job from taskflow import catalog from taskflow import exceptions as exc diff --git a/taskflow/db/sqlalchemy/api.py b/taskflow/db/sqlalchemy/api.py index a5b1fd3f..a52f943a 100644 --- a/taskflow/db/sqlalchemy/api.py +++ b/taskflow/db/sqlalchemy/api.py @@ -22,6 +22,7 @@ import logging from taskflow import states + from taskflow.db.sqlalchemy import models from taskflow.db.sqlalchemy.session import get_session diff --git a/taskflow/db/sqlalchemy/models.py b/taskflow/db/sqlalchemy/models.py index 5e100158..9ae67570 100644 --- a/taskflow/db/sqlalchemy/models.py +++ b/taskflow/db/sqlalchemy/models.py @@ -19,7 +19,7 @@ """ SQLAlchemy models for taskflow data. """ - +import json from oslo.config import cfg from sqlalchemy import Column, Integer, String, Table, MetaData @@ -29,10 +29,11 @@ from sqlalchemy.orm import object_mapper, relationship, backref from sqlalchemy import DateTime, ForeignKey from sqlalchemy import types as types -from json import dumps, loads - -from taskflow.db.sqlalchemy.session import get_session, get_engine -from taskflow.openstack.common import timeutils, uuidutils, exception +from taskflow.db.sqlalchemy.session import get_engine +from taskflow.db.sqlalchemy.session import get_session +from taskflow.openstack.common import exception +from taskflow.openstack.common import timeutils +from taskflow.openstack.common import uuidutils CONF = cfg.CONF BASE = declarative_base() @@ -42,10 +43,10 @@ class Json(types.TypeDecorator, types.MutableType): impl = types.Text def process_bind_param(self, value, dialect): - return dumps(value) + return json.dumps(value) def process_result_value(self, value, dialect): - return loads(value) + return json.loads(value) class TaskFlowBase(object): diff --git a/taskflow/db/sqlalchemy/session.py b/taskflow/db/sqlalchemy/session.py index a620c8e4..66af18d2 100644 --- a/taskflow/db/sqlalchemy/session.py +++ b/taskflow/db/sqlalchemy/session.py @@ -21,10 +21,10 @@ import logging -import sqlalchemy.orm +import sqlalchemy import sqlalchemy.engine import sqlalchemy.interfaces -import sqlalchemy +import sqlalchemy.orm from sqlalchemy.pool import NullPool from sqlalchemy import exc @@ -92,7 +92,7 @@ def get_engine(): sqlalchemy.event.listen(_ENGINE, 'connect', synchronous_switch_listener) - #TODO: Check to make sure engine connected + # TODO(jharlow): Check to make sure engine connected return _ENGINE diff --git a/taskflow/patterns/distributed_flow.py b/taskflow/patterns/distributed_flow.py index d247d00c..1c979682 100644 --- a/taskflow/patterns/distributed_flow.py +++ b/taskflow/patterns/distributed_flow.py @@ -77,7 +77,8 @@ class Flow(object): callback_task.name = '%s.%s' % (self.name, callback_task.name) self._tasks.append(callback_task) - #TODO: Need to set up chord so that it's not executed immediately + # TODO(jlucci): Need to set up chord so that it's not executed + # immediately. c = chord(header, body=callback_task) def run(self, context, *args, **kwargs): diff --git a/taskflow/patterns/graph_flow.py b/taskflow/patterns/graph_flow.py index 3061deb2..86fa4259 100644 --- a/taskflow/patterns/graph_flow.py +++ b/taskflow/patterns/graph_flow.py @@ -19,9 +19,9 @@ import collections import logging -from networkx import exception as g_exc from networkx.algorithms import dag from networkx.classes import digraph +from networkx import exception as g_exc from taskflow import exceptions as exc from taskflow.patterns import ordered_flow diff --git a/taskflow/patterns/ordered_flow.py b/taskflow/patterns/ordered_flow.py index aa15be0e..6e9b79e2 100644 --- a/taskflow/patterns/ordered_flow.py +++ b/taskflow/patterns/ordered_flow.py @@ -24,6 +24,7 @@ import logging import sys from taskflow.openstack.common import excutils + from taskflow import exceptions as exc from taskflow import states from taskflow import utils diff --git a/taskflow/tests/unit/test_sql_db_api.py b/taskflow/tests/unit/test_sql_db_api.py index 535f757c..caf6f828 100644 --- a/taskflow/tests/unit/test_sql_db_api.py +++ b/taskflow/tests/unit/test_sql_db_api.py @@ -22,11 +22,13 @@ import unittest2 from os import path from oslo.config import cfg -from taskflow import states + +from taskflow.openstack.common import exception + from taskflow.db import api as db_api from taskflow.db.sqlalchemy import models from taskflow.db.sqlalchemy.session import get_session -from taskflow.openstack.common import exception +from taskflow import states db_api.configure() db_api.SQL_CONNECTION = 'sqlite:///test.db' diff --git a/taskflow/tests/utils.py b/taskflow/tests/utils.py index 2b133ea0..da5deda2 100644 --- a/taskflow/tests/utils.py +++ b/taskflow/tests/utils.py @@ -45,7 +45,7 @@ class ProvidesRequiresTask(task.Task): KWARGS_KEY: dict(kwargs), ARGS_KEY: list(args), } - if not ORDER_KEY in context: + if ORDER_KEY not in context: context[ORDER_KEY] = [] context[ORDER_KEY].append(self.name) for v in self.provides: diff --git a/tools/test-requires b/tools/test-requires index 0dca05d8..bd8b0aaf 100644 --- a/tools/test-requires +++ b/tools/test-requires @@ -1,12 +1,15 @@ -# Packages needed for developer testing this library. +# Install bounded pep8/pyflakes first, then let flake8 install +pep8==1.4.5 +pyflakes==0.7.2 +flake8==2.0 +hacking>=0.5.3,<0.6 + coverage distribute>=0.6.24 -flake8==2.0 mox nose nose-exclude openstack.nose_plugin>=0.7 -pep8==1.4.5 pylint==0.25.2 # Needed for features in 2.7 not in 2.6 unittest2 diff --git a/tox.ini b/tox.ini index 3f5d36ec..d147331c 100644 --- a/tox.ini +++ b/tox.ini @@ -41,4 +41,4 @@ commands = {posargs} [flake8] ignore = E711,E712,F401,F403,F811,F841,H302,H303,H304,H401,H402,H403,H404 builtins = _ -exclude = .venv,.tox,dist,doc,*openstack/common*,*egg,.git \ No newline at end of file +exclude = .venv,.tox,dist,doc,*openstack/common*,*egg,.git,build,tools \ No newline at end of file