U 巀g@sddlZddlZddlZddlZddlZddlmZmZmZddl m Z ddl m Z e eZGdddZGdddeZGd d d eZGd d d Zejeeeddfd ddZdZdZejeeeddddZdS)N)IO GeneratorOptional)WINDOWS)get_indentationc@s*eZdZddddZeddddZdS)SpinnerInterfaceNreturncCs tdSNNotImplementedErrorselfrH/opt/hc_python/lib/python3.8/site-packages/pip/_internal/cli/spinners.pyspinszSpinnerInterface.spin final_statusr cCs tdSr r rrrrrfinishszSpinnerInterface.finish)__name__ __module__ __qualname__rstrrrrrrrsrc@sXeZdZdeeeeeedddZedddd Zdd d d Z edd ddZ dS)InteractiveSpinnerN-\|/?)messagefile spin_charsmin_update_interval_secondscCs\||_|dkrtj}||_t||_d|_t||_ |j dt |jdd|_ dS)NF z ... r) _messagesysstdout_file RateLimiter _rate_limiter _finished itertoolscycle _spin_cyclewriter_width)rrrrr rrr__init__s  zInteractiveSpinner.__init__statusr cCs\|jr td|j}|j|d|j||j|t||_|j|jdS)Nr!) r(AssertionErrorr-r%r,lenflushr'reset)rr0backuprrr_write+s     zInteractiveSpinner._writercCs,|jr dS|jsdS|t|jdSr )r(r'readyr7nextr+r rrrr7s  zInteractiveSpinner.spinrcCs4|jr dS|||jd|jd|_dS)N T)r(r7r%r,r4rrrrr>s    zInteractiveSpinner.finish)Nrr) rrrrrrfloatr.r7rrrrrrrs   rc@sNeZdZdeeddddZeddddZdd d d Zedd d dZdS)NonInteractiveSpinnerN@N)rr r cCs$||_d|_t||_|ddS)NFstarted)r"r(r&r'_update)rrr rrrr.Ls zNonInteractiveSpinner.__init__r/cCs(|jr t|jtd|j|dS)Nz%s: %s)r(r2r'r5loggerinfor")rr0rrrr?Rs  zNonInteractiveSpinner._updatercCs&|jr dS|jsdS|ddS)Nzstill running...)r(r'r8r?r rrrrWs  zNonInteractiveSpinner.spinrcCs&|jr dS|d|dd|_dS)Nzfinished with status ''T)r(r?rrrrr^szNonInteractiveSpinner.finish)r=) rrrrr;r.r?rrrrrrr<Ksr<c@s8eZdZeddddZedddZdddd ZdS) r&N)r r cCs||_d|_dS)Nr)_min_update_interval_seconds _last_update)rr rrrr.fszRateLimiter.__init__rcCst}||j}||jkSr )timerDrC)rnowdeltarrrr8js zRateLimiter.readycCst|_dSr )rErDr rrrr5oszRateLimiter.reset)rrrr;r.boolr8r5rrrrr&esr&)rr c cstjr"ttjkr"t|}nt|}z t tj |VW5QRXWn>t k rj| dYn*t k r| dYn X| ddS)Ncancelederrordone) r#r$isattyr@getEffectiveLevelloggingINFOrr< hidden_cursorKeyboardInterruptr Exception)rspinnerrrr open_spinnerss    rTz[?25lz[?25h)NNN)rr c csPtr dVn@|r"ttjkr*dVn"|tz dVW5|tXdSr ) rrLr@rMrNrOr, HIDE_CURSOR SHOW_CURSOR)rrrrrPs  rP) contextlibr)rNr#rEtypingrrrpip._internal.utils.compatrpip._internal.utils.loggingr getLoggerrr@rrr<r&contextmanagerrrTrUrVrPrrrrs$   5