Remove six.iteritems usage
We also remove hacking tests for this, along with those for iterkeys and itervalues (no usage of these). Change-Id: If5b46580078eb756651ac6118f502eccdc693646 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
parent
0562e3335b
commit
502fa0ffc8
@ -20,6 +20,3 @@ glance Specific Commandments
|
||||
- [G328] Must use a dict comprehension instead of a dict constructor with
|
||||
a sequence of key-value pairs
|
||||
- [G329] Python 3: Do not use xrange.
|
||||
- [G330] Python 3: do not use dict.iteritems.
|
||||
- [G331] Python 3: do not use dict.iterkeys.
|
||||
- [G332] Python 3: do not use dict.itervalues.
|
||||
|
@ -417,7 +417,7 @@ class BaseClient(object):
|
||||
to_str = str
|
||||
else:
|
||||
to_str = encodeutils.safe_encode
|
||||
return {to_str(h): to_str(v) for h, v in six.iteritems(headers)}
|
||||
return {to_str(h): to_str(v) for h, v in headers.items()}
|
||||
|
||||
@handle_redirects
|
||||
def _do_request(self, method, url, body, headers):
|
||||
|
@ -16,7 +16,6 @@
|
||||
"""Storage preference based location strategy module"""
|
||||
|
||||
from oslo_config import cfg
|
||||
import six
|
||||
import six.moves.urllib.parse as urlparse
|
||||
|
||||
from glance.i18n import _
|
||||
@ -116,7 +115,7 @@ def get_ordered_locations(locations, uri_key='url', **kwargs):
|
||||
pieces = urlparse.urlparse(uri.strip())
|
||||
|
||||
store_name = None
|
||||
for store, schemes in six.iteritems(_STORE_TO_SCHEME_MAP):
|
||||
for store, schemes in _STORE_TO_SCHEME_MAP.items():
|
||||
if pieces.scheme.strip() in schemes:
|
||||
store_name = store
|
||||
break
|
||||
|
@ -384,10 +384,9 @@ def create_mashup_dict(image_meta):
|
||||
"""
|
||||
|
||||
d = {}
|
||||
for key, value in six.iteritems(image_meta):
|
||||
for key, value in image_meta.items():
|
||||
if isinstance(value, dict):
|
||||
for subkey, subvalue in six.iteritems(
|
||||
create_mashup_dict(value)):
|
||||
for subkey, subvalue in create_mashup_dict(value).items():
|
||||
if subkey not in image_meta:
|
||||
d[subkey] = subvalue
|
||||
else:
|
||||
@ -522,7 +521,7 @@ def no_4byte_params(f):
|
||||
|
||||
def _check_dict(data_dict):
|
||||
# a dict of dicts has to be checked recursively
|
||||
for key, value in six.iteritems(data_dict):
|
||||
for key, value in data_dict.items():
|
||||
if isinstance(value, dict):
|
||||
_check_dict(value)
|
||||
else:
|
||||
|
@ -947,7 +947,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('')
|
||||
|
||||
|
@ -20,7 +20,6 @@ import uuid
|
||||
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
import six
|
||||
|
||||
from glance.common import exception
|
||||
from glance.common import timeutils
|
||||
@ -312,7 +311,7 @@ def _filter_images(images, filters, context,
|
||||
continue
|
||||
|
||||
to_add = True
|
||||
for k, value in six.iteritems(filters):
|
||||
for k, value in filters.items():
|
||||
key = k
|
||||
if k.endswith('_min') or k.endswith('_max'):
|
||||
key = key[0:-4]
|
||||
@ -1092,7 +1091,7 @@ def _filter_tasks(tasks, filters, context, admin_as_user=False):
|
||||
continue
|
||||
|
||||
add = True
|
||||
for k, value in six.iteritems(filters):
|
||||
for k, value in filters.items():
|
||||
add = task[k] == value and task['deleted'] is False
|
||||
if not add:
|
||||
break
|
||||
|
@ -1175,7 +1175,7 @@ def _set_properties_for_image(context, image_ref, properties,
|
||||
for prop_ref in image_ref.properties:
|
||||
orig_properties[prop_ref.name] = prop_ref
|
||||
|
||||
for name, value in six.iteritems(properties):
|
||||
for name, value in properties.items():
|
||||
prop_values = {'image_id': image_ref.id,
|
||||
'name': name,
|
||||
'value': value}
|
||||
|
@ -26,7 +26,6 @@ import re
|
||||
from oslo_config import cfg
|
||||
from oslo_log import log as logging
|
||||
from oslo_utils import encodeutils
|
||||
import six
|
||||
import sqlalchemy
|
||||
from sqlalchemy import and_
|
||||
from sqlalchemy.schema import MetaData
|
||||
@ -309,15 +308,15 @@ def _populate_metadata(meta, metadata_path=None, merge=False,
|
||||
_update_rt_association(namespace_rt_table, values,
|
||||
rt_id, namespace_id)
|
||||
|
||||
for property, schema in six.iteritems(metadata.get('properties',
|
||||
{})):
|
||||
for name, schema in metadata.get('properties', {}).items():
|
||||
values = {
|
||||
'name': property,
|
||||
'name': name,
|
||||
'namespace_id': namespace_id,
|
||||
'json_schema': json.dumps(schema)
|
||||
}
|
||||
property_id = _get_resource_id(properties_table,
|
||||
namespace_id, property)
|
||||
property_id = _get_resource_id(
|
||||
properties_table, namespace_id, name,
|
||||
)
|
||||
if not property_id:
|
||||
values.update({'created_at': timeutils.utcnow()})
|
||||
_insert_data_to_db(properties_table, values)
|
||||
|
@ -131,27 +131,3 @@ def check_python3_xrange(logical_line):
|
||||
if re.search(r"\bxrange\s*\(", logical_line):
|
||||
yield(0, "G329: Do not use xrange. Use range, or six.moves.range for "
|
||||
"large loops.")
|
||||
|
||||
|
||||
@core.flake8ext
|
||||
def check_python3_no_iteritems(logical_line):
|
||||
msg = ("G330: Use six.iteritems() or dict.items() instead of "
|
||||
"dict.iteritems().")
|
||||
if re.search(r".*\.iteritems\(\)", logical_line):
|
||||
yield(0, msg)
|
||||
|
||||
|
||||
@core.flake8ext
|
||||
def check_python3_no_iterkeys(logical_line):
|
||||
msg = ("G331: Use six.iterkeys() or dict.keys() instead of "
|
||||
"dict.iterkeys().")
|
||||
if re.search(r".*\.iterkeys\(\)", logical_line):
|
||||
yield(0, msg)
|
||||
|
||||
|
||||
@core.flake8ext
|
||||
def check_python3_no_itervalues(logical_line):
|
||||
msg = ("G332: Use six.itervalues() or dict.values instead of "
|
||||
"dict.itervalues().")
|
||||
if re.search(r".*\.itervalues\(\)", logical_line):
|
||||
yield(0, msg)
|
||||
|
@ -22,7 +22,6 @@ from oslo_log import log as logging
|
||||
import oslo_messaging
|
||||
from oslo_utils import encodeutils
|
||||
from oslo_utils import excutils
|
||||
import six
|
||||
import webob
|
||||
|
||||
from glance.common import exception
|
||||
@ -219,7 +218,7 @@ def format_metadef_namespace_notification(metadef_namespace):
|
||||
def format_metadef_object_notification(metadef_object):
|
||||
object_properties = metadef_object.properties or {}
|
||||
properties = []
|
||||
for name, prop in six.iteritems(object_properties):
|
||||
for name, prop in object_properties.items():
|
||||
object_property = _format_metadef_object_property(name, prop)
|
||||
properties.append(object_property)
|
||||
|
||||
|
@ -15,7 +15,6 @@
|
||||
|
||||
import jsonschema
|
||||
from oslo_utils import encodeutils
|
||||
import six
|
||||
|
||||
from glance.common import exception
|
||||
from glance.i18n import _
|
||||
@ -42,7 +41,7 @@ class Schema(object):
|
||||
|
||||
def filter(self, obj):
|
||||
filtered = {}
|
||||
for key, value in six.iteritems(obj):
|
||||
for key, value in obj.items():
|
||||
if self._filter_func(self.properties, key):
|
||||
filtered[key] = value
|
||||
|
||||
|
@ -1516,7 +1516,7 @@ class TestImages(functional.FunctionalTest):
|
||||
'min_ram': 0,
|
||||
'schema': '/v2/schemas/image',
|
||||
}
|
||||
for key, value in six.iteritems(expected_image):
|
||||
for key, value in expected_image.items():
|
||||
self.assertEqual(value, image[key], key)
|
||||
|
||||
# Upload data to image
|
||||
@ -1586,7 +1586,7 @@ class TestImages(functional.FunctionalTest):
|
||||
'schema': '/v2/schemas/image',
|
||||
}
|
||||
|
||||
for key, value in six.iteritems(expected_image):
|
||||
for key, value in expected_image.items():
|
||||
self.assertEqual(value, image[key], key)
|
||||
|
||||
# Upload data to image
|
||||
@ -1658,7 +1658,7 @@ class TestImages(functional.FunctionalTest):
|
||||
'schema': '/v2/schemas/image',
|
||||
}
|
||||
|
||||
for key, value in six.iteritems(expected_image):
|
||||
for key, value in expected_image.items():
|
||||
self.assertEqual(value, image[key], key)
|
||||
|
||||
# Upload data to image
|
||||
|
@ -108,33 +108,3 @@ class HackingTestCase(utils.BaseTestCase):
|
||||
self.assertEqual(0, len(list(func('for i in range(10)'))))
|
||||
self.assertEqual(0, len(list(func('for i in six.moves.range(10)'))))
|
||||
self.assertEqual(0, len(list(func('testxrange(10)'))))
|
||||
|
||||
def test_dict_iteritems(self):
|
||||
self.assertEqual(1, len(list(checks.check_python3_no_iteritems(
|
||||
"obj.iteritems()"))))
|
||||
|
||||
self.assertEqual(0, len(list(checks.check_python3_no_iteritems(
|
||||
"six.iteritems(obj)"))))
|
||||
|
||||
self.assertEqual(0, len(list(checks.check_python3_no_iteritems(
|
||||
"obj.items()"))))
|
||||
|
||||
def test_dict_iterkeys(self):
|
||||
self.assertEqual(1, len(list(checks.check_python3_no_iterkeys(
|
||||
"obj.iterkeys()"))))
|
||||
|
||||
self.assertEqual(0, len(list(checks.check_python3_no_iterkeys(
|
||||
"six.iterkeys(obj)"))))
|
||||
|
||||
self.assertEqual(0, len(list(checks.check_python3_no_iterkeys(
|
||||
"obj.keys()"))))
|
||||
|
||||
def test_dict_itervalues(self):
|
||||
self.assertEqual(1, len(list(checks.check_python3_no_itervalues(
|
||||
"obj.itervalues()"))))
|
||||
|
||||
self.assertEqual(0, len(list(checks.check_python3_no_itervalues(
|
||||
"six.itervalues(ob)"))))
|
||||
|
||||
self.assertEqual(0, len(list(checks.check_python3_no_itervalues(
|
||||
"obj.values()"))))
|
||||
|
@ -658,7 +658,7 @@ class TestHelpers(test_utils.BaseTestCase):
|
||||
'location': "file:///tmp/glance-tests/2",
|
||||
'properties': {'distro': 'Ubuntu 10.04 LTS'}}
|
||||
headers = utils.image_meta_to_http_headers(fixture)
|
||||
for k, v in six.iteritems(headers):
|
||||
for k, v in headers.items():
|
||||
self.assertIsInstance(v, six.text_type)
|
||||
|
||||
def test_data_passed_properly_through_headers(self):
|
||||
@ -679,7 +679,7 @@ class TestHelpers(test_utils.BaseTestCase):
|
||||
response = FakeResponse()
|
||||
response.headers = headers
|
||||
result = utils.get_image_meta_from_headers(response)
|
||||
for k, v in six.iteritems(fixture):
|
||||
for k, v in fixture.items():
|
||||
if v is not None:
|
||||
self.assertEqual(v, result[k])
|
||||
else:
|
||||
|
3
tox.ini
3
tox.ini
@ -142,9 +142,6 @@ extension =
|
||||
G327 = checks:check_no_contextlib_nested
|
||||
G328 = checks:dict_constructor_with_list_copy
|
||||
G329 = checks:check_python3_xrange
|
||||
G330 = checks:check_python3_no_iteritems
|
||||
G331 = checks:check_python3_no_iterkeys
|
||||
G332 = checks:check_python3_no_itervalues
|
||||
paths = ./glance/hacking
|
||||
|
||||
[testenv:docs]
|
||||
|
Loading…
Reference in New Issue
Block a user