
Y(hi^                 @   s  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  d k Z e j	 j
 d  Z e j	 j
 d  o d e j k Z d e j k o d e j j d	 d
  k Z e j	 j
 d  o e o e Z d Z e j d  Z d d   Z d d d d  Z d d   Z d d   Z Gd d   d e j  Z Gd d   d e  Z e re Z e Z e  e f Z! e" e# f Z$ d d   Z% e& Z' d d   Z( e j d  Z) d d    Z* y d  d l+ Z+ Wn e, k
 rYn Xd! d    Z* y d  d l- Z- Wn e, k
 rYn Xd" d    Z* d# d$   Z. d% d&   Z/ d' d(   Z0 d) d*   Z1 d d d+ d,  Z2 d d d- d.  Z3 d d d/ d0  Z4 d1 d2   Z5 nDd  d l Z e  Z e6 Z e  f Z! e" f Z$ e7 Z' d3 d   Z. d4 d   Z% d5 d   Z( d d6 d7  Z8 d d8 d9  Z9 d: d;   Z: d< d=   Z; d> d?   Z< d@ dA   Z= dB dC   Z> d d dD dE  Z? d dF dG  Z@ d dH dI  ZA dJ d&   Z/ dK d(   Z0 dL d*   Z1 d d dM d,  Z2 d d dN d.  Z3 d d dO d0  Z4 dP d2   Z5 d dQ dR  ZB dS dT   ZC dU d dV d dW dX  ZD eE e dY  r(e jF ZG dZ ZH n e jI ZG e ZH Gd[ d\   d\ e  ZJ d ZK d ZL d ZM d] d^   ZN d_ d`   ZO d d da db  ZP e rdc Z dd de lQ mR ZR mS ZS df dg   ZT e rd
 dh di  Z y d  d lL ZL Wn e, k
 rYq=Xe   ZU d dj dk  ZK dl dm   ZM n$ dn dg   ZT do d   ZR dp d   ZS dq dr   ZV ds dt   ZW du dv   ZX eX dw d   e2  ZY eX dx d   e3  ZZ eX dy d   e4  Z[ dz e/ d{ e0 d| e1 i Z\ dz e2 d{ e3 d| e4 i Z] d S)}    N)WeakKeyDictionary   cygwinwinZGCCAPPENGINE_RUNTIMEzDevelopment/SERVER_SOFTWARE P   z\033\[[;?0-9]*[a-zA-Z]c               C   s   t  j   p t  j   S)N)sysgetfilesystemencodinggetdefaultencoding r   r   I/mod/web/acousticsspace/venv/lib/python3.5/site-packages/click/_compat.pyget_filesystem_encoding   s    r   Fc          
   C   sL   | d  k r t  |   } | d  k r* d } t |  | | d d d | d | S)Nreplaceline_bufferingTforce_readableforce_writable)get_best_encoding_NonClosingTextIOWrapper)streamencodingerrorsr   r   r   r   r   _make_text_stream   s    r   c             C   s7   y t  j |   j d k SWn t k
 r2 d SYn Xd S)z$Checks if a given encoding is ascii.asciiFN)codecslookupnameLookupError)r   r   r   r   is_ascii_encoding,   s    r   c             C   s2   t  |  d d  p t j   } 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   4   s    r   c               @   sX   e  Z d  Z d d d d  Z e r< d d   Z d d   Z d d	   Z d
 d   Z d S)r   Fc             K   s9   t  | | |  |  _ } t j j |  | | | |  d  S)N)_FixupStream_streamioTextIOWrapper__init__)selfr   r   r   r   r   extrar   r   r   r&   =   s    	z!_NonClosingTextIOWrapper.__init__c             C   sg   t  | t  s t |  rT y |  j   Wn t k
 r= Yn X|  j j t |   St j j |  |  S)N)	
isinstancestris_bytesflush	Exceptionbufferwriter$   r%   )r'   xr   r   r   r/   N   s    z_NonClosingTextIOWrapper.writec             C   s"   x | D] } |  j  |  q Wd  S)N)r/   )r'   linesliner   r   r   
writelinesW   s    z#_NonClosingTextIOWrapper.writelinesc             C   s'   y |  j    Wn t k
 r" Yn Xd  S)N)detachr-   )r'   r   r   r   __del__[   s    z _NonClosingTextIOWrapper.__del__c             C   s   |  j  j   S)N)r#   isatty)r'   r   r   r   r6   a   s    z_NonClosingTextIOWrapper.isattyN)	__name__
__module____qualname__r&   PY2r/   r3   r5   r6   r   r   r   r   r   <   s   		r   c               @   sd   e  Z d  Z d Z d d d d  Z d d   Z d d   Z d	 d
   Z d d   Z 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).
    Fc             C   s   | |  _  | |  _ | |  _ d  S)N)r#   _force_readable_force_writable)r'   r   r   r   r   r   r   r&   p   s    		z_FixupStream.__init__c             C   s   t  |  j |  S)N)r    r#   )r'   r   r   r   r   __getattr__u   s    z_FixupStream.__getattr__c             C   sQ   t  |  j d d   } | d  k	 r+ | |  St rA |  j j |  S|  j j |  S)Nread1)r    r#   r:   readlineread)r'   sizefr   r   r   r>   x   s    
z_FixupStream.read1c             C   sf   |  j  r d St |  j d d   } | d  k	 r5 |   Sy |  j j d  Wn t k
 ra d SYn Xd S)NTreadabler   F)r;   r    r#   r@   r-   )r'   r0   r   r   r   rC      s    		z_FixupStream.readablec             C   s   |  j  r d St |  j d d   } | d  k	 r5 |   Sy |  j j d  Wn? t k
 r y |  j j d  Wn t k
 r d SYn XYn Xd S)NTwritabler       F)r<   r    r#   r/   r-   )r'   r0   r   r   r   rD      s    	z_FixupStream.writablec             C   sb   t  |  j d d   } | d  k	 r( |   Sy |  j j |  j j    Wn t k
 r] d SYn Xd S)NseekableFT)r    r#   seektellr-   )r'   r0   r   r   r   rF      s    	z_FixupStream.seekableN)
r7   r8   r9   __doc__r&   r=   r>   rC   rD   rF   r   r   r   r   r"   f   s   r"   c             C   s
   |  j    S)N)	iteritems)r0   r   r   r   <lambda>   s    rK   c             C   s   t  |  t t f  S)N)r)   r.   	bytearray)r0   r   r   r   r+      s    r+   z^[a-zA-Z_][a-zA-Z0-9_]*$c             C   s   |  S)Nr   )rB   r   r   r   set_binary_mode   s    rM   c             C   s<   y |  j    } Wn t k
 r$ Yn Xt j | t j  |  S)N)filenor-   msvcrtZsetmodeosO_BINARY)rB   rN   r   r   r   rM      s    c             C   s\   y |  j    } Wn t k
 r$ Yn4 Xt j | t j  } t j | t j | t j @ |  S)N)rN   r-   fcntlZF_GETFLZF_SETFLrP   
O_NONBLOCK)rB   rN   flagsr   r   r   rM      s    c             C   s   t  j |   d  k	 S)N)_identifier_research)r0   r   r   r   isidentifier   s    rW   c               C   s   t  t j  S)N)rM   r
   stdinr   r   r   r   get_binary_stdin   s    rY   c               C   s   t  d  t t j  S)Nstdout)_wrap_std_streamrM   r
   rZ   r   r   r   r   get_binary_stdout   s    
r\   c               C   s   t  d  t t j  S)Nstderr)r[   rM   r
   r]   r   r   r   r   get_binary_stderr   s    
r^   c             C   s>   t  t j |  |  } | d  k	 r% | St t j |  | d d S)Nr   T)_get_windows_console_streamr
   rX   r   )r   r   r!   r   r   r   get_text_stdin   s    r`   c             C   sH   t  d  t t j |  |  } | d  k	 r/ | St t j |  | d d S)NrZ   r   T)r[   r_   r
   rZ   r   )r   r   r!   r   r   r   get_text_stdout   s
    
ra   c             C   sH   t  d  t t j |  |  } | d  k	 r/ | St t j |  | d d S)Nr]   r   T)r[   r_   r
   r]   r   )r   r   r!   r   r   r   get_text_stderr  s
    
rb   c             C   s(   t  |  t  r$ |  j t   d  }  |  S)Nr   )r)   bytesdecoder   )valuer   r   r   filename_to_ui  s    rf   c             C   s
   |  j    S)N)rW   )r0   r   r   r   rK     s    c             C   s   t  |  j    S)N)iteritems)r0   r   r   r   rK     s    c             C   s   t  |  t t t f  S)N)r)   rc   
memoryviewrL   )r0   r   r   r   r+     s    c             C   s7   y t  |  j d  t  SWn t k
 r2 | SYn Xd  S)Nr   )r)   r@   rc   r-   )r   defaultr   r   r   _is_binary_reader   s    rk   c             C   sX   y |  j  d  Wn@ t k
 rS y |  j  d  d SWn t k
 rJ Yn X| SYn Xd S)NrE   r   FT)r/   r-   )r   rj   r   r   r   _is_binary_writer(  s    	rl   c             C   sH   t  |  d  r |  St |  d d   } | d  k	 rD t  | d  rD | Sd  S)NFr.   T)rk   r    )r   bufr   r   r   _find_binary_reader4  s
    rn   c             C   sH   t  |  d  r |  St |  d d   } | d  k	 rD t  | d  rD | Sd  S)NFr.   T)rl   r    )r   rm   r   r   r   _find_binary_writerC  s
    ro   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_misconfiguredR  s    rp   c             C   s4   t  |  | d  } | | k p3 | d k o3 | 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   attrre   Zstream_valuer   r   r   _is_compat_stream_attrZ  s    rr   c             C   s"   t  |  d |  o! t  |  d |  S)zkCheck if a stream's encoding and errors attributes are
        compatible with the desired values.
        r   r   )rr   )r   r   r   r   r   r   _is_compatible_text_streamb  s    rs   c             C   s   | |  d  r |  } nK t  |  | |  rG | d  k o? t |   rG |  S| |   } | d  k rc |  S| d  k ru d } t | | | d | d | S)NFr   r   r   )rs   rp   r   )Ztext_streamr   r   Z	is_binaryZfind_binaryr   r   Zbinary_readerr   r   r   _force_correct_text_streamj  s     		rt   c             C   s   t  |  | | t t d | S)Nr   )rt   rk   rn   )Ztext_readerr   r   r   r   r   r   _force_correct_text_reader  s    ru   c             C   s   t  |  | | t t d | S)Nr   )rt   rl   ro   )Ztext_writerr   r   r   r   r   r   _force_correct_text_writer  s    rv   c              C   s+   t  t j  }  |  d  k r' t d   |  S)Nz6Was not able to determine binary stream for sys.stdin.)rn   r
   rX   RuntimeError)readerr   r   r   rY     s    c              C   s+   t  t j  }  |  d  k r' t d   |  S)Nz7Was not able to determine binary stream for sys.stdout.)ro   r
   rZ   rw   )writerr   r   r   r\     s
    	c              C   s+   t  t j  }  |  d  k r' t d   |  S)Nz7Was not able to determine binary stream for sys.stderr.)ro   r
   r]   rw   )ry   r   r   r   r^     s
    	c             C   s>   t  t j |  |  } | d  k	 r% | St t j |  | d d S)Nr   T)r_   r
   rX   ru   )r   r   r!   r   r   r   r`     s
    c             C   s>   t  t j |  |  } | d  k	 r% | St t j |  | d d S)Nr   T)r_   r
   rZ   rv   )r   r   r!   r   r   r   ra     s
    c             C   s>   t  t j |  |  } | d  k	 r% | St t j |  | d d S)Nr   T)r_   r
   r]   rv   )r   r   r!   r   r   r   rb     s
    c             C   sI   t  |  t  r' |  j t   d  }  n |  j d d  j d d  }  |  S)Nr   zutf-8surrogateescape)r)   rc   rd   r   encode)re   r   r   r   rf     s    c             C   sa   t  |  d  r |  j } n! | d  k	 r0 | } n t |   } t | t  r] | j d d  } | S)Nstrerrorzutf-8r   )hasattrr|   r*   r)   rc   rd   )erj   msgr   r   r   get_streerror  s    	r   c             C   s   d | k } | r i  } n d | d | i } t  s: | rM t j |  | |  St j |  d j | j d d    } t | |  S)a+  On Python 2, :func:`io.open` returns a text file wrapper that
    requires passing ``unicode`` to ``write``. Need to open the file in
    binary mode then wrap it in a subclass that can write ``str`` and
    ``unicode``.

    Also handles not passing ``encoding`` and ``errors`` in binary mode.
    br   r   z{}btr   )r:   r$   openformatr   r   )filemoder   r   binarykwargsrB   r   r   r   _wrap_io_open  s    	'r   rstrictc                s  d   k } |  d k r t    f d d   d d d g D  rl | rS t   d f St d	 | d
 |  d f S| r t   d f St d	 | d
 |  d f S| s t |    | |  d f Sd   k r t d   d   k r t d   d   k r t d   d d  l } d d  l } y t	 j
 |   j } Wn t k
 rGd  } Yn Xt	 j t	 j Bt	 j B}	 | r{|	 t t	 d d  O}	 x t	 j j t	 j j |   d j | j d    }
 y, t	 j |
 |	 | d  k rd n |  } PWq~t k
 rj} zk | j | j k sRt	 j d k rU| j | j k rUt	 j j | j  rUt	 j | j t	 j  rUw~  WYd  d  } ~ Xq~Xq~W| d  k	 rt	 j |
 |  t |   | |  } t | |
 t	 j j  |    d f S)Nr   -c             3   s   |  ] } |   k Vq d  S)Nr   ).0m)r   r   r   	<genexpr>  s    zopen_stream.<locals>.<genexpr>war0   Fr   r   TzAppending 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.z&Use the `overwrite`-parameter instead.z,Atomic writes only make sense with `w`-mode.r   rQ   z.__atomic-write{:08x}       i  ntl        )!anyr\   ra   rY   r`   r   
ValueErrorerrnorandomrP   statst_modeOSErrorO_RDWRO_CREATO_EXCLr    pathjoindirnamer   	randranger   EEXISTr   EACCESisdirfilenameaccessW_OKchmod_AtomicFilerealpath)r   r   r   r   Zatomicr   r   r   ZpermrT   tmp_filenamefdr~   rB   r   )r   r   open_stream  s\    (		'r   r   Tc               @   sm   e  Z d  Z d d   Z e d d    Z d d d  Z d d	   Z d
 d   Z d d   Z	 d d   Z
 d S)r   c             C   s(   | |  _  | |  _ | |  _ d |  _ d  S)NF)_f_tmp_filename_real_filenameclosed)r'   rB   r   Zreal_filenamer   r   r   r&   T  s    			z_AtomicFile.__init__c             C   s   |  j  S)N)r   )r'   r   r   r   r   Z  s    z_AtomicFile.nameFc             C   si   |  j  r d  S|  j j   t sI y t j |  j  Wn t k
 rH Yn Xt |  j	 |  j  d |  _  d  S)NT)
r   r   close_can_replacerP   remover   r   _replacer   )r'   deleter   r   r   r   ^  s    	z_AtomicFile.closec             C   s   t  |  j |  S)N)r    r   )r'   r   r   r   r   r=   j  s    z_AtomicFile.__getattr__c             C   s   |  S)Nr   )r'   r   r   r   	__enter__m  s    z_AtomicFile.__enter__c             C   s   |  j  d | d  k	  d  S)Nr   )r   )r'   exc_type	exc_valuetbr   r   r   __exit__p  s    z_AtomicFile.__exit__c             C   s   t  |  j  S)N)reprr   )r'   r   r   r   __repr__s  s    z_AtomicFile.__repr__N)r7   r8   r9   r&   propertyr   r   r=   r   r   r   r   r   r   r   r   S  s   r   c             C   s   t  j d |   S)Nr   )_ansi_resub)re   r   r   r   
strip_ansi|  s    r   c             C   sB   t  r
 d  Sx" t |  t t f  r. |  j }  q W|  j j j d  S)Nz
ipykernel.)WINr)   r"   r   r#   	__class__r8   
startswith)r   r   r   r   _is_jupyter_kernel_output  s
    r   c             C   s>   | d  k r9 |  d  k r! t  j }  t |   o8 t |   S| S)N)r
   rX   r6   r   )r   colorr   r   r   should_strip_ansi  s
    	r   O   r   )r_   r[   c              C   s   d d  l  }  |  j   S)Nr   )localegetpreferredencoding)r   r   r   r   _get_argv_encoding  s    r   c             C   sE   t  j j   |  r) t   } | j |   t   } | j   j d  S)Nz
)r
   r]   r,   _default_text_stdoutr/   _default_text_stdinr?   rstrip)promptrZ   rX   r   r   r   	raw_input  s    		r   c                s   y t  j |   } Wn t k
 r- d } Yn X| d k	 r> | St |  |  } t j |  d |   j } | j      f d d   } | | _ y | t  |  <Wn t k
 r Yn X| S)a  This function wraps a stream so that calls through colorama
            are issued to the win32 console API to recolor on demand.  It
            also ensures to reset the colors if a write call is interrupted
            to not destroy the console afterwards.
            Nstripc          	      s*   y   |   SWn  j      Yn Xd  S)N)	reset_all)s)_writeansi_wrapperr   r   _safe_write  s
    
z'auto_wrap_for_ansi.<locals>._safe_write)_ansi_stream_wrappersgetr-   r   coloramaAnsiToWin32r   r/   )r   r   cachedr   r!   r   r   )r   r   r   auto_wrap_for_ansi  s"    			r   c              C   s9   t  j j t  j j  j }  |  j |  j |  j |  j f S)N)	r   win32GetConsoleScreenBufferInfoSTDOUTZsrWindowZRightZLeftZBottomZTop)r   r   r   r   get_winterm_size  s    	r   c               C   s   t  t j d d   p t   S)Nr   )r    r
   rX   r   r   r   r   r   r     s    c              G   s   d  S)Nr   )r0   r   r   r   rK     s    c              G   s   d  S)Nr   )r0   r   r   r   rK     s    c             C   s   t  t |    S)N)lenr   )r0   r   r   r   term_len  s    r   c             C   s+   y |  j    SWn t k
 r& d SYn Xd  S)NF)r6   r-   )r   r   r   r   r6     s    r6   c                s%   t          f d d   } | S)Nc                 s      }  y   j  |   } Wn t k
 r6 d  } Yn X| d  k	 rG | S   } y    }  |   |  <Wn t k
 r{ Yn X| S)N)r   r-   )r   r!   )cachesrc_funcwrapper_funcr   r   func  s    			z&_make_cached_stream_func.<locals>.func)r   )r   r   r   r   )r   r   r   r   _make_cached_stream_func  s    	r   c               C   s   t  j S)N)r
   rX   r   r   r   r   rK     s    c               C   s   t  j S)N)r
   rZ   r   r   r   r   rK     s    c               C   s   t  j S)N)r
   r]   r   r   r   r   rK     s    rX   rZ   r]   )^r   r$   rP   rer
   weakrefr   version_infor:   platformr   ZCYGWINversionZMSYS2environr   Z
APP_ENGINEr   ZDEFAULT_COLUMNScompiler   r   r   r   r   r%   r   objectr"   unicode	text_typer   r*   string_typesintlong	int_typesrJ   xrangeZ
range_typer+   rU   rM   rO   ImportErrorrR   rW   rY   r\   r^   r`   ra   rb   rf   inputrangerk   rl   rn   ro   rp   rr   rs   rt   ru   rv   r   r   r   r}   r   r   r   renamer   r   r   r   r   r   r   Z_winconsoler_   r[   r   r   r   r6   r   r   r   Z_default_text_stderrZbinary_streamsZtext_streamsr   r   r   r   <module>   s   ! *C	
		#

J			$		