
    Xh                        d Z ddlZddlmZmZmZmZmZmZm	Z	m
Z
 ddlmZmZmZ erddlmZ ddlmZ dZ ej(                  d	      Zd
dde
e   dddefdZdeeef   ddfdZd
ddede	eeef   deeef   dddee   dee	eeef      fdZdedefdZdededefdZdedede	eef   fdZdededefdZd eeeef      defd!Z y)"z8because list is complex, split list parser in a new file    N)TYPE_CHECKINGAnyDictIterableListOptionalTupleMatch   )expand_leading_tab
expand_tab	strip_end)BlockParser)
BlockStatezM^(?P<list_1> {0,3})(?P<list_2>[\*\+-]|\d{1,9}[.)])(?P<list_3>[ \t]*|[ \t].+)$z(\s*)\Sblockr   mstater   returnc                 F   |j                  d      }|j                         s|j                         }|r|S |j                  d      }t        |      dkD  }|j	                         }dg d|d   ||dd}|r/t        |d	d       }	|	dk7  r|j                         }|r|S |	|d
   d<   |j                         dz   |_        |j                  d      ||f}
|| j                  dz
  k\  r't        | j                        }|j                  d       n| j                  }t        |d         }|
rt        | ||
|||      }
|
r|j                  dd	      }t        |       |r/|j                  d      }|j                   j#                  ||       |S |j%                  |       |j                  S )z,Parse tokens for ordered and unordered list.list_3list_2r   listT)depthordered)typechildrentightbulletattrsNr    startlist_1_end_pos
_tok_index)groupstripappend_paragraphlenr   intendcursormax_nested_levelr   
list_rulesremove_get_list_bullet_parse_list_itempop_transform_tight_listtokensinsertappend_token)r   r   r   textend_posmarkerr   r   tokenr!   groupsrulesr   indexs                 G/var/www/html/myenv/lib/python3.12/site-packages/mistune/list_parser.py
parse_listr>      s   778D::< ((*NWWXF&kAoGKKME*
	E F3BK A: ,,.G&+E'N7#557Q;EL./ggh.?-NF&&**U%%&V  fRj)F
!%uM  ii
D)G% 		,'E5)	u<<    r9   c                 |    | d   r7| d   D ].  }|d   D ]$  }|d   dk(  rd|d<   |d   dk(  st        |       & 0 y y )Nr   r   r   	paragraph
block_textr   )r2   )r9   	list_itemtoks      r=   r2   r2   M   s_    W~z* 	/I , /v;+-".CK[F*)#.	/	/ r?   r   r:   r;   c           
      l   |\  }}}t        |      t        |      z   }	t        ||	      \  }}
t        ||	      }g d}d| j                  v r|j	                  dd       |D cg c]  }|| j                  |   f }}|	dk  r2t        |	      }|D cg c]  \  }}||j                  d|d      f }}}|j	                  dd|f       dj                  d |D              }t        j                  |t        j                        }d	}d }d
}|j                  }d|
z  }||j                  k  r|j                         }|j                  |      }| j                  j!                  |      r|dz  }d}||_        [t#        |      }|j%                  |      r%|r|s|j'                         sn||z  }d
}||_        |j!                  |j(                  |j                        }|r|j*                  }|dk(  rR|rd
|d<   |j-                  d      |j-                  d      |j-                  d      f}|j/                         dz   |_        nk|dk(  rnet        |j0                        }| j3                  ||      }|r||d<   ||d<   n1|r|j%                  |      sn||z  }||_        ||j                  k  r|t5        ||
      z  }|j7                  t9        |            }| j;                  ||       |d   rt=        |j0                        rd
|d<   |d   j?                  d|j0                  d       |r|S y c c}w c c}}w )N)thematic_breakfenced_codeatx_headingblock_quote
block_htmlr   fenced_directiver      3rC   |c              3   &   K   | ]	  }d |z    yw)z(?P<%s>(?<=\n)%s)N ).0pairs     r=   	<genexpr>z#_parse_list_item.<locals>.<genexpr>v   s     CT)D0Cs    F 
Tr   
listitem_1
listitem_2
listitem_3r   r$   r#   r   )r   r   ) r(   _compile_continue_width_compile_list_item_patternspecificationr4   strreplacejoinrecompileMr+   
cursor_maxfind_line_endget_text
BLANK_LINEmatchr   
startswithr&   src	lastgroupr%   r*   r3   parse_method_clean_list_item_textchild_stater   parse_is_loose_listappend)r   r   r:   r9   r   r;   spacesr8   r6   leading_widthcontinue_widthitem_patternlist_item_breaksnamepairs_repl_wnpregexscri   
next_groupprev_blank_lineposcontinue_spaceliner   tok_type	tok_indexr7   childs                                  r=   r0   r0   X   s3    "FFDK#f+-M24GD.-fmDL U000#56;KL4dE''-.LELqm$=BCTQ!QYYsGQ/0CC	LL[,/0HHCUCCE	E244	 B
CJO
,,C>)N
  
 !!#~~c"!!$'4KC"OEL!$'??>*tCIIK 4KC#OELHHUYY-{{H;&"%*E'Nggl3QWW\5JAGGT`Lab
 uuw{6!ELL)I((E2G&/l#$+j!4??>#Bt]   
 ` 	!#~66Dio.E	KKuW~.6g	*	
 a M Ds   !L+L0cc                 R    | dk(  rd}|S | dk(  rd}|S | dk(  rd}|S | dk(  rd}|S d	}|S )
N.z	\d{0,9}\.)z	\d{0,9}\)*z\*+z\+-rP   )r   r   s     r=   r/   r/      s`    Cx M 
c M 
c
 M	 
c M Mr?   rr   c                 >    |dkD  rd}dt        |      z   dz   | z   dz   S )NrL   z^(?P<listitem_1> {0,z})(?P<listitem_2>z$)(?P<listitem_3>[ \t]*|[ \t][^\n]+)$)r]   )r   rr   s     r=   r[   r[      s=    q#m"44 8 	#	$'/	/r?   r6   c                     t        | d      } t        |       } t        j                  |       }|r7| j	                  d      rd}nt        |j                  d            }| |d  dz   } nd}d} ||z   }| |fS )NrL   z     r   rV   rT   )r   r   _LINE_HAS_TEXTrg   rh   r(   r%   )r6   rr   m2space_widthrs   s        r=   rZ   rZ      s~    dA&DdD			d	#B	??7#Kbhhqk*KKL!D("[0Nr?   ri   rs   c                    g }d|z  }| j                  d      }|D ]T  }|j                  |      r0|j                  |dd      }t        |      }|j	                  |       D|j	                  |       V dj                  |      S )NrU   rV   rT   r   )splitrh   r^   r   rp   r_   )ri   rs   rv
trim_spacelinesr   s         r=   rl   rl      s}    	B~%JIIdOE ??:&<<
B2D d#DIIdOIIdO 99R=r?   r3   c                 T    d}| D ]!  }|d   dk(  r y|d   dk(  s|dz  }|dkD  s! y y)Nr   r   
blank_lineTrA   r   FrP   )r3   paragraph_countrD   s      r=   ro   ro     sK    O v;,&v;+%q O" r?   )!__doc__r`   typingr   r   r   r   r   r   r	   r
   utilr   r   r   block_parserr   corer   LIST_PATTERNra   r   r]   r)   r>   r2   r0   r/   r[   rZ   rl   boolro   rP   r?   r=   <module>r      s   > 	 S S S ; ;) #  J'6m 6c
 6< 6C 6r/c3h /D /hhh #sC- h S>	h
 h 9h eCcM"#hV  s 3 3  #  c  eCHo  *s C C $	8DcN3 	 	r?   