§
    2@Äjü  ã                   ó6  — d Z ddlZ	 ddlZddlZn# e$ r  ed¦  «        ‚w xY w G d„ d¦  «        Z G d„ d¦  «        Z G d„ d	¦  «        Z G d
„ d¦  «        Z G d„ d¦  «        Z	d„ Z
ej                              ej        ¦   «          e
¦   «         ¦  «         dS )z(gdb printing extension for Numba types.
é    Nz$GDB python support is not available.c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNumbaArrayPrinterc                 ó   — || _         d S ©N©Úval©Úselfr   s     úOC:\Projects\Historical\venv\Lib\site-packages\numba/misc/gdb_print_extension.pyÚ__init__zNumbaArrayPrinter.__init__   ó   € ØˆŒˆˆó    c                 óÈ  — 	 dd l }d}n# t          $ r d}Y nw xY w	 d}| j        d         }| j        d         }| j        d         }| j        d         }d}t          | j        j        ¦  «        }	|�ršd|	v sd	|	v �r‘|	                     d
d¦  «                             ¦   «         }	t          j        d¦  «        }
d„ |
 	                    |	¦  «         
                    ¦   «         D ¦   «         }|\  }}}d}t          j	        ||¦  «        }| 
                    ¦   «         \  }}}|dk    }|                     d¦  «        }g }|D ]Ì}|                     d¦  «        }|d         }|dd …         }t          |¦  «        dk    rt          d|z  ¦  «        ‚|d         }d|v rt          d|z  ¦  «        ‚|                     d¦  «        d                              d¦  «        d         }|                     |¦  «        }|                     ||f¦  «         ŒÍ|}nmt          j        d¦  «        }
d„ |
 	                    |	¦  «         
                    ¦   «         D ¦   «         }|\  }}}d|v r|dd…                              dd¦  «        }d„ } ||¦  «        } ||¦  «        }||k    �r|rø|                     d„ |D ¦   «         ¦  «        }|                     |¦  «        } |                     || z  ¦  «        }!|!t%          |¦  «        z  }!|                     ||¬¦  «        }"|"}t'          j        ¦   «         }#|#                     t%          |¦  «        |!¦  «        }$|                     |$|¬¦  «        }%|j        j                             |%||¬ ¦  «        }&d!t          |&¦  «        z   S d"|›d#|›d$�S t5          d%g¦  «        }'d&d'                     |'¦  «        z   d(z   d$z   S # t8          $ r}(d)|(z  cY d }(~(S d }(~(ww xY w)*Nr   TFÚdataÚitemsizeÚshapeÚstridesÚalignedÚRecordz
unaligned Ú z%array\((Record.*), (.*), (.*)\)\ \(.*c                 ó6   — g | ]}|                      ¦   «         ‘ŒS © ©Ústrip©Ú.0Úxs     r   ú
<listcomp>z/NumbaArrayPrinter.to_string.<locals>.<listcomp>8   ó    € ÐNÐNÐN¨!˜AŸGšG™IœIÐNÐNÐNr   z(Record\((.*\[.*\]);([0-9]+);(True|False)ÚTrueú,ú[é   zUnsupported sub-type: %sÚnestedarrayú;ú=zarray\((.*),(.*),(.*)\)\ \(.*c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   r   r   s     r   r   z/NumbaArrayPrinter.to_string.<locals>.<listcomp>R   r   r   z	unichr x éÿÿÿÿz<Uc                 óÒ   ‡ — ‰ j                              ¦   «         }|d         j                              ¦   «         \  }}t          ˆ fd„t          ||dz   ¦  «        D ¦   «         ¦  «        S )Nr   c                 ó:   •— g | ]}t          ‰|         ¦  «        ‘ŒS r   )Úint)r   r   Údwarrs     €r   r   zGNumbaArrayPrinter.to_string.<locals>.dwarr2inttuple.<locals>.<listcomp>\   s#   ø€ ÐGÐGÐG°�c %¨¤(™mœmÐGÐGÐGr   r#   )ÚtypeÚfieldsÚrangeÚtuple)r,   r.   ÚloÚhis   `   r   Údwarr2inttuplez3NumbaArrayPrinter.to_string.<locals>.dwarr2inttupleX   sb   ø€ àœ×*Ò*Ñ,Ô,�Ø œœ×-Ò-Ñ/Ô/‘��BÝÐGÐGÐGÐGµU¸2¸rÀA¹vÑ5FÔ5FÐGÑGÔGÑHÔHÐHr   c                 ó4   — g | ]}t          d |dz
  ¦  «        ‘ŒS )r   r#   )Úmaxr   s     r   r   z/NumbaArrayPrinter.to_string.<locals>.<listcomp>h   s$   € Ð'EÐ'EÐ'E¸!­¨A¨q°1©u©¬Ð'EÐ'EÐ'Er   )Úalign)Údtype)r   r   ú
zarray([...], dtype=z, shape=ú)zNULL/Uninitializedzarray([ú, ú]z%array[Exception: Failed to parse. %s])ÚnumpyÚImportErrorr   Ústrr-   Úreplacer   ÚreÚcompileÚmatchÚgroupsÚsplitÚlenÚ	TypeErrorr7   ÚappendÚarrayÚsumr+   ÚgdbÚselected_inferiorÚread_memoryÚ
frombufferÚlibÚstride_tricksÚ
as_stridedÚlistÚjoinÚ	Exception))r
   ÚnpÚ
HAVE_NUMPYÚNULLr   r   ÚrshpÚrstridesÚ
is_alignedÚty_strÚmatcherÚarr_infoÚ	dtype_strÚndim_strÚ	order_strÚrstrÚ
rstr_matchr.   ÚbalignÚis_aligned_strÚ	field_dtsÚstruct_entriesÚfÚsplittedÚnameÚdt_partÚ	dt_as_strr7   r3   r   r   Úshp_arrÚstrd_arrÚextentÚdtype_clazzÚ	this_procÚmemÚarr_dataÚnew_arrÚbufÚes)                                            r   Ú	to_stringzNumbaArrayPrinter.to_string   sn  € ð	ØÐÐÐØˆJˆJøÝð 	ð 	ð 	ØˆJˆJˆJð	øøøðd	?ØˆDð ”8˜FÔ#ˆDð ”x 
Ô+ˆHð ”8˜GÔ$ˆDØ”x 	Ô*ˆHð ˆJõ ˜œœÑ'Ô'ˆFØñ "K˜y¨FÐ2Ð2°hÀ&Ð6HÑ6HØŸš¨°RÑ8Ô8×>Ò>Ñ@Ô@�Ýœ*Ð%MÑNÔN�àNÐN¨w¯}ª}¸VÑ/DÔ/D×/KÒ/KÑ/MÔ/MÐNÑNÔN�Ø19Ñ.�	˜8 YØB�ÝœX d¨IÑ6Ô6�
à1;×1BÒ1BÑ1DÔ1DÑ.�˜ Ø+¨vÒ5�
Ø"ŸLšL¨Ñ-Ô-�	Ø!#�Ø"ð 9ð 9�AØ Ÿwšw s™|œ|�HØ# Aœ;�DØ& q r rœl�GÝ˜7‘|”| aÒ'Ð'Ý'Ð(BÀQÑ(FÑGÔGÐGà")¨!¤*˜Ø(¨GÐ3Ð3Ý"+Ð,FÈÑ,JÑ"KÔ"KÐKØ$+§M¢M°#Ñ$6Ô$6°qÔ$9×$?Ò$?ÀÑ$DÔ$DÀQÔ$G˜	Ø "§¢¨Ñ 3Ô 3˜Ø"×)Ò)¨4°¨-Ñ8Ô8Ð8Ð8à*�	�	åœ*Ð%EÑFÔF�ØNÐN¨w¯}ª}¸VÑ/DÔ/D×/KÒ/KÑ/MÔ/MÐNÑNÔN�Ø19Ñ.�	˜8 Yà )Ð+Ð+Ø )¨!¨B¨$¤× 7Ò 7¸ÀTÑ JÔ J�IðIð Ið Ið #�N 4Ñ(Ô(ˆEØ$�n XÑ.Ô.ˆGð �tŠ|‰|Øð /ð !ŸhšhÐ'EÐ'E¸uÐ'EÑ'EÔ'EÑFÔF�GØ!Ÿxšx¨Ñ0Ô0�HØŸVšV G¨hÑ$6Ñ7Ô7�FØ�c (™mœmÑ+�FØ"$§(¢(¨9¸J (Ñ"GÔ"G�KØ'�EÝ #Ô 5Ñ 7Ô 7�IØ#×/Ò/µ°D±	´	¸6ÑBÔB�CØ!Ÿ}š}¨S¸˜}Ñ>Ô>�HØ œfÔ2×=Ò=¸hØDIØFMð >ñ Pô P�Gð  ¥# g¡,¤,Ñ.Ð.ð!/ð$ >G¸Y¸YÈÈÈÐNÐNõ Ð0Ð1Ñ2Ô2�Ø  4§9¢9¨S¡>¤>Ñ1°CÑ7¸#Ñ=Ð=øÝð 	?ð 	?ð 	?Ø:¸QÑ>Ð>Ð>Ð>Ð>Ð>Ð>øøøøð	?øøøs6   ‚	 ‰—œM4O ÎO Î-O Ï
O!ÏOÏO!ÏO!N©Ú__name__Ú
__module__Ú__qualname__r   ru   r   r   r   r   r      s7   € € € € € ðð ð ðk?ð k?ð k?ð k?ð k?r   r   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNumbaComplexPrinterc                 ó   — || _         d S r   r   r	   s     r   r   zNumbaComplexPrinter.__init__�   r   r   c                 ó>   — | j         d         ›d| j         d         ›d�S )NÚrealú+ÚimagÚjr   )r
   s    r   ru   zNumbaComplexPrinter.to_string„   s'   € Øœ8 FÔ+Ð+Ð+¨T¬X°fÔ-=Ð-=Ð-=Ð>Ð>r   Nrv   r   r   r   r{   r{      s2   € € € € € ðð ð ð?ð ?ð ?ð ?ð ?r   r{   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNumbaTuplePrinterc                 ó   — || _         d S r   r   r	   s     r   r   zNumbaTuplePrinter.__init__Š   r   r   c                 óà   — g }| j         j                             ¦   «         }|D ]4}|                     t	          | j         |j                 ¦  «        ¦  «         Œ5dd                     |¦  «        z  S )Nú(%s)r:   )r   r-   r.   rG   r>   rh   rR   )r
   rs   r.   rf   s       r   ru   zNumbaTuplePrinter.to_string�   sf   € ØˆØ””×%Ò%Ñ'Ô'ˆØð 	.ð 	.ˆAØ�JŠJ•s˜4œ8 A¤FÔ+Ñ,Ô,Ñ-Ô-Ð-Ð-Ø˜Ÿ	š	 #™œÑ&Ð&r   Nrv   r   r   r   rƒ   rƒ   ˆ   s2   € € € € € ðð ð ð'ð 'ð 'ð 'ð 'r   rƒ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNumbaUniTuplePrinterc                 ó   — || _         d S r   r   r	   s     r   r   zNumbaUniTuplePrinter.__init__—   r   r   c                 ó<  — | j         j                             ¦   «         }|d         j                             ¦   «         \  }}g }t          ||dz   ¦  «        D ]/}|                     t          | j         |         ¦  «        ¦  «         Œ0dd                     |¦  «        z  S )Nr   r#   r†   r:   )r   r-   r.   r/   rG   r>   rR   )r
   r.   r1   r2   rs   Úis         r   ru   zNumbaUniTuplePrinter.to_stringš   sŒ   € à””×%Ò%Ñ'Ô'ˆØ˜””×%Ò%Ñ'Ô'‰ˆˆBØˆÝ�r˜2 ™6Ñ"Ô"ð 	)ð 	)ˆAØ�JŠJ•s˜4œ8 Aœ;Ñ'Ô'Ñ(Ô(Ð(Ð(Ø˜Ÿ	š	 #™œÑ&Ð&r   Nrv   r   r   r   rˆ   rˆ   •   s2   € € € € € ðð ð ð'ð 'ð 'ð 'ð 'r   rˆ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚNumbaUnicodeTypePrinterc                 ó   — || _         d S r   r   r	   s     r   r   z NumbaUnicodeTypePrinter.__init__¦   r   r   c                 ó”  — d}| j         d         }| j         d         }| j         d         }||k    r†t          j        ¦   «         }|                     t	          |¦  «        ||z  ¦  «        }t          |t          ¦  «        r"t          |¦  «                             ¦   «         }n%|                     d¦  «        }nt          |¦  «        }d|z  S )Nr   r   ÚlengthÚkindzutf-8z'%s')
r   rJ   rK   rL   r+   Ú
isinstanceÚ
memoryviewÚbytesÚdecoder>   )r
   rV   r   Únitemsr‘   ro   rp   rs   s           r   ru   z!NumbaUnicodeTypePrinter.to_string©   s´   € ØˆØŒx˜ÔˆØ”˜(Ô#ˆØŒx˜ÔˆØ�4Š<ˆ<åÔ-Ñ/Ô/ˆIØ×'Ò'­¨D©	¬	°6¸D±=ÑAÔAˆCÝ˜#�zÑ*Ô*ð *Ý˜C‘j”j×'Ò'Ñ)Ô)��à—j’j Ñ)Ô)��å�d‘)”)ˆCØ˜‰|Ðr   Nrv   r   r   r   r�   r�   ¤   s2   € € € € € ðð ð ðð ð ð ð r   r�   c                  ó”  — t           j                             d¦  «        } |                      ddt          ¦  «         |                      ddt          ¦  «         |                      ddt
          ¦  «         |                      dd	t          ¦  «         |                      d
dt          ¦  «         |                      ddt          ¦  «         | S )NÚNumbazNumba unaligned array printerz^unaligned array\(zNumba array printerz^array\(zNumba complex printerz^complex[0-9]+\ zNumba Tuple printerz^Tuple\(zNumba UniTuple printerz^UniTuple\(zNumba unicode_type printerz^unicode_type\s+\()	rJ   ÚprintingÚRegexpCollectionPrettyPrinterÚadd_printerr   r{   rƒ   rˆ   r�   )Úprinters    r   Ú_create_printersr�   »   sÙ   € ÝŒl×8Ò8¸ÑAÔA€GØ×ÒÐ7Ð9NÝ)ñ+ô +ð +à×ÒÐ-¨{Õ<MÑNÔNÐNØ×ÒÐ/Ð1DÝ+ñ-ô -ð -à×ÒÐ-¨{Ý)ñ+ô +ð +à×ÒÐ0°.Ý,ñ.ô .ð .à×ÒÐ4Ð6LÝ/ñ1ô 1ð 1à€Nr   )Ú__doc__r@   Úgdb.printingrJ   r=   r   r{   rƒ   rˆ   r�   r�   r™   Úregister_pretty_printerÚcurrent_objfiler   r   r   ú<module>r¢      sv  ððð à 	€	€	€	ð>ØÐÐÐØ€J€J€J€JøØð >ð >ð >Ø
ˆ+Ð<Ñ
=Ô
=Ð=ð>øøøðp?ð p?ð p?ð p?ð p?ñ p?ô p?ð p?ðf?ð ?ð ?ð ?ð ?ñ ?ô ?ð ?ð
'ð 
'ð 
'ð 
'ð 
'ñ 
'ô 
'ð 
'ð'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ðð ð ð ð ñ ô ð ð.ð ð ð" „× $Ò $Ð%8 SÔ%8Ñ%:Ô%:Ð<LÐ<LÑ<NÔ<NÑ OÔ OÐ OÐ OÐ Os   ˆ ‘"