summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lower-constraints.txt1
-rw-r--r--requirements.txt1
-rw-r--r--troveclient/apiclient/auth.py8
-rw-r--r--troveclient/apiclient/base.py10
-rw-r--r--troveclient/apiclient/exceptions.py4
-rw-r--r--troveclient/auth_plugin.py3
-rw-r--r--troveclient/base.py5
-rw-r--r--troveclient/client.py2
-rw-r--r--troveclient/common.py2
-rw-r--r--troveclient/compat/auth.py3
-rw-r--r--troveclient/compat/common.py7
-rw-r--r--troveclient/osc/v1/database_backups.py5
-rw-r--r--troveclient/osc/v1/database_clusters.py5
-rw-r--r--troveclient/osc/v1/database_configurations.py9
-rw-r--r--troveclient/osc/v1/database_instances.py5
-rw-r--r--troveclient/osc/v1/database_logs.py5
-rw-r--r--troveclient/osc/v1/database_quota.py3
-rw-r--r--troveclient/osc/v1/database_root.py5
-rw-r--r--troveclient/osc/v1/database_users.py3
-rw-r--r--troveclient/osc/v1/datastores.py5
-rw-r--r--troveclient/shell.py5
-rw-r--r--troveclient/tests/fakes.py2
-rw-r--r--troveclient/tests/test_shell.py6
-rw-r--r--troveclient/utils.py9
-rw-r--r--troveclient/v1/backups.py3
25 files changed, 46 insertions, 70 deletions
diff --git a/lower-constraints.txt b/lower-constraints.txt
index ddbab0a..a263c2e 100644
--- a/lower-constraints.txt
+++ b/lower-constraints.txt
@@ -67,7 +67,6 @@ requests==2.14.2
requestsexceptions==1.2.0
rfc3986==0.3.1
simplejson==3.5.1
-six==1.10.0
snowballstemmer==1.2.1
stestr==2.0.0
stevedore==1.20.0
diff --git a/requirements.txt b/requirements.txt
index 2d57e1a..3d8f95d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -9,7 +9,6 @@ oslo.i18n>=3.15.3 # Apache-2.0
oslo.utils>=3.33.0 # Apache-2.0
Babel!=2.4.0,>=2.3.4 # BSD
keystoneauth1>=3.4.0 # Apache-2.0
-six>=1.10.0 # MIT
python-swiftclient>=3.2.0 # Apache-2.0
python-mistralclient!=3.2.0,>=3.1.0 # Apache-2.0
osc-lib>=1.8.0 # Apache-2.0
diff --git a/troveclient/apiclient/auth.py b/troveclient/apiclient/auth.py
index cf9d378..4b5dbe4 100644
--- a/troveclient/apiclient/auth.py
+++ b/troveclient/apiclient/auth.py
@@ -21,7 +21,6 @@ import abc
import argparse
import os
-import six
from stevedore import extension
from troveclient.apiclient import exceptions
@@ -54,7 +53,7 @@ def load_auth_system_opts(parser):
"""
group = parser.add_argument_group("Common auth options")
BaseAuthPlugin.add_common_opts(group)
- for name, auth_plugin in six.iteritems(_discovered_plugins):
+ for name, auth_plugin in _discovered_plugins.items():
group = parser.add_argument_group(
"Auth-system '%s' options" % name,
conflict_handler="resolve")
@@ -85,7 +84,7 @@ def load_plugin_from_args(args):
plugin.sufficient_options()
return plugin
- for plugin_auth_system in sorted(six.iterkeys(_discovered_plugins)):
+ for plugin_auth_system in sorted(_discovered_plugins.keys()):
plugin_class = _discovered_plugins[plugin_auth_system]
plugin = plugin_class()
plugin.parse_opts(args)
@@ -97,8 +96,7 @@ def load_plugin_from_args(args):
raise exceptions.AuthPluginOptionsMissing(["auth_system"])
-@six.add_metaclass(abc.ABCMeta)
-class BaseAuthPlugin(object):
+class BaseAuthPlugin(metaclass=abc.ABCMeta):
"""Base class for authentication plugins.
An authentication plugin needs to override at least the authenticate
diff --git a/troveclient/apiclient/base.py b/troveclient/apiclient/base.py
index e2a2f05..c9f89f4 100644
--- a/troveclient/apiclient/base.py
+++ b/troveclient/apiclient/base.py
@@ -28,8 +28,7 @@ import copy
from oslo_utils import reflection
from oslo_utils import strutils
-import six
-from six.moves.urllib import parse
+from urllib import parse
from troveclient.apiclient import exceptions
@@ -203,8 +202,7 @@ class BaseManager(HookableMixin):
return self.client.delete(url)
-@six.add_metaclass(abc.ABCMeta)
-class ManagerWithFind(BaseManager):
+class ManagerWithFind(BaseManager, metaclass=abc.ABCMeta):
"""Manager with additional `find()`/`findall()` methods."""
@abc.abstractmethod
@@ -293,7 +291,7 @@ class CrudManager(BaseManager):
def _filter_kwargs(self, kwargs):
"""Drop null values and handle ids."""
- for key, ref in six.iteritems(kwargs.copy()):
+ for key, ref in kwargs.copy().items():
if ref is None:
kwargs.pop(key)
else:
@@ -449,7 +447,7 @@ class Resource(object):
return None
def _add_details(self, info):
- for (k, v) in six.iteritems(info):
+ for (k, v) in info.items():
try:
setattr(self, k, v)
self._info[k] = v
diff --git a/troveclient/apiclient/exceptions.py b/troveclient/apiclient/exceptions.py
index 5c70c08..17b73ee 100644
--- a/troveclient/apiclient/exceptions.py
+++ b/troveclient/apiclient/exceptions.py
@@ -23,8 +23,6 @@ Exception definitions.
import inspect
import sys
-import six
-
class ClientException(Exception):
"""The base exception class for all exceptions this library raises.
@@ -397,7 +395,7 @@ class HttpVersionNotSupported(HttpServerError):
# _code_map contains all the classes that have http_status attribute.
_code_map = dict(
(getattr(obj, 'http_status', None), obj)
- for name, obj in six.iteritems(vars(sys.modules[__name__]))
+ for name, obj in vars(sys.modules[__name__]).items()
if inspect.isclass(obj) and getattr(obj, 'http_status', False)
)
diff --git a/troveclient/auth_plugin.py b/troveclient/auth_plugin.py
index 4b78f21..ab0d2d8 100644
--- a/troveclient/auth_plugin.py
+++ b/troveclient/auth_plugin.py
@@ -18,7 +18,6 @@
import logging
import pkg_resources
-import six
from troveclient import exceptions
@@ -51,7 +50,7 @@ def load_auth_system_opts(parser):
This function will try to populate the parser with options from the
available plugins.
"""
- for name, auth_plugin in six.iteritems(_discovered_plugins):
+ for name, auth_plugin in _discovered_plugins.items():
add_opts_fn = getattr(auth_plugin, "add_opts", None)
if add_opts_fn:
group = parser.add_argument_group("Auth-system '%s' options" %
diff --git a/troveclient/base.py b/troveclient/base.py
index 950ab2e..a9f94ca 100644
--- a/troveclient/base.py
+++ b/troveclient/base.py
@@ -23,8 +23,7 @@ import contextlib
import hashlib
import os
-import six
-from six.moves.urllib import parse
+from urllib import parse
from troveclient.apiclient import base
from troveclient.apiclient import exceptions
@@ -199,7 +198,7 @@ class Manager(utils.HookableMixin):
return body
-class ManagerWithFind(six.with_metaclass(abc.ABCMeta, Manager)):
+class ManagerWithFind(Manager, metaclass=abc.ABCMeta):
"""Like a `Manager`, but with additional `find()`/`findall()` methods."""
@abc.abstractmethod
diff --git a/troveclient/client.py b/troveclient/client.py
index 49ebf6f..b7fb47e 100644
--- a/troveclient/client.py
+++ b/troveclient/client.py
@@ -24,7 +24,7 @@ import logging
from keystoneauth1 import adapter
from oslo_utils import importutils
import requests
-import six.moves.urllib.parse as urlparse
+from urllib import parse as urlparse
from troveclient.apiclient import client
from troveclient import exceptions
diff --git a/troveclient/common.py b/troveclient/common.py
index df481c4..70c1a35 100644
--- a/troveclient/common.py
+++ b/troveclient/common.py
@@ -14,7 +14,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from six.moves.urllib import parse
+from urllib import parse
from troveclient.apiclient import exceptions
diff --git a/troveclient/compat/auth.py b/troveclient/compat/auth.py
index 1a331bc..b7882b6 100644
--- a/troveclient/compat/auth.py
+++ b/troveclient/compat/auth.py
@@ -11,7 +11,6 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-import six
from troveclient.compat import exceptions
@@ -19,7 +18,7 @@ def get_authenticator_cls(cls_or_name):
"""Factory method to retrieve Authenticator class."""
if isinstance(cls_or_name, type):
return cls_or_name
- elif isinstance(cls_or_name, six.string_types):
+ elif isinstance(cls_or_name, str):
if cls_or_name == "keystone":
return KeyStoneV3Authenticator
elif cls_or_name == "auth1.1":
diff --git a/troveclient/compat/common.py b/troveclient/compat/common.py
index ec7854f..2d2676c 100644
--- a/troveclient/compat/common.py
+++ b/troveclient/compat/common.py
@@ -17,9 +17,8 @@ import json
import optparse
import os
import pickle
-import six
-from six.moves.urllib import parse
import sys
+from urllib import parse
from troveclient.compat import client
from troveclient.compat import exceptions
@@ -44,7 +43,7 @@ def check_for_exceptions(resp, body):
def print_actions(cmd, actions):
"""Print help for the command with list of options and description."""
print("Available actions for '%s' cmd:" % cmd)
- for k, v in six.iteritems(actions):
+ for k, v in actions.items():
print("\t%-20s%s" % (k, v.__doc__))
sys.exit(2)
@@ -53,7 +52,7 @@ def print_commands(commands):
"""Print the list of available commands and description."""
print("Available commands")
- for k, v in six.iteritems(commands):
+ for k, v in commands.items():
print("\t%-20s%s" % (k, v.__doc__))
sys.exit(2)
diff --git a/troveclient/osc/v1/database_backups.py b/troveclient/osc/v1/database_backups.py
index 9525ed0..6cfaf8e 100644
--- a/troveclient/osc/v1/database_backups.py
+++ b/troveclient/osc/v1/database_backups.py
@@ -15,7 +15,6 @@
from osc_lib.command import command
from osc_lib import exceptions
from osc_lib import utils as osc_utils
-import six
from troveclient.i18n import _
@@ -167,7 +166,7 @@ class ShowDatabaseBackup(command.ShowOne):
database_backups = self.app.client_manager.database.backups
backup = osc_utils.find_resource(database_backups, parsed_args.backup)
backup = set_attributes_for_print_detail(backup)
- return zip(*sorted(six.iteritems(backup)))
+ return zip(*sorted(backup.items()))
class DeleteDatabaseBackup(command.Command):
@@ -257,7 +256,7 @@ class CreateDatabaseBackup(command.ShowOne):
swift_container=parsed_args.swift_container
)
backup = set_attributes_for_print_detail(backup)
- return zip(*sorted(six.iteritems(backup)))
+ return zip(*sorted(backup.items()))
class DeleteDatabaseBackupExecution(command.Command):
diff --git a/troveclient/osc/v1/database_clusters.py b/troveclient/osc/v1/database_clusters.py
index 9955d4f..6e9f0ee 100644
--- a/troveclient/osc/v1/database_clusters.py
+++ b/troveclient/osc/v1/database_clusters.py
@@ -15,7 +15,6 @@
from osc_lib.command import command
from osc_lib import exceptions
from osc_lib import utils
-import six
from troveclient.i18n import _
from troveclient.v1.shell import _parse_extended_properties
@@ -103,7 +102,7 @@ class ShowDatabaseCluster(command.ShowOne):
database_clusters = self.app.client_manager.database.clusters
cluster = utils.find_resource(database_clusters, parsed_args.cluster)
cluster = set_attributes_for_print_detail(cluster)
- return zip(*sorted(six.iteritems(cluster)))
+ return zip(*sorted(cluster.items()))
class DeleteDatabaseCluster(command.Command):
@@ -200,7 +199,7 @@ class CreateDatabaseCluster(command.ShowOne):
extended_properties=extended_properties,
configuration=parsed_args.configuration)
cluster = set_attributes_for_print_detail(cluster)
- return zip(*sorted(six.iteritems(cluster)))
+ return zip(*sorted(cluster.items()))
class ResetDatabaseClusterStatus(command.Command):
diff --git a/troveclient/osc/v1/database_configurations.py b/troveclient/osc/v1/database_configurations.py
index a1a1c44..6989576 100644
--- a/troveclient/osc/v1/database_configurations.py
+++ b/troveclient/osc/v1/database_configurations.py
@@ -15,7 +15,6 @@
import json
from osc_lib.command import command
from osc_lib import utils as osc_utils
-import six
from troveclient import exceptions
from troveclient.i18n import _
@@ -81,7 +80,7 @@ class ShowDatabaseConfiguration(command.ShowOne):
configuration = osc_utils.find_resource(
db_configurations, parsed_args.configuration_group)
configuration = set_attributes_for_print_detail(configuration)
- return zip(*sorted(six.iteritems(configuration)))
+ return zip(*sorted(configuration.items()))
class ListDatabaseConfigurationParameters(command.Lister):
@@ -177,7 +176,7 @@ class ShowDatabaseConfigurationParameter(command.ShowOne):
' parameter for the'
' configuration group'
' by name.'))
- return zip(*sorted(six.iteritems(param._info)))
+ return zip(*sorted(param._info.items()))
class DeleteDatabaseConfiguration(command.Command):
@@ -252,7 +251,7 @@ class CreateDatabaseConfiguration(command.ShowOne):
datastore=parsed_args.datastore,
datastore_version=parsed_args.datastore_version)
config_grp = set_attributes_for_print_detail(config_grp)
- return zip(*sorted(six.iteritems(config_grp)))
+ return zip(*sorted(config_grp.items()))
class AttachDatabaseConfiguration(command.Command):
@@ -371,7 +370,7 @@ class DefaultDatabaseConfiguration(command.ShowOne):
instance = osc_utils.find_resource(db_instances,
parsed_args.instance)
configs = db_instances.configuration(instance)
- return zip(*sorted(six.iteritems(configs._info['configuration'])))
+ return zip(*sorted(configs._info['configuration'].items()))
class SetDatabaseConfiguration(command.Command):
diff --git a/troveclient/osc/v1/database_instances.py b/troveclient/osc/v1/database_instances.py
index d16afd6..b3e916b 100644
--- a/troveclient/osc/v1/database_instances.py
+++ b/troveclient/osc/v1/database_instances.py
@@ -13,7 +13,6 @@
"""Database v1 Instances action implementations"""
import argparse
-import six
from osc_lib.command import command
from osc_lib import exceptions
@@ -174,7 +173,7 @@ class ShowDatabaseInstance(command.ShowOne):
db_instances = self.app.client_manager.database.instances
instance = osc_utils.find_resource(db_instances, parsed_args.instance)
instance = set_attributes_for_print_detail(instance)
- return zip(*sorted(six.iteritems(instance)))
+ return zip(*sorted(instance.items()))
class DeleteDatabaseInstance(base.TroveDeleter):
@@ -447,7 +446,7 @@ class CreateDatabaseInstance(command.ShowOne):
access=access
)
instance = set_attributes_for_print_detail(instance)
- return zip(*sorted(six.iteritems(instance)))
+ return zip(*sorted(instance.items()))
class ResetDatabaseInstanceStatus(command.Command):
diff --git a/troveclient/osc/v1/database_logs.py b/troveclient/osc/v1/database_logs.py
index 1cedd36..a7a1730 100644
--- a/troveclient/osc/v1/database_logs.py
+++ b/troveclient/osc/v1/database_logs.py
@@ -12,7 +12,6 @@
from osc_lib.command import command
from osc_lib import utils as osc_utils
-import six
from troveclient import exceptions
from troveclient.i18n import _
@@ -99,7 +98,7 @@ class SetDatabaseInstanceLog(command.ShowOne):
)
result = log_info._info
- return zip(*sorted(six.iteritems(result)))
+ return zip(*sorted(result.items()))
class ShowDatabaseInstanceLog(command.ShowOne):
@@ -132,7 +131,7 @@ class ShowDatabaseInstanceLog(command.ShowOne):
log_info = db_instances.log_show(instance, parsed_args.log_name)
result = log_info._info
- return zip(*sorted(six.iteritems(result)))
+ return zip(*sorted(result.items()))
class ShowDatabaseInstanceLogContents(command.Command):
diff --git a/troveclient/osc/v1/database_quota.py b/troveclient/osc/v1/database_quota.py
index f257dd7..82e77fc 100644
--- a/troveclient/osc/v1/database_quota.py
+++ b/troveclient/osc/v1/database_quota.py
@@ -14,7 +14,6 @@
from osc_lib.command import command
from osc_lib import utils as osc_utils
-import six
from troveclient.i18n import _
@@ -71,4 +70,4 @@ class UpdateDatabaseQuota(command.ShowOne):
}
updated_quota = db_quota.update(parsed_args.tenant_id,
update_params)
- return zip(*sorted(six.iteritems(updated_quota)))
+ return zip(*sorted(updated_quota.items()))
diff --git a/troveclient/osc/v1/database_root.py b/troveclient/osc/v1/database_root.py
index cd6c533..c0c375d 100644
--- a/troveclient/osc/v1/database_root.py
+++ b/troveclient/osc/v1/database_root.py
@@ -15,7 +15,6 @@
from osc_lib.command import command
from osc_lib import exceptions
from osc_lib import utils as osc_utils
-import six
from troveclient.i18n import _
@@ -80,7 +79,7 @@ class EnableDatabaseRoot(command.ShowOne):
result = {'name': root[0],
'password': root[1]}
- return zip(*sorted(six.iteritems(result)))
+ return zip(*sorted(result.items()))
class DisableDatabaseRoot(command.Command):
@@ -136,4 +135,4 @@ class ShowDatabaseRoot(command.ShowOne):
root = db_root.is_cluster_root_enabled(instance_or_cluster)
result = {'is_root_enabled': root.rootEnabled}
- return zip(*sorted(six.iteritems(result)))
+ return zip(*sorted(result.items()))
diff --git a/troveclient/osc/v1/database_users.py b/troveclient/osc/v1/database_users.py
index edfc275..1048356 100644
--- a/troveclient/osc/v1/database_users.py
+++ b/troveclient/osc/v1/database_users.py
@@ -15,7 +15,6 @@
from osc_lib.command import command
from osc_lib import exceptions
from osc_lib import utils
-import six
from troveclient.i18n import _
@@ -129,7 +128,7 @@ class ShowDatabaseUser(command.ShowOne):
parsed_args.instance)
user = db_users.get(instance, parsed_args.name,
hostname=parsed_args.host)
- return zip(*sorted(six.iteritems(user._info)))
+ return zip(*sorted(user._info.items()))
class DeleteDatabaseUser(command.Command):
diff --git a/troveclient/osc/v1/datastores.py b/troveclient/osc/v1/datastores.py
index 20b23c8..a45be92 100644
--- a/troveclient/osc/v1/datastores.py
+++ b/troveclient/osc/v1/datastores.py
@@ -14,7 +14,6 @@
from osc_lib.command import command
from osc_lib import utils
-import six
from troveclient import exceptions
from troveclient.i18n import _
@@ -65,7 +64,7 @@ class ShowDatastore(command.ShowOne):
datastore = utils.find_resource(datastore_client,
parsed_args.datastore)
datastore = set_attributes_for_print_detail(datastore)
- return zip(*sorted(six.iteritems(datastore)))
+ return zip(*sorted(datastore.items()))
class DeleteDatastore(command.Command):
@@ -146,7 +145,7 @@ class ShowDatastoreVersion(command.ShowOne):
' datastore version by name.'))
if datastore_version._info.get('links'):
del (datastore_version._info['links'])
- return zip(*sorted(six.iteritems(datastore_version._info)))
+ return zip(*sorted(datastore_version._info.items()))
class DeleteDatastoreVersion(command.Command):
diff --git a/troveclient/shell.py b/troveclient/shell.py
index 9d1b683..ef3aa43 100644
--- a/troveclient/shell.py
+++ b/troveclient/shell.py
@@ -34,7 +34,6 @@ from keystoneauth1 import loading
from oslo_utils import encodeutils
from oslo_utils import importutils
import pkg_resources
-import six
from troveclient.apiclient import exceptions as exc
import troveclient.auth_plugin
@@ -758,8 +757,8 @@ def main():
sys.exit(130)
except Exception as e:
LOG.debug(e, exc_info=1)
- message = six.text_type(e)
- if not isinstance(message, six.string_types):
+ message = str(e)
+ if not isinstance(message, str):
message = str(message)
print(_("ERROR: %s") % encodeutils.safe_encode(message),
file=sys.stderr)
diff --git a/troveclient/tests/fakes.py b/troveclient/tests/fakes.py
index be074c2..c692cc9 100644
--- a/troveclient/tests/fakes.py
+++ b/troveclient/tests/fakes.py
@@ -12,10 +12,10 @@
# License for the specific language governing permissions and limitations
# under the License.
-from six.moves.urllib import parse
from troveclient import client as base_client
from troveclient.tests import utils
from troveclient.v1 import client
+from urllib import parse
def get_version_map():
diff --git a/troveclient/tests/test_shell.py b/troveclient/tests/test_shell.py
index 543d6ad..52973e1 100644
--- a/troveclient/tests/test_shell.py
+++ b/troveclient/tests/test_shell.py
@@ -11,6 +11,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+import io
import re
import sys
from unittest import mock
@@ -18,7 +19,6 @@ from unittest import mock
import fixtures
from keystoneauth1 import fixture
import requests_mock
-import six
import testtools
import uuid
@@ -101,8 +101,8 @@ class ShellTest(testtools.TestCase):
orig = sys.stdout
orig_stderr = sys.stderr
try:
- sys.stdout = six.StringIO()
- sys.stderr = six.StringIO()
+ sys.stdout = io.StringIO()
+ sys.stderr = io.StringIO()
_shell = troveclient.shell.OpenStackTroveShell()
_shell.main(argstr.split())
except SystemExit:
diff --git a/troveclient/utils.py b/troveclient/utils.py
index 8ab28ac..cd0be9a 100644
--- a/troveclient/utils.py
+++ b/troveclient/utils.py
@@ -22,7 +22,6 @@ import uuid
from oslo_utils import encodeutils
import prettytable
-import six
from troveclient.apiclient import exceptions
@@ -179,7 +178,7 @@ def print_list(objs, fields, formatters={}, order_by=None, obj_is_dict=False,
data = obj.get(field, '')
else:
data = getattr(obj, field, '')
- if isinstance(data, six.string_types):
+ if isinstance(data, str):
row.append(data.encode('utf-8'))
else:
row.append(str(data))
@@ -204,7 +203,7 @@ def print_dict(d, property="Property"):
pass
pt = prettytable.PrettyTable([property, 'Value'], caching=False)
pt.align = 'l'
- [pt.add_row(list(r)) for r in six.iteritems(d)]
+ [pt.add_row(list(r)) for r in d.items()]
_print(pt, property)
@@ -222,7 +221,7 @@ def find_resource(manager, name_or_id):
# is integer and instance name is digital.
# Related to bug/1740015.
if isinstance(name_or_id, int):
- name_or_id = six.text_type(name_or_id)
+ name_or_id = str(name_or_id)
elif sys.version_info <= (3, 0):
name_or_id = encodeutils.safe_decode(name_or_id)
@@ -351,7 +350,7 @@ def do_action_on_many(action, resources, success_msg, error_msg):
print(success_msg % resource)
except Exception as e:
failure_flag = True
- print(encodeutils.safe_encode(six.text_type(e)))
+ print(encodeutils.safe_encode(str(e)))
if failure_flag:
raise exceptions.CommandError(error_msg)
diff --git a/troveclient/v1/backups.py b/troveclient/v1/backups.py
index 4876ac7..4c5498e 100644
--- a/troveclient/v1/backups.py
+++ b/troveclient/v1/backups.py
@@ -16,7 +16,6 @@
# under the License.
import json
-import six
import uuid
from mistralclient.api.client import client as mistral_client
@@ -132,7 +131,7 @@ class Backups(base.ManagerWithFind):
project_name=tenant_name)
def _build_schedule(self, cron_trigger, wf_input):
- if isinstance(wf_input, six.string_types):
+ if isinstance(wf_input, str):
wf_input = json.loads(wf_input)
sched_info = {"id": cron_trigger.name,
"name": wf_input["name"],