Package pyxmpp :: Module expdict :: Class ExpiringDictionary
[hide private]

Class ExpiringDictionary

source code

object --+    
         |    
      dict --+
             |
            ExpiringDictionary

An extension to standard Python dictionary objects which implements item expiration.

Each item in ExpiringDictionary has its expiration time assigned, after which the item is removed from the mapping.

Instance Methods [hide private]
new empty dictionary

__init__(self, default_timeout=300)
Initialize an ExpiringDictionary object.
source code
 
__delitem__(self, key)
del x[y]
source code
 
__getitem__(self, key)
x[y]
source code
v, remove specified key and return the corresponding value
pop(self, key, default=sentinel)
If key is not found, d is returned if given, otherwise KeyError is raised
source code
 
__setitem__(self, key, value)
x[i]=y
source code
 
set_item(self, key, value, timeout=None, timeout_callback=None)
Set item of the dictionary.
source code
 
expire(self)
Do the expiration of dictionary items.
source code
 
_expire_item(self, key)
Do the expiration of a dictionary item.
source code

Inherited from dict: __cmp__, __contains__, __eq__, __ge__, __getattribute__, __gt__, __iter__, __le__, __len__, __lt__, __ne__, __new__, __repr__, __sizeof__, clear, copy, fromkeys, get, has_key, items, iteritems, iterkeys, itervalues, keys, popitem, setdefault, update, values, viewitems, viewkeys, viewvalues

Inherited from object: __delattr__, __format__, __reduce__, __reduce_ex__, __setattr__, __str__, __subclasshook__

Class Variables [hide private]

Inherited from dict: __hash__

Instance Variables [hide private]
: int _default_timeout
: the default timeout value (in seconds from now).
: threading.RLock _lock
: access synchronization lock.
: dict _timeouts
: a dictionary with timeout values and timeout callback for stored objects.
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, default_timeout=300)
(Constructor)

source code 
Initialize an ExpiringDictionary object.
Parameters:
  • default_timeout (: int) - : default timeout value for stored objects.
Returns:
new empty dictionary

Overrides: object.__init__

__delitem__(self, key)
(Index deletion operator)

source code 

del x[y]

Overrides: dict.__delitem__
(inherited documentation)

__getitem__(self, key)
(Indexing operator)

source code 

x[y]

Overrides: dict.__getitem__
(inherited documentation)

pop(self, key, default=sentinel)

source code 

If key is not found, d is returned if given, otherwise KeyError is raised

Returns: v, remove specified key and return the corresponding value
Overrides: dict.pop
(inherited documentation)

__setitem__(self, key, value)
(Index assignment operator)

source code 

x[i]=y

Overrides: dict.__setitem__
(inherited documentation)

set_item(self, key, value, timeout=None, timeout_callback=None)

source code 
Set item of the dictionary.
Parameters:
  • key (: any hashable value) - : the key.
  • value (: any python object) - : the object to store.
  • timeout (: int) - : timeout value for the object (in seconds from now).
  • timeout_callback (: callable) - : function to be called when the item expires. The callback should accept none, one (the key) or two (the key and the value) arguments.

expire(self)

source code 

Do the expiration of dictionary items.

Remove items that expired by now from the dictionary.

_expire_item(self, key)

source code 

Do the expiration of a dictionary item.

Remove the item if it has expired by now.

Parameters:
  • key (: any hashable value) - : key to the object.