.. changelog::
:version: 1.0.0
+ .. change::
+ :tags: bug, orm, py3k
+
+ The :class:`.IdentityMap` exposed from :class:`.Session.identity`
+ now returns lists for ``items()`` and ``values()`` in Py3K.
+ Early porting to Py3K here had these returning iterators, when
+ they technically should be "iterable views"..for now, lists are OK.
+
.. change::
:tags: orm, feature
return default
return o
- def _items(self):
+ def items(self):
values = self.all_states()
result = []
for state in values:
result.append((state.key, value))
return result
- def _values(self):
+ def values(self):
values = self.all_states()
result = []
for state in values:
return result
+ def __iter__(self):
+ return iter(self.keys())
+
if util.py2k:
- items = _items
- values = _values
def iteritems(self):
return iter(self.items())
def itervalues(self):
return iter(self.values())
- def __iter__(self):
- return iter(self.keys())
-
- else:
- def items(self):
- return iter(self._items())
-
- def values(self):
- return iter(self._values())
-
- def __iter__(self):
- return self.keys()
-
def all_states(self):
- if util.py2k:
- return self._dict.values()
- else:
- return list(self._dict.values())
+ return self._dict.values()
def discard(self, state):
if state.key in self._dict:
def iteritems(self):
return self._dict.iteritems()
- def __iter__(self):
- return iter(self.keys())
- else:
- def __iter__(self):
- return self.keys()
+ def __iter__(self):
+ return iter(self.dict_)
def __getitem__(self, key):
return self._dict[key]