U C^* @sddlmZddlZddlmZddlZddlZeZedkZ e oTe dddDZ e dZ zeZWnek reZYnXzeZWnek reZYnXzeZWnek reZYnXze rddlZneWnek rdZYn2Xzejd d Wnek r$eYnXzdd lmZWnek rPeZYnXzeZ Wnek rteZ YnXzdd l!m"Z#Wn\ek rzdd l$m"Z#Wn4ek rdd l!m%Z%Gddde&e%Z#YnXYnXGddde'Z(Gddde'Z)Gddde'Z*Gddde*Z+Gddde*Z,ddZ-ddZ.ddZ/d d!Z0d"d#Z1d$d%Z2d&d'Z3d(d)Z4zdd*l5m6Z6Wnek re7Z8Yn Xd+d,Z8d-d.Z9d/d0Z:dS)1)wrapsN)system)Windowscliccs|]}t|VqdSN)CUR_OS startswith).0ir ,/tmp/pip-install-6_kvzl1k/tqdm/tqdm/utils.py sr )ZCYGWINZMSYSLinuxDarwinSunOSZFreeBSDZNetBSDZOpenBSDz\x1b\[[;\d]*[A-Za-z]F)strip)WeakSet) OrderedDict)MutableMappingc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ e j Z e j Z e jZe jZe jZe jZddZddZedddZdS) _OrderedDictcOs:t|dkrtdt|t|ds*g|_|j||dS)Nzexpected at 1 argument, got %d_keys)len TypeErrorhasattrrupdate)selfargskwdsr r r __init__Bs  z_OrderedDict.__init__cCs|jdd=t|dSr)rdictclearrr r r r!Js z_OrderedDict.clearcCs&||kr|j|t|||dSr)rappendr __setitem__rkeyvaluer r r r$Ns z_OrderedDict.__setitem__cCst|||j|dSr)r __delitem__rremove)rr&r r r r(Ss z_OrderedDict.__delitem__cCs t|jSr)iterrr"r r r __iter__Wsz_OrderedDict.__iter__cCs t|jSr)reversedrr"r r r __reversed__Zsz_OrderedDict.__reversed__cCs&|st|j}t||}||fSr)KeyErrorrpopr r%r r r popitem]s   z_OrderedDict.popitemcs8fddD}t}|ddj|f|fS)Ncsg|]}||gqSr r )r kr"r r esz+_OrderedDict.__reduce__..r)varscopyr/ __class__)ritems inst_dictr r"r __reduce__ds  z_OrderedDict.__reduce__cCs&dtdj|}d|jj|fS)Nz, z%r: %rz%s({%s}))joinmap__mod__r6r5__name__)rpairsr r r __repr__rsz_OrderedDict.__repr__cCs ||Srr5r"r r r r4vsz_OrderedDict.copyNcCs|}|D] }|||<q |Srr )clsiterabler'dr&r r r fromkeysys z_OrderedDict.fromkeys)N)r< __module__ __qualname__rr!r$r(r+r-r0r8r setdefaultrr/keysvaluesr6r>r4 classmethodrCr r r r r@s$rc@s"eZdZdZdddZddZdS) FormatReplacezV >>> a = FormatReplace('something') >>> "{:5d}".format(a) 'something' cCs||_d|_dS)Nr)replace format_called)rrLr r r rszFormatReplace.__init__cCs|jd7_|jS)Nr)rMrL)r_r r r __format__szFormatReplace.__format__N)rK)r<rDrE__doc__rrOr r r r rJs rJc@s@eZdZdZddZddZddZdd Zd d Zd d Z dS) Comparablez1Assumes child has self._comparable attr/@propertycCs |j|jkSrZ _comparablerotherr r r __lt__szComparable.__lt__cCs||kp||kSrr rSr r r __le__szComparable.__le__cCs |j|jkSrrRrSr r r __eq__szComparable.__eq__cCs ||k Srr rSr r r __ne__szComparable.__ne__cCs ||k Srr rSr r r __gt__szComparable.__gt__cCs ||k Srr rSr r r __ge__szComparable.__ge__N) r<rDrErPrUrVrWrXrYrZr r r r rQsrQc@s4eZdZddZddZddZddZd d Zd S) ObjectWrappercCs t|j|Sr)getattr_wrappedrnamer r r __getattr__szObjectWrapper.__getattr__cCst|j||Sr)setattrr]rr_r'r r r __setattr__szObjectWrapper.__setattr__cCs2zt||WStk r,t||YSXdS)z7Actual `self.getattr` rather than self._wrapped.getattrN)objectr`AttributeErrorr\r^r r r wrapper_getattrszObjectWrapper.wrapper_getattrcCst|||S)z7Actual `self.setattr` rather than self._wrapped.setattr)rdrcrbr r r wrapper_setattrszObjectWrapper.wrapper_setattrcCs|d|dS)z4 Thin wrapper around a given object r]N)rg)rwrappedr r r rszObjectWrapper.__init__N)r<rDrEr`rcrfrgrr r r r r[s r[cs(eZdZdZfddZddZZS)SimpleTextIOWrapperz Change only `.write()` of the wrapped object by encoding the passed value and passing the result to the wrapped object's `.write()` method. cs tt|||d|dS)Nencoding)superrirrg)rrhrjr?r r rszSimpleTextIOWrapper.__init__cCs|j||dS)zP Encode `s` and pass to the wrapped object's `.write()` method. rj)r]writeencoderf)rsr r r rlszSimpleTextIOWrapper.write)r<rDrErPrrl __classcell__r r r?r ris ricseZdZdfdd ZZS)CallbackIOWrapperreadcs~tt||t|||dkrFtfdd}|d|n4|dkrrtfdd}|d|ntddS) z{ Wrap a given `file`-like object's `read()` or `write()` to report lengths to the given `callback` rlcs |f||}t||Srr)datarkwargsrescallbackfuncr r rls z)CallbackIOWrapper.__init__..writerqcs||}t||Srrr)rrtrsrvr r rqs  z(CallbackIOWrapper.__init__..readz Can only wrap read/write methodsN)rkrprr\rrgr.)rrwstreammethodrlrqr?rvr rs zCallbackIOWrapper.__init__)rq)r<rDrError r r?r rpsrpc Csnzd|WnVtk r$YdStk rdz|dpHd|kWYSYYdSXYnXdSdS)Nu█▉Fzutf-ZU8T)rmUnicodeEncodeError Exceptionlowerr)rjr r r _is_utfsr~cCs(z t|jWStk r"YdSXdS)NF)r~rjre)fpr r r _supports_unicodes rcCs2t|tr*|D]}t|dkrdSqdSt|S)NFT) isinstancestrordr)rncr r r _is_asciis   rcCs$d}trt}|dkrt}tr t}|S)zb Return a function which gets width and height of console (linux,osx,windows,cygwin). N)IS_WIN_environ_cols_windows_environ_cols_tputIS_NIX_environ_cols_linux)Z _environ_colsr r r _environ_cols_wrappersrc Cszddlm}m}ddl}ddlm}m}d}||krYdSXz|d|||ddWSzttjddWYSt k rYYdSXYnXdS) Nr) TIOCGWINSZ)ioctl)arrayrzrCOLUMNS) termiosrZfcntlrr ImportErrorrosenvironr.)rrrrr r r r;s  rcCstjdkrtdkrdSdS)NntrKz)rr_coloramar r r r _term_move_upMsreast_asian_widthcCstddt|DS)Ncss"|]}t|dkrdndVqdS)ZFWrNr)r chr r r r Xsz_text_width..)sum_unicode)rnr r r _text_widthWsrcCsttd|S)zp Returns the real on-screen length of a string which may contain ANSI control codes and wide chars. rK)rRE_ANSIsub)rsr r r disp_len\srcCspt|t|kr|d|Stt|}t||krD|dd}q*|rltt|rl|drd|S|dS|S)zB Trim a string which may contain ANSI control characters. Nz)rrboolrsearchendswith)rslengthZ ansi_presentr r r disp_trimds  r); functoolsrrplatformrZ_curosrerrranyrcompilerxrangeZ_range NameErrorrangeunichrZ_unichchrunicoderrrrinitrweakrefrset basestringZ _basestring collectionsrrZ ordereddictrr rdrJrQr[rirpr~rrrrrrr unicodedatarrrrrr r r r s           A