
    Mh                     <   d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZ ej        dk    rd dlmZ nd dlmZ  e j        d          Z G d d          Z G d d	          Z ed
ee          Z G d dee                   Z G d de          ZdS )    N)AnyCallableClassVarDictGenericIterableListMatchMutableMappingOptionalPatternTypeTypeVarUnioncast)      )Selfz\n|$c                   `   e Zd ZU dZeed<   eeeef                  ed<   e	ed<   e	ed<   e
ed<   eed<   eeef         ed<   ddee         d
d	fdZded
d fdZded
d	fdZd
e	fdZde	d
efdZd
efdZdeeef         d
d	fdZdeeef         d
d	fdZded
d	fdZd
ee	         fdZd
e	fdZd	S )
BlockStatez3The state to save block parser's cursor and tokens.srctokenscursor
cursor_max
list_tightparentenvNreturnc                     d| _         g | _        d| _        d| _        d| _        || _        |r|j        | _        d S di i| _        d S )N r   T	ref_links)r   r   r   r   r   r   r   )selfr   s     L/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mistune/core.py__init__zBlockState.__init__(   sW        	)zDHHH#R(DHHH    c                 Z    |                      |           }|                    |           |S N)	__class__process)r"   r   childs      r#   child_statezBlockState.child_state:   s*    t$$cr%   c                 <    || _         t          |          | _        d S r'   )r   lenr   )r"   r   s     r#   r)   zBlockState.process?   s    c((r%   c                 |    t                               | j        | j                  }|J |                                S r'   )	_LINE_ENDsearchr   r   end)r"   ms     r#   find_line_endzBlockState.find_line_endC   s1    TXt{33}}}uuwwr%   end_posc                 *    | j         | j        |         S r'   )r   r   )r"   r4   s     r#   get_textzBlockState.get_textH   s    xg-..r%   c                 .    | j         r| j         d         S d S )N)r   r"   s    r#   
last_tokenzBlockState.last_tokenK   s"    ; 	#;r?"	# 	#r%   tokenc                 f    | j                             t          | j                   dz
  |           dS z#Insert token before the last token.   Nr   insertr-   r"   r;   s     r#   prepend_tokenzBlockState.prepend_tokenO   /    3t{++a/77777r%   c                 :    | j                             |           dS z#Add token to the end of token list.Nr   appendrA   s     r#   append_tokenzBlockState.append_tokenS       5!!!!!r%   textc                     |                                  }|r|d         dk    r|dxx         |z  cc<   d S | j                            d|d           d S )Ntype	paragraphrJ   )rL   rJ   )r:   r   rG   )r"   rJ   r:   s      r#   add_paragraphzBlockState.add_paragraphW   so    __&&
 	D*V,;;v$&KTBBCCCCCr%   c                     |                                  }|rE|d         dk    r9|                                 }|dxx         |                     |          z  cc<   |S d S )NrL   rM   rJ   )r:   r3   r6   )r"   r:   poss      r#   append_paragraphzBlockState.append_paragraph^   sk    __&&
 	*V,;;$$&&Cv$--"4"44Jtr%   c                 8    d}| j         }|r|dz  }|j         }||S )Nr   r>   )r   )r"   dr   s      r#   depthzBlockState.depthf   s7     	#FA]F  	# r%   r'   )__name__
__module____qualname____doc__str__annotations__r	   r   r   intboolr   r   r$   r+   r)   r3   r6   r:   rB   rH   rN   rQ   rT    r%   r#   r   r      s        ==	HHHc3h    KKKOOOKKK	S	!!!!) )x} ) ) ) ) )$s |    
#3 #4 # # # #s    
/ / / / / /#C # # # #84S> 8d 8 8 8 8"$sCx. "T " " " "D# D$ D D D D(3-    s      r%   r   c                   v    e Zd ZdZdeeef         fdZdeeef         ddfdZ	deeef         ddfdZ
d
d	ZdS )InlineStatez)The state to save inline parser's tokens.r   c                 h    || _         d| _        g | _        d| _        d| _        d| _        d| _        d S )Nr    F)r   r   r   in_imagein_linkin_emphasis	in_strong)r"   r   s     r#   r$   zInlineState.__init__r   s8    ,. r%   r;   r   Nc                 f    | j                             t          | j                   dz
  |           dS r=   r?   rA   s     r#   rB   zInlineState.prepend_token{   rC   r%   c                 :    | j                             |           dS rE   rF   rA   s     r#   rH   zInlineState.append_token   rI   r%   c                     |                      | j                  }| j        |_        | j        |_        | j        |_        | j        |_        |S )zCreate a copy of current state.)r(   r   ra   rb   rc   rd   )r"   states     r#   copyzInlineState.copy   s@    tx(( ,.r%   )r   r_   )rU   rV   rW   rX   r   rY   r   r$   r   rB   rH   ri   r]   r%   r#   r_   r_   o   s        33N384    84S> 8d 8 8 8 8"$sCx. "T " " " "     r%   r_   STc                      e Zd ZU ej        Zded<   ee         ed<   i Z	e
eeef                  ed<   g Ze
ee                  ed<   ddZdd	eee                  dee         fd
Z	 ddedeedf         deeee         egee         f         dee         ddf
dZdedededdfdZedd	ee         dedee         ddfd            Zdee         dedee         fdZdS )Parserzre._FlagsTypesc_flag	state_clsSPECIFICATIONDEFAULT_RULESr   Nc                     | j                                         | _        t          | j                  | _        i | _        i | _        d S r'   )ro   ri   specificationlistrp   rules_methods_Parser__scr9   s    r#   r$   zParser.__init__   sD    !/4466$,--
  	
 .0			r%   rt   c                     |
d} j         }nd                    |          } j                            |          }|r|S d                     fd|D                       }t	          j        | j                  }| j        |<   |S )N$|c              3   @   K   | ]}d |dj         |         dV  dS )z(?P<>)N)rr   ).0kr"   s     r#   	<genexpr>z$Parser.compile_sc.<locals>.<genexpr>   s<      SS!!!T-?-B-B-BCSSSSSSr%   )rt   joinrv   getrecompilerm   )r"   rt   keyscregexs   `    r#   
compile_sczParser.compile_sc   s    =CJEE((5//CY]]3 	ISSSSUSSSSSZt|,,	#	r%   namepatternfuncbeforec                       fd j         |<   |r
| j        |<   | j        vr                      j        ||           dS dS )a3  Register a new rule to parse the token. This method is usually used to
        create a new plugin.

        :param name: name of the new grammar
        :param pattern: regex pattern in string
        :param func: the parsing function
        :param before: insert this rule before a built-in rule
        c                      | |          S r'   r]   )r2   rh   r   r"   s     r#   <lambda>z!Parser.register.<locals>.<lambda>   s    ttD!U/C/C r%   )r   N)ru   rr   rt   insert_rule)r"   r   r   r   r   s   `  ` r#   registerzParser.register   sl     DCCCCd 	/'.Dt$tz!!TZf===== "!r%   c                      t          d          )Nz.This plugin is not compatible with mistune v3.)DeprecationWarning)r"   r   r   r   s       r#   register_rulezParser.register_rule   s     !QRRRr%   c                     |rT	 |                      |          }|                     ||           d S # t          $ r |                     |           Y d S w xY w|                     |           d S r'   )indexr@   
ValueErrorrG   )rt   r   r   r   s       r#   r   zParser.insert_rule   s     	#F++UD))))) # # #T""""""# LLs   +1 AAr2   rh   c                 J    |j         }|sJ | j        |         } |||          S r'   )	lastgroupru   )r"   r2   rh   r   r   s        r#   parse_methodzParser.parse_method   s1    K	}Y'tAu~~r%   r   Nr'   )rU   rV   rW   r   Mrm   rZ   r   rj   ro   r   r   rY   rp   r   r$   r   r	   r   r   r   r   r   r
   r[   r   r   r   staticmethodr   r   r]   r%   r#   rl   rl      s        !tG_###Bx.0M8DcN+000-/M8HSM*///0 0 0 0 c 3 ws|    * !%> >> sDy!> eCj"-x}<=	>
 > 
> > > >*S# S S3 S4 S S S S  49 C # RV    \eCj        r%   rl   c                   6   e Zd ZU dZee         ed<   ddZdededef         ddfd	Z	dededef         fd
Z
deeef         dedefdZdeeeef                  dedee         fdZdeeeef                  dedefdZdeeeef                  dedefdZdS )BaseRendererbaseNAMEr   Nc                     i | _         d S r'   _BaseRenderer__methodsr9   s    r#   r$   zBaseRenderer.__init__   s    8:r%   r   method.c                 &      fd j         |<   dS )zRegister a render method for the named token. For example::

        def render_wiki(renderer, key, title):
            return f'<a href="/wiki/{key}">{title}</a>'

        renderer.register('wiki', render_wiki)
        c                       g| R i |S r'   r]   )argkwargsr   r"   s     r#   r   z'BaseRenderer.register.<locals>.<lambda>   s!    ffT6RC6R6R6R66R6R r%   Nr   r"   r   r   s   ` `r#   r   zBaseRenderer.register   s%      SRRRRtr%   c                    	 t          t          dt          f         t                              | |                    S # t
          $ rC | j                            |          }|s"t          d                    |                    |cY S w xY w)N.zNo renderer "{!r}")	r   r   rY   object__getattribute__AttributeErrorr   r   formatr   s      r#   _get_methodzBaseRenderer._get_method   s    	c*F,C,CD$,O,OPPP 	 	 	^''--F H$%9%@%@%F%FGGGMMM		s   := A
B
	B
r;   rh   c                 P    |                      |d                   } |||          S )NrL   )r   )r"   r;   rh   r   s       r#   render_tokenzBaseRenderer.render_token   s+    f..tE5!!!r%   r   c              #   D   K   |D ]}|                      ||          V  d S r'   )r   )r"   r   rh   toks       r#   iter_tokenszBaseRenderer.iter_tokens   s>       	0 	0C##C//////	0 	0r%   c                 T    d                     |                     ||                    S )Nr    )r   r   r"   r   rh   s      r#   render_tokenszBaseRenderer.render_tokens   s$    wwt''66777r%   c                 .    |                      ||          S r'   )r   r   s      r#   __call__zBaseRenderer.__call__   s    !!&%000r%   r   )rU   rV   rW   r   r   rY   rZ   r$   r   r   r   r   r   r   r   r   r   r   r   r]   r%   r#   r   r      s}         D(3-   ; ; ; ;	SS 	S(38*< 	S 	S 	S 	S 	S c(:    "$sCx. " " " " " "0(4S>": 0: 0RZ[^R_ 0 0 0 08HT#s(^$< 8Z 8TW 8 8 8 81xS#X7 1
 1s 1 1 1 1 1 1r%   r   )r   systypingr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   version_infor   typing_extensionsr   r/   r   r_   rj   rl   r   r   r]   r%   r#   <module>r      s   				 



                                 $ w&&&&&&BJw	O O O O O O O Od       < WT;
++H H H H HWR[ H H HV&1 &1 &1 &1 &16 &1 &1 &1 &1 &1r%   