File: //lib/python3.6/site-packages/glances/outputs/__pycache__/glances_stdout_csv.cpython-36.pyc
3
Eo�c# � @ s, d Z ddlZddlmZ G dd� de�ZdS )zStdoutCsv interface class.� N)�
printandflushc @ sL e Zd ZdZdZdZddd�Zdd� Zd d
� Zdd� Z d
d� Z
ddd�ZdS )�GlancesStdoutCsvz)This class manages the StdoutCsv display.�,zN/ANc C s || _ || _d| _| j� | _d S )NT)�config�args�header�
build_list�plugins_list)�selfr r � r �(/usr/lib/python3.6/glances_stdout_csv.py�__init__ s zGlancesStdoutCsv.__init__c C sJ g }x@| j jjd�D ].}d|kr0|jd�\}}nd}|j||f� qW |S )z�Return a list of tuples taken from self.args.stdout
:return: A list of tuples. Example -[(plugin, attribute), ... ]
r �.N)r Z
stdout_csv�split�append)r
�ret�p�ar r r r # s zGlancesStdoutCsv.build_listc C s d S )Nr )r
r r r �end1 s zGlancesStdoutCsv.endc C s� d}|dk r"|dj ||| j�7 }n�t|t�rXx�|j� D ]}|dj |t|�| j�7 }q6W nvt|t�r�xj|D ]N}t|t�rhd|krhx6|j� D ]*}|dj |t||d �t|�| j�7 }q�W qhW n|dj || j�7 }|S )z Build and return the header line� Nz{}.{}{}�keyz
{}.{}.{}{}z{}{})�format� separator�
isinstance�dict�keys�str�list)r
�plugin� attribute�stat�line�k�ir r r �build_header4 s
0zGlancesStdoutCsv.build_headerc C s� d}|dk r.|dj t|j|| j��| j�7 }n�t|t�rbx�|j� D ]}|dj t|�| j�7 }qBW njt|t�r�x^|D ]>}t|t�rrd|krrx&|j� D ]}|dj t|�| j�7 }q�W qrW n|dj t|�| j�7 }|S )zBuild and return the data liner Nz{}{}r ) r r �get�nar r r �valuesr )r
r r r r! �vr# r r r �
build_dataH s "
zGlancesStdoutCsv.build_data� c C s� d}xj| j D ]`\}}||j� kr|j|�j� r|j|�j� }nq| jrZ|| j|||�7 }q|| j|||�7 }qW t|dd� � d| _|dkr�t j
|� dS )zIDisplay stats to stdout.
Refresh every duration second.
r N� Fr ���)r ZgetPluginsListZ
get_pluginZ
is_enabledZ
get_exportr r$ r) r �timeZsleep)r
ZstatsZdurationr! r r r r r r �update\ s zGlancesStdoutCsv.update)NN)r* )�__name__�
__module__�__qualname__�__doc__r r&