3 ig@sddlZddlZddlZddlZddlZddlmZmZddlm Z m Z ddl m Z ddl mZejeZGdddZGdd d eZGd d d eZGd d d ZejeeedddZejeeeddddZdS)N)IOIterator) HIDE_CURSOR SHOW_CURSOR)WINDOWS)get_indentationc@s*eZdZddddZeddddZdS)SpinnerInterfaceN)returncCs tdS)N)NotImplementedError)selfr 9/tmp/pip-build-88gy_88q/pip/pip/_internal/cli/spinners.pyspinszSpinnerInterface.spin) final_statusr cCs tdS)N)r )r rr r r finishszSpinnerInterface.finish)__name__ __module__ __qualname__rstrrr r r r rsrc@sTeZdZdeeeeedddZedddd Zdd d d Zedd ddZ dS)InteractiveSpinnerN-\|/?)messagefile spin_charsmin_update_interval_secondscCs\||_|dkrtj}||_t||_d|_tj||_ |jj dt |jdd|_ dS)NF z ... r) _messagesysstdout_file RateLimiter _rate_limiter _finished itertoolscycle _spin_cyclewriter_width)r rrrrr r r __init__s  zInteractiveSpinner.__init__)statusr cCs^|j s td|j}|jj|d|j||jj|t||_|jj|jjdS)Nr) r#AssertionErrorr(r r'lenflushr"reset)r r*backupr r r _write-s     zInteractiveSpinner._write)r cCs,|jr dS|jjsdS|jt|jdS)N)r#r"readyr1nextr&)r r r r r9s  zInteractiveSpinner.spin)rr cCs4|jr dS|j||jjd|jjd|_dS)N T)r#r1r r'r.)r rr r r r@s    zInteractiveSpinner.finish)Nrr) rrrrrfloatr)r1rrr r r r rs  rc@sNeZdZdeeddddZeddddZdd d d Zedd d dZdS)NonInteractiveSpinnerN@N)rrr cCs$||_d|_t||_|jddS)NFstarted)rr#r!r"_update)r rrr r r r)Ns zNonInteractiveSpinner.__init__)r*r cCs*|j s t|jjtjd|j|dS)Nz%s: %s)r#r,r"r/loggerinfor)r r*r r r r9Ts  zNonInteractiveSpinner._update)r cCs&|jr dS|jjsdS|jddS)Nzstill running...)r#r"r2r9)r r r r rYs  zNonInteractiveSpinner.spin)rr cCs&|jr dS|jd|dd|_dS)Nzfinished with status ''T)r#r9)r rr r r r`szNonInteractiveSpinner.finish)r7) rrrrr5r)r9rrr r r r r6Msr6c@s8eZdZeddddZedddZdddd ZdS) r!N)rr cCs||_d|_dS)Nr)_min_update_interval_seconds _last_update)r rr r r r)hszRateLimiter.__init__)r cCstj}||j}||jkS)N)timer>r=)r nowdeltar r r r2ls zRateLimiter.readycCstj|_dS)N)r?r>)r r r r r/qszRateLimiter.reset)rrrr5r)boolr2r/r r r r r!gsr!)rr ccstjjr"tjtjkr"t|}nt|}y t tj |VWdQRXWn>t k rj|j dYn*t k r|j dYn X|j ddS)Ncancelederrordone) rrisattyr:getEffectiveLevelloggingINFOrr6 hidden_cursorKeyboardInterruptr Exception)rspinnerr r r open_spinnerus    rN)rr c csRtr dVnB|j s$tjtjkr,dVn"|jtz dVWd|jtXdS)N) rrFr:rGrHrIr'rr)rr r r rJs  rJ) contextlibr$rHrr?ZtypingrrZpip._vendor.progressrrZpip._internal.utils.compatrZpip._internal.utils.loggingr getLoggerrr:rrr6r!contextmanagerrrNrJr r r r s"   5