
    -Ph                     R   d Z ddlZd Zej        dededej        dej        fd            Z ej        d	d
          ej        dedej        dej        fd                        Z	 ej        d	d
          ej        dedej        dej        dej        fd                        Z
 ej        d	d
          ej        dedej        dej        dej        dej        f
d                        Z	  ej        d	d
          ej        dedej        dej        fd                        ZdS )a%  
Build a line table for CodeObjects, according to PEP-626 / Python 3.11.

See  https://github.com/python/cpython/blob/1054a755a3016f95fcd24b3ad20e8ed9048b7939/InternalDocs/locations.md
See  https://github.com/python/cpython/blob/1054a755a3016f95fcd24b3ad20e8ed9048b7939/Python/assemble.c#L192
    Nc                 f    g }|}| D ]}t          |||          }d                    |          }	 |S )N )encode_single_positionjoin)	positionsfirstlinenotable_byteslast_linenoposition_info	linetables         Y/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/Cython/Compiler/LineTable.pybuild_line_tabler      sN    KK" V V,[-UU$$I     r	   r   r
   returnc                    |\  }}}}||k    sJ | d|             ||z
  }||k    rb|dk    r,|dk     r&d||z
  cxk    rdk     rn nt          | ||           |S d|cxk    rdk     r#n n |dk     r|dk     rt          | |||           |S t          | d           t          | |dz             t          | ||z
             t          | |dz              t          | |dz              |S )	Nz >= r   P                  )encode_location_shortencode_location_onelineencode_location_startencode_varint)r	   r   r
   start_lineno
end_linenostart_column
end_columnlast_lineno_deltas           r   r   r      sd    :G6L*lJ;&&&<(J(J[(J(J&&&$0;$>\!!!!lR&7&7A*|B[<a<a<a<a_a<a<a<a<a<a!+|ZHHH#''''a'''''L3,>,>:PSCSCS#K1BLR\]]] +r***+0A5666+zL8999+|a/000+zA~...r   F)checkcodec                 V    |                      t          d|dz  z                       dS )Nr   r   r   appendchr)r	   r#   s     r   r   r   @   s.    
 s3$!),--...1r   r   r   c                 n    |dz  }|dz	  }|                      d|dz  z  d|dz  ||z
  z  d           dS )N   r   r   c   r   r&   )r	   r   r   low_bitsr#   s        r   r   r   I   sY     (!+H#q(D#+``A*|B[/\```aaa1r   
line_deltac                 X    d|z   }|                      d|dz  z  d|d|d           dS )N
   r   r   r*   r   r,   )r	   r.   r   r   r#   s        r   r   r   S   sH     JD#+MM|MMzMMMNNN1r   valuec                     |dk    s|dk    sJ |dk    r3|                      t          d|dz  z                       |dz  }|dk    3|                      t          |                     dS )Nr   @   ?      r%   )r	   r1   s     r   r   r   j   s|     199




2++3rURZ011222! 2++ s5zz"""1r   )__doc__cythonr   cfunclisttupleintr   	exceptvalr   r   r   uintr    r   r   <module>r?      s      (  U QWQ[ `f`j    @ "E"""t 6: &*     #" "E"""t 6: SYS] bhbl     #" "E""" 6: U[U_ msmw   }C  }G     #" "E"""t FK FJ     #"  r   