
    -i                     p    d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ  G d de          Z	ddZ
d ZdS )	    Nwraps)TreeBasedIndexc                   6     e Zd Z fdZd Zd Zd Zd Z xZS )DebugTreeBasedIndexc                 H     t          t          |           j        |i | d S N)superr   __init__)selfargskwargs	__class__s      V/var/www/html/speakWrite/venv/lib/python3.11/site-packages/codernitydb3/debug_stuff.pyr   zDebugTreeBasedIndex.__init__   s,    1!4((14B6BBBBB    c                 |   t          d           t          | j                   | j        dk    r+t          d           |                     | j                   d S t          d           |                     | j                   |                     | j                  \  }}g }t          |          D ]6}|                     | j        |          \  }}}|                    |           7|                    |           t          d|           |dk    r| 	                    |d           g }|D ]p}	|                     |	          \  }}t          |          D ]1}|                     |	|          \  }}}|                    |           2|                    |           q|}|dk    | 	                    |d           d S )Nz-----CURRENT TREE-----lz
---ROOT---z
ROOT NODESn)
print	root_flag_print_leaf_data
data_start_print_node_data+_read_node_nr_of_elements_and_children_flagrange_read_single_node_keyappend_print_level)
r   nr_of_elchildren_flagnodesindex	l_pointerkey	r_pointer	new_nodesnodes
             r   
print_treezDebugTreeBasedIndex.print_tree!   s   &'''dn>S  ,!!$/222Fldo..."&"R"RO# #-8__ 	$ 	$E(,(B(B)( )(%IsILL####YlE"""s""eS)))I , ,DDTJJ (-"8__ 0 0E040J0Je1% 1%-IsI$$Y////  ++++E s"" 	%%%%%%r   c                     t          d           |dk    r|D ]}|                     |           d S |dk    r|D ]}|                     |           d S d S )Nz---NEXT LVL---r   r   )r   r   r   )r   r!   flagr'   s       r   r   z DebugTreeBasedIndex._print_levelB   s    3;; , ,%%d++++, ,S[[ , ,%%d++++ [, ,r   c                 b   t          d|           |                     |          }| j                            |           | j                            | j        || j        z  z             }t          j        d| j	        z   || j
        z  z   |          }t          |           t                       d S )Nzprinting data of leaf at<)r   _read_leaf_nr_of_elementsbucketsseekreadleaf_heading_sizesingle_leaf_record_sizestructunpackleaf_heading_formatsingle_leaf_record_format)r   leaf_start_positionnr_of_elementsdataleafs        r   r   z$DebugTreeBasedIndex._print_leaf_dataK   s    (*=>>>778KLL-...|  !7!/$2N!N"O P P}$**T;;<=AC C 	dr   c                    t          d|           |                     |          d         }| j                            |           | j                            | j        | j        z   || j        | j        z   z  z             }t          j	        d| j
        z   | j        z   || j        | j        z   z  z   |          }t          |           t                       d S )Nzprinting data of node atr   r,   )r   r   r.   r/   r0   node_heading_sizepointer_sizekey_sizer3   r4   node_heading_formatpointer_format
key_format)r   node_start_positionr8   r9   r'   s        r   r   z$DebugTreeBasedIndex._print_node_dataW   s    (*=>>>II! !!"$-...|  !7$:K!K!/"&-$2C"C"E"E F F }$**T-@@do0CCDEFJL L 	dr   )	__name__
__module____qualname__r   r(   r   r   r   __classcell__)r   s   @r   r   r      sz        C C C C C& & &B, , ,
 
 
      r   r   c                 z  	
 |s| j         }t          j                             |          }t          j                             |d                   }d                    |d         dg          }t          j                             t          j                             |d                   d         |          }t	          |d          
g 		fd	
fd}t          j        | t
          j                  D ]4\  }}|                    d          st          | | ||                     5t          | d	
           d S )
Nr   _   zoperation_logger.logwbc                     t          t                              D ]%}|          | k    r                    |            &d S r	   )r   lenpop)namei__stacks     r   remove_from_stackz0database_step_by_step.<locals>.remove_from_stackv   sM    s7||$$ 	  	 Ar{d""QB	  	 r   c                 D     t                      fd            }|S )Nc                  X   
j         }|dk    r| d         j         }|f| dd          z   }n"|dv r| d         j        }|f| dd          z   }n| }|                                }d }	                    |           |dk    r	  
| i |}t	          j        ||||f          }nJ#  t	          j        |||d f          }                    d|z                                               xY w                    d|z                                              n|dk    r7	D ]4}d|v sd	|v r*|                    d
          s |            
| i |c S 5t	          j        |||f          }                    d|z                                               
| i |} |           |S )Ncountr   rI   )reindex_indexcompact_indexinserts   %s
getdeleteupdatetest)	rC   rN   copyr   pickledumpswriteflush
startswith)r   r   
funct_namerN   	meth_argskwargs_copyrespackedcurrrP   ff_objrQ   s            r   __innerz8database_step_by_step.<locals>.__dumper.<locals>.__inner|   s'   JW$$Aw'!HtABBx/		AAAAw|!HtABBx/		 	 ++--KCNN:&&&X%%C!T,V,,C $\#YSAC CFF#\#YTBD DF KK& 0111KKMMM Gf,---&& ' 6 6$,,#'1( 1(151H1H1(--j999#$1d#5f#5#5555z9k&JKKGf,---a(((j)))Js   ?B   AC'r   )rh   rj   rP   ri   rQ   s   ` r   __dumperz'database_step_by_step.<locals>.__dumper{   sD    	q+	 +	 +	 +	 +	 +	 +	 
+	Z r   )	predicateoperation_logger)
pathossplitjoinopeninspect
getmembersismethodra   setattr)db_objrn   pp1p2p3rk   	meth_namemeth_frP   ri   rQ   s            @@@r   database_step_by_stepr~   i   sU    9KW]]1W]]2a5!!XXr!u4566w||BGMM"Q%003R88tEG         
/ / / / / / /b %/:A:JL L L 9 9	6##C(( 	9FIxx'7'7888F&.....r   c                    t          |d          5 }|D ]}t          j        |d d                   }|d         dk    r3t          | |d         d                   }|g|d         dd          z   |d<   |d         }|dk    r*	 |d         d                             d           nJ#  Y nFxY w|dv r?|                     d	|d         d         d
                   }|d         |d         d         d<   t          | |d         d           }|st          d|d         z             ||d         i |d           	 d d d            d S # 1 swxY w Y   d S )Nrbr   rT   rI   rW   _rev)rY   rZ   id_idzMethod = `%s` not found   )rr   r]   loadsgetattrrM   rX   	Exception)	rw   rn   ri   currentlineobjrN   elmeths	            r   database_from_stepsr      s   	dD		 &U 	& 	&G<--DAw'!!fd1gaj11%$q'!""+-Q7DxGAJNN6****D---ZZd1gaj&788%'ZQ
6"647D11D E 9DG CDDDD$q'%T!W%%%%'	&& & & & & & & & & & & & & & & & & &s+   A/E!B#"E#B'%BEE	Er	   )r3   ro   jsonrs   r]   	functoolsr   codernitydb3.tree_indexr   r   r~   r    r   r   <module>r      s   &  				          2 2 2 2 2 2F F F F F. F F FXH/ H/ H/ H/V& & & & &r   