Files
Trancribe/venv/lib/python3.12/site-packages/tqdm/__pycache__/utils.cpython-312.pyc

119 lines
18 KiB
Plaintext
Raw Normal View History

<EFBFBD>
$n!j".<00><00>P<00>dZddlZddlZddlZddlmZmZmZddlm Z ddl
m Z ddl m Z ddlmZeeeef\ZZZZej.Zed<08>d D<00><00>Zed
<EFBFBD>d D<00><00>Zej8d <0C>Z erddlZne<1F> ej@d <0A><0E>d(d<0F>Z"Gd<10>d<11>Z#Gd<12>d<13>Z$Gd<14>d<15>Z%Gd<16>de%<25>Z&Gd<18>de%<25>Z'Gd<1A>de%<25>Z(d<1C>Z)d<1D>Z*d<1E>Z+d<1F>Z,d <20>Z-d!<21>Z.d"<22>Z/d#<23>Z0d$<24>Z1d%<25>Z2d&<26>Z3d'<27>Z4y#e!$rej@<00>Y<00><>wxYw#e$rdZY<00><>wxYw))z*
General helpers required for `tqdm.std`.
<EFBFBD>N)<03>partial<61> partialmethod<6F>wraps)<01> signature<72><01>east_asian_width)<01>warn<72><01>proxyc#<00>FK<00>|]}tj|<01><00><01><00>y<00>w<01>N<><02>CUR_OS<4F>
startswith<EFBFBD><02>.0<EFBFBD>is <20>L/home/jean/linux-transcriber/venv/lib/python3.12/site-packages/tqdm/utils.py<70> <genexpr>rs<00><00><><00> ?<3F>a<EFBFBD>V<EFBFBD> <1E> <1E>q<EFBFBD> !<21> ?<3F><><00>!)<02>win32<33>cygwinc#<00>FK<00>|]}tj|<01><00><01><00>y<00>wr rrs rrrs<00><00><><00> Q<>a<EFBFBD>V<EFBFBD> <1E> <1E>q<EFBFBD> !<21> Q<>r)<04>aix<69>linux<75>darwin<69>freebsdz\x1b\[[;\d]*[A-Za-z]F)<01>stripc<00>
<00><01><07><08><00><01>i<00>t|<00>}tjj<00>D<00><04>cic]+\}}|j |<00>s<01>||dj <00>|<05><02>-c}}<04>|rt nt<00><08><07><08>fd<02>}|Scc}}w)a
Override parameter defaults via `os.environ[prefix + param_name]`.
Maps UPPER_CASE env vars map to lower_case param names.
camelCase isn't supported (because Windows ignores case).
Precedence (highest first):
- call (`foo(a=3)`)
- environ (`FOO_A=2`)
- signature (`def foo(a=1)`)
Parameters
----------
prefix : str
Env var prefix, e.g. "FOO_"
types : dict, optional
Fallback mappings `{'param_name': type, ...}` if types cannot be
inferred from function signature.
Consider using `types=collections.defaultdict(lambda: ast.literal_eval)`.
is_method : bool, optional
Whether to use `functools.partialmethod`. If (default: False) use `functools.partial`.
Examples
--------
```
$ cat foo.py
from tqdm.utils import envwrap
@envwrap("FOO_")
def test(a=1, b=2, c=3):
print(f"received: a={a}, b={b}, c={c}")
$ FOO_A=42 FOO_C=1337 python -c 'import foo; foo.test(c=99)'
received: a=42, b=2, c=99
```
Nc<00><00><03>t|<00>j}<01>j<00>D<00><02>cic] \}}||vs<01> ||<03><02>}}}|D]<5D>}||}|j|jur8t |jd|jf<01>D]} |||<00>||<<00>V<00>X|j<00>"t|j<00>||<00>||<<00><> <00> |||<00>||<<00><><00>|fi|<04><01>Scc}}w#t $rY<00>rwxYw#t$rY<00><>wxYw)N<>__args__)
r<00>
parameters<EFBFBD>items<6D>
annotation<EFBFBD>empty<74>getattr<74> Exception<6F>default<6C>type<70>KeyError)
<EFBFBD>func<6E>params<6D>k<>v<> overrides<65>param<61>typ<79> env_overrides<65>part<72>typess
<20><><EFBFBD>r<00>wrapzenvwrap.<locals>.wrapLs.<00><><00><1A>4<EFBFBD><1F>+<2B>+<2B><06>&3<>&9<>&9<>&;<3B>K<>d<EFBFBD>a<EFBFBD><11>q<EFBFBD>F<EFBFBD>{<7B>Q<EFBFBD><01>T<EFBFBD>K<> <09>K<><1A> <19>A<EFBFBD><1A>1<EFBFBD>I<EFBFBD>E<EFBFBD><14><1F><1F>u<EFBFBD>{<7B>{<7B>2<>"<22>5<EFBFBD>#3<>#3<>Z<EFBFBD>%<25>BR<42>BR<42>AT<41>U<><1E>C<EFBFBD><1E>'*<2A>9<EFBFBD>Q<EFBFBD><<3C>'8<> <09>!<21> <0C><1E> <1E><17><1D><1D>*<2A>2<>t<EFBFBD>E<EFBFBD>M<EFBFBD>M<EFBFBD>2<>9<EFBFBD>Q<EFBFBD><<3C>@<40> <09>!<21> <0C><19>#+<2B>5<EFBFBD><11>8<EFBFBD>I<EFBFBD>a<EFBFBD>L<EFBFBD>#9<>I<EFBFBD>a<EFBFBD>L<EFBFBD> <19>"<14>D<EFBFBD>&<26>I<EFBFBD>&<26>&<26><>'L<01><>%<25><1D><1C><1D><> <20><19><18><19>s.<00> C$<06>C$<06>C*<04>C9<02>* C6<07>5C6<07>9 D<05>D)<08>len<65>os<6F>environr#r<00>lowerrr) <09>prefixr4<00> is_methodrr-r.r5r2r3s ` @@r<00>envwrapr<"sr<00><><00>H <0A>}<7D><12><05> <0B>F<EFBFBD> <0B>A<EFBFBD>24<32>*<2A>*<2A>2B<32>2B<32>2D<32>]<5D>$<24>!<21>Q<EFBFBD><01> <0C> <0C>U[<5B>H\<5C>Q<EFBFBD>q<EFBFBD>r<EFBFBD>U<EFBFBD>[<5B>[<5B>]<5D>A<EFBFBD>%<25>]<5D>M<EFBFBD>%<25>=<3D>7<EFBFBD>D<EFBFBD>'<27>. <10>K<EFBFBD><4B>5^s <00>A?<06>A?c<00><00>eZdZdZdd<02>Zd<03>Zy)<06> FormatReplacezN
>>> a = FormatReplace('something')
>>> f"{a:5d}"
'something'
c<00> <00>||_d|_y<00>Nr)<02>replace<63> format_called)<02>selfrAs r<00>__init__zFormatReplace.__init__ls<00><00><1E><04> <0C><1E><04><1A>c<00>D<00>|xjdz c_|jS)N<>)rBrA)rC<00>_s r<00>
__format__zFormatReplace.__format__ps<00><00> <0C><1A><1A>a<EFBFBD><1F><1A><13>|<7C>|<7C>rEN)<01>)<06>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__rDrI<00>rErr>r>fs<00><00><08>
<1F>rEr>c<00>4<00>eZdZdZd<02>Zd<03>Zd<04>Zd<05>Zd<06>Zd<07>Z y) <09>
Comparablez1Assumes child has self._comparable attr/@propertyc<00>4<00>|j|jkSr <00><01> _comparable<6C>rC<00>others r<00>__lt__zComparable.__lt__ws<00><00><13><1F><1F>%<25>"3<>"3<>3<>3rEc<00><00>||kxs||k(Sr rOrUs r<00>__le__zComparable.__le__zs<00><00><14>u<EFBFBD> <0C>0<>$<24>%<25>-<2D>0rEc<00>4<00>|j|jk(Sr rSrUs r<00>__eq__zComparable.__eq__}s<00><00><13><1F><1F>5<EFBFBD>#4<>#4<>4<>4rEc<00><00>||k( Sr rOrUs r<00>__ne__zComparable.__ne__<5F><00><00><00><17>5<EFBFBD>=<3D> <20> rEc<00><00>||k Sr rOrUs r<00>__gt__zComparable.__gt__<5F>r^rEc<00><00>||k Sr rOrUs r<00>__ge__zComparable.__ge__<5F>s<00><00><17>%<25><<3C><1F>rEN)
rKrLrMrNrWrYr[r]r`rbrOrErrQrQus#<00><00>;<3B>4<>1<>5<>!<21>!<21> rErQc<00>*<00>eZdZd<01>Zd<02>Zd<03>Zd<04>Zd<05>Zy)<07> ObjectWrapperc<00>.<00>t|j|<01>Sr )r&<00>_wrapped<65>rC<00>names r<00> __getattr__zObjectWrapper.__getattr__<5F>s<00><00><16>t<EFBFBD>}<7D>}<7D>d<EFBFBD>+<2B>+rEc<00>0<00>t|j||<02>Sr )<02>setattrrf<00>rCrh<00>values r<00> __setattr__zObjectWrapper.__setattr__<5F>s<00><00><16>t<EFBFBD>}<7D>}<7D>d<EFBFBD>E<EFBFBD>2<>2rEc<00>f<00> tj||<01>S#t$rt||<01>cYSwxYw)z7Actual `self.getattr` rather than self._wrapped.getattr)<04>objectri<00>AttributeErrorr&rgs r<00>wrapper_getattrzObjectWrapper.wrapper_getattr<74>s6<00><00> '<27><19>%<25>%<25>d<EFBFBD>D<EFBFBD>1<> 1<><31><1D> '<27><1A>4<EFBFBD><14>&<26> &<26> '<27>s <00><00>0<03>0c<00>0<00>tj|||<02>S)z7Actual `self.setattr` rather than self._wrapped.setattr)rprnrls r<00>wrapper_setattrzObjectWrapper.wrapper_setattr<74>s<00><00><15>!<21>!<21>$<24><04>e<EFBFBD>4<>4rEc<00>(<00>|jd|<01>y)z4
Thin wrapper around a given object
rfN)rt)rC<00>wrappeds rrDzObjectWrapper.__init__<5F>s<00><00> <0A><1C><1C>Z<EFBFBD><17>1rEN)rKrLrMrirnrrrtrDrOrErrdrd<00>s<00><00>,<2C>3<>'<27>5<>2rErdc<00>.<00><00>eZdZdZ<03>fd<02>Zd<03>Zd<04>Z<06>xZS)<05>SimpleTextIOWrapperz<72>
Change only `.write()` of the wrapped object by encoding the passed
value and passing the result to the wrapped object's `.write()` method.
c<00>H<00><01>t<00>|<00>|<01>|jd|<02>y)N<>encoding)<03>superrDrt)rCrvrz<00> __class__s <20>rrDzSimpleTextIOWrapper.__init__<5F>s <00><><00> <0A><07><18><17>!<21> <0C><1C><1C>Z<EFBFBD><18>2rEc<00>t<00>|jj|j|jd<01><00><00>S)zP
Encode `s` and pass to the wrapped object's `.write()` method.
rz)rf<00>write<74>encoderr)rC<00>ss rr~zSimpleTextIOWrapper.write<74>s-<00><00><14>}<7D>}<7D>"<22>"<22>1<EFBFBD>8<EFBFBD>8<EFBFBD>D<EFBFBD>,@<40>,@<40><1A>,L<>#M<>N<>NrEc<00>6<00>|jt|d|<01>k(S<00>Nrf<00>rfr&rUs rr[zSimpleTextIOWrapper.__eq__<5F><00><00><00><13>}<7D>}<7D><07><05>z<EFBFBD>5<EFBFBD> A<>A<>ArE)rKrLrMrNrDr~r[<00> __classcell__<5F>r|s@rrxrx<00>s<00><><00><08>
3<>O<01> BrErxc<00>8<00><00>eZdZdZed<02><00>Z<05>fd<03>Zd<04>Z<07>xZS)<05>DisableOnWriteErrorzO
Disable the given `tqdm_instance` upon `write()` or `flush()` errors.
c<00>,<00><00><01>t<00><00><00><00><01>fd<01>}|S)zV
Quietly set `tqdm_instance.miniters=inf` if `func` raises `errno=5`.
c<00>8<00><02> <00>|i|<01><01>S#t$r@}|jdk7r<01> td<02><00>_n#t$rYnwxYwYd}~yYd}~yd}~wt
$r>}dt |<02>vr<01> td<02><00>_n#t$rYnwxYwYd}~yYd}~yd}~wwxYw)N<><00>inf<6E>closed)<07>OSError<6F>errno<6E>float<61>miniters<72>ReferenceError<6F>
ValueError<EFBFBD>str)<05>args<67>kwargs<67>er+<00> tqdm_instances <20><>r<00>innerz7DisableOnWriteError.disable_on_exception.<locals>.inner<65>s<><00><><00> <19><1B>T<EFBFBD>,<2C>V<EFBFBD>,<2C>,<2C><><1A> <19><14>7<EFBFBD>7<EFBFBD>a<EFBFBD><<3C><19><19>-2<>5<EFBFBD>\<5C>M<EFBFBD>*<2A><>%<25><19><18><19><><18>+<2B><><1E> <19><1B>3<EFBFBD>q<EFBFBD>6<EFBFBD>)<29><19><19>-2<>5<EFBFBD>\<5C>M<EFBFBD>*<2A><>%<25><19><18><19><><18>+<2B><>  <19>sc<00> <00> B<03>A<03>6<02>A<03> A<05>A<03>A<05>A<03> B<03>B<03>*A;<02>:B<03>; B<05>B<03>B<05>B<03>Br
)r<>r+r<>s`` r<00>disable_on_exceptionz(DisableOnWriteError.disable_on_exception<6F>s<00><><00>
<1E>m<EFBFBD>,<2C> <0A> <19>"<15> rEc<00><00><01>t<00>|<00>|<01>t|d<01>r,|jd|j ||j
<00><00>t|d<02>r-|jd|j ||j <00><00>yy)Nr~<00>flush)r{rD<00>hasattrrtr<>r~r<>)rCrvr<>r|s <20>rrDzDisableOnWriteError.__init__<5F>ss<00><><00> <0A><07><18><17>!<21> <12>7<EFBFBD>G<EFBFBD> $<24> <10> <20> <20><17><14>2<>2<>=<3D>'<27>-<2D>-<2D>P<> R<01> <12>7<EFBFBD>G<EFBFBD> $<24> <10> <20> <20><17><14>2<>2<>=<3D>'<27>-<2D>-<2D>P<> R<01> %rEc<00>6<00>|jt|d|<01>k(Sr<>r<>rUs rr[zDisableOnWriteError.__eq__<5F>r<>rE) rKrLrMrN<00> staticmethodr<64>rDr[r<>r<>s@rr<>r<><00>s(<00><><00><08><12><15><12><15>2R<01>BrEr<>c<00> <00><00>eZdZd<02>fd<01> Z<03>xZS)<03>CallbackIOWrapperc<00><00><01><01><06>t<00>|<00>|<02>t||<03><00>|dk(r't<00><06><00><01>fd<02><08>}|j d|<04>y|dk(r't<00><06><00><01>fd<04><08>}|j d|<05>yt d<05><00>)z{
Wrap a given `file`-like object's `read()` or `write()` to report
lengths to the given `callback`
r~c<00>B<00><02><00>|g|<01><01>i|<02><01>}<00>t|<00><00>|Sr <00>r6)<06>datar<61>r<><00>res<65>callbackr+s <20><>rr~z)CallbackIOWrapper.__init__.<locals>.write<74>s(<00><><00><1A>4<EFBFBD>1<>$<24>1<>&<26>1<><03><18><13>T<EFBFBD><19>#<23><1A>
rE<00>readc<00>:<00><02><00>|i|<01><01>}<00>t|<02><00>|Sr r<>)r<>r<>r<>r<>r+s <20><>rr<>z(CallbackIOWrapper.__init__.<locals>.read<61>s#<00><><00><1B>T<EFBFBD>,<2C>V<EFBFBD>,<2C><04><18><13>T<EFBFBD><19>#<23><1B> rEz Can only wrap read/write methodsN)r{rDr&rrtr*)rCr<><00>stream<61>methodr~r<>r+r|s ` @<40>rrDzCallbackIOWrapper.__init__<5F>s<><00><><00>
<0E><07><18><16> <20><16>v<EFBFBD>v<EFBFBD>&<26><04> <11>W<EFBFBD> <1C> <12>4<EFBFBD>[<5B> <1B><19> <1B> <11> <20> <20><17>%<25> 0<> <13>v<EFBFBD> <1D> <12>4<EFBFBD>[<5B> <1C><19> <1C> <11> <20> <20><16><14> .<2E><1A>=<3D>><3E> >rE)r<>)rKrLrMrDr<>r<>s@rr<>r<><00>s <00><><00>?<3F>?rEr<>c<00><><00> dj|<00>y#t$rYyt$r: |j<00>j d<04>xsd|k(cYS#t$rYYywxYwwxYw)Nu█▉TFzutf-<2D>U8)r<00>UnicodeEncodeErrorr'r9r)rzs r<00>_is_utfr<66><00>so<00><00>
<14><16><1D><1D>h<EFBFBD>'<27><14><> <1E><15><14> <14><19> <19><1B>><3E>><3E>#<23>.<2E>.<2E>v<EFBFBD>6<>L<>4<EFBFBD>8<EFBFBD>;K<> L<><4C><18> <19><18> <19><><19>s1<00><00> A!<03>A!<03>%A<02> A!<03> A<05>A!<03>A<05>A!c<00>L<00> t|j<00>S#t$rYywxYw<01>NF)r<>rzrq)<01>fps r<00>_supports_unicoder<65>
s(<00><00><15><16>r<EFBFBD>{<7B>{<7B>#<23>#<23><> <19><15><14><15>s <00><00> #<03>#c<00>h<00>t|t<00>r|D]}t|<01>dkDs<01>yyt|<00>S)N<><4E>FT)<04>
isinstancer<EFBFBD><00>ordr<64>)r<><00>cs r<00> _is_asciir<69>s9<00><00><11>!<21>S<EFBFBD><19><12> <1D>A<EFBFBD><12>1<EFBFBD>v<EFBFBD><03>|<7C><1C> <1D><14> <1C>Q<EFBFBD> <1F>rEc<00>J<00>d}trt}|<00>t}trt}|S)zy
Return a function which returns console dimensions (width, height).
Supported: linux, osx, windows, cygwin.
N)<05>IS_WIN<49>_screen_shape_windows<77>_screen_shape_tput<75>IS_NIX<49>_screen_shape_linux)<01> _screen_shapes r<00>_screen_shape_wrapperr<72>s*<00><00>
<19>M<EFBFBD> <0A>-<2D> <0A> <18> <20>.<2E>M<EFBFBD> <0A>+<2B> <0A> <18>rEc <00>V<00> ddl}ddlm}m}ddlm}m}d}||k(rd}n||k(rd}|jj|<06>}|d<07>}|jj||<08>} | r2|jd|j<00>\ }
} } } }}}}}}}||z
||z
fS y #t$rYy wxYw)
Nr)<02>create_string_buffer<65>windll)<02>stdin<69>stdouti<74><69><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><00> hhhhHhhhhhh<68>NN) <0A>struct<63>ctypesr<73>r<><00>sysr<73>r<><00>kernel32<33> GetStdHandle<6C>GetConsoleScreenBufferInfo<66>unpack<63>rawr')r<>r<>r<>r<>r<>r<><00> io_handle<6C>h<>csbir<69><00>_bufx<66>_bufy<66>_curx<72>_cury<72>_wattr<74>left<66>top<6F>right<68>bottom<6F>_maxx<78>_maxys rr<>r<>)s<><00><00> <0A><15>7<>%<25><17> <09> <0A><15>;<3B><1B>I<EFBFBD> <0F>6<EFBFBD>\<5C><1B>I<EFBFBD> <12>O<EFBFBD>O<EFBFBD> (<28> (<28><19> 3<><01>#<23>B<EFBFBD>'<27><04><14>o<EFBFBD>o<EFBFBD>8<>8<><11>D<EFBFBD>A<><03> <0E>#<23>]<5D>]<5D>=<3D>$<24>(<28>(<28>C<> <1B>U<EFBFBD>E<EFBFBD>5<EFBFBD>%<25><16><14>s<EFBFBD>E<EFBFBD>6<EFBFBD> <12>E<EFBFBD><18>4<EFBFBD><<3C><16>#<23><1C>-<2D> -<2D> <0F> <16><> <15> <0A> <0C> <15> <0A>s<00>BB<00> B(<03>'B(c <00><><00> ddl}ddlm}dD<00>cgc](}t||j d|z<00><00><00>dz
<00><02>*c}Scc}w#t
$rYywxYw)zcygwin xterm (windows)rN)<01>
check_call)<02>cols<6C>linesztput rGr<>)<06>shlex<65>
subprocessr<EFBFBD><00>int<6E>splitr')rHr<>r<>rs rr<>r<>As^<00><00> <0A><14>)<29>*<2A>,<2C><15><14>J<EFBFBD>u<EFBFBD>{<7B>{<7B>7<EFBFBD>Q<EFBFBD>;<3B>7<>8<>9<>A<EFBFBD>=<3D>,<2C> ,<2C><>,<2C><> <14> <0A> <0C> <15> <0A>s!<00>A<00>-A<04>A<00>A<00> A<03>Ac<00>0<00> ddlm}ddlm}ddlm} |d|||d<06><00>dd\}}||fS#t
$rM dD<00>cgc]!}t tj|<00>d z
<00><02>#ncc}wc}cYS#ttf$rYYy
wxYwwxYw#t$rYy
wxYw) Nr)<01>array)<01>ioctl)<01>
TIOCGWINSZr<EFBFBD>z<00>)<02>COLUMNS<4E>LINESrGr<>) r<><00>fcntlr<6C><00>termiosr<73>r'r<>r7r8r*r<><00> ImportError)r<>r<>r<>r<><00>rowsr<73>rs rr<>r<>Ms<><00><00>"<22><1F><1F>&<26> "<22><1E>s<EFBFBD>E<EFBFBD>"<22>j<EFBFBD>(<28>$C<>D<>R<EFBFBD>a<EFBFBD>H<>J<EFBFBD>D<EFBFBD>$<24><17><14>:<3A> <1D><><18> "<22> "<22>8L<38>M<>1<EFBFBD><03>B<EFBFBD>J<EFBFBD>J<EFBFBD>q<EFBFBD>M<EFBFBD>*<2A>Q<EFBFBD>.<2E>M<><4D>M<>M<><4D><1C>j<EFBFBD>)<29> "<22>!<21> "<22><> "<22><> <17><1A><19><1A>sH<00>B <00>0<00> B<03>A/<02>&A%<06>$A/<02>,B<03>/B<05>>B<03>B<05>B<03> B<03>Bc<00>l<00><01>tdtd<02><03>t<00><00><01>syt<00><01><00>fd<05><08>}|S)zd
Return a function which returns console width.
Supported: linux, osx, windows, cygwin.
zQUse `_screen_shape_wrapper()(file)[0]` instead of `_environ_cols_wrapper()(file)`r<>)<01>
stacklevelNc<00><00><01><00>|<00>dSr@rO)r<><00>shapes <20>rr<>z$_environ_cols_wrapper.<locals>.innerks<00><><00><14>R<EFBFBD>y<EFBFBD><11>|<7C>rE)r <00>DeprecationWarningr<67>r)r<>r<>s @r<00>_environ_cols_wrapperr<72>`sC<00><><00>
 <09>
,<2C>-?<3F>A<EFBFBD>O<01> !<21> #<23>E<EFBFBD> <10><13>
<EFBFBD>5<EFBFBD>\<5C><1C><12><1C> <11>LrEc<00><<00>tjdk(rt<00>dSdS)N<>ntrJz)r7rh<00>coloramarOrEr<00> _term_move_upr<70>rs<00><00><14>'<27>'<27>T<EFBFBD>/<2F><08>(8<>2<EFBFBD>G<>x<EFBFBD>GrEc<00>8<00>td<01>t|<00>D<00><00>S)Nc3<00>>K<00>|]}t|<01>dvrdnd<02><01><00>y<03>w)<04>FWr<57>rGNr)r<00>chs rrz_text_width.<locals>.<genexpr>ws"<00><00><><00>I<>B<EFBFBD>$<24>R<EFBFBD>(<28>D<EFBFBD>0<>q<EFBFBD>a<EFBFBD>7<>I<>s<00>)<02>sumr<6D>)r<>s r<00> _text_widthrvs<00><00> <0E>I<>#<23>a<EFBFBD>&<26>I<> I<>IrEc<00>@<00>ttjd|<00><00>S)zp
Returns the real on-screen length of a string which may contain
ANSI control codes and wide chars.
rJ)r<00>RE_ANSI<53>sub)r<>s r<00>disp_lenrzs<00><00>
<17>w<EFBFBD>{<7B>{<7B>2<EFBFBD>t<EFBFBD>,<2C> -<2D>-rEc<00>.<00>t|<00>t|<00>k(r|d|Sttj |<00><00>}t|<00>|kDr|dd}t|<00>|kDr<01>|r6ttj |<00><00>r|j d<03>r|S|dzS|S)zB
Trim a string which may contain ANSI control characters.
N<><4E><EFBFBD><EFBFBD><EFBFBD>z)r6r<00>boolr<00>search<63>endswith)r<><00>length<74> ansi_presents r<00> disp_trimr<00>s<><00><00> <0B>4<EFBFBD>y<EFBFBD>H<EFBFBD>T<EFBFBD>N<EFBFBD>"<22><13>G<EFBFBD>V<EFBFBD>}<7D><1C><17><07><0E><0E>t<EFBFBD>,<2C>-<2D>L<EFBFBD>
<12>4<EFBFBD>.<2E>6<EFBFBD>
!<21><13>C<EFBFBD>R<EFBFBD>y<EFBFBD><04> <13>4<EFBFBD>.<2E>6<EFBFBD>
!<21><13><04>W<EFBFBD>^<5E>^<5E>D<EFBFBD>1<>2<><1B>}<7D>}<7D>Y<EFBFBD>/<2F>t<EFBFBD>E<>T<EFBFBD>I<EFBFBD>5E<35>E<> <0F>KrEr<>)5rNr7<00>rer<65><00> functoolsrrr<00>inspectr<00> unicodedatar<00>warningsr <00>weakrefr <00>range<67>chrr<72><00>_range<67>_unich<63>_unicode<64> _basestring<6E>platformr<00>anyr<79>r<><00>compilerr<>r<><00>init<69> TypeErrorr<r>rQrdrxr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rrrrOrEr<00><module>r sa<00><01><04>
<EFBFBD> <09>
<EFBFBD>3<>3<><1D>(<28><19><19>(-<2D>s<EFBFBD>C<EFBFBD><13>(<<3C>%<25><06><06><08>+<2B> <0C><1C><1C><06> <0C> ?<3F>+><3E> ?<3F> ?<3F><06> <0C> Q<>+P<> Q<> Q<><06>
<14>"<22>*<2A>*<2A>,<2C>
-<2D><07> <18> <0A><17><19><19> <18> <18><15><08> <0A> <0A>E<EFBFBD>"<22>
A<10>H <1C> <1C> <20> <20>*2<>2<>2B<01>-<2D>B<01>((B<01>-<2D>(B<01>V?<3F> <0A>?<3F>4 <14><15> <20> <19><16>0 <16>"<22>&<11>$H<01>J<01>.<2E> <10><>I <15><18><15><08> <0A> <0A><0F><18><> <13><14><13>H<EFBFBD><14>s$<00>9 D<00>C?<00>?D<03>D<03>D%<03>$D%