def do__class(self): #Definition the MethodsList ClassedFunctionsList=SYS._filter( lambda __ListedVariable: type(__ListedVariable).__name__=="function" if hasattr(__ListedVariable,'__name__') else False, self.DoClass.__dict__.values() ) #debug ''' print('l 66 Classer') print("ClassedFunctionsList is ",WatchedFunctionsList) print('Set all the mimick methods') print('') ''' #/###################/# # Mimic all that you can find # #Get all the hooking methods ClassedMimickFunctionsList=SYS._filter( lambda __ListedVariable: __ListedVariable.__name__.startswith( Mimicker.MimickingWrapPrefixStr ) if hasattr(__ListedVariable,'__name__') else False, ClassedFunctionsList ) #debug ''' print('l 82 Classer') print("ClassedMimickFunctionsList is ",ClassedMimickFunctionsList) print('') ''' #map map( lambda __ClassedMimickFunction: self.mimic( Mimicker.MimickingWrapPrefixStr.join( __ClassedMimickFunction.__name__.split( Mimicker.MimickingWrapPrefixStr)[1:] ) ), ClassedMimickFunctionsList ) #/###################/# # Set the watch methods # #debug ''' print('l 104 Classer') print('set the watch functions') print('self.ClassingWatchMethodStrsList is ',self.ClassingWatchMethodStrsList) print('self.DoClass.DoMethodStr is ',self.DoClass.DoMethodStr) print('') ''' #map map( lambda __ClassingWatchUnboundMethodStr: self.watch( True, **{'ObservingWrapMethodStr':__ClassingWatchUnboundMethodStr} ), self.ClassingWatchMethodStrsList ) #/###################/# # Set the switch methods # #debug ''' print('l 104 Classer') print('set the switch functions') print('self.ClassingSwitchMethodStrsList is ',self.ClassingSwitchMethodStrsList) print('self.DoClass.DoMethodStr is ',self.DoClass.DoMethodStr) print('') ''' #map map( lambda __ClassingSwitchUnboundMethodStr: self.switch( True, __ClassingSwitchUnboundMethodStr ), self.ClassingSwitchMethodStrsList ) #/###################/# # Check for overriden propertize_ methods # #Debug ''' print('Classer l 125') print('Check for overriden propertize_ methods ') print('self.DoClass.InspectMethodDict') print(self.DoClass.InspectMethodDict) print('') ''' #filter ClassedPropertyNewMethodDict=dict( SYS._filter( lambda __MethodItemTuple: __MethodItemTuple[0].startswith( Propertiser.PropertyPrefixStr ) and ( SYS.getNewMethodBool(self.DoClass,__MethodItemTuple[0]) #getattr( # self.DoClass.__bases__[0], # __MethodItemTuple[0] #)!=__MethodItemTuple[1] #if hasattr(self.DoClass.__bases__[0], # __MethodItemTuple[0] #) else True ), self.DoClass.InspectMethodDict.items() ) ) #Debug ''' print('Classer l 147') print('self.DoClass is ') print(self.DoClass) print('ClassedPropertyNewMethodDict is') print(SYS.indent(ClassedPropertyNewMethodDict)) print('') ''' #map ClassedPropertyKeyStrsList=map( lambda __PropertizedKeyStr: SYS.deprefix( __PropertizedKeyStr, Propertiser.PropertyPrefixStr )[3:], ClassedPropertyNewMethodDict.keys() ) #map reset the properties map( lambda __PropertyKeyStr: setattr( self.DoClass, __PropertyKeyStr, property( getattr( self.DoClass, Propertiser.PropertyPrefixStr+'get'+__PropertyKeyStr ), getattr( self.DoClass, Propertiser.PropertyPrefixStr+'set'+__PropertyKeyStr ), getattr( self.DoClass, Propertiser.PropertyPrefixStr+'del'+__PropertyKeyStr ) ) ), ClassedPropertyKeyStrsList ) #/###################/# # Set maybe a structure # #Check if self.ClassingStructureVariable!=None: #Check if hasattr( self.ClassingStructureVariable,'items' ): ClassedStructureVariable=self.ClassingStructureVariable.items() else: ClassedStructureVariable=self.ClassingStructureVariable #debug ''' print('Classer l 241') print('We structure here') print('self.ClassingStructureVariable is ') print(self.ClassingStructureVariable) print('') ''' #map add the sing plurals map( lambda __ItemTuple: SYS.addSingPlural( *__ItemTuple ), ClassedStructureVariable ) #Define a class class StructureClass(SYS.StructurerClass):pass StructureClass.__name__=SYS.getClassStrWithNameStr(self.DoClass.NameStr+'sStructurer') StructureClass.ManagingValueClass=self.DoClass #set setattr( self.Module, StructureClass.__name__, StructureClass ) #dict ClassesDict=dict( map( lambda __ItemTuple: (__ItemTuple[1],StructureClass), ClassedStructureVariable ) ) #map if self.DoClass.TeamingClassesDict==None: self.DoClass.TeamingClassesDict=ClassesDict else: self.DoClass.TeamingClassesDict.update( ClassesDict )
def __call__(self,_Class): #debug ''' print('Defaultor l.31 __call__ method') print('_Class is ',_Class) print('') ''' #Call the parent init method BaseClass.__call__(self,_Class) #debug ''' print('Defaultor l.47 look for an __init__ method') print('_Class is ',_Class) print('') ''' #Check if hasattr(_Class,"__init__"): #debug ''' print('It has an __init__ method') print('_Class is ') print(_Class) print("SYS.getNewMethodBool(_Class,DefaultWrapMethodStr)") print(SYS.getNewMethodBool(_Class,DefaultWrapMethodStr)) print('') ''' #get InitWrapUnboundMethod=getattr( _Class, DefaultWrapMethodStr ) if SYS.getNewMethodBool( _Class,DefaultWrapMethodStr ) else DefaultInitFunction #set the DefaultDict _Class.InitInspectDict=SYS.InspectDict(InitWrapUnboundMethod) #Definition the DefaultAttributeItemTuplesList DefaultAttributeItemTuplesList=map( lambda __DefaultSetItemTuple: ( DefaultPrefixStr.join( __DefaultSetItemTuple[0].split(DefaultPrefixStr)[1:] ), getDefaultedValueVariableWithSetVariable( __DefaultSetItemTuple[1] ) ), SYS._filter( lambda __DefaultItemTuple: __DefaultItemTuple[0].startswith(DefaultPrefixStr), _Class.InitInspectDict['DefaultOrderedDict'].items() ) ) #set _Class.DefaultAttributeVariablesOrderedDict=collections.OrderedDict( DefaultAttributeItemTuplesList ) #debug ''' print('_Class.DefaultAttributeItemTuplesList is ',_Class.DefaultAttributeItemTuplesList) print('') ''' #set at the level of the class map( lambda __DefaultSetItemTuple: setattr(_Class,*__DefaultSetItemTuple), _Class.DefaultAttributeVariablesOrderedDict.items() ) #set the DefaultSpecificKeyStrsList _Class.DefaultSpecificKeyStrsList=_Class.DefaultAttributeVariablesOrderedDict.keys() #Get the BaseKeyStrsList _Class.DefaultBaseKeyStrsList=list( SYS.collect( _Class, '__bases__', 'DefaultSpecificKeyStrsList' ) ) #Debug ''' print("l 269 Defaultor") print("DefaultDecorationMethodStr is ",DefaultDecorationMethodStr) print("") ''' #Define the decorated function InitExecStr="def "+DefaultDecorationMethodStr+"(_InstanceVariable," InitExecStr+="*_LiargVariablesList," InitExecStr+="**_KwargVariablesDict):\n\t" InitExecStr+="initDefault(_InstanceVariable," InitExecStr+="*_LiargVariablesList," InitExecStr+="**dict(_KwargVariablesDict,**{'DefaultWrapMethodStr':'"+DefaultWrapMethodStr+"','DefaultClassStr':'"+_Class.__name__+"'}))\n\t" #debug ''' print('Defaultor l 280') print('InitExecStr is ') print(InitExecStr) print('') ''' #exec six.exec_(InitExecStr) #set with the specific name setattr( _Class, DefaultDecorationMethodStr, locals()[DefaultDecorationMethodStr] ) #set with the DoMethodStr shortcut setattr( _Class, "__init__", locals()[DefaultDecorationMethodStr] ) #set in the class fi not already if hasattr(_Class,'setDefault')==False: #set setDefault setattr( _Class, setDefault.__name__, setDefault ) #set setDefaultMutable setattr( _Class, setDefaultMutable.__name__, setDefaultMutable ) #Add to the KeyStrsList _Class.KeyStrsList+=[ #'DefaultAttributeItemTuplesList', 'DefaultInitBool', 'DefaultAttributeVariablesOrderedDict', 'InitInspectDict', 'DefaultBaseKeyStrsList', 'DefaultSpecificKeyStrsList' ]+_Class.DefaultAttributeVariablesOrderedDict.keys() #Return return _Class