
    ڏDjd                        d Z ddlZdedej                  f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y)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
    N	positionsfirstlinenoc                 Z    g }|}| D ]  }t        |||      } dj                  |      }	 |S )N )encode_single_positionjoin)r   r   table_byteslast_linenoposition_info	linetables         ]C:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\Cython/Compiler/LineTable.pybuild_line_tabler      sF    K)K" V,[-UV$I     r	   r   r
   returnc                 ~   |\  }}}}||k\  sJ | d|        ||z
  }||k(  rR|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      s     :G6L*lJ;&J<.[M(JJ$0;$>\!!lR&7A*|B[<a_a<a!+|ZH#'a'L3,>:PSCS#K1BLR\] +r*+0A56+zL89+|a/0+zA~.r   F)checkcodec                 D    | j                  t        d|dz  z               y)Nr   r   r   appendchr)r	   r#   s     r   r   r   @   s#    
 s3$!),-.r   r   r   c                 d    |dz  }|dz	  }| j                  d|dz  z  d|dz  ||z
  z  d       y)N   r   r   c   r   r&   )r	   r   r   low_bitsr#   s        r   r   r   I   sP     (!+H#q(D#+A.A*|B[/\]^._`ar   
line_deltac                 N    d|z   }| j                  d|dz  z  d|d|d       y)N
   r   r   r*   r   r,   )r	   r.   r   r   r#   s        r   r   r   S   s<     JD#+A.|A.>z!nMNr   valuec                     |dkD  s|dk(  sJ |dk\  r+| j                  t        d|dz  z               |dz  }|dk\  r+| j                  t        |             y)Nr   @   ?      r%   )r	   r1   s     r   r   r   j   s`     19
"
2+3rURZ012! 2+ s5z"r   )__doc__cythonlistintr   cfunctupler   	exceptvalr   r   r   uintr    r   r   <module>r?      s    6:: (  U QWQ[Q[ `f`j`j  @ "E"t 6:: &**   # "E"t 6:: SYS]S] bhblbl   # "E" 6:: U[U_U_ msmwmw   }C  }G  }G   # "E"t FKK FJJ   #r   