ó
    „ñ:iJ  ã                   óš   • S r SSKJr  SSKrSSKrSSKrSSKJr  SSKJ	r	  Sr
\" S\
5      r " S S	5      rS
 rSS jr\S:X  a  \" 5         gg)z:Module for displaying information about Numba's gdb set upé    )Ú
namedtupleN)Údedent)Úconfigz4binary_loc, extension_loc, py_ver, np_ver, supportedÚ	_gdb_infoc                   ó`   • \ rS rSrSrS rSS jr\S 5       r\	S 5       r
S rS rS	 rS
 rSrg)Ú_GDBTestWrapperé   ziWraps the gdb binary and has methods for checking what the gdb binary
has support for (Python and NumPy).c                 ór   • [         R                  nUc  S[         R                   3n[        U5      eXl        g )Nz.No valid binary could be found for gdb named: )r   Ú
GDB_BINARYÚ
ValueErrorÚ_gdb_binary)ÚselfÚ
gdb_binaryÚmsgs      Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/misc/numba_gdbinfo.pyÚ__init__Ú_GDBTestWrapper.__init__   s9   € Ü×&Ñ&ˆ
ØÑØCÜ×'Ñ'Ð(ð*ˆCä˜S“/Ð!Ø%Õó    c                 óÈ   • U R                   S/nU H%  nUR                  S5        UR                  U5        M'     UR                  SS/5        [        R                  " USSSS9$ )Nz-qz-exÚqTé
   )Úcapture_outputÚtimeoutÚtext)r   ÚappendÚextendÚ
subprocessÚrun)r   ÚcmdÚgdb_callÚxs       r   Ú_run_cmdÚ_GDBTestWrapper._run_cmd   s^   € Ø—O‘O TÐ+ˆÛˆAØ�O‰O˜EÔ"Ø�O‰O˜AÖñ ð 	�‰˜ ˜Ô%Ü�~Š~˜h°tÀRØ#'ñ)ð 	)r   c                 ó   • U R                   $ )N©r   ©r   s    r   r   Ú_GDBTestWrapper.gdb_binary#   s   € à×ÑÐr   c                 ó    • UR                   S:H  $ )Nr   )Ú
returncode)ÚclsÚstatuss     r   ÚsuccessÚ_GDBTestWrapper.success'   s   € à× Ñ  AÑ%Ð%r   c                 ó"   • U R                  5       $ )zChecks that gdb will launch ok©r"   r&   s    r   Úcheck_launchÚ_GDBTestWrapper.check_launch+   s   € à�}‰}‹Ðr   c                 ó*   • SnU R                  U45      $ )NzUpython from __future__ import print_function; import sys; print(sys.version_info[:2])r/   ©r   r   s     r   Úcheck_pythonÚ_GDBTestWrapper.check_python/   s   € ð9ˆà�}‰}˜c˜VÓ$Ð$r   c                 ó*   • SnU R                  U45      $ )Nztpython from __future__ import print_function; import types; import numpy; print(isinstance(numpy, types.ModuleType))r/   r3   s     r   Úcheck_numpyÚ_GDBTestWrapper.check_numpy4   s   € ð<ˆð �}‰}˜c˜VÓ$Ð$r   c                 ó*   • SnU R                  U45      $ )Nzapython from __future__ import print_function; import types; import numpy;print(numpy.__version__)r/   r3   s     r   Úcheck_numpy_versionÚ#_GDBTestWrapper.check_numpy_version:   s   € ð*ˆð �}‰}˜c˜VÓ$Ð$r   r%   N)© )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r"   Úpropertyr   Úclassmethodr,   r0   r4   r7   r:   Ú__static_attributes__r<   r   r   r   r      sM   † ñ+ò&ô)ð ñ ó ð ð ñ&ó ð&òò%ò
%õ%r   r   c                  ól  • Sn SnSnSnSn [        5       nUR                  5       nUR                  U5      (       d4  SUR                   SUR                   SUR
                   3n[        U5      eUR                  n UR                  5       nUR                  U5      (       Ga  [        R                  " SUR                  R                  5       5      nUbß  UR                  5       u  pšU	 S	U
 3nS
nUR                  5       nUR                  U5      (       až  SUR
                  R                  5       ;  a€  UR                  R                  5       S:X  ab  S
nSnUR                  5       nUR                  U5      (       a8  SUR
                  R                  5       ;  a  UR                  R                  5       nU(       a  U(       a  SnOSnOSnSn[        R                   R#                  [        R                   R%                  [&        5      U5      n[)        XUXL5      $ ! [         a  nSU 3n  SnANzSnAff = f)zEPrints information to stdout about the gdb setup that Numba has foundNFzNo Python supportzNo NumPy supportzgdb at 'z#' does not appear to work.
stdout: z	
stderr: z\((\d+),\s+(\d+)\)Ú.TÚ	TracebackÚTrueÚUnknownz+Testing gdb binary failed. Reported Error: z!Full (Python and NumPy supported)z'Partial (Python only, no NumPy support)ÚNonezgdb_print_extension.py)r   r0   r,   r   ÚstdoutÚstderrr   r4   ÚreÚmatchÚstripÚgroupsr7   r:   Ú	ExceptionÚosÚpathÚjoinÚdirnameÚ__file__r   )Ú	gdb_stateÚgdb_has_pythonÚgdb_has_numpyÚgdb_python_versionÚgdb_python_numpy_versionÚgdb_wrapperr+   r   Úversion_matchÚpymajorÚpyminorÚeÚprint_ext_supportedÚprint_ext_fileÚprint_ext_paths                  r   Úcollect_gdbinford   A   s  € ð €IØ€NØ€MØ,ÐØ1Ðð
#>ä%Ó'ˆð ×)Ñ)Ó+ˆØ×"Ñ" 6×*Ñ*Ø˜k×4Ñ4Ð5ð 6 Ø &§¡˜¨j¸¿¹¸ðIˆCä˜S“/Ð!Ø×*Ñ*ˆ	ð
 ×)Ñ)Ó+ˆØ×Ñ˜v×&Ò&ÜŸHšHÐ%:Ø%+§]¡]×%8Ñ%8Ó%:ó<ˆMàÑ(Ø#0×#7Ñ#7Ó#9Ñ �Ø(/ y°°'°Ð%;Ð"Ø!%�à$×0Ñ0Ó2�Ø×&Ñ& v×.Ñ.Ø"¨&¯-©-×*=Ñ*=Ó*?Ó?Ø!Ÿ=™=×.Ñ.Ó0°FÓ:Ø,0˜MØ7@Ð4à%0×%DÑ%DÓ%F˜FØ*×2Ñ2°6×:Ñ:Ø#.°f·m±m×6IÑ6IÓ6KÓ#Kà(.¯©×(;Ñ(;Ó(=ð %=ö ÞØ"EÑà"KÑà$Ðð .€NÜ—W‘W—\‘\¤"§'¡'§/¡/´(Ó";¸^ÓL€Nô �YÐ0BØ-óDð DøôQ ó FØAÀ!ÀÐE�	ûðFús   ŒA0H È
H3È$H.È.H3c                 óÞ  • [        5       n[        S5        SU  S3n[        USUR                  4-  5        [        USUR                  4-  5        [        USUR                  4-  5        [        USUR
                  4-  5        [        USUR                  4-  5        [        S	5        [        S
5        [        SUR                   S35        [        S5        Sn[        [        U5      5        g)z;Displays the information collected by collect_gdbinfo.
    zP--------------------------------------------------------------------------------z%-zs : %-szBinary locationzPrint extension locationzPython versionzNumPy versionz Numba printing extension supportÚ zTTo load the Numba gdb printing extension, execute the following from the gdb prompt:z
source Ú
a  
    =============================================================
    IMPORTANT: Before sharing you should remove any information
    in the above that you wish to keep private e.g. paths.
    =============================================================
    N)rd   ÚprintÚ
binary_locÚextension_locÚpy_verÚnp_verÚ	supportedr   )Úsep_posÚgdb_infoÚfmtÚwarns       r   Údisplay_gdbinforr   …   sá   € ô Ó €HÜ	ˆ(„OØˆwˆi�wÐ
€Cä	ˆ#Ð" H×$7Ñ$7Ð8Ñ
8Ô9Ü	ˆ#Ð+¨X×-CÑ-CÐDÑ
DÔEÜ	ˆ#Ð! 8§?¡?Ð3Ñ
3Ô4Ü	ˆ#� (§/¡/Ð2Ñ
2Ô3Ü	ˆ#Ð3°X×5GÑ5GÐHÑ
HÔIä	ˆ"„IÜ	ð !ô "ä	ˆI�h×,Ñ,Ð-¨RÐ
0Ô1Ü	ˆ(„Oð€Dô 
Œ&�‹,Õr   Ú__main__)é-   )rA   Úcollectionsr   rR   rM   r   Útextwrapr   Únumbar   Ú_fieldsr   r   rd   rr   r=   r<   r   r   Ú<module>ry      s[   ðÙ @Ý "Û 	Û 	Û Ý Ý ð B€Ù�{ GÓ,€	÷0%ñ 0%òfADôHð6 ˆzÓÙÕð r   