Remove six

Remove all usages of six.

Change-Id: I6ea8d1cdc3060d5c2a4311c7454b66ba75109b0c
This commit is contained in:
wangzihao 2020-10-12 19:30:57 +08:00
parent dfb45e2b66
commit 17d2d5175e
25 changed files with 46 additions and 70 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)
)

View File

@ -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" %

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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":

View File

@ -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)

View File

@ -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):

View File

@ -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):

View File

@ -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):

View File

@ -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):

View File

@ -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):

View File

@ -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()))

View File

@ -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()))

View File

@ -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):

View File

@ -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):

View File

@ -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)

View File

@ -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():

View File

@ -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:

View File

@ -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)

View File

@ -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"],