PyPedal::odict Namespace Reference


Classes

class  OrderedDict
class  _keys
class  _items
class  _values
class  SequenceOrderedDict

Functions

def __delitem__
def __eq__
def __lt__
def __le__
def __ne__
def __gt__
def __ge__
def __repr__
def __setitem__
def __getitem__
def __setattr__
def __getattr__
def __deepcopy__
def copy
def items
def keys
def values
def iteritems
def iterkeys
def itervalues
def clear
def pop
def popitem
def setdefault
def update
def setitems
def setkeys
def setvalues
def index
def insert
def reverse
def sort

Variables

 _sequence
 _sequence
 _sequence


Function Documentation

def PyPedal::odict::__deepcopy__ (   self,
  memo 
)

To allow deepcopy to work with OrderedDict.

>>> from copy import deepcopy
>>> a = OrderedDict([(1, 1), (2, 2), (3, 3)])
>>> a['test'] = {}
>>> b = deepcopy(a)
>>> b == a
1
>>> b is a
0
>>> a['test'] is b['test']
0

Definition at line 482 of file odict.py.

def PyPedal::odict::__delitem__ (   self,
  key 
)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> del d[3]
>>> d
OrderedDict([(1, 3), (2, 1)])
>>> del d[3]
Traceback (most recent call last):
KeyError: 3
>>> d[3] = 2
>>> d
OrderedDict([(1, 3), (2, 1), (3, 2)])
>>> del d[0:1]
>>> d
OrderedDict([(2, 1), (3, 2)])

Definition at line 142 of file odict.py.

def PyPedal::odict::__eq__ (   self,
  other 
)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d == OrderedDict(d)
1
>>> d == OrderedDict(((1, 3), (2, 1), (3, 2)))
0
>>> d == OrderedDict(((1, 0), (3, 2), (2, 1)))
0
>>> d == OrderedDict(((0, 3), (3, 2), (2, 1)))
0
>>> d == dict(d)
Traceback (most recent call last):
TypeError: Equality undefined for OrderedDicts and dictionaries
>>> d == False
0

Definition at line 170 of file odict.py.

def PyPedal::odict::__ge__ (   self,
  other 
)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> c = OrderedDict(((0, 3), (3, 2), (2, 1)))
>>> e = OrderedDict(d)
>>> c >= d
0
>>> d >= c
1
>>> d >= dict(c)
Traceback (most recent call last):
TypeError: Can only compare with other OrderedDicts
>>> e >= d
1

Definition at line 281 of file odict.py.

def PyPedal::odict::__getattr__ (   self,
  name 
)

Implemented so that access to ``sequence`` raises a warning.

>>> d = OrderedDict()
>>> d.sequence
[]

Definition at line 463 of file odict.py.

def PyPedal::odict::__getitem__ (   self,
  key 
)

Allows slicing. Returns an OrderedDict if you slice.
>>> b = OrderedDict([(7, 0), (6, 1), (5, 2), (4, 3), (3, 4), (2, 5), (1, 6)])
>>> b[::-1]
OrderedDict([(1, 6), (2, 5), (3, 4), (4, 3), (5, 2), (6, 1), (7, 0)])
>>> b[2:5]
OrderedDict([(5, 2), (4, 3), (3, 4)])
>>> type(b[2:4])
<class '__main__.OrderedDict'>

Definition at line 427 of file odict.py.

def PyPedal::odict::__gt__ (   self,
  other 
)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> c = OrderedDict(((0, 3), (3, 2), (2, 1)))
>>> d > c
1
>>> c > d
0
>>> d > dict(c)
Traceback (most recent call last):
TypeError: Can only compare with other OrderedDicts

Definition at line 263 of file odict.py.

def PyPedal::odict::__le__ (   self,
  other 
)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> c = OrderedDict(((0, 3), (3, 2), (2, 1)))
>>> e = OrderedDict(d)
>>> c <= d
1
>>> d <= c
0
>>> d <= dict(c)
Traceback (most recent call last):
TypeError: Can only compare with other OrderedDicts
>>> d <= e
1

Definition at line 215 of file odict.py.

def PyPedal::odict::__lt__ (   self,
  other 
)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> c = OrderedDict(((0, 3), (3, 2), (2, 1)))
>>> c < d
1
>>> d < c
0
>>> d < dict(c)
Traceback (most recent call last):
TypeError: Can only compare with other OrderedDicts

Definition at line 197 of file odict.py.

def PyPedal::odict::__ne__ (   self,
  other 
)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d != OrderedDict(d)
0
>>> d != OrderedDict(((1, 3), (2, 1), (3, 2)))
1
>>> d != OrderedDict(((1, 0), (3, 2), (2, 1)))
1
>>> d == OrderedDict(((0, 3), (3, 2), (2, 1)))
0
>>> d != dict(d)
Traceback (most recent call last):
TypeError: Inequality undefined for OrderedDicts and dictionaries
>>> d != False
1

Definition at line 236 of file odict.py.

def PyPedal::odict::__repr__ (   self  ) 

Used for __repr__ and __str__

>>> r1 = repr(OrderedDict((('a', 'b'), ('c', 'd'), ('e', 'f'))))
>>> r1
"OrderedDict([('a', 'b'), ('c', 'd'), ('e', 'f')])"
>>> r2 = repr(OrderedDict((('a', 'b'), ('e', 'f'), ('c', 'd'))))
>>> r2
"OrderedDict([('a', 'b'), ('e', 'f'), ('c', 'd')])"
>>> r1 == str(OrderedDict((('a', 'b'), ('c', 'd'), ('e', 'f'))))
1
>>> r2 == str(OrderedDict((('a', 'b'), ('e', 'f'), ('c', 'd'))))
1

Definition at line 302 of file odict.py.

def PyPedal::odict::__setattr__ (   self,
  name,
  value 
)

Implemented so that accesses to ``sequence`` raise a warning and are
diverted to the new ``setkeys`` method.

Definition at line 448 of file odict.py.

def PyPedal::odict::__setitem__ (   self,
  key,
  val 
)

Allows slice assignment, so long as the slice is an OrderedDict
>>> d = OrderedDict()
>>> d['a'] = 'b'
>>> d['b'] = 'a'
>>> d[3] = 12
>>> d
OrderedDict([('a', 'b'), ('b', 'a'), (3, 12)])
>>> d[:] = OrderedDict(((1, 2), (2, 3), (3, 4)))
>>> d
OrderedDict([(1, 2), (2, 3), (3, 4)])
>>> d[::2] = OrderedDict(((7, 8), (9, 10)))
>>> d
OrderedDict([(7, 8), (2, 3), (9, 10)])
>>> d = OrderedDict(((0, 1), (1, 2), (2, 3), (3, 4)))
>>> d[1:3] = OrderedDict(((1, 2), (5, 6), (7, 8)))
>>> d
OrderedDict([(0, 1), (1, 2), (5, 6), (7, 8), (3, 4)])
>>> d = OrderedDict(((0, 1), (1, 2), (2, 3), (3, 4)), strict=True)
>>> d[1:3] = OrderedDict(((1, 2), (5, 6), (7, 8)))
>>> d
OrderedDict([(0, 1), (1, 2), (5, 6), (7, 8), (3, 4)])

>>> a = OrderedDict(((0, 1), (1, 2), (2, 3)), strict=True)
>>> a[3] = 4
>>> a
OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a[::1] = OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a
OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a[:2] = OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)])
Traceback (most recent call last):
ValueError: slice assignment must be from unique keys
>>> a = OrderedDict(((0, 1), (1, 2), (2, 3)))
>>> a[3] = 4
>>> a
OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a[::1] = OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a
OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a[:2] = OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a
OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a[::-1] = OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> a
OrderedDict([(3, 4), (2, 3), (1, 2), (0, 1)])

>>> d = OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> d[:1] = 3
Traceback (most recent call last):
TypeError: slice assignment requires an OrderedDict

>>> d = OrderedDict([(0, 1), (1, 2), (2, 3), (3, 4)])
>>> d[:1] = OrderedDict([(9, 8)])
>>> d
OrderedDict([(9, 8), (1, 2), (2, 3), (3, 4)])

Definition at line 320 of file odict.py.

def PyPedal::odict::clear (   self  ) 

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.clear()
>>> d
OrderedDict([])

Definition at line 605 of file odict.py.

def PyPedal::odict::copy (   self  ) 

>>> OrderedDict(((1, 3), (3, 2), (2, 1))).copy()
OrderedDict([(1, 3), (3, 2), (2, 1)])

Definition at line 503 of file odict.py.

def PyPedal::odict::index (   self,
  key 
)

Return the position of the specified key in the OrderedDict.

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.index(3)
1
>>> d.index(4)
Traceback (most recent call last):
ValueError: list.index(x): x not in list

Definition at line 797 of file odict.py.

def PyPedal::odict::insert (   self,
  index,
  key,
  value 
)

Takes ``index``, ``key``, and ``value`` as arguments.

Sets ``key`` to ``value``, so that ``key`` is at position ``index`` in
the OrderedDict.

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.insert(0, 4, 0)
>>> d
OrderedDict([(4, 0), (1, 3), (3, 2), (2, 1)])
>>> d.insert(0, 2, 1)
>>> d
OrderedDict([(2, 1), (4, 0), (1, 3), (3, 2)])
>>> d.insert(8, 8, 1)
>>> d
OrderedDict([(2, 1), (4, 0), (1, 3), (3, 2), (8, 1)])

Definition at line 810 of file odict.py.

def PyPedal::odict::items (   self  ) 

``items`` returns a list of tuples representing all the 
``(key, value)`` pairs in the dictionary.

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.items()
[(1, 3), (3, 2), (2, 1)]
>>> d.clear()
>>> d.items()
[]

Definition at line 510 of file odict.py.

def PyPedal::odict::iteritems (   self  ) 

>>> ii = OrderedDict(((1, 3), (3, 2), (2, 1))).iteritems()
>>> ii.next()
(1, 3)
>>> ii.next()
(3, 2)
>>> ii.next()
(2, 1)
>>> ii.next()
Traceback (most recent call last):
StopIteration

Definition at line 547 of file odict.py.

def PyPedal::odict::iterkeys (   self  ) 

>>> ii = OrderedDict(((1, 3), (3, 2), (2, 1))).iterkeys()
>>> ii.next()
1
>>> ii.next()
3
>>> ii.next()
2
>>> ii.next()
Traceback (most recent call last):
StopIteration

Definition at line 567 of file odict.py.

def PyPedal::odict::itervalues (   self  ) 

>>> iv = OrderedDict(((1, 3), (3, 2), (2, 1))).itervalues()
>>> iv.next()
3
>>> iv.next()
2
>>> iv.next()
1
>>> iv.next()
Traceback (most recent call last):
StopIteration

Definition at line 584 of file odict.py.

def PyPedal::odict::keys (   self  ) 

Return a list of keys in the ``OrderedDict``.

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.keys()
[1, 3, 2]

Definition at line 524 of file odict.py.

def PyPedal::odict::pop (   self,
  key,
  args 
)

No dict.pop in Python 2.2, gotta reimplement it

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.pop(3)
2
>>> d
OrderedDict([(1, 3), (2, 1)])
>>> d.pop(4)
Traceback (most recent call last):
KeyError: 4
>>> d.pop(4, 0)
0
>>> d.pop(4, 0, 1)
Traceback (most recent call last):
TypeError: pop expected at most 2 arguments, got 3

Definition at line 615 of file odict.py.

def PyPedal::odict::popitem (   self,
  i = -1 
)

Delete and return an item specified by index, not a random one as in
dict. The index is -1 by default (the last item).

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.popitem()
(2, 1)
>>> d
OrderedDict([(1, 3), (3, 2)])
>>> d.popitem(0)
(1, 3)
>>> OrderedDict().popitem()
Traceback (most recent call last):
KeyError: 'popitem(): dictionary is empty'
>>> d.popitem(2)
Traceback (most recent call last):
IndexError: popitem(): index 2 not valid

Definition at line 646 of file odict.py.

def PyPedal::odict::reverse (   self  ) 

Reverse the order of the OrderedDict.

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.reverse()
>>> d
OrderedDict([(2, 1), (3, 2), (1, 3)])

Definition at line 834 of file odict.py.

def PyPedal::odict::setdefault (   self,
  key,
  defval = None 
)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.setdefault(1)
3
>>> d.setdefault(4) is None
1
>>> d
OrderedDict([(1, 3), (3, 2), (2, 1), (4, None)])
>>> d.setdefault(5, 0)
0
>>> d
OrderedDict([(1, 3), (3, 2), (2, 1), (4, None), (5, 0)])

Definition at line 673 of file odict.py.

def PyPedal::odict::setitems (   self,
  items 
)

This method allows you to set the items in the dict.

It takes a list of tuples - of the same sort returned by the ``items``
method.

>>> d = OrderedDict()
>>> d.setitems(((3, 1), (2, 3), (1, 2)))
>>> d
OrderedDict([(3, 1), (2, 3), (1, 2)])

Definition at line 726 of file odict.py.

def PyPedal::odict::setkeys (   self,
  keys 
)

``setkeys`` all ows you to pass in a new list of keys which will
replace the current set. This must contain the same set of keys, but
need not be in the same order.

If you pass in new keys that don't match, a ``KeyError`` will be
raised.

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.keys()
[1, 3, 2]
>>> d.setkeys((1, 2, 3))
>>> d
OrderedDict([(1, 3), (2, 1), (3, 2)])
>>> d.setkeys(['a', 'b', 'c'])
Traceback (most recent call last):
KeyError: 'Keylist is not the same as current keylist.'

Definition at line 742 of file odict.py.

def PyPedal::odict::setvalues (   self,
  values 
)

You can pass in a list of values, which will replace the
current list. The value list must be the same len as the OrderedDict.

(Or a ``ValueError`` is raised.)

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.setvalues((1, 2, 3))
>>> d
OrderedDict([(1, 1), (3, 2), (2, 3)])
>>> d.setvalues([6])
Traceback (most recent call last):
ValueError: Value list is not the same length as the OrderedDict.

Definition at line 774 of file odict.py.

def PyPedal::odict::sort (   self,
  args,
  kwargs 
)

Sort the key order in the OrderedDict.

This method takes the same arguments as the ``list.sort`` method on
your version of Python.

>>> d = OrderedDict(((4, 1), (2, 2), (3, 3), (1, 4)))
>>> d.sort()
>>> d
OrderedDict([(1, 4), (2, 2), (3, 3), (4, 1)])

Definition at line 845 of file odict.py.

def PyPedal::odict::update (   self,
  from_od 
)

Update from another OrderedDict or sequence of (key, value) pairs

>>> d = OrderedDict()
>>> d.update(OrderedDict(((1, 3), (3, 2), (2, 1))))
>>> d
OrderedDict([(1, 3), (3, 2), (2, 1)])
>>> d.update({4: 4})
Traceback (most recent call last):
TypeError: undefined order, cannot get items from dict
>>> d.update((4, 4))
Traceback (most recent call last):
TypeError: cannot convert dictionary update sequence element #0 to a sequence

Definition at line 693 of file odict.py.

def PyPedal::odict::values (   self,
  values = None 
)

Return a list of all the values in the OrderedDict.

Optionally you can pass in a list of values, which will replace the
current list. The value list must be the same len as the OrderedDict.

>>> d = OrderedDict(((1, 3), (3, 2), (2, 1)))
>>> d.values()
[3, 2, 1]

Definition at line 534 of file odict.py.


Generated on Fri Mar 28 14:34:59 2008 for PyPedal by  doxygen 1.5.3