o
    va                     @   s\   d Z ddlmZ ddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ G dd	 d	e
ZdS )
zFolder plugin.    )unicode_literalsN)	nativestr)
FolderList)GlancesPlugin)loggerc                       sR   e Zd ZdZd fdd	Zdd Zejejdd Z	dd
dZ
dddZ  ZS )PluginzGlances folder plugin.Nc                    s6   t t| j||g d || _|| _d| _t|| _dS )zInit the plugin.)argsconfigZstats_init_valueTN)superr   __init__r   r	   Zdisplay_curseglancesFolderListglances_folders)selfr   r	   	__class__ A/usr/lib/python3/dist-packages/glances/plugins/glances_folders.pyr   "   s   zPlugin.__init__c                 C   s   dS )zReturn the key of the list.pathr   )r   r   r   r   get_key0   s   zPlugin.get_keyc                 C   sF   |   }| jdkr| jdu r| jS | j  | j }n	 || _| jS )zUpdate the foldered list.ZlocalN)Zget_init_valueZinput_methodr   statsupdateget)r   r   r   r   r   r   4   s   


zPlugin.update c                 C   s   t |d tjsd}n@d}|d dur"|d t|d d kr"d}n)|d dur7|d t|d d kr7d	}n|d
 durK|d t|d
 d krKd}| j|d}| || | || |||    |S )z!Manage limits of the folder list.sizeZDEFAULTZOKZcriticalNi@B ZCRITICALZwarningZWARNINGZcarefulZCAREFULheader)	
isinstancenumbersNumberintZget_stat_nameZmanage_thresholdZmanage_actionlowerr   )r   statr   retZ	stat_namer   r   r   	get_alertN   s.   
zPlugin.get_alertc                 C   s  g }| j r	|  r|S |d }djd|d}|| |d | j D ]e}||   t|d |krAd|d | d d	  }n|d }djt||d}|| | zd
| |d }W n t	t
fyt   d
|d }Y nw || || j|d|d  d q"|S )z2Return the dict to display in the curse interface.   z
{:{width}}ZFOLDERS)widthZTITLEr   _   Nz{:>9}r   Zfolder_Zindicer   )r   Zis_disabledformatappendZcurse_add_lineZcurse_new_linelenr   Z	auto_unit	TypeError
ValueErrorr#   )r   r   Z	max_widthr"   Zname_max_widthmsgir   r   r   r   	msg_cursem   s4   


zPlugin.msg_curse)NN)r   )__name__
__module____qualname____doc__r   r   r   Z_check_decoratorZ_log_result_decoratorr   r#   r/   __classcell__r   r   r   r   r      s    
r   )r3   Z
__future__r   r   Zglances.compatr   Zglances.folder_listr   r   Zglances.plugins.glances_pluginr   Zglances.loggerr   r   r   r   r   r   <module>   s   