# -*- coding: utf-8 -*-
"""
<DefineSource>
@Date : Fri Nov 14 13:20:38 2014 \n
@Author : Erwan Ledoux \n\n
</DefineSource>
A Mobilizer
"""
#<DefineAugmentation>
import ShareYourSystem as SYS
BaseModuleStr="ShareYourSystem.Standards.Walkers.Recruiter"
DecorationModuleStr="ShareYourSystem.Standards.Classors.Classer"
SYS.setSubModule(globals())
#</DefineAugmentation>
#<ImportSpecificModules>
from ShareYourSystem.Standards.Classors import Deriver
from ShareYourSystem.Standards.Noders import Noder
#</ImportSpecificModules>
#<DefineFunctions>
def getMobilizedIsBoolWithParentClassAndDeriveClassesList(
_ParentClass,_DeriveClassesList):
#Debug
'''
print('Mobilizer l.37')
print('_ParentClass is ',_ParentClass)
print('_DeriveClassesList is ',_DeriveClassesList)
print('')
'''
#Return
return any(
map(
lambda __DeriveClass:
Deriver.getIsDerivedBoolWithParentClassAndDeriveClass(
_ParentClass,
__DeriveClass
),
_DeriveClassesList
)
)
#<DefineFunctions>
#<DefineClass>
@DecorationClass()
class MobilizerClass(BaseClass):
#Definition
RepresentingKeyStrsList=[
'MobilizingNameStrsList'
]
def default_init(self,
_MobilizingNameStrsList=None,
_MobilizingCollectionSuffixStr="Figurome",
_MobilizedAttestClassesList=None,
**_KwargVariablesDict
):
#Call the parent __init__ method
BaseClass.__init__(self,**_KwargVariablesDict)
def do_mobilize(self):
#Check
if self.VisitingCollectionStrsList==None:
self.VisitingCollectionStrsList=[
self.CollectingCollectionStr
]
#map
self.MobilizedAttestClassesList=map(
SYS.getClassWithNameStr,
self.MobilizingNameStrsList
)
#debug
'''
self.debug(('self.',self,['MobilizedAttestClassesList']))
'''
#append
self.RecruitingConcludeConditionVariable.append(
(
'__class__',
getMobilizedIsBoolWithParentClassAndDeriveClassesList,
self.MobilizedAttestClassesList
)
)
#debug
'''
self.debug(('self.',self,['RecruitingConcludeConditionVariable']))
'''
#recruit
self.recruit()
#debug
'''
self.debug(('self.',self,['RecruitedFlatCumulateVariablesList']))
'''
#Split the different names into different collections
map(
lambda __RecruitedFlatCollectVariable:
self.grasp(
__RecruitedFlatCollectVariable
).catch(
__RecruitedFlatCollectVariable.__class__.NameStr+self.MobilizingCollectionSuffixStr,
),
self.RecruitedFlatCumulateVariablesList
)
#</DefineClass>
View the Mobilizer sources on Github
In [2]:
#ImportModules
import ShareYourSystem as SYS
from ShareYourSystem.Standards.Walkers import Visiter,Recruiter,Mobilizer
import operator
#Definition a Mobilizer instance that is grouped
MyMobilizer=Mobilizer.MobilizerClass().update(
[
(
'<Mobilizome>FirstChildMobilizer',
Mobilizer.MobilizerClass().update(
[
(
'<Recruitome>GrandChildRecruiter',
Recruiter.RecruiterClass()
),
(
'<Recruitome>FakeGrandChildVisiter',
Visiter.VisiterClass()
)
]
)
),
(
'<Mobilizome>SecondChildMobilizer',
Mobilizer.MobilizerClass()
),
(
'<Mobilizome>ThirdChildMobilizer',
Mobilizer.MobilizerClass()
)
]
)
#Walk inside the group in order to parent
MyMobilizer.mobilize(
[
'Mobilizer','Recruiter'
],
**{
'VisitingCollectionStrsList':['Mobilizome','Recruitome'],
'RecruitingConcludeConditionVariable':[
('NodeIndexInt',lambda _TestInt,_AttestInt:
_TestInt!=None and operator.lt(_TestInt,_AttestInt),2)
]
}
)
#Definition the AttestedStr
SYS._attest(
[
'MyMobilizer is '+SYS._str(
MyMobilizer,
**{
'RepresentingBaseKeyStrsListBool':False,
'RepresentingAlineaIsBool':False
}
)
]
)
#Print