Updater

Doc


An Updater maps a setitem


View the Updater notebook on [NbViewer](http://nbviewer.ipython.org/url/shareyoursystem.ouvaton.org/Updater.ipynb)

Code



# -*- coding: utf-8 -*-
"""

<DefineSource>
@Date : Fri Nov 14 13:20:38 2014 \n
@Author : Erwan Ledoux \n\n
</DefineSource>


An Updater maps a __setitem__

"""

#<DefineAugmentation>
import ShareYourSystem as SYS
BaseModuleStr="ShareYourSystem.Applyiers.Gatherer"
DecorationModuleStr="ShareYourSystem.Classors.Classer"
SYS.setSubModule(globals())
#</DefineAugmentation>

#<ImportSpecificModules>
#</ImportSpecificModules>

#<DefineClass>
@DecorationClass()
class UpdaterClass(BaseClass):

    #Definition
    RepresentingKeyStrsList=[
                                'UpdatingItemVariable'
                            ]

    def default_init(self,
                _UpdatingItemVariable=None,
                **_KwargVariablesDict):

        #Call the parent __init__ method
        BaseClass.__init__(self,**_KwargVariablesDict)

    def do_update(self):
        """ """

        #debug
        '''
        self.debug("self.UpdatingItemVariable is "+Representer.represent(
            self.UpdatingItemVariable,**{'RepresentingAlineaIsBool':False}))
        '''

        #Apply
        self.map('__setitem__',map(
                                    lambda __UpdatingItemTuple:
                                    {'LiargVariablesList':__UpdatingItemTuple},
                                    self.UpdatingItemVariable.items()
                                    if hasattr(self.UpdatingItemVariable,'items')
                                    else (self.UpdatingItemVariable 
                                        if self.UpdatingItemVariable !=None
                                        else []
                                    )
                                )
        )

        #Return
        #return self
#</DefineClass>

View the Updater sources on Github

Example

Update is possible with a TuplesList or a Dict (and OrderedDict)


In [3]:
#ImportModules
import ShareYourSystem as SYS
from ShareYourSystem.Applyiers import Updater

#Update several things
MyUpdater=Updater.UpdaterClass(
    ).update(
        [
            ('MyInt',0),
            ('MyFloat',0.2)
        ]
    ).update(
        {
            'MyStr':"hello"
        }
    )
    
#Definition the AttestedStr
SYS._attest(
    [
        'MyUpdater is '+SYS._str(
        MyUpdater,
        **{
            'RepresentingBaseKeyStrsListBool':False,
            'RepresentingAlineaIsBool':False
        }
        )
    ]
)  

#Print



*****Start of the Attest *****

MyUpdater is < (UpdaterClass), 4556354768>
   /{ 
   /  '<New><Instance>IdInt' : 4556354768
   /  '<New><Instance>MyFloat' : 0.2
   /  '<New><Instance>MyInt' : 0
   /  '<New><Instance>MyStr' : hello
   /  '<Spe><Instance>UpdatingItemVariable' : 
   /   /{ 
   /   /  'MyStr' : hello
   /   /}
   /}

*****End of the Attest *****