ó
    ×çðir;  ã                  óÜ   • S r SSKJr  SSKrSSKrSSKJrJr  SSKJ	r	  SSK
Jr  SSKJrJr  SS	KJr  \(       a  SS
KJr  SSKJr  SSK
JrJr  \" S5      r\	" \5      r " S S5      rSS jrg)z#Error handling and error reporting.é    )ÚannotationsN)Úcached_propertyÚpartial©Ú	getLogger)ÚTYPE_CHECKINGé   )Úensure_text_typeÚon_win)Ú
deprecated)ÚCallable)ÚTracebackType)ÚAnyÚTypeVarÚTc                  ó˜  • \ rS rSrSS jrSS jr\S 5       r\S 5       r\\	" SS5      S 5       5       r
SS	 jr      SS
 jr      SS jr      SS jr      SS jr      SS jrSS jrSS jr\SS j5       r\	" SS5      SS j5       r\	" SS5      SS j5       r\	" SS5      SS j5       r\	" SS5      S S j5       rSrg)!ÚExceptionHandleré   c                ót   •  U" U0 UD6$ !   [         R                  " 5       u  pEnU R                  XV5      s $ = f©N)ÚsysÚexc_infoÚhandle_exception)ÚselfÚfuncÚargsÚkwargsÚ_Úexc_valÚexc_tbs          Ú,Lib\site-packages\conda\exception_handler.pyÚ__call__ÚExceptionHandler.__call__   s?   € ð	:Ù˜Ð( Ñ(Ð(øð	:Ü!$§¢£ÑˆA˜Ø×(Ñ(¨Ó9Ò9ús   ‚
 Š+7c                óv   • SSK Jn  SSKJn  U" 5         U" S5      R	                  SR                  U5      5        g )Nr   r   r	   )Úinit_loggerszconda.stderrÚ
)Úloggingr   Úcli.mainr%   ÚinfoÚjoin)r   Úcontentr   r%   s       r!   Ú	write_outÚExceptionHandler.write_out#   s)   € Ý%å*áŒÙ�.Ó!×&Ñ& t§y¡y°Ó'9Õ:ó    c                ó>   • SSK Jn  UR                  UR                  4$ ©Nr	   ©Úcontext)Úbase.contextr2   Úremote_connect_timeout_secsÚremote_read_timeout_secs©r   r2   s     r!   Úhttp_timeoutÚExceptionHandler.http_timeout+   s   € å)à×2Ñ2°G×4TÑ4TÐTÐTr.   c                ó&   • SSK Jn  UR                  $ r0   )r3   r2   Ú
user_agentr6   s     r!   r:   ÚExceptionHandler.user_agent1   s   € å)à×!Ñ!Ð!r.   z26.9z27.3c                ó&   • SSK Jn  UR                  $ r0   )r3   r2   Úerror_upload_urlr6   s     r!   r=   Ú!ExceptionHandler.error_upload_url7   s   € õ 	*à×'Ñ'Ð'r.   c                ó>  • SSK Jn  SSKJnJnJn  [        X5      (       a3  UR                  (       a  U R                  X5      $ U R                  X5      $ [        U[        5      (       a)  [        USS 5      U:X  a  U R                  U" U5      U5      $ [        U[        5      (       a  U R                  U" U5      U5      $ [        U[        5      (       a  U R                  U" S5      U5        g[        U[        5      (       a  UR                   $ U R#                  X5      $ )Nr   )ÚENOSPCr	   )Ú
CondaErrorÚCondaMemoryErrorÚNoSpaceLeftErrorÚerrnoÚKeyboardInterrupt)rD   r@   Ú
exceptionsrA   rB   rC   Ú
isinstanceÚ
reportableÚ'handle_reportable_application_exceptionÚhandle_application_exceptionÚEnvironmentErrorÚgetattrÚMemoryErrorrE   Ú_print_conda_exceptionÚ
SystemExitÚcodeÚhandle_unexpected_exception)r   r   r    r@   rA   rB   rC   s          r!   r   Ú!ExceptionHandler.handle_exceptionA   sû   € Ý ÷	
ñ 	
ô �g×*Ñ*Ø×!×!Ø×CÑCÀGÓTÐTà×8Ñ8¸ÓIÐIÜ�gÔ/×0Ñ0Ü�w ¨Ó.°&Ó8Ø×8Ñ8Ù$ WÓ-¨vóð ô �gœ{×+Ñ+Ø×4Ñ4Ñ5EÀgÓ5NÐPVÓWÐWÜ�gÔ0×1Ñ1Ø×'Ñ'©
Ð3FÓ(GÈÔPØÜ�gœz×*Ñ*Ø—<‘<ÐØ×/Ñ/°Ó@Ð@r.   c                ó<   • U R                  X5        UR                  $ r   )rN   Úreturn_code)r   r   r    s      r!   rJ   Ú-ExceptionHandler.handle_application_exception]   s   € ð 	×#Ñ# GÔ4Ø×"Ñ"Ð"r.   c                ó    • SSK Jn  U" X5        g )Nr	   )Úprint_conda_exception)rF   rW   )r   r   r    rW   s       r!   rN   Ú'ExceptionHandler._print_conda_exceptionc   s   € õ
 	6á˜gÕ.r.   c                ón   • U R                  X5      nU R                  U5        [        USS 5      nUb  U$ S$ )NrT   r	   )Úget_error_reportÚprint_unexpected_error_reportrL   )r   r   r    Úerror_reportÚrcs        r!   rQ   Ú,ExceptionHandler.handle_unexpected_exceptionl   s?   € ð ×,Ñ,¨WÓ=ˆØ×*Ñ*¨<Ô8Ü�W˜m¨TÓ2ˆØ‘^ˆrÐ*¨Ð*r.   c                óÊ   • U R                  X5      nSSKJn  UR                  (       a  UR	                  UR                  5       5        U R                  U5        UR                  $ r0   )rZ   r3   r2   ÚjsonÚupdateÚdump_mapÚprint_expected_error_reportrT   )r   r   r    r\   r2   s        r!   rI   Ú8ExceptionHandler.handle_reportable_application_exceptiont   sO   € ð ×,Ñ,¨WÓ=ˆÝ)à�<�<Ø×Ñ × 0Ñ 0Ó 2Ô3Ø×(Ñ(¨Ô6Ø×"Ñ"Ð"r.   c                óü  • SSK JnJn  SR                  S [        R
                   5       5      n0 nSU;  a   SSKJn  U" 5       n[        U5      UR                  R                  [        UR                  5      UU" X5      US.n
[        X5      (       a  UR                  5       U
S	'   U
$ ! [         aH  nU" 5       n	[        U5      UR                  R                  [        UR                  5      U	S.n S nAN±S nAff = f)
Nr	   )rA   Ú_format_excÚ c              3  ó8   #   • U  H  n[        U5      v •  M     g 7fr   )r
   )Ú.0Úss     r!   Ú	<genexpr>Ú4ExceptionHandler.get_error_report.<locals>.<genexpr>†   s   é € ÐAº°1Ô+¨A×.Ð.ºùs   ‚z info)Úget_info_dict)ÚerrorÚexception_nameÚexception_typeÚ	traceback)rn   ro   rp   Úcommandrq   Ú
conda_infoÚconda_error_components)rF   rA   rf   r*   r   ÚargvÚcli.main_inform   Ú	ExceptionÚreprÚ	__class__Ú__name__ÚstrrG   rb   )r   r   r    rA   rf   rr   Ú	info_dictrm   Úinfo_eÚinfo_tracebackr\   s              r!   rZ   Ú!ExceptionHandler.get_error_report   sä   € ÷
 	8à—(‘(ÑA¼¿ºÓAÓAˆØˆ	Ø˜'Ó!ðÝ8á)›O�	ô ˜'“]Ø%×/Ñ/×8Ñ8Ü! '×"3Ñ"3Ó4ØÙ$ WÓ5Ø#ñ
ˆô �g×*Ñ*Ø5<×5EÑ5EÓ5GˆLÐ1Ñ2àÐøô+ ó Ù!,£�ä! &›\Ø&,×&6Ñ&6×&?Ñ&?Ü&)¨'×*;Ñ*;Ó&<Ø!/ñ	•	ûðús   ¸B) Â)
C;Â3>C6Ã6C;c                ó  • SSK Jn  UR                  (       a  SSKJn  U" U5        g / nUR                  S5        UR                  S5        UR                  S5        UR                  S US   R                  5        5       5        UR                  S5        UR                  SR                  US	   5      5        UR                  S5        US
   (       a=  SSK	J
nJn   UR                  U" US
   5      5        UR                  U" US
   5      5        UR                  / SQ5        U R                  " U6   g ! [         aC  n[        R                  SUSS9  UR                  S5        UR                  U< 5         S nANkS nAff = f)Nr	   r1   ©Ústdout_jsonÚ ú<# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<c              3  ó,   #   • U  H
  nS U-   v •  M     g7f)z    N© )ri   Úlines     r!   rk   ÚAExceptionHandler.print_unexpected_error_report.<locals>.<genexpr>´   s   é € ð #Ú*P $�˜–Ò*Pùs   ‚rq   ú`$ {}`rr   rs   ©Úget_env_vars_strÚget_main_info_strú%rT©r   ú$conda info could not be constructed.)rƒ   zFAn unexpected error has occurred. Conda has prepared the above report.zEIf you suspect this error is being caused by a malfunctioning plugin,z;consider using the --no-plugins option to turn off plugins.rƒ   z-Example: conda --no-plugins install <package>rƒ   zGAlternatively, you can set the CONDA_NO_PLUGINS environment variable onz<the command line to run the command without plugins enabled.rƒ   z6Example: CONDA_NO_PLUGINS=true conda install <package>rƒ   )r3   r2   r`   Ú
cli.commonr‚   ÚappendÚextendÚ
splitlinesÚformatrv   r‹   rŒ   rw   ÚlogÚwarningr,   ©r   r\   r2   r‚   Úmessage_builderr‹   rŒ   Úes           r!   r[   Ú.ExceptionHandler.print_unexpected_error_report¦   s[  € Ý)à�<�<Ý/á˜Õ%à ˆOØ×"Ñ" 2Ô&Ø×"Ñ"ØNôð ×"Ñ" 2Ô&Ø×"Ñ"ñ #Ø*6°{Ñ*C×*NÑ*NÔ*Pó#ô ð ×"Ñ" 2Ô&Ø×"Ñ" 8§?¡?°<À	Ñ3JÓ#KÔLØ×"Ñ" 2Ô&Ø˜L×)ßNð	5à#×*Ñ*Ñ+;¸LÈÑ<VÓ+WÔXØ#×*Ñ*Ù)¨,°|Ñ*DÓEôð ×"Ñ"òôð" �NŠN˜OÒ,øô+ !ó 5Ü—K‘K  a°$�KÑ7Ø#×*Ñ*Ð+QÔRØ#×*Ñ*¨a©U×4Ñ4ûð5ús   Ã4D4 Ä4
FÄ>9E<Å<Fc                ó~  • SSK Jn  UR                  (       a  SSKJn  U" U5        g / nUR                  S5        UR                  S5        UR                  S5        UR                  SR                  US   5      5        UR                  S5        US   (       a=  SS	KJnJ	n   UR                  U" US   5      5        UR                  U" US   5      5        UR                  S5        UR                  S5        UR                  S5        UR                  US   R                  5       5        UR                  S5        UR                  S5        UR                  S5        U R                  " U6   g ! [         aC  n[        R                  S
USS9  UR                  S5        UR                  U< 5         S nANàS nAff = f)Nr	   r1   r�   rƒ   r„   r‰   rr   rs   rŠ   r�   TrŽ   r�   z=V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V Vrn   zQA reportable application error has occurred. Conda has prepared the above report.)r3   r2   r`   r�   r‚   r‘   r”   rv   r‹   rŒ   rw   r•   r–   r’   r“   r,   r—   s           r!   rc   Ú,ExceptionHandler.print_expected_error_reportÚ   s‡  € Ý)à�<�<Ý/á˜Õ%à ˆOØ×"Ñ" 2Ô&Ø×"Ñ"ØNôð ×"Ñ" 2Ô&Ø×"Ñ" 8§?¡?°<À	Ñ3JÓ#KÔLØ×"Ñ" 2Ô&Ø˜L×)ßNð	5à#×*Ñ*Ñ+;¸LÈÑ<VÓ+WÔXØ#×*Ñ*Ù)¨,°|Ñ*DÓEôð ×"Ñ" 2Ô&Ø×"Ñ"ØOôð ×"Ñ" 2Ô&à×"Ñ" <°Ñ#8×#CÑ#CÓ#EÔFØ×"Ñ" 2Ô&à×"Ñ"Øcôð ×"Ñ" 2Ô&Ø�NŠN˜OÒ,øô# !ó 5Ü—K‘K  a°$�KÑ7Ø#×*Ñ*Ð+QÔRØ#×*Ñ*¨a©U×4Ñ4ûð5ús   Â#4E/ Å/
F<Å99F7Æ7F<c                ó¤   •  [         R                  " S5      =(       d    [        $ ! [         a   n[        R                  SU5         S nAgS nAff = f)Nr   r�   T)ÚosÚisattyr   rw   r•   Údebug)r   r™   s     r!   Ú_isattyÚExceptionHandler._isatty  s;   € ð	Ü—9’9˜Q“<×)¤6Ð)øÜó 	Ü�I‰I�d˜AÔÜûð	ús   ‚"% ¥
A¯A
Á
Ac                óÆ  • SSK Jn  SnUR                  SL a  SnO–UR                  SL d  UR                  (       a  SnOsUR                  (       d"  UR
                  (       d  U R                  (       d.  [        UR                  (       + =(       a    UR                  5      nOU R                  5       nSnU(       a  U R                  U5        U(       a  U R                  U5        gg)z4Determine whether or not to upload the error report.r	   r1   FTN)r3   r2   Úreport_errorsÚ
always_yesr`   Úquietr¡   ÚboolÚofflineÚ_ask_uploadÚ_execute_uploadÚ_post_upload)r   r\   r2   Úpost_uploadÚ	do_uploads        r!   Ú_uploadÚExceptionHandler._upload  s§   € õ 	*àˆØ× Ñ  EÒ)à‰IØ×"Ñ" dÒ*¨g×.@×.@à‰IØ�\�\˜WŸ]Ÿ]°$·,·,ä §¡Ô0×G°W×5GÑ5GÓH‰Ið ×(Ñ(Ó*ˆIØˆKö à× Ñ  Ô.æà×Ñ˜iÕ(ð r.   c                óÆ   • SSK Jn  SSKJn   U" S[	        [
        S5      5      nU=(       a    U" U5      $ ! [         a   n[        R                  SU5         S nAgS nAff = f)Nr	   )Úboolify)Útimeouté(   z©If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers? [y/N]: r�   F)	Úauxlib.type_coercionr±   Ú	common.ior²   r   Úinputrw   r•   r    )r   r±   r²   r­   r™   s        r!   r©   ÚExceptionHandler._ask_upload2  s_   € õ
 	2Ý&ð	ÙØÜÜðóó	ˆIð ×3¡¨Ó!3Ð3øÜó 	Ü�I‰I�d˜AÔÜûð	ús   Ž'6 ¶
A Á AÁA c                óæ  • SS K nSSKJn  SU R                  0nU R                  nUR                  5       n[        S U 5       5      (       a  SOSUS'   S	[        U5      ;   a  SOSUS
'   UR                  USS9S-   nUR                  [        U5      S5      nS n SS K
n	Sn
U R                  nU	R                  X´XWSS9nUR                  5         UR                  S;   a�  UR                  R!                  S5      (       a}  UR                  S   nU	R                  UUUUSS9nUR                  5         U
S-  n
U
S:”  a  SSKJn  U" S5      eUR                  S;   a"  UR                  R!                  S5      (       a  M}  [&        R)                  SU=(       a    UR                  5         U(       a#  UR.                  (       a  U R1                  S5        g U R1                  S5        U(       a1  UR                  (       a  U R1                  SUR                   35        g g g ! [*         a   n[&        R-                  SU5         S nANšS nAff = f! [*         a!  n[&        R)                  U< 5         S nAg S nAff = f)Nr   r	   )r`   z
User-Agentc              3  ó>   #   • U  H  n[        U5      S :  v •  M     g7f)é€   N)Úord)ri   Úcs     r!   rk   Ú3ExceptionHandler._execute_upload.<locals>.<genexpr>Y  s   é € Ð7ªh¨œ˜A› žªhùs   ‚TFÚis_asciirg   Ú
has_spaces)Ú	sort_keysr&   ÚUSERNAME_REMOVED)Úheadersr²   ÚdataÚallow_redirects)i-  i.  ÚLocationé   )rA   zRedirect limit exceededzupload response status: %sr�   zUpload successful.zUpload did not complete.z HTTP )ÚgetpassÚcommon.serializer`   r:   r7   ÚgetuserÚallr{   ÚdumpsÚreplaceÚrequestsr=   ÚpostÚraise_for_statusÚstatus_coderÂ   Úgetrƒ   rA   r•   r    rw   r)   Úokr,   )r   r\   rÇ   r`   rÂ   Ú_timeoutÚusernamerÃ   ÚresponserÍ   Úredirect_counterÚurlrA   r™   s                 r!   rª   Ú ExceptionHandler._execute_uploadJ  sO  € ó
 	å*ð ˜$Ÿ/™/ð
ˆð ×$Ñ$ˆØ—?‘?Ó$ˆäÑ7©hÓ7×7Ñ7‰D¸Uð 	�ZÑ ð .1´C¸³MÓ-A¡TÀuˆ�\Ñ"Ø�z‰z˜,°$ˆzÐ7¸$Ñ>ˆØ�|‰|œC ›MÐ+=Ó>ˆØˆð	ó à ÐØ×'Ñ'ˆCØ—}‘}Ø¨hÐSXð %ð ˆHð ×%Ñ%Ô'Ø×&Ñ&¨*Ó4¸×9IÑ9I×9MÑ9MØ÷:ñ :ð ×&Ñ& zÑ2�Ø#Ÿ=™=ØØ#Ø$ØØ$)ð )ð �ð ×)Ñ)Ô+Ø  AÑ%Ð Ø# bÓ(Ý,á$Ð%>Ó?Ð?ð! ×&Ñ&¨*Ó4¸×9IÑ9I×9MÑ9MØ÷:ó :ô" �I‰IÐ2°H×4UÀ×AUÑAUÔVð	 Þ˜HŸKŸKØ—‘Ð3Õ4à—‘Ð9Ô:Þ × 4× 4Ø—N‘N V¨H×,@Ñ,@Ð+AÐ#BÕCð !5�8øô ó 	Ü�H‰H�T˜1×Ñûð	ûô ó 	 Ü�I‰I˜™×Ñûð	 ús>   ÂCH Å:)H Æ$)I ÇAI È
IÈ"H=È=IÉ
I0ÉI+É+I0c           	     ó–   • USL a  U R                  SSSSSSS5        g Uc  U R                  SSS5        g U R                  SSSS	S5        g )
NTrƒ   z'Thank you for helping to improve conda.zAOpt-in to always sending reports (and not see this message again)z
by runningz+    $ conda config --set report_errors truez Timeout reached. No report sent.z+No report sent. To permanently opt-out, usez,    $ conda config --set report_errors false)r,   )r   r­   s     r!   r«   ÚExceptionHandler._post_upload‰  sg   € ð
 ˜Òà�N‰NØØ9ØSØØØ=Øõð Ñà�N‰NØØ2Øõð �N‰NØØ=ØØ>Øõr.   r†   N©r   zCallable[..., T]ÚreturnzT | int)r+   r{   rÜ   ÚNone)r   ÚBaseExceptionr    r   rÜ   Úint)r   rÞ   r    r   rÜ   rÝ   )r   rÞ   r    r   rÜ   údict[str, str])r\   rà   rÜ   rÝ   )rÜ   r§   )r\   zdict[str, Any]rÜ   rÝ   )r­   r§   rÜ   rÝ   )rz   Ú
__module__Ú__qualname__Ú__firstlineno__r"   r,   Úpropertyr7   r:   r   r=   r   rJ   rN   rQ   rI   rZ   r[   rc   r   r¡   r®   r©   rª   r«   Ú__static_attributes__r†   r.   r!   r   r      s›  † ô:ô;ð ñUó ðUð
 ñ"ó ð"ð
 ÙØØóñ(ó	ó ð
(ô
Að8#Ø$ð#Ø.;ð#à	ô#ð/àð/ð ð/ð 
ô	/ð+Ø$ð+Ø.;ð+à	ô+ð	#Ø$ð	#Ø.;ð	#à	ô	#ð%àð%ð ð%ð 
ô	%ôN2-ôh*-ðX óó ðñ ØØóó)ó	ð)ñ@ ØØóóó	ðñ( ØØóó9 ó	ð9 ñv ØØóóó	ór.   r   c                ó2   • [        5       nU" U /UQ70 UD6nU$ r   )r   )r   r   r   Úexception_handlerÚreturn_values        r!   Úconda_exception_handlerré   «  s%   € Ü(Ó*ÐÙ$ TÐ;¨DÒ;°FÑ;€LØÐr.   rÛ   )Ú__doc__Ú
__future__r   rž   r   Ú	functoolsr   r   r'   r   Útypingr   Úcommon.compatr
   r   Údeprecationsr   Úcollections.abcr   Útypesr   r   r   r   rz   r•   r   ré   r†   r.   r!   Ú<module>rò      sS   ðñ *å "ã 	Û 
ß .Ý Ý  ç 3Ý $æÝ(Ý#ß#á�‹€Aá�Ó€÷Nñ Nõbr.   