
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
Klfp                 @   s   d dl Z d dlZejd  dkZer,eZeZneZeZG dd dZ	dd Z
ddd	Zd
d Zdd ZG dd dZejdk rdd Znd dlmZ dd Zedkrd dlZe	ejddZejd x"edD ]Zej  ejd qW dS )    N   c               @   s*   e Zd ZdddZdddZdd	d
ZdS )ConsoleProgressBard   #c             C   s(   d| _ d| _|| _|| _|| _d| _d S )Nr   F)blockscurrentsteps	indicatoroutdone)selfr
   r   r	    r   /usr/lib/python3.6/util.py__init__"   s    zConsoleProgressBar.__init__Nc             C   s*   d| _ |r| jjd|  | jjd d S )NFz
%s:
z3%--10---20---30---40---50---60---70---80---90--100
)r   r
   write)r   messager   r   r   start*   s    zConsoleProgressBar.start   c             C   s   |  j |7  _ | j}tt| j t| j d d | _| jdkrFd| _| j| }| jj| j|  | jj	  | jdkr| j
 rd| _
| jjd d S )Nr      2   T
)r   r   introundfloatr   r
   r   r	   flushr   )r   noldnewr   r   r   step0   s    "


zConsoleProgressBar.step)r   r   )N)r   )__name__
__module____qualname__r   r   r   r   r   r   r   r   !   s   

r   c             C   s   g }|j |  |S )N)extend)slr   r   r   set_to_listB   s    
r%   Fc             C   s@   t | std|r,t| }|j  |d S x| D ]}|S W dS )a  
    Return the first element of a set.

    It sometimes useful to return the first element from a set but,
    because sets are not indexable, this is rather hard. This function
    will return the first element from a set. If sorted is True, then
    the set will first be sorted (making this an expensive operation).
    Otherwise a random element will be returned (as sets are not ordered).
    zempty containterr   N)len
IndexErrorr%   sort)r#   sortedr$   xr   r   r   firstG   s    

r+   c             C   s:   t j }y| j|}W n tk
r4   | jd}Y nX |S )z/Encode given text via preferred system encodingzutf-8)localegetpreferredencodingencodeUnicodeError)textencodingZencoded_textr   r   r   encode_input\   s    r2   c             C   s:   t j }y| j|}W n tk
r4   | jd}Y nX |S )z/Decode given text via preferred system encodingzutf-8)r,   r-   decoder/   )r0   r1   Zdecoded_textr   r   r   decode_inputi   s    r4   c               @   sH   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dS )
ComparisonzClass used when implementing rich comparison.

    Inherit from this class if you want to have a rich
    comparison withing the class, afterwards implement
    _compare function within your class.c             C   s   t S )N)NotImplemented)r   othermethodr   r   r   _compare}   s    zComparison._comparec             C   s   | j |dd S )Nc             S   s   | |kS )Nr   )abr   r   r   <lambda>   s    z#Comparison.__eq__.<locals>.<lambda>)r9   )r   r7   r   r   r   __eq__   s    zComparison.__eq__c             C   s   | j |dd S )Nc             S   s   | |k S )Nr   )r:   r;   r   r   r   r<      s    z#Comparison.__lt__.<locals>.<lambda>)r9   )r   r7   r   r   r   __lt__   s    zComparison.__lt__c             C   s   | j |dd S )Nc             S   s   | |kS )Nr   )r:   r;   r   r   r   r<      s    z#Comparison.__le__.<locals>.<lambda>)r9   )r   r7   r   r   r   __le__   s    zComparison.__le__c             C   s   | j |dd S )Nc             S   s   | |kS )Nr   )r:   r;   r   r   r   r<      s    z#Comparison.__ge__.<locals>.<lambda>)r9   )r   r7   r   r   r   __ge__   s    zComparison.__ge__c             C   s   | j |dd S )Nc             S   s   | |kS )Nr   )r:   r;   r   r   r   r<      s    z#Comparison.__gt__.<locals>.<lambda>)r9   )r   r7   r   r   r   __gt__   s    zComparison.__gt__c             C   s   | j |dd S )Nc             S   s   | |kS )Nr   )r:   r;   r   r   r   r<      s    z#Comparison.__ne__.<locals>.<lambda>)r9   )r   r7   r   r   r   __ne__   s    zComparison.__ne__N)r   r    r!   __doc__r9   r=   r>   r?   r@   rA   rB   r   r   r   r   r5   v   s   r5   r      c                s   G  fddd}|S )z,Convert a cmp= function into a key= functionc                   s\   e Zd Zdd Z fddZ fddZ fddZ fd	d
Z fddZ fddZ	dS )zcmp_to_key.<locals>.Kc             W   s
   || _ d S )N)obj)r   rE   argsr   r   r   r      s    zcmp_to_key.<locals>.K.__init__c                s    | j |j dk S )Nr   )rE   )r   r7   )mycmpr   r   r>      s    zcmp_to_key.<locals>.K.__lt__c                s    | j |j dkS )Nr   )rE   )r   r7   )rG   r   r   rA      s    zcmp_to_key.<locals>.K.__gt__c                s    | j |j dkS )Nr   )rE   )r   r7   )rG   r   r   r=      s    zcmp_to_key.<locals>.K.__eq__c                s    | j |j dkS )Nr   )rE   )r   r7   )rG   r   r   r?      s    zcmp_to_key.<locals>.K.__le__c                s    | j |j dkS )Nr   )rE   )r   r7   )rG   r   r   r@      s    zcmp_to_key.<locals>.K.__ge__c                s    | j |j dkS )Nr   )rE   )r   r7   )rG   r   r   rB      s    zcmp_to_key.<locals>.K.__ne__N)
r   r    r!   r   r>   rA   r=   r?   r@   rB   r   )rG   r   r   K   s   rH   r   )rG   rH   r   )rG   r   
cmp_to_key   s    rI   )rI   c             C   s   | |k|| k S )Nr   )r+   secondr   r   r   cmp   s    rK   __main__i  )r   zcomputing pigMbP?)F)r   rD   )r,   sysversion_infoZPY3bytesZ
bytes_typestrZstring_typeZunicoder   r%   r+   r2   r4   r5   rI   	functoolsrK   r   Ztimestdoutpr   rangeir   Zsleepr   r   r   r   <module>   s0   !



