
    xKg0                        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     b/home/alanp/www/video.onchill/myenv/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   s`    **,--/BU2rAv5FG5Fc%(m5F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 88F#D xx
+H 88G$Dxx	*H J 'FyF2h&6HR8>>@**%MN/6}}V/D/K/K/MN/M!AGGI/MN19.	8YBXXdI6
1;1B1B1D.+v5
"LL-	!#"A wws|H#A;D&qrlG7|a''(BQ(FGG")!*(G3"+,F,J"KK$+MM#$6q$9$?$?$DQ$G	 " 3"))4-8 # +	**%EF/6}}V/D/K/K/MN/M!AGGI/MN19.	8Y)+ )!B 7 7T JII #4(E$X.G t| !hhu'Eu!Aq1uu'EFG!xx0HVVGh$67Fc(m+F"$((9J("GK'E # 5 5 7I#//D	6BC!}}S}>H ff22==hDIFM > PG  #g,..! $ >GNN 012 499S>1C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    88F+TXXf-=>>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   sX    %%'AJJs488AFF+,- 		#&&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   sx    %%'%%'Br26"AJJs488A;'( #		#&&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    xx(#xx4<--/I''D	6D=AC#z*Cj'')
 | jj) | 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    ll88AG79N)+-{<MN/1D+--{)+0.,.46L/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? ?
' 
'' ' ."  $ $%8S%8%8%:<L<N OI  >
<
==>s   A6 6B