Use six.iterkeys(x) instead of x.keys()

Partially-Implements: blueprint designate-py3

Change-Id: Iaccc96c9f9de785d79fd7eeba026b3bcd975590e
This commit is contained in:
Pradeep Kumar Singh 2015-06-26 18:15:54 +05:30
parent 2debd0cc08
commit 1584243ba8
9 changed files with 32 additions and 24 deletions

View File

@ -17,11 +17,11 @@ import random
import socket
import base64
import six
import dns
import dns.exception
import dns.zone
import eventlet
import six
from dns import rdatatype
from oslo_log import log as logging
from oslo_config import cfg
@ -210,7 +210,7 @@ def from_dnspython_zone(dnspython_zone):
def dnspyrecords_to_recordsetlist(dnspython_records):
rrsets = objects.RecordList()
for rname in dnspython_records.keys():
for rname in six.iterkeys(dnspython_records):
for rdataset in dnspython_records[rname]:
rrset = dnspythonrecord_to_recordset(rname, rdataset)

View File

@ -15,6 +15,7 @@
# under the License.
import uuid
import six
from oslo_log import log as logging
from designate.network_api.base import NetworkAPI
@ -41,7 +42,7 @@ def allocate_floatingip(tenant_id, floatingip_id=None):
"""
ALLOCATIONS.setdefault(tenant_id, {})
id_ = floatingip_id or POOL.keys()[0]
id_ = floatingip_id or list(six.iterkeys(POOL))[0]
ALLOCATIONS[tenant_id][id_] = POOL.pop(id_)
values = _format_floatingip(id_, ALLOCATIONS[tenant_id][id_])

View File

@ -11,6 +11,7 @@
# 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 oslo_log import log as logging
from designate.objects.adapters.api_v2 import base
@ -44,7 +45,7 @@ class PoolAttributeAPIv2Adapter(base.APIv2Adapter):
@classmethod
def _parse_object(cls, values, object, *args, **kwargs):
for key in values.keys():
for key in six.iterkeys(values):
object.key = key
object.value = values[key]
@ -72,7 +73,7 @@ class PoolAttributeListAPIv2Adapter(base.APIv2Adapter):
value = cls.get_object_adapter(
cls.ADAPTER_FORMAT,
object).render(cls.ADAPTER_FORMAT, object, *args, **kwargs)
for key in value.keys():
for key in six.iterkeys(value):
r_list[key] = value[key]
return r_list

View File

@ -53,7 +53,7 @@ def make_class_properties(cls):
# Store the results
cls.FIELDS = fields
for field in cls.FIELDS.keys():
for field in six.iterkeys(cls.FIELDS):
def getter(self, name=field):
self._obj_check_relation(name)
return getattr(self, get_attrname(name), None)
@ -64,7 +64,8 @@ def make_class_properties(cls):
self._obj_changes.add(name)
if (self.obj_attr_is_set(name) and value != getattr(self, name)
and name not in self._obj_original_values.keys()):
and name not in list(six.iterkeys(
self._obj_original_values))):
self._obj_original_values[name] = getattr(self, name)
return setattr(self, get_attrname(name), value)
@ -227,7 +228,7 @@ class DesignateObject(object):
self._obj_original_values = dict()
for name, value in kwargs.items():
if name in self.FIELDS.keys():
if name in list(six.iterkeys(self.FIELDS)):
setattr(self, name, value)
else:
raise TypeError("__init__() got an unexpected keyword "
@ -243,7 +244,7 @@ class DesignateObject(object):
"""
data = {}
for field in self.FIELDS.keys():
for field in six.iterkeys(self.FIELDS):
if self.obj_attr_is_set(field):
if isinstance(getattr(self, field), DesignateObject):
data[field] = getattr(self, field).to_primitive()
@ -261,7 +262,7 @@ class DesignateObject(object):
"""Convert the object to a simple dictionary."""
data = {}
for field in self.FIELDS.keys():
for field in six.iterkeys(self.FIELDS):
if self.obj_attr_is_set(field):
if isinstance(getattr(self, field), ListObjectMixin):
data[field] = getattr(self, field).to_list()
@ -343,7 +344,7 @@ class DesignateObject(object):
def obj_get_original_value(self, field):
"""Returns the original value of a field."""
if field in self._obj_original_values.keys():
if field in list(six.iterkeys(self._obj_original_values)):
return self._obj_original_values[field]
elif self.obj_attr_is_set(field):
return getattr(self, field)
@ -352,7 +353,7 @@ class DesignateObject(object):
def __setattr__(self, name, value):
"""Enforces all object attributes are private or well defined"""
if name[0:5] == '_obj_' or name in self.FIELDS.keys() \
if name[0:5] == '_obj_' or name in list(six.iterkeys(self.FIELDS)) \
or name == 'FIELDS':
super(DesignateObject, self).__setattr__(name, value)
@ -375,7 +376,7 @@ class DesignateObject(object):
c_obj = self.__class__()
for field in self.FIELDS.keys():
for field in six.iterkeys(self.FIELDS):
if self.obj_attr_is_set(field):
c_field = copy.deepcopy(getattr(self, field), memodict)
setattr(c_obj, field, c_field)
@ -408,10 +409,10 @@ class DictObjectMixin(object):
setattr(self, key, value)
def __contains__(self, item):
return item in self.FIELDS.keys()
return item in list(six.iterkeys(self.FIELDS))
def get(self, key, default=NotSpecifiedSentinel):
if key not in self.FIELDS.keys():
if key not in list(six.iterkeys(self.FIELDS)):
raise AttributeError("'%s' object has no attribute '%s'" % (
self.__class__, key))
@ -421,12 +422,12 @@ class DictObjectMixin(object):
return getattr(self, key)
def iteritems(self):
for field in self.FIELDS.keys():
for field in six.iterkeys(self.FIELDS):
if self.obj_attr_is_set(field):
yield field, getattr(self, field)
def __iter__(self):
for field in self.FIELDS.keys():
for field in six.iterkeys(self.FIELDS):
if self.obj_attr_is_set(field):
yield field, getattr(self, field)
@ -493,7 +494,7 @@ class ListObjectMixin(object):
def to_primitive(self):
data = {}
for field in self.FIELDS.keys():
for field in six.iterkeys(self.FIELDS):
if self.obj_attr_is_set(field):
if field == 'objects':
data[field] = [o.to_primitive() for o in self.objects]

View File

@ -25,6 +25,7 @@ such strings specially)
import copy
import six
from oslo_serialization import jsonutils as json
from designate.openstack.common.report import utils as utils
@ -57,7 +58,7 @@ class KeyValueView(object):
def __call__(self, model):
# this part deals with subviews that were already serialized
cpy = copy.deepcopy(model)
for key in model.keys():
for key in six.iterkeys(model):
if getattr(model[key], '__is_json__', False):
cpy[key] = json.loads(model[key])

View File

@ -13,6 +13,7 @@
# 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 oslo_config import cfg
from oslo_log import log as logging
@ -70,7 +71,8 @@ class StorageQuota(Quota):
self.storage.update_quota(context, quota)
if resource not in self.get_default_quotas(context).keys():
if resource not in list(six.iterkeys(
self.get_default_quotas(context))):
raise exceptions.QuotaResourceUnknown("%s is not a valid quota "
"resource", resource)

View File

@ -35,9 +35,9 @@ LOG = logging.getLogger(__name__)
def _set_object_from_model(obj, model, **extra):
"""Update a DesignateObject with the values from a SQLA Model"""
for fieldname in obj.FIELDS.keys():
for fieldname in six.iterkeys(obj.FIELDS):
if hasattr(model, fieldname):
if fieldname in extra.keys():
if fieldname in six.iterkeys(extra):
obj[fieldname] = extra[fieldname]
else:
obj[fieldname] = getattr(model, fieldname)

View File

@ -13,6 +13,7 @@
# 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 mock import Mock
from mock import patch
from oslo_config import cfg
@ -102,7 +103,7 @@ class TestHookpointsConfigOpts(TestCase):
hp = hook_point('foo')
hp.hook_manager = Mock(return_value=get_hook_manager())
hp(inc)
assert hp.group in self.CONF.keys()
assert hp.group in list(six.iterkeys(self.CONF))
class TestHookpointsEnabling(TestCase):

View File

@ -214,7 +214,8 @@ def get_columns(data):
def _seen(col):
columns.add(str(col))
six.moves.map(lambda item: six.moves.map(_seen, item.keys()), data)
six.moves.map(lambda item: six.moves.map(_seen,
list(six.iterkeys(item))), data)
return list(columns)