3 ,ò¿Wwã@sXdZddlZddlmZmZGdd„deƒZdd„Zdd „Zd d „Z Gd d „d eƒZ dS)zAdapter declarations éN)Ú CLASS_TYPESÚ_BLANKc@seZdZdd„Zdd„ZdS)ÚadaptercGs ||_dS)N)Ú interfaces)Úselfr©rú"/usr/lib/python3.6/_declaration.pyÚ__init__szadapter.__init__cCs$t|tƒrt|jƒ|_n|j|_|S)N)Ú isinstancerÚ _adapts_descrrÚ__component_adapts__)rÚobrrrÚ__call__s zadapter.__call__N)Ú__name__Ú __module__Ú __qualname__r rrrrrrsrcGsJtjdƒ}|j}||jks"d|kr*tdƒ‚d|kr:tdƒ‚t|ƒ|d<dS)Nérz0adapts can be used only from a class definition.r z3adapts can be used only once in a class definition.)ÚsysÚ _getframeÚf_localsÚ f_globalsÚ TypeErrorr )rÚframeÚlocalsrrrÚadapts!s rcCs t|ddƒS)Nr )Úgetattr)r rrrÚ adaptedBy.srcCs t|dtƒS)NZ__component_name__)rr)r rrrÚgetName1src@seZdZdd„Zdd„ZdS)r cCs ||_dS)N)r)rrrrrr 5sz_adapts_descr.__init__cCs|dkr|jStdƒ‚dS)Nr )rÚAttributeError)rZinstÚclsrrrÚ__get__8sz_adapts_descr.__get__N)rrrr r rrrrr 4sr ) Ú__doc__rZzope.component._compatrrÚobjectrrrrr rrrrÚs