# -*- coding: utf-8 -*-
"""
<DefineSource>
@Date : Fri Nov 14 13:20:38 2014 \n
@Author : Erwan Ledoux \n\n
</DefineSource>
The Conditioner
"""
#<DefineAugmentation>
import ShareYourSystem as SYS
BaseModuleStr="ShareYourSystem.Objects.Debugger"
DecorationModuleStr="ShareYourSystem.Classors.Representer"
SYS.setSubModule(globals())
#</DefineAugmentation>
#<ImportSpecificModules>
Representer=DecorationModule
#</ImportSpecificModules>
#<DefineClass>
@DecorationClass()
class ConditionerClass(BaseClass):
    #Definition
    RepresentingKeyStrsList=[
                                    'ConditioningTestVariable',
                                    'ConditioningGetBoolFunction',
                                    'ConditionedIsBool'
                                ]
    def default_init(self,
                        _ConditioningTestVariable=None,
                        _ConditioningGetBoolFunction=None,
                        _ConditioningAttestVariable=None,
                        _ConditionedIsBool=True,
                        **_KwargVariablesDict
                    ):
        #Call the parent init method
        BaseClass.__init__(self,**_KwargVariablesDict)
    #<DefineDoMethod>   
    def do_condition(self):
        #debug
        '''
        self.debug(('self.',self,[
                                    'ConditioningTestVariable',
                                    'ConditioningAttestVariable'
                                ]))
        '''
        #call
        self.ConditionedIsBool=self.ConditioningGetBoolFunction(
            self.ConditioningTestVariable,
            self.ConditioningAttestVariable
        )
        #debug
        '''
        self.debug(('self.',self,['ConditionedIsBool']))
        '''
#</DefineClass>
View the Conditioner sources on Github
In [3]:
    
#ImportModules
import ShareYourSystem as SYS
from ShareYourSystem.Classors import Attester
from ShareYourSystem.Objects import Conditioner
#Definition of an instance Conditioner and make it print hello
MyConditioner=Conditioner.ConditionerClass(**{
        'ConditioningGetBoolFunction':lambda _TestVariable,_AttestVariable:_TestVariable==_AttestVariable,
        'ConditioningAttestVariable':2
    })
MyConditioner.condition(3).ConditionedIsBool
    
#Definition the AttestedStr
SYS._attest(
                    [
                        'MyConditioner.condition(3).ConditionedIsBool is '+str(
                            MyConditioner.condition(3).ConditionedIsBool),
                        'MyConditioner.condition(2).ConditionedIsBool is '+str(
                            MyConditioner.condition(2).ConditionedIsBool)
                    ]
                ) 
#Print