
    	^c                     b   d dl mZ ddl mZ g Z e            Z G d d          Zd4dZ ed	d
          d             Z	 edd
d          d             Z
 edd
          d             Z ede          d             Z edd
d          d             Z ede          d             Z edd
d          d             Z ede          d             Z eddd          d             Z ed d
d          d!             Z ed"d d          d#             Z ed$d%d          d&             Z ed'dd          d(             Z ed)d*d          d+             Z ed,d-d          d.             Z ed/dd          d0             Z ed1d*d          d2             Zd3 ZdS )5   )node   )	constantsc                        e Zd ZdZddZd ZdS )_column_basezconstains the definition of a revlog column

    name:         the column header,
    value_func:   the function called to get a value,
    size:         the width of the column,
    verbose_only: only include the column in verbose mode.
    NFc                     || _         || _        |t          ur!|d}t          t	          |          |          }|| _        || _        d S )N   )name
value_func	NODE_SIZEmaxlen_sizeverbose_only)selfr
   r   sizeverboses        =/usr/lib/python3/dist-packages/mercurial/revlogutils/debug.py__init__z_column_base.__init__   sO    	$y  |s4yy$''D
#    c                 0    | j         t          u r|S | j         S N)r   r   )r   	node_sizes     r   get_sizez_column_base.get_size)   s    :"":r   NF)__name__
__module____qualname____doc__r   r    r   r   r   r      sA         $ $ $ $    r   r   NFc                       fd}|S )zdecorated function is registered as a column

    name: the name of the column,
    size: the expected size of the column.
    c                 b    t          |           }t                              |           |S )N)r
   r   r   r   )r   INDEX_ENTRY_DEBUG_COLUMNappend)funcentryr
   r   r   s     r   registerzdebug_column.<locals>.register7   s>    	
 
 
 	!''...r   r    )r
   r   r   r'   s   ``` r   debug_columnr(   0   s/           Or   s   rev   )r   c                     d|z  S N   %dr    indexrevr&   hexfns       r   _revr1   D   s    3;r   s   rankT)r   r   c                 ,    d|t           j                 z  S r+   )r   
ENTRY_RANKr-   s       r   rankr4   I   s    5-...r   s   linkrevc                 ,    d|t           j                 z  S r+   )r   ENTRY_LINK_REVr-   s       r   _linkrevr7   N       51222r   s   nodeidc                 8     ||t           j                           S r   )r   ENTRY_NODE_IDr-   s       r   _nodeidr;   S   s    5y./000r   s   p1-revc                 ,    d|t           j                 z  S r+   )r   ENTRY_PARENT_1r-   s       r   _p1_revr>   X   r8   r   s	   p1-nodeidc                 l    |t           j                 }| |         } ||t           j                           S r   )r   r=   r:   r.   r/   r&   r0   parentp_entrys         r   _p1_noderC   ]   0    9+,FFmG501222r   s   p2-revc                 ,    d|t           j                 z  S r+   )r   ENTRY_PARENT_2r-   s       r   _p2_revrG   d   r8   r   s	   p2-nodeidc                 l    |t           j                 }| |         } ||t           j                           S r   )r   rF   r:   r@   s         r   _p2_noderI   i   rD   r   s	   full-size   c                 ,    d|t           j                 z  S r+   )r   ENTRY_DATA_UNCOMPRESSED_LENGTHr-   s       r   	full_sizerM   p   s    5ABBBr   s
   delta-basec                 ,    d|t           j                 z  S r+   )r   ENTRY_DELTA_BASEr-   s       r   
delta_baserP   u   s    53444r   s   flagsc                 :    |t           j                 }|dz  }d|z  S )Ni  r,   r   ENTRY_DATA_OFFSETr.   r/   r&   r0   fields        r   flagsrV   z   s"    )-.E	VOE5=r   s	   comp-mode   c                 ,    d|t           j                 z  S r+   )r   ENTRY_DATA_COMPRESSION_MODEr-   s       r   compression_moderZ      s    5>???r   s   data-offsetc                 :    |t           j                 }|dz  }d|z  S )N   r,   rR   rT   s        r   data_offsetr]      s"    )-.E	bLE5=r   s
   chunk-size
   c                 ,    d|t           j                 z  S r+   )r   ENTRY_DATA_COMPRESSED_LENGTHr-   s       r   data_chunk_sizera      s    5?@@@r   s   sd-comp-mode   c                     |t           j                 }|t           j        k    rdS |t           j        k    rdS |t           j        k    rdS d|z  S )Ns   plains   defaults   inliner,   )r   ENTRY_SIDEDATA_COMPRESSION_MODECOMP_MODE_PLAINCOMP_MODE_DEFAULTCOMP_MODE_INLINE)r.   r/   r&   r0   compressions        r   sidedata_compression_moderi      sS    	ABKi///x		3	3	3z		2	2	2y{""r   s   sidedata-offsetc                 ,    d|t           j                 z  S r+   )r   ENTRY_SIDEDATA_OFFSETr-   s       r   sidedata_offsetrl      s    58999r   s   sd-chunk-sizec                 ,    d|t           j                 z  S r+   )r    ENTRY_SIDEDATA_COMPRESSED_LENGTHr-   s       r   sidedata_chunk_sizero      s    5CDDDr   c                 ^   |rt           j        }nt           j        }d}|D ]-}t           ||                    |                              } |}g }	t
          D ]U}
|
j        r| j        s|
                    |          }|
j	        }|	
                    |                    |                     V|                    d                    |	          dz              |j        }|D ]}|                                 ||         }d}t
          D ]x}
|
j        r| j        s|s|                    d           d}|
                    |          }|
                    ||||          }d|z  }|                    |
j	        ||           y|                    d           |                                 dS )zdisplay index data for a revlog          
TFs   %%%dsN)nodemodhexshortr   r   r#   r   r   r   r
   r$   rjustplainjoinr.   	startitemr   writeend)uirepo	formatterrevlog	full_noder0   idlenifmheader_piecescolumnr   r
   r.   r/   r&   firstvaluedisplays                      r   debug_indexr      s     E  EE&++a..))**	BM* / / 	rz 	u%%{TZZ--....HHTYY}%%-...LE  
c
. 
	2 
	2F" 2:  E??5))D%%eS%??EoGHHV['51111
FFHHHHHr   r   ) r   rt   r   r#   objectr   r   r(   r1   r4   r7   r;   r>   rC   rG   rI   rM   rP   rV   rZ   r]   ra   ri   rl   ro   r   r    r   r   <module>r      s              FHH	       4   ( f1   gAt,,,/ / -,/ jq!!!3 3 "!3 ii(((1 1 )(1 ia...3 3 /.3 l+++3 3 ,+3 ia...3 3 /.3 l+++3 3 ,+3 lT222C C 32C m!T2225 5 325 hQ---  .- lD111@ @ 21@ n2t444  54 m"d333A A 43A oAt444	# 	# 54	#  r4888: : 98: R666E E 76E1 1 1 1 1r   