summaryrefslogtreecommitdiff
path: root/taskflow/persistence
diff options
context:
space:
mode:
Diffstat (limited to 'taskflow/persistence')
-rw-r--r--taskflow/persistence/backends/impl_memory.py3
-rw-r--r--taskflow/persistence/backends/impl_sqlalchemy.py13
-rw-r--r--taskflow/persistence/base.py8
-rw-r--r--taskflow/persistence/models.py20
-rw-r--r--taskflow/persistence/path_based.py7
5 files changed, 20 insertions, 31 deletions
diff --git a/taskflow/persistence/backends/impl_memory.py b/taskflow/persistence/backends/impl_memory.py
index 3b6f10c..d7fdef8 100644
--- a/taskflow/persistence/backends/impl_memory.py
+++ b/taskflow/persistence/backends/impl_memory.py
@@ -21,7 +21,6 @@ import itertools
import posixpath as pp
import fasteners
-import six
from taskflow import exceptions as exc
from taskflow.persistence import path_based
@@ -261,7 +260,7 @@ class FakeFilesystem(object):
if 'target' in node.metadata:
return "%s (link to %s)" % (node.item, node.metadata['target'])
else:
- return six.text_type(node.item)
+ return str(node.item)
def pformat(self):
"""Pretty format this in-memory filesystem."""
diff --git a/taskflow/persistence/backends/impl_sqlalchemy.py b/taskflow/persistence/backends/impl_sqlalchemy.py
index 2dbe6ff..3ac0f3d 100644
--- a/taskflow/persistence/backends/impl_sqlalchemy.py
+++ b/taskflow/persistence/backends/impl_sqlalchemy.py
@@ -22,7 +22,6 @@ import threading
import time
from oslo_utils import strutils
-import six
import sqlalchemy as sa
from sqlalchemy import exc as sa_exc
from sqlalchemy import pool as sa_pool
@@ -116,7 +115,7 @@ def _log_statements(log_level, conn, cursor, statement, parameters, *args):
def _in_any(reason, err_haystack):
"""Checks if any elements of the haystack are in the given reason."""
for err in err_haystack:
- if reason.find(six.text_type(err)) != -1:
+ if reason.find(str(err)) != -1:
return True
return False
@@ -173,10 +172,10 @@ def _ping_listener(dbapi_conn, connection_rec, connection_proxy):
try:
dbapi_conn.cursor().execute('select 1')
except dbapi_conn.OperationalError as ex:
- if _in_any(six.text_type(ex.args[0]), MY_SQL_GONE_WAY_AWAY_ERRORS):
+ if _in_any(str(ex.args[0]), MY_SQL_GONE_WAY_AWAY_ERRORS):
LOG.warning('Got mysql server has gone away', exc_info=True)
raise sa_exc.DisconnectionError("Database server went away")
- elif _in_any(six.text_type(ex.args[0]), POSTGRES_GONE_WAY_AWAY_ERRORS):
+ elif _in_any(str(ex.args[0]), POSTGRES_GONE_WAY_AWAY_ERRORS):
LOG.warning('Got postgres server has gone away', exc_info=True)
raise sa_exc.DisconnectionError("Database server went away")
else:
@@ -285,13 +284,13 @@ class SQLAlchemyBackend(base.Backend):
txn_isolation_levels = conf.pop('isolation_levels',
DEFAULT_TXN_ISOLATION_LEVELS)
level_applied = False
- for (driver, level) in six.iteritems(txn_isolation_levels):
+ for (driver, level) in txn_isolation_levels.items():
if driver == e_url.drivername:
engine_args['isolation_level'] = level
level_applied = True
break
if not level_applied:
- for (driver, level) in six.iteritems(txn_isolation_levels):
+ for (driver, level) in txn_isolation_levels.items():
if e_url.drivername.find(driver) != -1:
engine_args['isolation_level'] = level
break
@@ -362,7 +361,7 @@ class Connection(base.Connection):
def _retry_on_exception(exc):
LOG.warning("Engine connection (validate) failed due to '%s'", exc)
if isinstance(exc, sa_exc.OperationalError) and \
- _is_db_connection_error(six.text_type(exc.args[0])):
+ _is_db_connection_error(str(exc.args[0])):
# We may be able to fix this by retrying...
return True
if isinstance(exc, (sa_exc.TimeoutError,
diff --git a/taskflow/persistence/base.py b/taskflow/persistence/base.py
index 7f08c92..dc041f7 100644
--- a/taskflow/persistence/base.py
+++ b/taskflow/persistence/base.py
@@ -16,13 +16,10 @@
import abc
-import six
-
from taskflow.persistence import models
-@six.add_metaclass(abc.ABCMeta)
-class Backend(object):
+class Backend(object, metaclass=abc.ABCMeta):
"""Base class for persistence backends."""
def __init__(self, conf):
@@ -42,8 +39,7 @@ class Backend(object):
"""Closes any resources this backend has open."""
-@six.add_metaclass(abc.ABCMeta)
-class Connection(object):
+class Connection(object, metaclass=abc.ABCMeta):
"""Base class for backend connections."""
@abc.abstractproperty
diff --git a/taskflow/persistence/models.py b/taskflow/persistence/models.py
index 0c3385a..8d3235d 100644
--- a/taskflow/persistence/models.py
+++ b/taskflow/persistence/models.py
@@ -21,7 +21,6 @@ import os
from oslo_utils import timeutils
from oslo_utils import uuidutils
-import six
from taskflow import exceptions as exc
from taskflow import states
@@ -259,7 +258,7 @@ class LogBook(object):
return self._name
def __iter__(self):
- for fd in six.itervalues(self._flowdetails_by_id):
+ for fd in self._flowdetails_by_id.values():
yield fd
def __len__(self):
@@ -464,15 +463,14 @@ class FlowDetail(object):
return self._name
def __iter__(self):
- for ad in six.itervalues(self._atomdetails_by_id):
+ for ad in self._atomdetails_by_id.values():
yield ad
def __len__(self):
return len(self._atomdetails_by_id)
-@six.add_metaclass(abc.ABCMeta)
-class AtomDetail(object):
+class AtomDetail(object, metaclass=abc.ABCMeta):
"""A collection of atom specific runtime information and metadata.
This is a base **abstract** class that contains attributes that are used
@@ -887,7 +885,7 @@ class RetryDetail(AtomDetail):
# contain tracebacks, which are not copyable.
for (data, failures) in self.results:
copied_failures = {}
- for (key, failure) in six.iteritems(failures):
+ for (key, failure) in failures.items():
copied_failures[key] = failure
results.append((data, copied_failures))
clone.results = results
@@ -980,7 +978,7 @@ class RetryDetail(AtomDetail):
new_results = []
for (data, failures) in results:
new_failures = {}
- for (key, data) in six.iteritems(failures):
+ for (key, data) in failures.items():
new_failures[key] = ft.Failure.from_dict(data)
new_results.append((data, new_failures))
return new_results
@@ -998,7 +996,7 @@ class RetryDetail(AtomDetail):
new_results = []
for (data, failures) in results:
new_failures = {}
- for (key, failure) in six.iteritems(failures):
+ for (key, failure) in failures.items():
new_failures[key] = failure.to_dict()
new_results.append((data, new_failures))
return new_results
@@ -1041,7 +1039,7 @@ class RetryDetail(AtomDetail):
# contain tracebacks, which are not copyable.
for (data, failures) in other.results:
copied_failures = {}
- for (key, failure) in six.iteritems(failures):
+ for (key, failure) in failures.items():
if deep_copy:
copied_failures[key] = failure.copy()
else:
@@ -1056,8 +1054,8 @@ _DETAIL_TO_NAME = {
TaskDetail: 'TASK_DETAIL',
}
_NAME_TO_DETAIL = dict((name, cls)
- for (cls, name) in six.iteritems(_DETAIL_TO_NAME))
-ATOM_TYPES = list(six.iterkeys(_NAME_TO_DETAIL))
+ for (cls, name) in _DETAIL_TO_NAME.items())
+ATOM_TYPES = list(_NAME_TO_DETAIL.keys())
def atom_detail_class(atom_type):
diff --git a/taskflow/persistence/path_based.py b/taskflow/persistence/path_based.py
index f2d411b..6fa3c05 100644
--- a/taskflow/persistence/path_based.py
+++ b/taskflow/persistence/path_based.py
@@ -15,15 +15,13 @@
# under the License.
import abc
-import six
from taskflow import exceptions as exc
from taskflow.persistence import base
from taskflow.persistence import models
-@six.add_metaclass(abc.ABCMeta)
-class PathBasedBackend(base.Backend):
+class PathBasedBackend(base.Backend, metaclass=abc.ABCMeta):
"""Base class for persistence backends that address data by path
Subclasses of this backend write logbooks, flow details, and atom details
@@ -48,8 +46,7 @@ class PathBasedBackend(base.Backend):
return self._path
-@six.add_metaclass(abc.ABCMeta)
-class PathBasedConnection(base.Connection):
+class PathBasedConnection(base.Connection, metaclass=abc.ABCMeta):
"""Base class for path based backend connections."""
def __init__(self, backend):