
    bi                        d Z ddlmZ ddlZddl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ZddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZddZddZddZddZddZy)z8because list is complex, split list parser in a new file    )annotationsN)TYPE_CHECKINGAnyIterableOptional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*)\Sc                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)blockmstatetextend_posmarkerr   r   tokenr   groupsrulesr   indexs                 N/home/cdr/jupyterlab/.venv/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<<    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   )r,   )r6   	list_itemtoks      r:   r,   r,   O   s_    W~z* 	/I , /v;+-".CK[F*)#.	/	/ 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	      3r@   |c              3  &   K   | ]	  }d |z    yw)z(?P<%s>(?<=\n)%s)N ).0pairs     r:   	<genexpr>z#_parse_list_item.<locals>.<genexpr>x   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specificationr.   strreplacejoinrecompileMr%   
cursor_maxfind_line_endget_text
BLANK_LINEmatchr
   
startswithr    src	lastgroupr   r$   r-   parse_method_clean_list_item_textchild_stater   parse_is_loose_listappend)r0   r   r7   r6   r2   r8   spacesr5   r3   leading_widthcontinue_widthitem_patternlist_item_breaksnamepairs_repl_wnpregexscrf   
next_groupprev_blank_lineposcontinue_spaceliner1   tok_type	tok_indexr4   childs                                  r:   r*   r*   Z   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c                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\+-rM   )cr   s     r:   r)   r)      s`    Cx M 
c M 
c
 M	 
c M Mr<   c                >    |dkD  rd}dt        |      z   dz   | z   dz   S )NrI   z^(?P<listitem_1> {0,z})(?P<listitem_2>z$)(?P<listitem_3>[ \t]*|[ \t][^\n]+)$)rZ   )r   ro   s     r:   rX   rX      s=    q#m"44 8 	#	$'/	/r<   c                    t        | d      } t        |       } t        j                  |       }|r7| j	                  d      rd}nt        |j                  d            }| |d  dz   } nd}d} ||z   }| |fS )NrI   z     r	   rS   rQ   )r
   r   _LINE_HAS_TEXTrd   re   r"   r   )r3   ro   m2space_widthrp   s        r:   rW   rW      s~    dA&DdD			d	#B	??7#Kbhhqk*KKL!D("[0Nr<   c                   g }d|z  }| j                  d      }|D ]T  }|j                  |      r0|j                  |dd      }t        |      }|j	                  |       D|j	                  |       V dj                  |      S )NrR   rS   rQ   r	   )splitre   r[   r   rm   r\   )rf   rp   rv
trim_spacelinesr~   s         r:   ri   ri      s}    	B~%JIIdOE ??:&<<
B2D d#DIIdOIIdO 99R=r<   c                T    d}| D ]!  }|d   dk(  r y|d   dk(  s|dz  }|dkD  s! y y)Nr   r   
blank_lineTr>   r	   FrM   )r-   paragraph_countrA   s      r:   rl   rl     sK    O v;,&v;+%q O" r<   )r0   'BlockParser'r1   z
Match[str]r2   'BlockState'returnr#   )r6   dict[str, Any]r   None)r0   r   r   rZ   r7   ztuple[str, str, str]r6   r   r2   r   r8   z	list[str]r   ztuple[str, str, str] | None)r   rZ   r   rZ   )r   rZ   ro   r#   r   rZ   )r3   rZ   ro   r#   r   ztuple[str, int])rf   rZ   rp   r#   r   rZ   )r-   zIterable[dict[str, Any]]r   bool)__doc__
__future__r   r]   typingr   r   r   r   r   utilr
   r   r   block_parserr   corer   LIST_PATTERNr^   r   r;   r,   r*   r)   rX   rW   ri   rl   rM   r<   r:   <module>r      s    > " 	 @ @ ; ;) #  J'6r/hhh !h 	h
 h h !hV *$	r<   