From 7849f2679d533e9b87a7f5466400e2cc007284a1 Mon Sep 17 00:00:00 2001
From: Li-zhigang
Date: Wed, 23 Nov 2016 10:42:02 +0800
Subject: [PATCH] Replace six.iteritems() with .items()
1.As mentioned in [1], we should avoid using six.iteritems to achieve iterators.
We can use dict.items instead, as it will return iterators in PY3 as well.
And dict.items/keys will more readable. 2.In py2, the performance about
list should be negligible, see the link [2].
[1] https://wiki.openstack.org/wiki/Python3
[2] http://lists.openstack.org/pipermail/openstack-dev/2015-June/066391.html
Change-Id: I9824ddb528784857cac512254db01706e625f1d6
---
tacker/api/extensions.py | 11 +++++------
tacker/policy.py | 2 +-
tacker/tests/unit/test_api_v2.py | 8 +++-----
tacker/wsgi.py | 2 +-
4 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/tacker/api/extensions.py b/tacker/api/extensions.py
index eb879c55b..db23c38ac 100644
--- a/tacker/api/extensions.py
+++ b/tacker/api/extensions.py
@@ -166,7 +166,7 @@ class ExtensionDescriptor(object):
if not extension_attrs_map:
return
- for resource, attrs in six.iteritems(extension_attrs_map):
+ for resource, attrs in extension_attrs_map.items():
extended_attrs = extended_attributes.get(resource)
if extended_attrs:
attrs.update(extended_attrs)
@@ -196,7 +196,7 @@ class ActionExtensionController(wsgi.Controller):
def action(self, request, id):
input_dict = self._deserialize(request.body,
request.get_content_type())
- for action_name, handler in six.iteritems(self.action_handlers):
+ for action_name, handler in (self.action_handlers).items():
if action_name in input_dict:
return handler(input_dict, request, id)
# no action handler found (bump to downstream application)
@@ -238,7 +238,7 @@ class ExtensionController(wsgi.Controller):
def index(self, request):
extensions = []
- for _alias, ext in six.iteritems(self.extension_manager.extensions):
+ for _alias, ext in (self.extension_manager.extensions).items():
extensions.append(self._translate(ext))
return dict(extensions=extensions)
@@ -279,7 +279,7 @@ class ExtensionMiddleware(wsgi.Middleware):
LOG.debug(_('Extended resource: %s'),
resource.collection)
- for action, method in six.iteritems(resource.collection_actions):
+ for action, method in (resource.collection_actions).items():
conditions = dict(method=[method])
path = "/%s/%s" % (resource.collection, action)
with mapper.submapper(controller=resource.controller,
@@ -479,8 +479,7 @@ class ExtensionManager(object):
continue
try:
extended_attrs = ext.get_extended_resources(version)
- for resource, resource_attrs in six.iteritems(
- extended_attrs):
+ for resource, resource_attrs in extended_attrs.items():
if attr_map.get(resource):
attr_map[resource].update(resource_attrs)
else:
diff --git a/tacker/policy.py b/tacker/policy.py
index c60808ecf..fe43882f5 100644
--- a/tacker/policy.py
+++ b/tacker/policy.py
@@ -102,7 +102,7 @@ def _should_validate_sub_attributes(attribute, sub_attr):
validate = attribute.get('validate')
return (validate and isinstance(sub_attr, collections.Iterable) and
any([k.startswith('type:dict') and
- v for (k, v) in six.iteritems(validate)]))
+ v for (k, v) in validate.items()]))
def _build_subattr_match_rule(attr_name, attr, action, target):
diff --git a/tacker/tests/unit/test_api_v2.py b/tacker/tests/unit/test_api_v2.py
index 9dff52dc3..1c485f97b 100644
--- a/tacker/tests/unit/test_api_v2.py
+++ b/tacker/tests/unit/test_api_v2.py
@@ -541,7 +541,7 @@ class JSONV2TestCase(APIv2TestBase, testlib_api.WebTestCase):
output_dict = res['networks'][0]
input_dict['shared'] = False
self.assertEqual(len(input_dict), len(output_dict))
- for k, v in six.iteritems(input_dict):
+ for k, v in input_dict.items():
self.assertEqual(v, output_dict[k])
else:
# expect no results
@@ -1125,8 +1125,7 @@ class SubresourceTest(base.BaseTestCase):
# Save the global RESOURCE_ATTRIBUTE_MAP
self.saved_attr_map = {}
- for resource, attrs in six.iteritems(
- attributes.RESOURCE_ATTRIBUTE_MAP):
+ for resource, attrs in (attributes.RESOURCE_ATTRIBUTE_MAP).items():
self.saved_attr_map[resource] = attrs.copy()
self.config_parse()
@@ -1294,8 +1293,7 @@ class ExtensionTestCase(base.BaseTestCase):
# Save the global RESOURCE_ATTRIBUTE_MAP
self.saved_attr_map = {}
- for resource, attrs in six.iteritems(
- attributes.RESOURCE_ATTRIBUTE_MAP):
+ for resource, attrs in (attributes.RESOURCE_ATTRIBUTE_MAP).items():
self.saved_attr_map[resource] = attrs.copy()
# Create the default configurations
diff --git a/tacker/wsgi.py b/tacker/wsgi.py
index c443d4f2a..cb7d1d026 100644
--- a/tacker/wsgi.py
+++ b/tacker/wsgi.py
@@ -654,7 +654,7 @@ class Debug(Middleware):
resp = req.get_response(self.application)
print(("*" * 40) + " RESPONSE HEADERS")
- for (key, value) in six.iteritems(resp.headers):
+ for (key, value) in (resp.headers).items():
print(key, "=", value)
print()