Ë
    üÇ:j0  ã                   ó  — d Z ddlZ	 ddlZddlZ G d„ d«      Z G d„ d«      Z G d„ d	«      Z G d
„ d«      Z G d„ d«      Z	d„ Z
ej                  j                   ej                  «        e
«       «       y# e$ r	  ed«      ‚w xY w)z(gdb printing extension for Numba types.
é    Nz$GDB python support is not available.c                   ó   — e Zd Zd„ Zd„ Zy)ÚNumbaArrayPrinterc                 ó   — || _         y ©N©Úval©Úselfr   s     ús/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/numba/misc/gdb_print_extension.pyÚ__init__zNumbaArrayPrinter.__init__   ó	   € Øˆ�ó    c           
      ó\  — 	 dd l }d}	 d}| j                  d   }| j                  d   }| j                  d   }| j                  d   }d}t        | j                  j                  «      }	|�rdd|	v sd	|	v �r[|	j                  d
d«      j                  «       }	t        j                  d«      }
|
j                  |	«      j                  «       D �cg c]  }|j                  «       ‘Œ }}|\  }}}d}t        j                  ||«      }|j                  «       \  }}}|dk(  }|j                  d«      }g }|D ]š  }|j                  d«      }|d   }|dd  }t        |«      dkD  rt        d|z  «      ‚|d   }d|v rt        d|z  «      ‚|j                  d«      d   j                  d«      d   }j                  |«      }|j                  ||f«       Œœ |}nnt        j                  d«      }
|
j                  |	«      j                  «       D �cg c]  }|j                  «       ‘Œ }}|\  }}}d|v r|dd j                  dd«      }d„ } ||«      } ||«      }||k7  r÷|rìj!                  |D �cg c]  }t#        d|dz
  «      ‘Œ c}«      } |j!                  |«      }!|j%                  | |!z  «      }"|"t'        |«      z  }"|j                  ||¬«      }#|#}t)        j*                  «       }$|$j-                  t'        |«      |"«      }%|j/                  |%|¬«      }&|j0                  j2                  j5                  |&||¬«      }'dt        |'«      z   S d|›d |›d!�S t7        d"g«      }(d#d$j9                  |(«      z   d%z   d!z   S # t        $ r d}Y �Œxw xY wc c}w c c}w c c}w # t:        $ 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.*), (.*), (.*)\)\ \(.*z(Record\((.*\[.*\]);([0-9]+);(True|False)ÚTrueú,ú[é   zUnsupported sub-type: %sÚnestedarrayú;ú=zarray\((.*),(.*),(.*)\)\ \(.*z	unichr x éÿÿÿÿz<Uc           	      óä   — | j                   j                  «       }|d   j                   j                  «       \  }}t        t        ||dz   «      D �cg c]  }t	        | |   «      ‘Œ c}«      S c c}w )Nr   r   )ÚtypeÚfieldsÚrangeÚtupleÚint)Údwarrr!   ÚloÚhiÚxs        r   Údwarr2inttuplez3NumbaArrayPrinter.to_string.<locals>.dwarr2inttupleX   sZ   € àŸ™×*Ñ*Ó,�Ø ™Ÿ™×-Ñ-Ó/‘��BÜ´U¸2¸rÀA¹vÓ5FÖG°œc %¨¡(�mÒGÓHÐHùÒGs   ÁA-)Úalign)Údtype)r   r   ú
zarray([...], dtype=z, shape=ú)zNULL/Uninitializedzarray([ú, ú]z%array[Exception: Failed to parse. %s])ÚnumpyÚImportErrorr   Ústrr    ÚreplaceÚstripÚreÚcompileÚmatchÚgroupsÚsplitÚlenÚ	TypeErrorr+   ÚappendÚarrayÚmaxÚ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Úmatcherr(   Ú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_strr+   r)   r   r   Úshp_arrÚstrd_arrÚextentÚdtype_clazzÚ	this_procÚmemÚarr_dataÚnew_arrÚbufÚes*                                             r   Ú	to_stringzNumbaArrayPrinter.to_string   sÑ  € ð	ÛØˆJðd	?ØˆDð —8‘8˜FÑ#ˆDð —x‘x 
Ñ+ˆHð —8‘8˜GÑ$ˆDØ—x‘x 	Ñ*ˆHð ˆJô ˜Ÿ™Ÿ™Ó'ˆFÚ˜y¨FÑ2°hÀ&Ò6HØŸ™¨°RÓ8×>Ñ>Ó@�ÜŸ*™*Ð%MÓN�à/6¯}©}¸VÓ/D×/KÑ/KÓ/MÖN¨!˜AŸG™G�IÐN�ÐNØ19Ñ.�	˜8 YØB�ÜŸX™X d¨IÓ6�
à1;×1BÑ1BÓ1DÑ.�˜ Ø+¨vÑ5�
Ø"ŸL™L¨Ó-�	Ø!#�Ø"ò 9�AØ Ÿw™w s›|�HØ# A™;�DØ& q r˜l�GÜ˜7“| aÒ'Ü'Ð(BÀQÑ(FÓGÐGà")¨!¡*˜Ø(¨GÑ3Ü"+Ð,FÈÑ,JÓ"KÐKØ$+§M¡M°#Ó$6°qÑ$9×$?Ñ$?ÀÓ$DÀQÑ$G˜	Ø "§¡¨Ó 3˜Ø"×)Ñ)¨4°¨-Õ8ð9ð +‘	äŸ*™*Ð%EÓF�Ø/6¯}©}¸VÓ/D×/KÑ/KÓ/MÖN¨!˜AŸG™G�IÐN�ÐNØ19Ñ.�	˜8 Yà )Ñ+Ø )¨!¨B × 7Ñ 7¸ÀTÓ J�IòIñ # 4Ó(ˆEÙ$ XÓ.ˆGð �tŠ|Ùð !Ÿh™h¸uÖ'E¸!¬¨A¨q°1©u­Ò'EÓF�GØ!Ÿx™x¨Ó0�HØŸV™V G¨hÑ$6Ó7�FØœc (›mÑ+�FØ"$§(¡(¨9¸J (Ó"G�KØ'�EÜ #× 5Ñ 5Ó 7�IØ#×/Ñ/´°D³	¸6ÓB�CØ!Ÿ}™}¨S¸˜}Ó>�HØ Ÿf™f×2Ñ2×=Ñ=¸hØDIØFMð >ó P�Gð  ¤# g£,Ñ.Ð.ð! ò$ >GÊÐNÐNô Ð0Ð1Ó2�Ø  4§9¡9¨S£>Ñ1°CÑ7¸#Ñ=Ð=øôK ò 	Ø‹Jð	üòF Oùò4 Oùò, (Føô& ò 	?Ø:¸QÑ>Õ>ûð	?úsh   ‚M2 ‰CN Ã
NÃ!D$N ÈN	ÈA
N É&NÉ<CN ÍN Í%N Í2NÎ NÎN Î	N+ÎN&Î N+Î&N+N©Ú__name__Ú
__module__Ú__qualname__r   rk   © r   r   r   r      s   „ òók?r   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNumbaComplexPrinterc                 ó   — || _         y r   r   r	   s     r   r   zNumbaComplexPrinter.__init__�   r   r   c                 óF   — | j                   d   ›d| j                   d   ›d�S )NÚrealú+ÚimagÚjr   )r
   s    r   rk   zNumbaComplexPrinter.to_string„   s   € ØŸ8™8 FÓ+¨T¯X©X°fÓ-=Ð>Ð>r   Nrl   rp   r   r   rr   rr      s   „ òó?r   rr   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNumbaTuplePrinterc                 ó   — || _         y r   r   r	   s     r   r   zNumbaTuplePrinter.__init__Š   r   r   c                 óæ   — g }| j                   j                  j                  «       }|D ]3  }|j                  t	        | j                   |j
                     «      «       Œ5 ddj                  |«      z  S )Nú(%s)r.   )r   r    r!   r<   r2   r^   rH   )r
   ri   r!   r\   s       r   rk   zNumbaTuplePrinter.to_string�   s]   € ØˆØ—‘—‘×%Ñ%Ó'ˆØò 	.ˆAØ�J‰J”s˜4Ÿ8™8 A§F¡FÑ+Ó,Õ-ð	.à˜Ÿ	™	 #›Ñ&Ð&r   Nrl   rp   r   r   rz   rz   ˆ   s   „ òó'r   rz   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNumbaUniTuplePrinterc                 ó   — || _         y r   r   r	   s     r   r   zNumbaUniTuplePrinter.__init__—   r   r   c                 ó,  — | j                   j                  j                  «       }|d   j                  j                  «       \  }}g }t        ||dz   «      D ])  }|j	                  t        | j                   |   «      «       Œ+ ddj                  |«      z  S )Nr   r   r}   r.   )r   r    r!   r"   r<   r2   rH   )r
   r!   r&   r'   ri   Úis         r   rk   zNumbaUniTuplePrinter.to_stringš   s}   € à—‘—‘×%Ñ%Ó'ˆØ˜‘—‘×%Ñ%Ó'‰ˆˆBØˆÜ�r˜2 ™6Ó"ò 	)ˆAØ�J‰J”s˜4Ÿ8™8 A™;Ó'Õ(ð	)à˜Ÿ	™	 #›Ñ&Ð&r   Nrl   rp   r   r   r   r   •   s   „ òó'r   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNumbaUnicodeTypePrinterc                 ó   — || _         y r   r   r	   s     r   r   z NumbaUnicodeTypePrinter.__init__¦   r   r   c                 óv  — d}| j                   d   }| j                   d   }| j                   d   }||k7  rvt        j                  «       }|j                  t	        |«      ||z  «      }t        |t        «      rt        |«      j                  «       }d|z  S |j                  d«      }d|z  S t        |«      }d|z  S )Nr   r   ÚlengthÚkindzutf-8z'%s')
r   r@   rA   rB   r$   Ú
isinstanceÚ
memoryviewÚbytesÚdecoder2   )r
   rL   r   Únitemsrˆ   re   rf   ri   s           r   rk   z!NumbaUnicodeTypePrinter.to_string©   s¹   € ØˆØ�x‰x˜ÑˆØ—‘˜(Ñ#ˆØ�x‰x˜ÑˆØ�4Š<ä×-Ñ-Ó/ˆIØ×'Ñ'¬¨D«	°6¸D±=ÓAˆCÜ˜#œzÔ*Ü˜C“j×'Ñ'Ó)�ð
 ˜‰|Ðð —j‘j Ó)�ð ˜‰|Ðô �d“)ˆCØ˜‰|Ðr   Nrl   rp   r   r   r„   r„   ¤   s   „ òór   r„   c                  óX  — t         j                  j                  d«      } | j                  ddt        «       | j                  ddt        «       | j                  ddt
        «       | j                  dd	t        «       | j                  d
dt        «       | j                  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+\()	r@   ÚprintingÚRegexpCollectionPrettyPrinterÚadd_printerr   rr   rz   r   r„   )Úprinters    r   Ú_create_printersr”   »   s    € Ü�l‰l×8Ñ8¸ÓA€GØ×ÑÐ7Ð9NÜ)ô+à×ÑÐ-¨{Ô<MÔNØ×ÑÐ/Ð1DÜ+ô-à×ÑÐ-¨{Ü)ô+à×ÑÐ0°.Ü,ô.à×ÑÐ4Ð6LÜ/ô1à€Nr   )Ú__doc__r5   Úgdb.printingr@   r1   r   rr   rz   r   r„   r”   r�   Úregister_pretty_printerÚcurrent_objfilerp   r   r   ú<module>r™      s–   ðñã 	ð>ÛÛ÷
p?ñ p?÷f?ñ ?÷
'ñ 
'÷'ñ '÷ñ ò.ð" ‡�× $Ñ $Ð%8 S×%8Ñ%8Ó%:Ñ<LÓ<NÕ OøðI ò >Ù
Ð<Ó
=Ð=ð>ús   ˆA6 Á6B