Viewing File: /opt/alt/python35/lib/python3.5/site-packages/click/__pycache__/_compat.cpython-35.opt-1.pyc



WP@sddlZddlZddlZddlZddlZddlmZejddkZej	j
dZdZej
dZddZd	d
ZddZd
dZGdddejZGdddeZereZeZeZeefZddZeZddZ ej
dZ!erWddl"Z"ddZ#nddZ#ddZ$ddZ%dd Z&d!d"Z'ddd#d$Z(ddd%d&Z)ddd'd(Z*d)d*Z+nddlZeZe,ZefZe-Zd+dZ$d,dZd-dZ d.d/d0Z.d.d1d2Z/d3d4Z0d5d6Z1d7d8Z2d9d:Z3d;d<Z4d=d>Z5d?dZ%d@d Z&dAd"Z'dddBd$Z(dddCd&Z)dddDd(Z*dEd*Z+ddFdGZ6dHddId.dJdKZ7e8edLr7ej9Z:dMZ;nej<Z:eZ;GdNdOdOeZ=dZ>dZ?dZ@dPdQZAdddRdSZBerdTZdUdVlCmDZDdWdXZEerdYdZd[Zyddl?Z?WneFk
rYq.XeZGdd\d]Z>d^d_Z@nd`dXZEdadZDdbdcZHdddeZIdfdgZJeJdhde(ZKeJdide)ZLeJdjde*ZMdke%dle&dme'iZNdke(dle)dme*iZOdS)nN)WeakKeyDictionarywinPz\[((?:\d|;)*)([a-zA-Z])cCstjptjS)N)sysgetfilesystemencodinggetdefaultencodingr	r	/_compat.pyget_filesystem_encodingsrcCs@|dkrt|}|dkr*d}t|||ddS)Nreplaceline_bufferingT)get_best_encoding_NonClosingTextIOWrapper)streamencodingerrorsr	r	r
_make_text_streamsrcCs7ytj|jdkSWntk
r2dSYnXdS)z$Checks if a given encoding is ascii.asciiFN)codecslookupnameLookupError)rr	r	r
is_ascii_encodings
rcCs2t|ddptj}t|r.dS|S)z1Returns the default stream encoding if not found.rNzutf-8)getattrrrr)rrvr	r	r
r&src@sReZdZddZer6ddZddZddZd	d
ZdS)rcKs3t||_}tjj|||||dS)N)_FixupStream_streamio
TextIOWrapper__init__)selfrrrextrar	r	r
r 0sz!_NonClosingTextIOWrapper.__init__cCsgt|tst|rTy|jWntk
r=YnX|jjt|Stjj||S)N)	
isinstancestris_bytesflush	Exceptionbufferwriterr)r!xr	r	r
r)8s
z_NonClosingTextIOWrapper.writecCs"x|D]}|j|qWdS)N)r))r!linesliner	r	r

writelinesAs
z#_NonClosingTextIOWrapper.writelinescCs'y|jWntk
r"YnXdS)N)detachr')r!r	r	r
__del__Es
z _NonClosingTextIOWrapper.__del__cCs
|jjS)N)risatty)r!r	r	r
r0Ksz_NonClosingTextIOWrapper.isattyN)	__name__
__module____qualname__r PY2r)r-r/r0r	r	r	r
r.s	rc@s^eZdZdZddZddZddZdd	Zd
dZdd
Z	dS)rzThe new io interface needs more from streams than streams
    traditionally implement.  As such, this fix-up code is necessary in
    some circumstances.
    cCs
||_dS)N)r)r!rr	r	r
r Vsz_FixupStream.__init__cCst|j|S)N)rr)r!rr	r	r
__getattr__Ysz_FixupStream.__getattr__cCsQt|jdd}|dk	r+||StrA|jj|S|jj|S)Nread1)rrr4readlineread)r!sizefr	r	r
r6\s
z_FixupStream.read1cCsYt|jdd}|dk	r(|Sy|jjdWntk
rTdSYnXdS)NreadablerFT)rrr8r')r!r*r	r	r
r;gs
	z_FixupStream.readablecCst|jdd}|dk	r(|Sy|jjdWn?tk
r}y|jjdWntk
rxdSYnXYnXdS)NwritableFT)rrr)r')r!r*r	r	r
r<qs

z_FixupStream.writablecCsbt|jdd}|dk	r(|Sy|jj|jjWntk
r]dSYnXdS)NseekableFT)rrseektellr')r!r*r	r	r
r?~s
	z_FixupStream.seekableN)
r1r2r3__doc__r r5r6r;r<r?r	r	r	r
rPs

rcCs
|jS)N)	iteritems)r*r	r	r
<lambda>srDcCst|ttfS)N)r#r(	bytearray)r*r	r	r
r%sr%z^[a-zA-Z_][a-zA-Z0-9_]*$cCs<y|j}Wntk
r$YnXtj|tj|S)N)filenor'msvcrtZsetmodeosO_BINARY)r:rFr	r	r
set_binary_modes
rJcCs|S)Nr	)r*r	r	r
rDscCstj|dk	S)N)_identifier_research)r*r	r	r
isidentifiersrMcCs
ttjS)N)rJrstdinr	r	r	r
get_binary_stdinsrOcCs
ttjS)N)rJrstdoutr	r	r	r
get_binary_stdoutsrQcCs
ttjS)N)rJrstderrr	r	r	r
get_binary_stderrsrScCs8ttj||}|dk	r%|Sttj||S)N)_get_windows_console_streamrrNr)rrrr	r	r
get_text_stdinsrUcCs8ttj||}|dk	r%|Sttj||S)N)rTrrPr)rrrr	r	r
get_text_stdoutsrVcCs8ttj||}|dk	r%|Sttj||S)N)rTrrRr)rrrr	r	r
get_text_stderrsrWcCs(t|tr$|jtd}|S)Nr)r#bytesdecoder)valuer	r	r
filename_to_uisr[cCs
|jS)N)rM)r*r	r	r
rDscCst|jS)N)iteritems)r*r	r	r
rDscCst|tttfS)N)r#rX
memoryviewrE)r*r	r	r
r%sFcCs7yt|jdtSWntk
r2|SYnXdS)Nr)r#r8rXr')rdefaultr	r	r
_is_binary_readers
r`cCsXy|jdWn@tk
rSy|jddSWntk
rJYnX|SYnXdS)Nr>r=FT)r)r')rr_r	r	r
_is_binary_writers


	racCsHt|dr|St|dd}|dk	rDt|drD|SdS)NFr(T)r`r)rbufr	r	r
_find_binary_readers
rccCsHt|dr|St|dd}|dk	rDt|drD|SdS)NFr(T)rar)rrbr	r	r
_find_binary_writers
rdcCstt|ddpdS)z3A stream is misconfigured if its encoding is ASCII.rNr)rr)rr	r	r
_stream_is_misconfiguredsrecCsZt|dd}t|dd}||kr@||kr@dS|dkrV|dk	SdS)NrrTF)r)rrrZstream_encodingZ
stream_errorsr	r	r
_is_compatible_text_streams
rfcCst|dr|}nO|dkr5t|r5|St|||rK|St|}|dkrg|S|dkryd}t|||S)NFr)r`rerfrcr)Ztext_readerrrZ
binary_readerr	r	r
_force_correct_text_reader's	rgcCst|dr|}nO|dkr5t|r5|St|||rK|St|}|dkrg|S|dkryd}t|||S)NFr)rarerfrdr)Ztext_writerrrZ
binary_writerr	r	r
_force_correct_text_writerCs	rhcCs+ttj}|dkr'td|S)Nz6Was not able to determine binary stream for sys.stdin.)rcrrNRuntimeError)readerr	r	r
rO_scCs+ttj}|dkr'td|S)Nz7Was not able to determine binary stream for sys.stdout.)rdrrPri)writerr	r	r
rQfscCs+ttj}|dkr'td|S)Nz7Was not able to determine binary stream for sys.stderr.)rdrrRri)rkr	r	r
rSmscCs8ttj||}|dk	r%|Sttj||S)N)rTrrNrg)rrrr	r	r
rUtscCs8ttj||}|dk	r%|Sttj||S)N)rTrrPrh)rrrr	r	r
rVzscCs8ttj||}|dk	r%|Sttj||S)N)rTrrRrh)rrrr	r	r
rWscCsIt|tr'|jtd}n|jddjdd}|S)Nrzutf-8surrogateescape)r#rXrYrencode)rZr	r	r
r[s
cCsat|dr|j}n!|dk	r0|}nt|}t|tr]|jdd}|S)Nstrerrorzutf-8r)hasattrrnr$r#rXrY)er_msgr	r	r

get_streerrors	rrrstrictc	Cs|dkr|d|krJd|kr1tdfStd|d|dfSd|krctdfStd|d|dfS|s|dkrt||dfStj||d|d|dfSd|krtd	d
|krtdd|krtdd
dl}|jdt	j
j|dd\}}|dk	rntj||d|d|}nt	j||}t
|||dfS)N-wbFrrTazAppending 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.r*z&Use the `overwrite`-parameter instead.z,Atomic writes only make sense with `w`-mode.rdirprefixz.__atomic-write)rQrVrOrUopenr
ValueErrortempfilemkstemprHpathdirnamefdopen_AtomicFile)	filenamemoderrZatomicr}fdtmp_filenamer:r	r	r
open_streams4

"	!rrTc@smeZdZddZeddZdddZdd	Zd
dZdd
Z	ddZ
dS)rcCs(||_||_||_d|_dS)NF)_f
_tmp_filename_real_filenameclosed)r!r:rZ
real_filenamer	r	r
r s			z_AtomicFile.__init__cCs|jS)N)r)r!r	r	r
rsz_AtomicFile.nameFcCsi|jr
dS|jjtsIytj|jWntk
rHYnXt|j	|jd|_dS)NT)
rrclose_can_replacerHremoverOSError_replacer)r!deleter	r	r
rs	

z_AtomicFile.closecCst|j|S)N)rr)r!rr	r	r
r5sz_AtomicFile.__getattr__cCs|S)Nr	)r!r	r	r
	__enter__sz_AtomicFile.__enter__cCs|jd|dk	dS)Nr)r)r!exc_type	exc_valuetbr	r	r
__exit__sz_AtomicFile.__exit__cCs
t|jS)N)reprr)r!r	r	r
__repr__sz_AtomicFile.__repr__N)r1r2r3r propertyrrr5rrrr	r	r	r
rsrcCstjd|S)Nr=)_ansi_resub)rZr	r	r

strip_ansisrcCs1|dkr,|dkr!tj}t|S|S)N)rrNr0)rcolorr	r	r
should_strip_ansis
	rO)rTcCsddl}|jS)Nr)localegetpreferredencoding)rr	r	r
_get_argv_encodingsrr=cCsEtjj|r)t}|j|t}|jjdS)Nz
)rrRr&_default_text_stdoutr)_default_text_stdinr7rstrip)promptrPrNr	r	r
	raw_inputs
	
	rcsytj|}Wntk
r-d}YnX|dk	r>|St||}tj|d|j}|jfdd}||_y|t|<Wntk
rYnX|S)aThis 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.
            Nstripc	s*y|SWnjYnXdS)N)Z	reset_all)s)_writeansi_wrapperr	r
_safe_write9s

z'auto_wrap_for_ansi.<locals>._safe_write)_ansi_stream_wrappersgetr'rcoloramaZAnsiToWin32rr))rrcachedrrrr	)rrr
auto_wrap_for_ansi(s"
			
rcCs9tjjtjjj}|j|j|j|jfS)N)	rwin32ZGetConsoleScreenBufferInfoSTDOUTZsrWindowZRightZLeftZBottomZTop)rr	r	r
get_winterm_sizeGs	rcCsttjddptS)Nr)rrrNrr	r	r	r
rLscGsdS)Nr	)r*r	r	r
rDOscCstt|S)N)lenr)r*r	r	r
term_lenRsrcCs+y|jSWntk
r&dSYnXdS)NF)r0r')rr	r	r
r0Vs
r0cs%tfdd}|S)Ncsw}yj|}Wntk
r6d}YnX|dk	rG|S}y||<Wntk
rrYnX|S)N)rr')rr)cachesrc_funcwrapper_funcr	r
func_s	
	
z&_make_cached_stream_func.<locals>.func)r)rrrr	)rrrr
_make_cached_stream_func]s	rcCstjS)N)rrNr	r	r	r
rDqscCstjS)N)rrPr	r	r	r
rDsscCstjS)N)rrRr	r	r	r
rDusrNrPrR)PrerrHrrweakrefrversion_infor4platform
startswithZWINZDEFAULT_COLUMNScompilerrrrrrrobjectrunicodeZ	text_typer$rXrZstring_typesrCxrangeZ
range_typer%rKrGrJrMrOrQrSrUrVrWr[inputranger`rarcrdrerfrgrhrrrrorrrrenamerrrrrrZ_winconsolerTrImportErrorrrr0rrrZ_default_text_stderrZbinary_streamsZtext_streamsr	r	r	r
<module>s	"9			
	0			%
	
Back to Directory File Manager