1
2
3
4
5 """ persistent state classes """
6
7 __copyright__ = 'this file is in the public domain'
8
9 from gozerbot.generic import calledfrom
10 from gozerbot.persist import Persist
11 from gozerbot.datadir import datadir
12 import types, os, sys
13
15
16 """ base persitent state class """
17
19 Persist.__init__(self, filename, {})
20 self.types = dict((i, type(j)) for i, j in self.data.iteritems())
21
23 """ get state item """
24 return self.data[key]
25
27 """ set state item """
28 self.data[key] = value
29
31 """ define a state item """
32 if not self.data.has_key(key) or type(value) != self.types[key]:
33 if type(value) == types.StringType:
34 value = unicode(value)
35 if type(value) == types.IntType:
36 value = long(value)
37 self.data[key] = value
38
40
41 """ state for plugins """
42
45
47
48 """ state for usage in constructors """
49
52
54
55 """ state for users """
56
60