Package web2py :: Package gluon :: Module thread_local_singleton :: Class Singleton
[hide private]
[frames] | no frames]

Class Singleton

source code

object --+    
         |    
      dict --+
             |
            Singleton

This class makes a thread local Singleton (i.e. every threads sees a differnt singleton) It also makes a different singleton for each derived class. The objects behave like dictionaries and attributes/values are mapped into keys/values. But, while if not 'x' in a, a['x'] raises and exception a.x returns None Example:
>>> a=Singleton()
>>> a.x=1
>>> b=Singleton() # same singleton as a
>>> print b.x
1
>>> class C(Singleton): pass
>>> c=C()         # new singleton
>>> c.y=2
>>> d=C()         # same singleton as c
>>> print d.x, d.y
None 2
>>> d.set_state({}) # state can be reset
>>> print d.x, d.y
None None


Instance Methods [hide private]
 
__init__(self)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
source code
 
__getitem__(self, key)
x[y]
source code
 
__setitem__(self, key, value)
x[i]=y
source code
 
__setattr__(self, key, value)
x.__setattr__('name', value) <==> x.name = value
source code
 
__delattr__(self, key)
x.__delattr__('name') <==> del x.name
source code
 
get(self, key, value)
d defaults to None.
source code
 
__getattr__(self, key) source code
 
__repr__(self)
repr(x)
source code
 
__str__(self)
str(x)
source code
 
__getstate__(self) source code
 
__setstate__(self, value) source code
 
__cmp__(self, other)
cmp(x,y)
source code
 
__contains__(self, value)
Returns: True if D has a key k, else False
source code
 
__hash__(self)
hash(x)
source code
 
__len__(self)
len(x)
source code
 
has_key(self, key)
Returns: True if D has a key k, else False
source code
 
keys(self)
Returns: list of D's keys
source code
 
values(self)
Returns: list of D's values
source code
 
items(self)
Returns: list of D's (key, value) pairs, as 2-tuples
source code
 
iterkeys(self)
Returns: an iterator over the keys of D
source code
 
itervalues(self)
Returns: an iterator over the values of D
source code
 
iteritems(self)
Returns: an iterator over the (key, value) items of D
source code
 
update(self, *a, **b)
Update D from E and F: for k in E: D[k] = E[k] (if E has keys else: for (k, v) in E: D[k] = v) then: for k in F: D[k] = F[k]
source code
 
popitem(self)
2-tuple; but raise KeyError if D is empty
source code
 
clear(self)
Remove all items from D.
source code
 
copy(self)
Returns: a shallow copy of D
source code
 
__iter__(self)
iter(x)
source code
 
get_state(self) source code
 
set_state(self, storage) source code

Inherited from dict: __delitem__, __eq__, __ge__, __getattribute__, __gt__, __le__, __lt__, __ne__, __new__, fromkeys, pop, setdefault

Inherited from object: __reduce__, __reduce_ex__

Class Variables [hide private]
  thread = threading.local()
Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self)
(Constructor)

source code 
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
Returns:
new empty dictionary

Overrides: dict.__init__
(inherited documentation)

__getitem__(self, key)
(Indexing operator)

source code 
x[y]
Overrides: dict.__getitem__
(inherited documentation)

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

source code 
x[i]=y
Overrides: dict.__setitem__
(inherited documentation)

__setattr__(self, key, value)

source code 
x.__setattr__('name', value) <==> x.name = value
Overrides: object.__setattr__
(inherited documentation)

__delattr__(self, key)

source code 
x.__delattr__('name') <==> del x.name
Overrides: object.__delattr__
(inherited documentation)

get(self, key, value)

source code 
d defaults to None.
Returns:
D[k] if k in D, else d

Overrides: dict.get
(inherited documentation)

__repr__(self)
(Representation operator)

source code 
repr(x)
Overrides: dict.__repr__
(inherited documentation)

__str__(self)
(Informal representation operator)

source code 
str(x)
Overrides: object.__str__
(inherited documentation)

__cmp__(self, other)
(Comparison operator)

source code 
cmp(x,y)
Overrides: dict.__cmp__
(inherited documentation)

__contains__(self, value)
(In operator)

source code 
Returns:
True if D has a key k, else False

Overrides: dict.__contains__
(inherited documentation)

__hash__(self)
(Hashing function)

source code 
hash(x)
Overrides: dict.__hash__
(inherited documentation)

__len__(self)
(Length operator)

source code 
len(x)
Overrides: dict.__len__
(inherited documentation)

has_key(self, key)

source code 
Returns:
True if D has a key k, else False

Overrides: dict.has_key
(inherited documentation)

keys(self)

source code 
Returns:
list of D's keys

Overrides: dict.keys
(inherited documentation)

values(self)

source code 
Returns:
list of D's values

Overrides: dict.values
(inherited documentation)

items(self)

source code 
Returns:
list of D's (key, value) pairs, as 2-tuples

Overrides: dict.items
(inherited documentation)

iterkeys(self)

source code 
Returns:
an iterator over the keys of D

Overrides: dict.iterkeys
(inherited documentation)

itervalues(self)

source code 
Returns:
an iterator over the values of D

Overrides: dict.itervalues
(inherited documentation)

iteritems(self)

source code 
Returns:
an iterator over the (key, value) items of D

Overrides: dict.iteritems
(inherited documentation)

update(self, *a, **b)

source code 
Update D from E and F: for k in E: D[k] = E[k] (if E has keys else: for (k, v) in E: D[k] = v) then: for k in F: D[k] = F[k]
Returns:
None

Overrides: dict.update
(inherited documentation)

popitem(self)

source code 
2-tuple; but raise KeyError if D is empty
Returns:
(k, v), remove and return some (key, value) pair as a

Overrides: dict.popitem
(inherited documentation)

clear(self)

source code 
Remove all items from D.
Returns:
None

Overrides: dict.clear
(inherited documentation)

copy(self)

source code 
Returns:
a shallow copy of D

Overrides: dict.copy
(inherited documentation)

__iter__(self)

source code 
iter(x)
Overrides: dict.__iter__
(inherited documentation)