
    ji                     ~    d dl mZ d dlmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ erd dlmZ  G d	 d
e          ZdS )    )annotations)TYPE_CHECKINGLiteral   )
isStrSpace)	StateBase)Token)EnvType)
MarkdownItc                  v    e Zd Zd*dZd+dZd,dZd-dZd.dZd/dZd0dZ	d1dZ
d2d Zd3d!Zd4d"Zd5d'Zd-d(Zd)S )6
StateBlocksrcstrmdr   envr
   tokenslist[Token]returnNonec                   || _         || _        || _        || _        g | _        g | _        g | _        g | _        g | _        d| _	        d| _
        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d}dx}x}x}}	t%          | j                   }
t'          | j                   D ]\  }}|s.t)          |          r|dz  }|dk    r|	d|	dz  z
  z  }	n|	dz  }	3d	}|d
k    s	||
dz
  k    r|d
k    r|dz  }| j                            |           | j                            |           | j                            |           | j                            |	           | j                            d           d}d}d}	|dz   }| j                            |
           | j                            |
           | j                            d           | j                            d           | j                            d           t%          | j                  dz
  | _        d| j        d         j                                        v | _        d S )Nr   Froot    	   T
codeblock)r   r   r   r   bMarkseMarkstShiftsCountbsCount	blkIndentlinelineMaxtightddIndent
listIndent
parentTypelevelresultlen	enumerater   appendrulerget_active_rules_code_enabled)selfr   r   r   r   indent_foundstartposindentoffsetlength	characters               s/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/markdown_it/rules_block/state_block.py__init__zStateBlock.__init__   s      !#!#!#!# #% 	
 !
  ())))fvTX'11 	  	 NC 
(i(( 	(aKF D((!fqj.0!#'LD  C6A:$5$5$$1HC""5)))""3'''""6***""6***##A&&&$a 	6"""6"""11A4;''!+ $tww'7'='N'N'P'PP    c           	     j    | j         j         d| j         d| j         dt	          | j                   dS )Nz(line=z,level=z,tokens=))	__class____name__r&   r,   r.   r   )r4   s    r<   __repr__zStateBlock.__repr__q   s\    ~& O OYO O'+zO O;>t{;K;KO O O	
r>   ttypetagnestingLiteral[-1, 0, 1]r	   c                    t          |||          }d|_        |dk     r| xj        dz  c_        | j        |_        |dk    r| xj        dz  c_        | j                            |           |S )zPush new token to "stream".Tr   r   )r	   r   r,   r   r0   )r4   rD   rE   rF   tokens        r<   pushzStateBlock.pushw   sn    eS'**Q;;JJ!OJJjQ;;JJ!OJJ5!!!r>   r&   intboolc                V    | j         |         | j        |         z   | j        |         k    S ).)r    r"   r!   r4   r&   s     r<   isEmptyzStateBlock.isEmpty   s'    D!DK$55$+d:KKKr>   from_posc                    || j         k     rM	 | j        |         | j        |         z   | j        |         k     rn!n# t          $ r Y nw xY w|dz  }|| j         k     M|S )rN   r   )r'   r    r"   r!   
IndexError)r4   rQ   s     r<   skipEmptyLineszStateBlock.skipEmptyLines   s    %%K)DK,AAT[F       MH %% s   *9 
AAr7   c                r    	 	 | j         |         }n# t          $ r Y nw xY wt          |          sn|dz  }5|S )z Skip spaces from given position.Tr   )r   rS   r   )r4   r7   currents      r<   
skipSpaceszStateBlock.skipSpaces   sa    	(3-   g&& 1HC	 
    
minimumc                v    ||k    r|S ||k    r*|dz  }t          | j        |                   s|dz   S ||k    *|S )z+Skip spaces from given position in reverse.r   )r   r   )r4   r7   rY   s      r<   skipSpacesBackzStateBlock.skipSpacesBack   sS    '>>JGmm1HCdhsm,, Qw Gmm 
r>   r   c                `    	 	 | j         |         }n# t          $ r Y nw xY w||k    rn|dz  },|S )z(Skip character code from given position.Tr   )srcCharCoderS   )r4   r7   r   rV   s       r<   	skipCharszStateBlock.skipChars   s\    	*3/   $1HC	 
rX   chc                `    	 	 | j         |         }n# t          $ r Y nw xY w||k    rn|dz  },|S )z*Skip character string from given position.Tr   )r   rS   )r4   r7   r_   rV   s       r<   skipCharsStrzStateBlock.skipCharsStr   sZ    	(3-   "}}1HC	 
rX   c                d    ||k    r|S ||k    r!|dz  }|| j         |         k    r|dz   S ||k    !|S )z4Skip character code reverse from given position - 1.r   )r]   )r4   r7   r   rY   s       r<   skipCharsBackzStateBlock.skipCharsBack   sP    '>>JGmm1HCt',,,Qw Gmm 
r>   c                d    ||k    r|S ||k    r!|dz  }|| j         |         k    r|dz   S ||k    !|S )z6Skip character string reverse from given position - 1.r   )r   )r4   r7   r_   rY   s       r<   skipCharsStrBackzStateBlock.skipCharsStrBack   sN    '>>JGmm1HCTXc]""Qw Gmm 
r>   beginendr8   
keepLastLFc                \   |}||k    rdS dg||z
  z  }d}||k     rd}| j         |         x}	}
|dz   |k     s|r| j        |         dz   n| j        |         }|
|k     rt||k     rn| j        |
         }t          |          r&|dk    r|d|| j        |         z   dz  z
  z  }n!|dz  }n|
|	z
  | j        |         k     r|dz  }nn|
dz  }
|
|k     r||k     n||k    rd||z
  z  | j        |
|         z   ||dz
  <   n| j        |
|         ||dz
  <   |dz  }|dz  }||k     d                    |          S )zCut lines range from source.r   r   r   r   r    )r    r!   r   r   r$   r"   join)r4   rf   rg   r8   rh   r&   queuei
lineIndent	lineStartfirstlastr_   s                r<   getLineszStateBlock.getLines   s   C<<2e$SjjJ $D 11I !8c>>Z> D!A%%[&  4<<j6&9&9Xe_b>> Tzz"a:T8J+Ja*O&OO

"a

Y&T):::!OJJ
 4<<j6&9&9 F"" !$zF': ;txd
?SSa!e#xd
3a!eAIDFA= Sjj@ wwu~~r>   c                B    | j         o| j        |         | j        z
  dk    S )zCheck if line is a code block,
        i.e. the code block rule is enabled and text is indented by more than 3 spaces.
        r   )r3   r#   r%   rO   s     r<   is_code_blockzStateBlock.is_code_block  s%     !Ot{4'84>'Ia&OOr>   N)
r   r   r   r   r   r
   r   r   r   r   )r   r   )rD   r   rE   r   rF   rG   r   r	   )r&   rK   r   rL   )rQ   rK   r   rK   )r7   rK   r   rK   )r7   rK   rY   rK   r   rK   )r7   rK   r   rK   r   rK   )r7   rK   r_   r   r   rK   )r7   rK   r   rK   rY   rK   r   rK   )r7   rK   r_   r   rY   rK   r   rK   )
rf   rK   rg   rK   r8   rK   rh   rL   r   r   )rB   
__module____qualname__r=   rC   rJ   rP   rT   rW   r[   r^   ra   rc   re   rr   rt    r>   r<   r   r      s,       `Q `Q `Q `QD
 
 
 

 
 
 
L L L L   
 
 
 
   
 
 
 

 
 
 
      ) ) ) )VP P P P P Pr>   r   N)
__future__r   typingr   r   common.utilsr   r1   r   rI   r	   utilsr
   markdown_it.mainr   r   rw   r>   r<   <module>r}      s    " " " " " " ) ) ) ) ) ) ) ) % % % % % %                   ,++++++wP wP wP wP wP wP wP wP wP wPr>   