£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
<e                 @   sT   d dl mZ ddlmZ d dlZd dljZd dlm	Z	 ej
j ZG dd deZdS )    )PluginLoader   )baseN)commandsc                   sH   e Zd Z fddZedd Zdd Zdd Zd	d
 Zdd Z	  Z
S )
Repositoryc                s   t t| j  i | _d S )N)superr   __init__
_functions)self)	__class__  /usr/lib/python3.6/repository.pyr      s    zRepository.__init__c             C   s   | j S )N)r	   )r
   r   r   r   	functions   s    zRepository.functionsc             C   s    d| _ tj| _tjjjj| _	d S )Nztuned.profiles.functions)
Z
_namespaceconstsZFUNCTION_PREFIX_prefixtunedZprofilesr   r   ZFunctionZ
_interface)r
   r   r   r   _set_loader_parameters   s    z!Repository._set_loader_parametersc             C   s,   t jd|  | j|}| }|| j|< |S )Nzcreating function %s)logdebugZload_pluginr	   )r
   function_nameZfunction_clsZfunction_instancer   r   r   create   s
    

zRepository.createc             C   s   || j kr| j|S | j | S )N)r	   r   )r
   r   r   r   r   	load_func!   s    

zRepository.load_funcc             C   s>   t jd|  x*t| jj D ]\}}||kr| j|= qW d S )Nzremoving function %s)r   r   listr	   items)r
   Zfunctionkvr   r   r   delete&   s    zRepository.delete)__name__
__module____qualname__r   propertyr   r   r   r   r   __classcell__r   r   )r   r   r   	   s   	r   )Ztuned.utils.plugin_loaderr    r   Z
tuned.logsr   Ztuned.constsr   Ztuned.utils.commandsr   Zlogsgetr   r   r   r   r   r   <module>   s   

