From 02b00b6226436b0049e226e86210ed1c1cad53c6 Mon Sep 17 00:00:00 2001 From: Yassine Lamgarchal Date: Fri, 10 Jan 2014 11:13:21 +0100 Subject: [PATCH] Python 3: use six.iteritems and six.string_types six.iteritems() replaces dictionary.iteritems() on Python 2 and dictionary.items() on Python 3. six.string_types replaces basestring() in Python 2 and str in Python 3. Change-Id: Ia18510d167df35caec83626718010228e2140bc0 --- glanceclient/common/http.py | 6 +++--- glanceclient/common/utils.py | 6 ++++-- glanceclient/v1/images.py | 4 ++-- glanceclient/v2/images.py | 4 ++-- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/glanceclient/common/http.py b/glanceclient/common/http.py index 9157ef3e..91c46d7a 100644 --- a/glanceclient/common/http.py +++ b/glanceclient/common/http.py @@ -162,8 +162,8 @@ class HTTPClient(object): :returns: Dictionary with encoded headers' names and values """ - to_str = strutils.safe_encode - return dict([(to_str(h), to_str(v)) for h, v in headers.iteritems()]) + return dict((strutils.safe_encode(h), strutils.safe_encode(v)) + for h, v in six.iteritems(headers)) def _http_request(self, url, method, **kwargs): """Send an http request with the specified characteristics. @@ -178,7 +178,7 @@ class HTTPClient(object): kwargs['headers'].setdefault('X-Auth-Token', self.auth_token) if self.identity_headers: - for k, v in self.identity_headers.iteritems(): + for k, v in six.iteritems(self.identity_headers): kwargs['headers'].setdefault(k, v) self.log_curl_request(method, url, kwargs) diff --git a/glanceclient/common/utils.py b/glanceclient/common/utils.py index 01205728..4aec25de 100644 --- a/glanceclient/common/utils.py +++ b/glanceclient/common/utils.py @@ -20,6 +20,8 @@ import os import sys import uuid +import six + if os.name == 'nt': import msvcrt else: @@ -63,7 +65,7 @@ def schema_args(schema_getter, omit=[]): kwargs)) else: properties = schema.get('properties', {}) - for name, property in properties.iteritems(): + for name, property in six.iteritems(properties): if name in omit: continue param = '--' + name.replace('_', '-') @@ -123,7 +125,7 @@ def print_dict(d, max_column_width=80): pt = prettytable.PrettyTable(['Property', 'Value'], caching=False) pt.align = 'l' pt.max_width = max_column_width - [pt.add_row(list(r)) for r in d.iteritems()] + [pt.add_row(list(r)) for r in six.iteritems(d)] print(strutils.safe_encode(pt.get_string(sortby='Property'))) diff --git a/glanceclient/v1/images.py b/glanceclient/v1/images.py index bc39a1c1..51caa010 100644 --- a/glanceclient/v1/images.py +++ b/glanceclient/v1/images.py @@ -83,7 +83,7 @@ class ImageManager(base.Manager): # headers will be encoded later, before the # request is sent. def to_str(value): - if not isinstance(value, basestring): + if not isinstance(value, six.string_types): return str(value) return value @@ -162,7 +162,7 @@ class ImageManager(base.Manager): owner = qp.pop('owner', None) for param, value in six.iteritems(qp): - if isinstance(value, basestring): + if isinstance(value, six.string_types): # Note(flaper87) Url encoding should # be moved inside http utils, at least # shouldn't be here. diff --git a/glanceclient/v2/images.py b/glanceclient/v2/images.py index 480af5f9..6deb2886 100644 --- a/glanceclient/v2/images.py +++ b/glanceclient/v2/images.py @@ -57,11 +57,11 @@ class Controller(object): tags_url_params = [] for tag in tags: - if isinstance(tag, basestring): + if isinstance(tag, six.string_types): tags_url_params.append({'tag': strutils.safe_encode(tag)}) for param, value in six.iteritems(filters): - if isinstance(value, basestring): + if isinstance(value, six.string_types): filters[param] = strutils.safe_encode(value) url = '/v2/images?%s' % urllib.urlencode(filters)