ó ±2öYc@s>ddlZdgZejjƒZdefd„ƒYZdS(iÿÿÿÿNt PluginLoadercBs;eZdddgZd„Zd„Zd„Zd„ZRS(t _namespacet_prefixt _interfacecCs tƒ‚dS(s~ This method has to be implemented in child class and should set _namespace, _prefix, and _interface member attributes. N(tNotImplementedError(tself((s=/usr/lib/python2.7/site-packages/tuned/utils/plugin_loader.pyt_set_loader_parameters scCs<tt|ƒjƒd|_d|_d|_|jƒdS(N(tsuperRt__init__tNoneRRRR(R((s=/usr/lib/python2.7/site-packages/tuned/utils/plugin_loader.pyRs     cCs&d|j|j|f}|j|ƒS(Ns%s.%s%s(RRt _get_class(Rt plugin_namet module_name((s=/usr/lib/python2.7/site-packages/tuned/utils/plugin_loader.pyt load_pluginscCsÅtjd|ƒt|ƒ}|jdƒ}|jdƒx.t|ƒdkrit||jdƒƒ}q<WxH|jD]=}t||ƒ}t|ƒtkrtt ||j ƒrt|SqtWt dƒ‚dS(Nsloading module %st.isCannot find the plugin class.( tlogtdebugt __import__tsplittpoptlentgetattrt__dict__ttypet issubclassRt ImportError(RR tmoduletpathtnametcls((s=/usr/lib/python2.7/site-packages/tuned/utils/plugin_loader.pyR !s  $(t__name__t __module__t __slots__RRR R (((s=/usr/lib/python2.7/site-packages/tuned/utils/plugin_loader.pyRs   (t tuned.logsttunedt__all__tlogstgetRtobjectR(((s=/usr/lib/python2.7/site-packages/tuned/utils/plugin_loader.pyts