B
    `~I              
   @   sf  U 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mZ ej	
dZej	
do^dejkZdejkozdejdd	kZej	
doe oe ZdZejejejgejf  ed
< edZedddZdoejeje eje eeejdddZeedddZejedddZ G dd dej!Z"G dd dZ#dpejeedddZ$dqejeedd d!Z%ejejej dd"d#Z&ejejej dd$d%Z'ejedd&d'Z(ejeeje ed(d)d*Z)ejeje eje ed+d,d-Z*drejeje eje ejejegef ejejgejej f eeejd.d/d0Z+dsejeje eje eejd1d2d3Z,dtejeje eje eejd4d5d6Z-ejdd7d8Z.ejdd9d:Z/ejdd;d<Z0dueje eje ejd=d>d?Z1dveje eje ejd=d@dAZ2dweje eje ejd=dBdCZ3ej4eej5e6f eeje eje ejdDdEdFZ7dxeeeje eje eej8ejef dIdJdKZ9G dLdM dMZ:eedNdOdPZ;ejeddQdRZ<dyejej eje edSdTdUZ=ej	
drDerDdVdWl>m?Z? eddXdYZ@e ZAejBejejf edZ< dzejeje ejdSd[d
Zn8edd\dYZ@ejeje eje ejej d]d^d_Z?ee6d`dadbZCejeddcddZDejg ejf ejg ejf ejg ejf dedfdgZEeEdhdi e1ZFeEdjdi e2ZGeEdkdi e3ZHe.e/e0dlZIejJeejg ejf f edm< e1e2e3dlZKejJeejeje eje gejf f edn< dS ){    N)WeakKeyDictionarycygwinwinZGCCAPPENGINE_RUNTIMEzDevelopment/SERVER_SOFTWARE auto_wrap_for_ansiz\033\[[;?0-9]*[a-zA-Z])returnc               C   s   t  pt  S )N)sysgetfilesystemencodinggetdefaultencoding r   r   U/home/kop/projects/devel/pgwui/test_venv/lib/python3.7/site-packages/click/_compat.pyget_filesystem_encoding   s    r   F)streamencodingerrorsforce_readableforce_writabler	   c             C   s0   |d krt | }|d krd}t| ||d||dS )NreplaceT)line_bufferingr   r   )get_best_encoding_NonClosingTextIOWrapper)r   r   r   r   r   r   r   r   _make_text_stream   s    r   )r   r	   c             C   s*   yt | jdkS  tk
r$   dS X dS )z$Checks if a given encoding is ascii.asciiFN)codecslookupnameLookupError)r   r   r   r   is_ascii_encoding-   s    r   )r   r	   c             C   s$   t | ddpt }t|r dS |S )z1Returns the default stream encoding if not found.r   Nzutf-8)getattrr
   r   r   )r   rvr   r   r   r   5   s    r   c            	       s\   e Zd Zdejeje eje eeejdd fddZ	ddddZ
edd	d
Z  ZS )r   FN)r   r   r   r   r   extrar	   c                s4   t t jt||| | _}t j|||f| d S )N)tcastBinaryIO_FixupStream_streamsuper__init__)selfr   r   r   r   r   r"   )	__class__r   r   r)   >   s    	z!_NonClosingTextIOWrapper.__init__)r	   c             C   s&   y|    W n tk
r    Y nX d S )N)detach	Exception)r*   r   r   r   __del__L   s    z _NonClosingTextIOWrapper.__del__c             C   s
   | j  S )N)r'   isatty)r*   r   r   r   r/   R   s    z_NonClosingTextIOWrapper.isatty)FF)__name__
__module____qualname__r#   r%   OptionalstrboolAnyr)   r.   r/   __classcell__r   r   )r+   r   r   =   s    r   c               @   sr   e Zd ZdZdejeedddZeej	dddZ
eed	d
dZedddZedddZedddZdS )r&   aQ  The new io interface needs more from streams than streams
    traditionally implement.  As such, this fix-up code is necessary in
    some circumstances.

    The forcing of readable and writable flags are there because some tools
    put badly patched objects on sys (one such offender are certain version
    of jupyter notebook).
    F)r   r   r   c             C   s   || _ || _|| _d S )N)r'   _force_readable_force_writable)r*   r   r   r   r   r   r   r)   a   s    z_FixupStream.__init__)r   r	   c             C   s   t | j|S )N)r    r'   )r*   r   r   r   r   __getattr__k   s    z_FixupStream.__getattr__)sizer	   c             C   s2   t | jdd }|d k	r&tt||S | j|S )Nread1)r    r'   r#   r$   bytesread)r*   r;   fr   r   r   r<   n   s    z_FixupStream.read1)r	   c             C   sX   | j r
dS t| jdd }|d k	r.tt| S y| jd W n tk
rR   dS X dS )NTreadabler   F)r8   r    r'   r#   r$   r5   r>   r-   )r*   xr   r   r   r@   v   s    z_FixupStream.readablec             C   s~   | j r
dS t| jdd }|d k	r.tt| S y| jd W n: tk
rx   y| jd W n tk
rr   dS X Y nX dS )NTwritabler       F)r9   r    r'   r#   r$   r5   writer-   )r*   rA   r   r   r   rB      s    z_FixupStream.writablec             C   sT   t | jdd }|d k	r$tt| S y| j| j  W n tk
rN   dS X dS )NseekableFT)r    r'   r#   r$   r5   seektellr-   )r*   rA   r   r   r   rE      s    z_FixupStream.seekableN)FF)r0   r1   r2   __doc__r#   r%   r5   r)   r4   r6   r:   intr=   r<   r@   rB   rE   r   r   r   r   r&   W   s    r&   )r   defaultr	   c             C   s*   yt | dtS  tk
r$   |S X d S )Nr   )
isinstancer>   r=   r-   )r   rJ   r   r   r   _is_binary_reader   s    rL   c             C   sL   y|  d W n8 tk
rF   y|  d dS  tk
r@   Y nX |S X dS )NrC   r   FT)rD   r-   )r   rJ   r   r   r   _is_binary_writer   s    
rM   c             C   sH   t | drttj| S t| dd }|d k	rDt |drDttj|S d S )NFbufferT)rL   r#   r$   r%   r    )r   bufr   r   r   _find_binary_reader   s    
rP   c             C   sH   t | drttj| S t| dd }|d k	rDt |drDttj|S d S )NFrN   T)rM   r#   r$   r%   r    )r   rO   r   r   r   _find_binary_writer   s    
rQ   c             C   s   t t| ddpdS )z3A stream is misconfigured if its encoding is ASCII.r   Nr   )r   r    )r   r   r   r   _stream_is_misconfigured   s    rR   )r   attrvaluer	   c             C   s$   t | |d}||kp"|dko"|dk	S )zA stream attribute is compatible if it is equal to the
    desired value or the desired value is unset and the attribute
    has a value.
    N)r    )r   rS   rT   Zstream_valuer   r   r   _is_compat_stream_attr   s    rU   )r   r   r   r	   c             C   s   t | d|ot | d|S )zcCheck if a stream's encoding and errors attributes are
    compatible with the desired values.
    r   r   )rU   )r   r   r   r   r   r   _is_compatible_text_stream   s    
rV   )text_streamr   r   	is_binaryfind_binaryr   r   r	   c       	      C   s~   || drt t j| }nFt t j| } t| ||rH|d krDt| sH| S || }|d kr\| S |}|d krld}t|||||dS )NFr   )r   r   )r#   r$   r%   TextIOrV   rR   r   )	rW   r   r   rX   rY   r   r   Zbinary_readerZpossible_binary_readerr   r   r   _force_correct_text_stream   s$    	
r[   )text_readerr   r   r   r	   c             C   s   t | ||tt|dS )N)r   )r[   rL   rP   )r\   r   r   r   r   r   r   _force_correct_text_reader!  s    r]   )text_writerr   r   r   r	   c             C   s   t | ||tt|dS )N)r   )r[   rM   rQ   )r^   r   r   r   r   r   r   _force_correct_text_writer1  s    r_   c              C   s   t tj} | d krtd| S )Nz6Was not able to determine binary stream for sys.stdin.)rP   r
   stdinRuntimeError)readerr   r   r   get_binary_stdinA  s    
rc   c              C   s   t tj} | d krtd| S )Nz7Was not able to determine binary stream for sys.stdout.)rQ   r
   stdoutra   )writerr   r   r   get_binary_stdoutH  s    
rf   c              C   s   t tj} | d krtd| S )Nz7Was not able to determine binary stream for sys.stderr.)rQ   r
   stderrra   )re   r   r   r   get_binary_stderrO  s    
rh   )r   r   r	   c             C   s,   t tj| |}|d k	r|S ttj| |ddS )NT)r   )_get_windows_console_streamr
   r`   r]   )r   r   r!   r   r   r   get_text_stdinV  s    rj   c             C   s,   t tj| |}|d k	r|S ttj| |ddS )NT)r   )ri   r
   rd   r_   )r   r   r!   r   r   r   get_text_stdout_  s    rk   c             C   s,   t tj| |}|d k	r|S ttj| |ddS )NT)r   )ri   r
   rg   r_   )r   r   r!   r   r   r   get_text_stderrh  s    rl   )filemoder   r   r	   c             C   s"   d|krt | |S t | |||dS )z?Handles not passing ``encoding`` and ``errors`` in binary mode.b)r   r   )open)rm   rn   r   r   r   r   r   _wrap_io_openq  s    
rq   rstrict)filenamern   r   r   atomicr	   c          
      s  d k}| dkrbt  fdddD rD|r4t dfS t||ddfS |rRt dfS t||ddfS |sxt|  ||dfS d	 krtd
d krtdd krtddd l}dd l}yt	
| j}W n tk
r   d }Y nX t	jt	jB t	jB }	|r
|	tt	ddO }	xt	jt	j| d|dd}
y"t	|
|	|d krHdn|}P W nt tk
r } zT|j|jkst	jdkr|j|jkrt	j|jrt	|jt	jrw W d d }~X Y nX qW |d k	rt	|
| t| ||}t||
t	j| }t !t j"|dfS )Nro   -c             3   s   | ]}| kV  qd S )Nr   ).0m)rn   r   r   	<genexpr>  s    zopen_stream.<locals>.<genexpr>)warA   F)r   r   Tr{   zAppending to an existing file is not supported, because that would involve an expensive `copy`-operation to a temporary file. Open the file in normal `w`-mode and copy explicitly if that's what you're after.rA   z&Use the `overwrite`-parameter instead.rz   z,Atomic writes only make sense with `w`-mode.r   O_BINARYz.__atomic-writel        Z08xi  nt)#anyrf   rk   rc   rj   rq   
ValueErrorerrnorandomosstatst_modeOSErrorO_RDWRO_CREATO_EXCLr    pathjoindirname	randrangerp   EEXISTr   EACCESisdirrt   accessW_OKchmod_AtomicFilerealpathr#   r$   IO)rt   rn   r   r   ru   binaryr   r   Zpermflagstmp_filenamefder?   afr   )rn   r   open_stream~  s^    




r   c               @   s|   e Zd ZejeeddddZeedddZde	dd	d
dZ
eejdddZd dddZdd ZedddZdS )r   N)r?   r   real_filenamer	   c             C   s   || _ || _|| _d| _d S )NF)_f_tmp_filename_real_filenameclosed)r*   r?   r   r   r   r   r   r)     s    z_AtomicFile.__init__)r	   c             C   s   | j S )N)r   )r*   r   r   r   r     s    z_AtomicFile.nameF)deleter	   c             C   s.   | j r
d S | j  t| j| j d| _ d S )NT)r   r   closer   r   r   r   )r*   r   r   r   r   r     s
    
z_AtomicFile.close)r   r	   c             C   s   t | j|S )N)r    r   )r*   r   r   r   r   r:     s    z_AtomicFile.__getattr__c             C   s   | S )Nr   )r*   r   r   r   	__enter__  s    z_AtomicFile.__enter__c             C   s   | j |d k	d d S )N)r   )r   )r*   exc_type	exc_valuetbr   r   r   __exit__  s    z_AtomicFile.__exit__c             C   s
   t | jS )N)reprr   )r*   r   r   r   __repr__  s    z_AtomicFile.__repr__)F)r0   r1   r2   r#   r   r4   r)   propertyr   r5   r   r6   r:   r   r   r   r   r   r   r   r     s   r   )rT   r	   c             C   s   t d| S )Nr   )_ansi_resub)rT   r   r   r   
strip_ansi  s    r   c             C   s(   xt | ttfr| j} qW | jjdS )Nz
ipykernel.)rK   r&   r   r'   r+   r1   
startswith)r   r   r   r   _is_jupyter_kernel_output  s    
r   )r   colorr	   c             C   s0   |d kr*| d krt j} t|  o(t|  S | S )N)r
   r`   r/   r   )r   r   r   r   r   should_strip_ansi  s
    r      )ri   c              C   s   dd l } |  S )Nr   )localegetpreferredencoding)r   r   r   r   _get_argv_encoding  s    r   _ansi_stream_wrappersc                s   yt | }W n tk
r&   d}Y nX |dk	r4|S ddl}t| |}|j| |dttjj	}|j
  fdd}||_
y|t | < W n tk
r   Y nX |S )zbSupport ANSI color and style codes on Windows by wrapping a
        stream with colorama.
        Nr   )stripc                s,   y | S  t k
r&      Y nX d S )N)BaseException	reset_all)s)_writeansi_wrapperr   r   _safe_write$  s
    z'auto_wrap_for_ansi.<locals>._safe_write)r   getr-   coloramar   AnsiToWin32r#   r$   rZ   r   rD   )r   r   cachedr   r   r!   r   r   )r   r   r   r     s$    

c               C   s   t tjdd pt S )Nr   )r    r
   r`   r   r   r   r   r   r   7  s    )r?   r   r   r	   c             C   s   d S )Nr   )r?   r   r   r   r   r   ri   :  s    ri   )rA   r	   c             C   s   t t| S )N)lenr   )rA   r   r   r   term_len@  s    r   c             C   s"   y|   S  tk
r   dS X d S )NF)r/   r-   )r   r   r   r   r/   D  s    r/   )src_funcwrapper_funcr	   c                s"   t   tjd fdd}|S )N)r	   c                 sf    } y  | }W n tk
r,   d }Y nX |d k	r:|S  }y| | < W n tk
r`   Y nX |S )N)r   r-   )r   r!   )cacher   r   r   r   funcP  s    
z&_make_cached_stream_func.<locals>.func)r   r#   rZ   )r   r   r   r   )r   r   r   r   _make_cached_stream_funcK  s    r   c               C   s   t jS )N)r
   r`   r   r   r   r   <lambda>b  rC   r   c               C   s   t jS )N)r
   rd   r   r   r   r   r   c  rC   c               C   s   t jS )N)r
   rg   r   r   r   r   r   d  rC   )r`   rd   rg   binary_streamstext_streams)FF)F)F)FF)F)F)NN)NN)NN)rr   Nrs   F)NN)N)Lr   ior   rer
   typingr#   weakrefr   platformr   ZCYGWINversionZMSYS2environr   Z
APP_ENGINEZWINr   r3   CallablerZ   __annotations__compiler   r4   r   r%   r5   r   r   r   r   TextIOWrapperr   r&   rL   rM   rP   rQ   rR   rU   rV   r[   r]   r_   rc   rf   rh   rj   rk   rl   UnionPathLikerI   rq   Tupler   r   r   r   r   Z_winconsoleri   r   r   MutableMappingr   r/   r   Z_default_text_stdinZ_default_text_stdoutZ_default_text_stderrr   Mappingr   r   r   r   r   <module>   s    
"
 E		
 D*
   J&&