U
    Ób‡hð  ã                   @  s|   d Z ddlmZ ddlZddlmZ ddlmZ dZe	edƒrNdd	œd
d„Z
ndd	œdd„Z
dd	œdd„ZG dd„ dƒZdS )zSystem information utilities.é    )ÚannotationsN©Úceil)Úcached_property)Úload_averageÚdfÚ
getloadavgztuple[float, ...]©Úreturnc                   C  s   t dd„ t ¡ D ƒƒS )Nc                 s  s   | ]}t |d  ƒd  V  qdS )ç      Y@Nr   )Ú.0Úl© r   ú8/tmp/pip-unpacked-wheel-kcem4wq5/celery/utils/sysinfo.pyÚ	<genexpr>   s     z _load_average.<locals>.<genexpr>)ÚtupleÚosr   r   r   r   r   Ú_load_average   s    r   c                   C  s   dS )N)ç        r   r   r   r   r   r   r   r      s    c                   C  s   t ƒ S )z'Return system load average as a triple.)r   r   r   r   r   r      s    r   c                   @  sh   e Zd ZdZdddœdd„Zeddœd	d
„ƒZeddœdd„ƒZeddœdd„ƒZe	ddœdd„ƒZ
dS )r   zDisk information.zstr | bytes | os.PathLikeÚNone)Úpathr
   c                 C  s
   || _ d S ©N)r   )Úselfr   r   r   r   Ú__init__   s    zdf.__init__Úfloatr	   c                 C  s   | j j| j j d S ©Ni   )ÚstatÚf_blocksÚf_frsize©r   r   r   r   Útotal_blocks"   s    zdf.total_blocksc                 C  s   | j j| j j d S r   )r   Úf_bavailr   r   r   r   r   Ú	available&   s    zdf.availableÚintc                 C  s4   | j j}| j j| j j }tt|d ||  d ƒƒS )Nr   g      à?)r   r!   r   Úf_bfreer#   r   )r   ZavailÚusedr   r   r   Úcapacity*   s    zdf.capacityzos.statvfs_resultc                 C  s   t  t j | j¡¡S r   )r   Ústatvfsr   Úabspathr   r   r   r   r   0   s    zdf.statN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr    r"   r&   r   r   r   r   r   r   r      s   r   )r,   Ú
__future__r   r   Úmathr   Zkombu.utils.objectsr   Ú__all__Úhasattrr   r   r   r   r   r   r   Ú<module>   s   
