
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
U
    SW5                     @   s  d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	zd dl
mZ W n ek
rx   dZY nX zd dlmZ W n  ek
r   d dlmZ Y nX zd dlmZ W n ek
r   dZY nX d dlmZ d dlmZ zd dlmZ W n6 ek
r4   d dlmZ d d	lmZ d
d ZY nX zd dlmZ W n ek
r`   dZY nX dZdZdZdZdZdZ i Z!i Z"i Z#G dd de$Z%e% Z&e% Z'dd Z(dd Z)dd Z*dd Z+dd Z,dd  Z-d!d" Z.e*edud#d$Z/e*ed%d& Z0e*edvd(d)Z1e*ed*d+ Z2e*ed,d- Z3ej4d  d.krbe*edwd0d1Z5e*ed2d3 Z6n"e*edxd4d1Z5e*ed5d3 Z6e*ed6d7 Z7e*edyd8d9Z8e*ed:d; Z9e*ed<d= Z:e*ed>d? Z;e*edzd@dAZ<e*edBdC Z=e*edDdE Z>e*edFdG Z?e*e dHdI Z@e*e dJdK ZAdLdM ZBe*e dNdO ZCe*e dPdQ ZDe*e dRdS ZEe*e dTdU ZFe*e dVdW ZGe*e dXdY ZHG dZd[ d[eIZJG d\d] d]eJZKej4dd. d^krd_d` ZLndadb ZLe(eG dcdd ddeKZMe(eG dedf dfeKZNe(eG dgdh dheIZOe(eG didj djeIZPe(eG dkdl dleJZQe(eG dmdn dneJZRe(eG dodp dpeIZSedk	re*e ejTZTe*e ejUZUe*e ejVZVe(eejWZWedk	r
e)e G dqdr dreZXe)eG dsdt dteZYdS ){    N)Counter)urlparse)TableFunction)binary_construct)unicode_typeformat_date_time_sqlite)format_date_time)SQLITE_DATETIME_FORMATSc                 C   s
   t | tS N)r	   r
   )Z
date_value r   G/opt/alt/python38/lib64/python3.8/site-packages/playhouse/sqlite_udf.pyr   !   s    r   )_sqlite_udfZcontrol_flowdatefileZhelpersmathstringc                       s@   e Zd Z fddZ fddZ fddZ fddZ  ZS )	synchronized_dictc                    s    t t| j|| t | _d S r   )superr   __init__	threadingLock_lock)selfargskwargs	__class__r   r   r   8   s    zsynchronized_dict.__init__c              
      s.   | j  tt| |W  5 Q R  S Q R X d S r   )r   r   r   __getitem__r   keyr   r   r   r   <   s    zsynchronized_dict.__getitem__c              
      s0   | j   tt| ||W  5 Q R  S Q R X d S r   )r   r   r   __setitem__)r   r    valuer   r   r   r!   @   s    zsynchronized_dict.__setitem__c              
      s.   | j  tt| |W  5 Q R  S Q R X d S r   )r   r   r   __delitem__r   r   r   r   r#   D   s    zsynchronized_dict.__delitem__)__name__
__module____qualname__r   r   r!   r#   __classcell__r   r   r   r   r   7   s   r   c                     s    fdd}|S )Nc                    s(    D ]}t |g  t | |  q| S r   )AGGREGATE_COLLECTION
setdefaultappendklassgroupgroupsr   r   	decoratorN   s    zaggregate.<locals>.decoratorr   r/   r0   r   r.   r   	aggregateM   s    r2   c                     s    fdd}|S )Nc                    s(    D ]}t |g  t | |  q| S r   )TABLE_FUNCTION_COLLECTIONr)   r*   r+   r.   r   r   r0   V   s    z!table_function.<locals>.decoratorr   r1   r   r.   r   table_functionU   s    r4   c                     s    fdd}|S )Nc                    s(    D ]}t |g  t | |  q| S r   )UDF_COLLECTIONr)   r*   )fnr-   r.   r   r   r0   ^   s    zudf.<locals>.decoratorr   r1   r   r.   r   udf]   s    r7   c                 G   sT   t  }|D ]D}t| }|D ]2}t|d|j}||kr|| | |d| qq
d S )Nname)setr(   getattrr$   addcreate_aggregate)connr/   seenr-   klassesr,   r8   r   r   r   register_aggregate_groupsf   s    
rA   c                 G   sF   t  }|D ]6}t| }|D ]$}|j|kr||j ||  qq
d S r   )r:   r3   r8   r<   register)r>   r/   r?   r-   r@   r,   r   r   r   register_table_function_groupsp   s    
rC   c                 G   sL   t  }|D ]<}t| }|D ]*}|j}||kr|| | |d| qq
d S )Nr9   )r:   r5   r$   r<   create_function)r>   r/   r?   r-   Z	functionsfunctionr8   r   r   r   register_udf_groupsy   s    
rF   c                 C   s.   t | ft  t| ft  t| ft  d S r   )rA   r(   rC   r3   rF   r5   )r>   r   r   r   register_all   s    rG   c                 C   s   | r|S |S r   r   )ZcondZtruthyZfalseyr   r   r   if_then_else   s    rH   c                 C   sL   |  dd} | d}|dkr*| d | S | d}|dkrH| d | S | S )NT +r9   -   )replacefind)Zdate_strZtz_idx1Ztz_idx2r   r   r   strip_tz   s    

rP   , c                 C   s^   d}g }|D ]>\}}t | |\}} |r|dkr2dp4d}|d|||f  q|sTdS ||S )N))i3year)i ' month)i:	 week)Q day)i  hour)<   minute)   secondrZ   s z%s %s%sz	0 seconds)divmodr*   join)Znsecondsgluepartsaccumoffsetr8   valsuffixr   r   r   human_delta   s    	rf   c                 C   s0   zt j| }W n tk
r&   Y d S X |d S NrZ   )ospathsplitext
ValueError)filenameresr   r   r   file_ext   s
    rn   c              
   C   s<   z*t | }| W  5 Q R  W S Q R X W n   Y nX d S r   )openread)rl   Zfhr   r   r   	file_read   s
    
 rq      	   c                 C   s   t t| |S r   )r   zlibcompressdatacompressionr   r   r   gzip   s    ry   c                 C   s
   t | S r   )rt   
decompressrw   r   r   r   gunzip   s    r|   c                 C   s   t t| |S r   )rt   ru   r   rv   r   r   r   ry      s    c                 C   s   t | dS )Nzutf-8)rt   rz   decoder{   r   r   r   r|      s    c                 C   s   t | }|r|jS d S r   )r   Znetloc)urlZparse_resultr   r   r   hostname   s    r   c                 C   s2   |   } |d k	r|t| < nt|   t| < }|S r   )lowerSTATEget)r    onr   r   r   toggle   s
    
r   c                 G   s0   |st | S t|dkr(|d t | < ndS d S )NrZ   r   F)SETTINGSr   len)r    r   r   r   r   setting   s
    
r   c                   C   s   t   d S r   )r   clearr   r   r   r   clear_settings   s    r   c                   C   s   t   d S r   )r   r   r   r   r   r   clear_toggles   s    r   c                 C   s.   |d krd|  } }n|d kr d}t | ||S Nr   rZ   )randomZ	randrange)startendstepr   r   r   randomrange   s
    r   c                 C   s*   zt | |W S  tk
r$   Y d S X d S r   )r   Zgaussrk   )ZmeanZsigmar   r   r   gauss_distribution   s    r   c                 C   s(   zt | W S  tk
r"   Y d S X d S r   )r   sqrtrk   )nr   r   r   r     s    r   c              	   C   sD   z
t | W S  tk
r>   zt| W  Y S    Y Y d S X Y nX d S r   )intrk   floatr\   r   r   r   tonumber	  s    
r   c                 C   s   | r|sdS |  |S Nr   )count)haystackZneedler   r   r   substr_count  s    r   c                 C   s   t | |S r   )r   strip)r   charsr   r   r   strip_chars  s    r   c                 G   s"   |  }|D ]}| | q
| S r   )update	hexdigest)constructorr   Zhash_objargr   r   r   _hash  s    r   c                  G   s
   t tjS r   )r   hashlibmd5valsr   r   r   r   #  s    r   c                  G   s
   t tjS r   )r   r   sha1r   r   r   r   r   '  s    r   c                  G   s
   t tjS r   )r   r   sha256r   r   r   r   r   +  s    r   c                  G   s
   t tjS r   )r   r   sha512r   r   r   r   r   /  s    r   c                 C   s
   t | S r   )rt   adler32r   r   r   r   r   3  s    r   c                 C   s
   t | S r   )rt   crc32r   r   r   r   r   7  s    r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )	_heap_aggc                 C   s   g | _ d| _d S r   )heapctr   r   r   r   r   =  s    z_heap_agg.__init__c                 C   s   |S r   r   r   r"   r   r   r   processA  s    z_heap_agg.processc                 C   s&   |  j d7  _ t| j| | d S rg   )r   heapqheappushr   r   r   r   r   r   r   D  s    z_heap_agg.stepN)r$   r%   r&   r   r   r   r   r   r   r   r   <  s   r   c                   @   s   e Zd Zdd ZdS )_datetime_heap_aggc                 C   s   t |S r   r   r   r   r   r   r   I  s    z_datetime_heap_agg.processN)r$   r%   r&   r   r   r   r   r   r   H  s   r   )rr      c                 C   s   | j | jd  | jd  S )NrU   g    .A)secondsdaysmicrosecondstdr   r   r   total_secondsM  s
    r   c                 C   s   |   S r   )r   r   r   r   r   <lambda>R      r   c                   @   s   e Zd Zdd ZdS )mintdiffc                 C   sn   d  }}| j rZ|d kr,|d kr,t| j }qt| j }|| }|d ksP||krT|}|}q|d k	rjt|S d S r   )r   r   heappopr   )r   dtpmin_diffdtdiffr   r   r   finalizeV  s    zmintdiff.finalizeNr$   r%   r&   r   r   r   r   r   r   T  s   r   c                   @   s   e Zd Zdd ZdS )avgtdiffc                 C   s   | j dk rd S | j dkrdS d }}d }| jrz|dkrL|d krLt| j}q(t| j}|| }|d7 }|t|7 }|}q(t|| S NrZ   r   )r   r   r   r   r   r   )r   totalr   r   r   r   r   r   r   r   g  s"    

zavgtdiff.finalizeNr   r   r   r   r   r   e  s   r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )durationc                 C   s   d  | _ | _d S r   _min_maxr   r   r   r   r     s    zduration.__init__c                 C   s@   t |}| jd ks|| jk r"|| _| jd ks6|| jkr<|| _d S r   )r   r   r   )r   r"   r   r   r   r   r     s
    zduration.stepc                 C   s$   | j r | jr | j| j  }t|S d S r   )r   r   r   )r   r   r   r   r   r     s    zduration.finalizeN)r$   r%   r&   r   r   r   r   r   r   r   r   }  s   r   c                   @   sB   e Zd Zer&dd Zdd Zdd Zndd Zdd Zd	d Zd
S )modec                 C   s   t  | _d S r   )r   itemsr   r   r   r   r     s    zmode.__init__c                 G   s   | j | d S r   )r   r   )r   r   r   r   r   r     s    z	mode.stepc                 C   s   | j r| j dd d S d S r   )r   most_commonr   r   r   r   r     s    zmode.finalizec                 C   s
   g | _ d S r   )r   r   r   r   r   r     s    c                 C   s   | j | d S r   )r   r*   )r   itemr   r   r   r     s    c                 C   s    | j rtt| j | j jdS d S )N)r    )r   maxr:   r   r   r   r   r   r     s    N)r$   r%   r&   r   r   r   r   r   r   r   r   r     s   
r   c                   @   s   e Zd Zdd ZdS )minrangec                 C   sz   | j dkrd S | j dkrdS d  }}| jrv|d krH|d krHt| j}q$t| j}|| }|d ksl||krp|}|}q$|S r   )r   r   r   r   )r   prevr   currr   r   r   r   r     s     

zminrange.finalizeNr   r   r   r   r   r     s   r   c                   @   s   e Zd Zdd ZdS )avgrangec                 C   s   | j dkrd S | j dkrdS d }}d }| jrv|dkrL|d krLt| j}q(t| j}|| }|d7 }||7 }|}q(t|| S r   )r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r     s"    

zavgrange.finalizeNr   r   r   r   r   r     s   r   c                   @   s(   e Zd ZdZdd Zdd Zdd ZdS )	_rangerangec                 C   s   d  | _ | _d S r   r   r   r   r   r   r     s    z_range.__init__c                 C   s8   | j d ks|| j k r|| _ | jd ks.|| jkr4|| _d S r   r   r   r   r   r   r     s    z_range.stepc                 C   s$   | j d k	r | jd k	r | j| j  S d S r   r   r   r   r   r   r     s    z_range.finalizeN)r$   r%   r&   r8   r   r   r   r   r   r   r   r     s   r   c                   @   s0   e Zd ZddgZdgZdZd
ddZdd	 ZdS )RegexSearchregexsearch_stringmatchZregex_searchNc                 C   s   t ||| _d S r   )refinditer_iter)r   r   r   r   r   r   
initialize  s    zRegexSearch.initializec                 C   s   t | jdfS r   )nextr   r-   )r   idxr   r   r   iterate  s    zRegexSearch.iterate)NNr$   r%   r&   paramscolumnsr8   r   r   r   r   r   r   r     s
   
r   c                   @   s2   e Zd ZdddgZdgZdZdddZd	d
 ZdS )
DateSeriesr   stopstep_secondsr   Zdate_seriesrU   c                 C   s   t || _t || _t|}tj|d| _| jjdkr^| jjdkr^| jj	dkr^|dkr^d| _
n^| jjdkr| jjdkr| jjdkr| jjdkr| jjdkr| jjdkr|dk rd| _
nd| _
d S )	N)r   r   rU   z%Y-%m-%dil  rZ   z%H:%M:%Sz%Y-%m-%d %H:%M:%S)r   r   r   r   datetime	timedeltar   rW   rY   r[   formatrR   rS   rV   )r   r   r   r   r   r   r   r     s6    








zDateSeries.initializec                 C   s4   | j | jkrt| j }|  j | j7  _ || jfS r   )r   r   StopIterationr   strftimer   )r   r   currentr   r   r   r     s
    zDateSeries.iterateN)rU   r   r   r   r   r   r     s
   

r   )N)rQ   )rs   )rs   )N)NN)Zr   r   r   r   rh   r   r   sysr   rt   collectionsr   ImportErrorr   Zurllib.parseZvtfuncr   peeweer   r   Zplayhouse._speedupsr   r	   r
   	playhouser   Z
cython_udfZCONTROL_FLOWDATEZFILEZHELPERZMATHSTRINGr(   r3   r5   dictr   r   r   r2   r4   r7   rA   rC   rF   rG   rH   rP   rf   rn   rq   version_infory   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   objectr   r   r   r   r   r   r   r   r   r   Zdamerau_levenshtein_distZlevenshtein_distZstr_distZmedianr   r   r   r   r   r   <module>   s  


	
	
	











	










