From 31c19959ba784f0f4ac100ac9765d91b696f8214 Mon Sep 17 00:00:00 2001 From: Chuck Short Date: Fri, 12 Jul 2013 14:12:18 -0400 Subject: python3: Add python3 compatibility support Add python2/python3 compatibility support: - Use six.iteritems() to replace dictionary.iteritems() on python2 or dictionary.items() on python3. - Use six.advanced_iterator as a replacement to call it.next() on python2 and next(it) on python3. Change-Id: I48442696b66392de33520714b9beb2c645ec1b58 Signed-off-by: Chuck Short --- openstack/common/db/sqlalchemy/models.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'openstack/common') diff --git a/openstack/common/db/sqlalchemy/models.py b/openstack/common/db/sqlalchemy/models.py index fb5a3fa..e9c98c6 100644 --- a/openstack/common/db/sqlalchemy/models.py +++ b/openstack/common/db/sqlalchemy/models.py @@ -22,6 +22,8 @@ SQLAlchemy models. """ +import six + from sqlalchemy import Column, Integer from sqlalchemy import DateTime from sqlalchemy.orm import object_mapper @@ -70,12 +72,12 @@ class ModelBase(object): return self def next(self): - n = self._i.next() + n = six.advance_iterator(self._i) return n, getattr(self, n) def update(self, values): """Make the model object behave like a dict.""" - for k, v in values.iteritems(): + for k, v in six.iteritems(values): setattr(self, k, v) def iteritems(self): @@ -84,7 +86,7 @@ class ModelBase(object): Includes attributes from joins. """ local = dict(self) - joined = dict([(k, v) for k, v in self.__dict__.iteritems() + joined = dict([(k, v) for k, v in six.iteritems(self.__dict__) if not k[0] == '_']) local.update(joined) return local.iteritems() -- cgit