a `8abã@sHddlmZddlmZddlmZddlmZdZGdd„de ƒZ d S) é)Údeepcopyé)Ú Configuration)ÚSetting)ÚSource)ÚConfigurationManagerc@s$eZdZdd„Zdd„Zdd„ZdS)rcCs||_g|_dS)N)ÚnameÚsettings)Úselfr©r úH/home/carl/code/landscape/setoptconf-tmp/build/lib/setoptconf/manager.pyÚ__init__ szConfigurationManager.__init__cCs$t|tƒr|j |¡ntdƒ‚dS)Nz$Can only add objects of type Setting)Ú isinstancerr ÚappendÚ TypeError)r Úsettingr r r Úadds zConfigurationManager.addcGsŠg}t|ƒD]D}t|tƒr&| |¡q t|tƒrHt|tƒrH| |ƒ¡q tdƒ‚q t|jd�}|D]}|j t |jƒ||d�}qb|  ¡|S)NzAll sources must be a Source)r )ÚmanagerÚparent) ÚreversedrrrÚtypeÚ issubclassrrr Z get_configrÚvalidate)r ÚsourcesZ to_processÚsourceÚconfigr r r Úretrieves      ÿzConfigurationManager.retrieveN)Ú__name__Ú __module__Ú __qualname__r rrr r r r r srN) ÚcopyrrrrrZ source.baserÚ__all__Úobjectrr r r r Ús