U
    TgQ                  
   @   s  d dl Z d dlZd dlZd dlZd dlZzd dlZW n ek
rP   edY nX dd Zzeej	ej
 W n ek
r   Y nX ejddZejddd	d
 ejdddddej d ejdddd ejddddd ejddddd ejddddd e \ZZejreed kr8e  ed eedkrhed  dd krhed  dZd Zd ZeejeD ],\ZZe deeef  ed7 Zee7 Zq|ded   ed   Z!e"e#e!d! d" Z$e d#ee!e$f  d$D ]"Z%e d%e%ee%d& e$ f  qed  eed'k r:e&  ed ed  Z'd(d) edd D Ze j'(e'rej)re d*e'  e *e' z"ej+e'eej,ej-ej.ej/d+ W n6 ej0k
r Z1 zed,e2e1 W 5 dZ1[1X Y nX e 3e'j4Z!e d-e'e!f  dS ).    Nz6[ERROR] Please make sure whisper is installed properlyc                 C   s6   dD ]$}| dk r d| |f   S | d } qd| df S )N)bytesZKBMBg      @z%.3f%sGB )numxr   r   ^/home/ankuromar296_gmail_com/.local/lib/python3.8/site-packages/../../../bin/whisper-create.pybyte_format   s
    
r	   a  %prog path timePerPoint:timeToStore [timePerPoint:timeToStore]*
%prog --estimate timePerPoint:timeToStore [timePerPoint:timeToStore]*

timePerPoint and timeToStore specify lengths of time, for example:

60:1440      60 seconds per datapoint, 1440 datapoints = 1 day of retention
15m:8        15 minutes per datapoint, 8 datapoints = 2 hours of retention
1h:7d        1 hour per datapoint, 7 days of retention
12h:2y       12 hours per datapoint, 2 years of retention
)usagez--xFilesFactorg      ?float)defaulttypez--aggregationMethodZaveragestringz,Function to use when aggregating values (%s)z, )r   r   helpz--overwriteF
store_true)r   actionz
--estimatezWDon't create a whisper file, estimate storage requirements based on archive definitions)r   r   r   z--sparsez!Create new whisper as sparse filez--fallocatez$Create new whisper and use fallocate   ,z&Archive %s: %s points of %ss precision      g      @i   zA
Estimated Whisper DB Size: %s (%s bytes on disk with 4k blocks)
)r      
   2   d   i  z1Estimated storage requirement for %sk metrics: %si     c                 C   s   g | ]}t |qS r   )whisperparseRetentionDef).0ZretentionDefr   r   r   
<listcomp>U   s   r   zOverwriting existing file: %s)xFilesFactoraggregationMethodsparseZuseFallocatez
[ERROR] %szCreated: %s (%d bytes))5ossyssignaloptparsemathr   ImportError
SystemExitr	   SIGPIPESIG_DFLAttributeErrorOptionParserZoption_parser
add_optionjoinZaggregationMethods
parse_argsoptionsargsestimatelenprint_usageexitfindsplitZarchivesZtotal_pointsmapr   	precisionZpointsprintsizeintceilZ	disk_sizer   
print_helppathexists	overwriteunlinkcreater   r    r!   Z	fallocateZWhisperExceptionexcstrstatst_sizer   r   r   r   <module>   s   	




"





 
"