summaryrefslogtreecommitdiff
path: root/taskflow/utils/misc.py
diff options
context:
space:
mode:
Diffstat (limited to 'taskflow/utils/misc.py')
-rw-r--r--taskflow/utils/misc.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/taskflow/utils/misc.py b/taskflow/utils/misc.py
index 65a93e2..8c0f904 100644
--- a/taskflow/utils/misc.py
+++ b/taskflow/utils/misc.py
@@ -18,7 +18,9 @@
import collections.abc
import contextlib
import datetime
+import functools
import inspect
+import io
import os
import re
import socket
@@ -33,13 +35,12 @@ from oslo_utils import encodeutils
from oslo_utils import importutils
from oslo_utils import netutils
from oslo_utils import reflection
-import six
from taskflow.types import failure
UNKNOWN_HOSTNAME = "<unknown>"
-NUMERIC_TYPES = six.integer_types + (float,)
+NUMERIC_TYPES = (int, float)
# NOTE(imelnikov): regular expression to get scheme from URI,
# see RFC 3986 section 3.1
@@ -57,7 +58,7 @@ class StrEnum(str, enum.Enum):
return super(StrEnum, cls).__new__(cls, *args, **kwargs)
-class StringIO(six.StringIO):
+class StringIO(io.StringIO):
"""String buffer with some small additions."""
def write_nl(self, value, linesep=os.linesep):
@@ -65,7 +66,7 @@ class StringIO(six.StringIO):
self.write(linesep)
-class BytesIO(six.BytesIO):
+class BytesIO(io.BytesIO):
"""Byte buffer with some small additions."""
def reset(self):
@@ -118,7 +119,7 @@ def countdown_iter(start_at, decr=1):
def extract_driver_and_conf(conf, conf_key):
"""Common function to get a driver name and its configuration."""
- if isinstance(conf, six.string_types):
+ if isinstance(conf, str):
conf = {conf_key: conf}
maybe_uri = conf[conf_key]
try:
@@ -161,7 +162,7 @@ def merge_uri(uri, conf):
for (k, v, is_not_empty_value_func) in specials:
if is_not_empty_value_func(v):
conf.setdefault(k, v)
- for (k, v) in six.iteritems(uri.params()):
+ for (k, v) in uri.params().items():
conf.setdefault(k, v)
return conf
@@ -182,7 +183,7 @@ def find_subclasses(locations, base_cls, exclude_hidden=True):
derived = set()
for item in locations:
module = None
- if isinstance(item, six.string_types):
+ if isinstance(item, str):
try:
pkg, cls = item.split(':')
except ValueError:
@@ -221,7 +222,7 @@ def pick_first_not_none(*values):
def parse_uri(uri):
"""Parses a uri into its components."""
# Do some basic validation before continuing...
- if not isinstance(uri, six.string_types):
+ if not isinstance(uri, str):
raise TypeError("Can only parse string types to uri data, "
"and not '%s' (%s)" % (uri, type(uri)))
match = _SCHEME_REGEX.match(uri)
@@ -236,7 +237,7 @@ def disallow_when_frozen(excp_cls):
def decorator(f):
- @six.wraps(f)
+ @functools.wraps(f)
def wrapper(self, *args, **kwargs):
if self.frozen:
raise excp_cls()
@@ -274,7 +275,7 @@ def binary_encode(text, encoding='utf-8', errors='strict'):
Does nothing if data is already a binary string (raises on unknown types).
"""
- if isinstance(text, six.binary_type):
+ if isinstance(text, bytes):
return text
else:
return encodeutils.safe_encode(text, encoding=encoding,
@@ -286,7 +287,7 @@ def binary_decode(data, encoding='utf-8', errors='strict'):
Does nothing if data is already a text string (raises on unknown types).
"""
- if isinstance(data, six.text_type):
+ if isinstance(data, str):
return data
else:
return encodeutils.safe_decode(data, incoming=encoding,
@@ -426,7 +427,7 @@ def get_version_string(obj):
if isinstance(obj_version, (list, tuple)):
obj_version = '.'.join(str(item) for item in obj_version)
if obj_version is not None and not isinstance(obj_version,
- six.string_types):
+ str):
obj_version = str(obj_version)
return obj_version
@@ -524,7 +525,7 @@ def is_iterable(obj):
:param obj: object to be tested for iterable
:return: True if object is iterable and is not a string
"""
- return (not isinstance(obj, six.string_types) and
+ return (not isinstance(obj, str) and
isinstance(obj, collections.abc.Iterable))