Public Member Functions | |
def | all_dict |
def | all |
def | __setattr__ |
def | add |
def | get |
Public Attributes | |
classForManaging | |
description | |
Private Member Functions | |
def | __init |
Base (abstract) Manager for a colection of certain classes of objects
Definition at line 6 of file Manager.py.
def UserTagging::Manager::ObjectSet::__init | ( | self | ) | [private] |
Do not call this function in the child class. This is a boilerPlate for Child class's __init__(). Intentionally wrong name to avoid reloading __setattr__(). Child class mush define in its __init__() the following: - self.classForManaging : a tuple of classes of the managed objects - self.description : an empty dict for bookkeeping the attributes
Definition at line 9 of file Manager.py.
00009 : 00010 ''' 00011 Do not call this function in the child class. 00012 This is a boilerPlate for Child class's __init__(). 00013 Intentionally wrong name to avoid reloading __setattr__(). 00014 Child class mush define in its __init__() the following: 00015 - self.classForManaging : a tuple of classes of the managed objects 00016 - self.description : an empty dict for bookkeeping the attributes 00017 ''' 00018 self.classForManaging = (None,) 00019 # description = {name: class} for bookkeeping the attribute 00020 self.description = {} 00021 00022 # --------------------------------------- def all_dict(self):
def UserTagging::Manager::ObjectSet::all_dict | ( | self | ) |
return the dictionary of name:object of the managed classes
Definition at line 23 of file Manager.py.
00023 : 00024 '''return the dictionary of name:object of the managed classes''' 00025 return dict((name, self.__dict__[name]) for name in self.description) 00026 00027 # --------------------------------------- def all(self):
def UserTagging::Manager::ObjectSet::all | ( | self | ) |
return a list of objects of the managed classes
Definition at line 28 of file Manager.py.
00028 : 00029 '''return a list of objects of the managed classes''' 00030 return (self.__dict__[name] for name in self.description) 00031 00032 # --------------------------------------- def __setattr__(self, name, value):
def UserTagging::Manager::ObjectSet::__setattr__ | ( | self, | ||
name, | ||||
value | ||||
) |
Definition at line 33 of file Manager.py.
00033 : 00034 '''hook for caching a name of the Object as the class attribute''' 00035 object.__setattr__(self, name, value) 00036 if isinstance(value, self.classForManaging): 00037 # The attribute class is intentionally only intialized once. 00038 # This way, one can intialize an attribute with a specific class 00039 # but can later use intrisic python type to represent this class 00040 # see the implemetation of class ParameterSet for an example 00041 self.description.setdefault(name, value.__class__) 00042 00043 # # --------------------------------------- 00044 # def __getattr__(self, name): 00045 # '''hook for getting the Object given the attribute''' 00046 00047 # ---------------------------------------
def UserTagging::Manager::ObjectSet::add | ( | self, | ||
name, | ||||
anObject | ||||
) |
Add one Object
Definition at line 48 of file Manager.py.
00048 : 00049 """Add one Object""" 00050 if isinstance(anObject, self.classForManaging): 00051 self.__setattr__(name, anObject) 00052 return anObject 00053 raise AttributeError(str(anObject) 00054 + ' is not a ' 00055 + str(self.classForManaging)) 00056 00057 # --------------------------------------- def get(self, name):
def UserTagging::Manager::ObjectSet::get | ( | self, | ||
name | ||||
) |
Get the Object given the name
Definition at line 58 of file Manager.py.
00058 : 00059 """Get the Object given the name""" 00060 try: 00061 objName = self.description[name] 00062 except KeyError: 00063 raise AttributeError('Object ' + name + ' is not defined yet') 00064 return self.__dict__[name] 00065
Reimplemented in UserTagging::Models::ParameterSet, UserTagging::Models::DataSet, and UserTagging::Models::TagSet.
Definition at line 18 of file Manager.py.
Reimplemented in UserTagging::Models::ParameterSet, UserTagging::Models::DataSet, and UserTagging::Models::TagSet.
Definition at line 20 of file Manager.py.