U
    Tg                     @   s   d dl Z zd dl mZ dZW n ek
r4   dZY nX d dlZd dlZd dlZejdkr^eZ	nd dl
mZmZ dd Zd	d
 Zdd Zdd Zedkre  dS )    N)operatorTF)   r   )filterzipc                     sD   t rtj S tdkr0d   fdd}nfdd}|S d S )N   r   c                    s   |   S N obj)itemr   \/home/ankuromar296_gmail_com/.local/lib/python3.8/site-packages/../../../bin/whisper-fill.pyg+   s    zitemgetter.<locals>.gc                    s   t  fddD S )Nc                 3   s   | ]} | V  qd S r   r   ).0r   r	   r   r   	<genexpr>0   s     z(itemgetter.<locals>.g.<locals>.<genexpr>)tupler	   )itemsr	   r   r   /   s    )HAS_OPERATORr   
itemgetterlen)r   r   r   )r   r   r   r   $   s    
r   c              	   C   s   t | }|d }|jtdd tt |d  }||k rJ||k rJd S |D ]}t |d  }||krlqN|}	||kr||n|}
t | |
|	\}}|\}}}ttdd t	t
||||}|jdd dd	 t || |
}||krN d S qNd S )
Narchives	retentionkeyZmaxRetentionc                 S   s   | d d k	S )Nr   r   )Zpointsr   r   r   <lambda>R       zfill.<locals>.<lambda>c                 S   s   | d S )Nr   r   )pr   r   r   r   U   r   T)r   reverse)whisperinfosortr   inttimefetchlistr   r   xrangeZupdate_many)srcdstZtstartZtstopZ	srcHeaderZsrcArchivesZsrcTimearchiveZrtimeZ	untilTimefromTimetimeInfovaluesstartendZarchive_stepZpointsToWriter   r   r   fill4   s.    

r-   c                 C   s   t |}|d }t|dd d}|D ]}t |d  }||krDq&t |||\}}|\}	}
}d }|D ]l}|sz|sz|	}nR|r|r|	| |d krt| ||| |	 d }n"|r|	|
| krt| ||| |	 |	|7 }	qh|}q&d S )Nr   c                 S   s   | d S )Nr   r   )tr   r   r   r   b   r   zfill_archives.<locals>.<lambda>r   r   ZsecondsPerPoint)r   r   sortedr!   r"   r-   )r%   r&   	startFromheaderr   r'   r(   r)   r*   r+   r,   stepZgapstartvr   r   r   fill_archives_   s*    


r4   c                  C   s   t jddd} | jddddd |  \}}t|d	krJ|   td
 |jdkr`t	j
r`dt	_|d }|d
 }t }t||| d S )Nz%prog [--lock] src dstz'copies data from src in dst, if missing)usagedescriptionz--lockzLock whisper filesF
store_true)helpdefaultaction   r   Tr   )optparseOptionParser
add_option
parse_argsr   
print_helpsysexitlockr   ZCAN_LOCKZLOCKr!   r4   )Zoption_parseroptionsargsr%   r&   r0   r   r   r   main|   s(      
rF   __main__)r   r   r   ImportErrorr!   rA   r<   version_inforanger$   Zfuture_builtinsr   r   r   r-   r4   rF   __name__r   r   r   r   <module>   s"   

+