CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Options.py
Go to the documentation of this file.
1 class Options(dict):
2 
3  def __init__(self, *args, **kw):
4  dict.__init__(self, *args, **kw)
5  self.readKeys = set()
6 
7  def __getitem__(self, key):
8  self.readKeys.add(key)
9  return self.get(key,None)
10 
11  def _unreadKeys(self):
12  """return unused keys"""
13  return set([a for a in self if a not in self.readKeys])
14  unreadKeys = property(_unreadKeys)
15 
16 
17 ##########################
18 if __name__ == "__main__":
19  import unittest
20  class TestOptions(unittest.TestCase):
21  def testOptions(self):
22  a = Options()
23  a["A"] = 3
24  a["B"] = 3
25  a["A"]
26  self.assertEqual(a.readKeys, set(["A"]))
27  self.assertEqual(a.unreadKeys, set(["B"]))
28 
29  unittest.main()
def __getitem__
Definition: Options.py:7
def _unreadKeys
Definition: Options.py:11
def __init__
Definition: Options.py:3