
    iKj)                       d Z ddlmZ ddlZddlmZ ddlmZmZm	Z	m
Z
mZmZmZ ddlmZ erddlmZ dd	lmZ d
Z ej*                  d      Ze G d d             Ze G d 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 	 	 	 	 	 	 	 	 	 	 d*dZ!d+dZ"d,dZ#d-dZ$d.dZ%d/dZ&d0dZ'd1d2dZ(d3d Z)d4d!Z*y)5z8because list is complex, split list parser in a new file    )annotationsN)	dataclass)TYPE_CHECKINGAnyIterableOptionalMatchPatterncast   )	strip_end)BlockParser)
BlockStatezM^(?P<list_1> {0,3})(?P<list_2>[\*\+-]|\d{1,9}[.)])(?P<list_3>[ \t]*|[ \t].+)$z(\s*)\Sc                  b    e Zd ZU ded<   ded<   ded<   ed	d       Zed
d       Zedd       Zy)_ListMarkerstrspacesmarkertextc                X    t        | j                        t        | j                        z   S N)lenr   r   selfs    d/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/mistune/list_parser.pyleading_widthz_ListMarker.leading_width   s    4;;#dkk"222    c                     | j                   d   S )N)r   r   s    r   bulletz_ListMarker.bullet!   s    {{2r   c                2    t        | j                        dkD  S )Nr   )r   r   r   s    r   orderedz_ListMarker.ordered%   s    4;;!##r   N)returnint)r#   r   )r#   bool)__name__
__module____qualname____annotations__propertyr   r    r"    r   r   r   r      sK    KK
I3 3   $ $r   r   c                  P    e Zd ZU ded<   dZded<   dZded<   dZd	ed
<   dZd	ed<   y)_ListItemLinesr   srcNzOptional[_ListMarker]	next_itemFr%   loosezOptional[int]end_postoken_index)r&   r'   r(   r)   r/   r0   r1   r2   r+   r   r   r-   r-   *   s0    	H'+I$+E4!G]!!%K%r   r-   c                   t        |d      }|j                  }|j                         s|j                         }|r|S |j                  }|j                         }dg d|j                  ||j                  dd}|j                  r/t        |dd       }	|	dk7  r|j                         }|r|S |	|d   d	<   |j                         dz   |_
        |}
|| j                  dz
  k\  r| j                  D cg c]	  }|d
vs| }}n| j                  }t        |j                        }|
rt        | ||
|||      }
|
rt        t         t           |j#                  dd            }t%        |       |r=t        t        |j#                  d            }|j&                  j)                  ||       |S |j+                  |       |j                  S c c}w )z,Parse tokens for ordered and unordered list.listT)depthr"   )typechildrentightr    attrsNr   r   r9   start)r4   block_quote_end_pos
_tok_index)_create_list_markerr   stripappend_paragraphr   r5   r    r"   r$   endcursormax_nested_level
list_rules_get_list_bullet_parse_list_itemr   r   pop_transform_tight_listtokensinsertappend_token)blockmstateitemr   r1   r   r5   tokenr:   item_or_nonerulerulesr    indexs                  r   
parse_listrU   3   s   q&)D99D::< ((*N[[FKKME++||
	E ||F3BK A: ,,.G&+E'N7#557Q;EL*.L&&** #("2"2Z"2$dBY6Y"2Z  dkk*F
'v|UESXY  8C=%))J"=>G% S%))L12E5)	u<<! [s   -	G7Gc                |    | d   r7| d   D ].  }|d   D ]$  }|d   dk(  rd|d<   |d   dk(  st        |       & 0 y y )Nr8   r7   r6   	paragraph
block_textr4   )rH   )rP   	list_itemtoks      r   rH   rH   n   sU    W~z*I ,v;+-".CK[F*)#.	 - + r   c                ^   |j                   }|j                  }t        ||      \  }}t        j                  t        ||            }	t        | |      }
t        | |	|
|||      }|j                  rd|d<   |j                  |j                  |d<   |j                  |d<   |j                  t        ||j                  |            }| j                  ||       |d   rt        |j                         rd|d<   |d   j#                  d|j                   d       |j$                  r|j$                  S y )NFr8   r=   r<   r7   rY   )r6   r7   )r   r   _compile_continue_widthrecompile_compile_list_item_pattern_compile_list_break_sc_collect_list_item_linesr0   r1   r2   child_state_build_list_item_sourcer.   parse_is_loose_listrI   appendr/   )rL   r    rO   rP   rN   rS   r   r   continue_widthlist_item_rebreak_sclineschilds                r   rF   rF   y   s    99D&&M24GD.::8OPL%e];H$UL(E4Q_`E{{g}} #//l!MMj5dEII~VWE	KKuW~.6g	*	
 r   c                   d}d }d}|j                   |j                  k  r_|j                  |j                         }	|j                   t        |	      z   }
| j                  j                  |	      r|dz  }d}|
|_         wt        |	|      }|r/|r|s|j                         s	 t        |      S ||	z  }d}|
|_         t        |	      }t        ||||      }|rs|\  }}|dk(  r!t        |d      }|
|_         t        |||      S |dk(  r	 t        |      S t        |j                        }| j                  ||      }|rt        |||	      S |r|s	 t        |      S ||	z  }|
|_         |j                   |j                  k  r_t        |      S )
N F
TrY   listitem)r/   r0   r4   )r1   r2   )rB   
cursor_maxget_liner   
BLANK_LINEmatch_has_continuation_indentr?   _expand_leading_tabs_match_list_item_breakr>   r-   rI   parse_method)rL   rh   ri   rN   r   rg   r.   r/   prev_blank_lineraw_linenext_poshas_continuationline
line_breaktok_typerM   	tok_indexr1   s                     r   ra   ra      s    CIO
,,))
)>>%,,/<<#h-/!!(+4KC"O#EL3HnMtCIIK > #; 8OC#O#EL#H-+L(E4P
$KHa;&/:>	'%cYoVV6! # ELL)I((E2G%c7	RR#3
 # 	xW ,,))
)Z #r   c                    t        | j                  |dz         | j                  |dz         | j                  |dz               S )N_1_2_3)r   r   r   )r   group)rM   prefixs     r   r>   r>      s?    wwv}%wwv}%WWVd]# r   c                6    | t        ||      z  } t        |       S r   )_clean_list_item_textr   )r   r.   rg   s      r   rc   rc      s    !#~66DT?r   c           
     L   t        |       D cg c]  }|| j                  |   f }}|dk  r2t        |      }|D cg c]  \  }}||j                  d|d      f }}}dj	                  d |D              }t        j                  |t
        j                        S c c}w c c}}w )N   3r   |c              3  &   K   | ]	  }d |z    yw)z(?P<%s>(?<=\n)%s)Nr+   ).0pairs     r   	<genexpr>z)_compile_list_break_sc.<locals>.<genexpr>   s     CUT)D0Us   )_get_list_break_rulesspecificationr   replacejoinr]   r^   M)rL   r   namepairs_repl_wnpregexs           r   r`   r`      s    ;PQV;WX;W4dE''-.;WEXqm$=BCUTQ!QYYsGQ/0UCHHCUCCE::eRTT"" Y Ds
   BB c                N    g d}d| j                   v r|j                  dd       |S )N)thematic_breakfenced_codeatx_headingr;   
block_htmlr4   fenced_directiver   )r   rJ   )rL   rS   s     r   r   r      s-    E U000Q*+Lr   c                    |j                  |j                  |j                        }|r|j                  dk(  rd|fS | j                  |      }|rd|fS |r|j                  }|J ||fS y )Nr   rY   )rs   r.   rB   	lastgroup)rh   ri   rN   r|   rM   m2r~   s          r   rv   rv     sx     	uyy%,,/AQ[[,,""			D	!B	B;;###{r   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\+-r+   )cr    s     r   rE   rE     s`    Cx M 
c M 
c
 M	 
c M Mr   c                >    |dkD  rd}dt        |      z   dz   | z   dz   S )Nr   z^(?P<listitem_1> {0,z})(?P<listitem_2>z$)(?P<listitem_3>[ \t]*|[ \t][^\n]+)$)r   )r    r   s     r   r_   r_   $  s=    q#m"44 8 	#	$'/	/r   c                    t        | |      } t        j                  |       }|rt        |       }|dk\  rd}n|}| |d  dz   } nd}d} ||z   }| |fS )N   r   rn   rm   )ru   _LINE_HAS_TEXTrs   _count_indent)r   r   r   indentspace_widthrg   s         r   r\   r\   .  sl    m4D			d	#B	t$Q;K KKL!D("[0Nr   c                    g }| j                  d      }|D ]D  }t        ||      r|j                  t        ||             +|j                  t	        |             F dj                  |      S )Nrn   )splitrt   rf   _strip_continuation_indentru   r   )r.   rg   rvrj   r|   s        r   r   r   C  s^    	BIIdOE#D.9II0~FGII*401	  99R=r   c                    t        |       |k\  S r   )r   )r|   columnss     r   rt   rt   O  s    '))r   c                @    t        |       }t        |      |k\  r||d  S y)Nrm   )ru   r   )r|   r   expandeds      r   r   r   S  s(    #D)H
8}!!r   c                   |}g }d}|t        |       k  r]| |   }|dk(  r|j                  d       |dz  }n(|dk(  r"d|dz  z
  }|j                  d|z         ||z  }nn|dz  }|t        |       k  r]dj                  |      | |d  z   S )Nr    r   	   rm   )r   rf   r   )r|   start_columncolumnpartsrT   r   sizes          r   ru   ru   Z  s    FEE
#d)
K8LLaKF$Yvz>DLLt$dNF
 #d)
 775>DL((r   c                T    d}| D ]   }|dk(  r|dz  }|dk(  r|d|dz  z
  z  } |S  |S )Nr   r   r   r   r   r+   )r   r   r   s      r   r   r   m  sI    F8aKF$Ya&1*n$FM  Mr   c                T    d}| D ]!  }|d   dk(  r y|d   dk(  s|dz  }|dkD  s! y y)Nr   r6   
blank_lineTrW   r   Fr+   )rI   paragraph_countrZ   s      r   re   re   y  sF    Ov;,&v;+%q O"  r   )rL   'BlockParser'rM   
Match[str]rN   'BlockState'r#   r$   )rP   dict[str, Any]r#   None)rL   r   r    r   rO   r   rP   r   rN   r   rS   	list[str]r#   z_ListMarker | None)rL   r   rh   Pattern[str]ri   r   rN   r   r   r   rg   r$   r#   r-   )rM   r   r   r   r#   r   )r   r   r.   r   rg   r$   r#   r   )rL   r   r   r$   r#   r   )rL   r   r#   r   )
rh   r   ri   r   rN   r   r|   r   r#   ztuple[str, Match[str]] | None)r   r   r#   r   )r    r   r   r$   r#   r   )r   r   r   r$   r#   ztuple[str, int])r.   r   rg   r$   r#   r   )r|   r   r   r$   r#   r%   )r|   r   r   r$   r#   r   )r   )r|   r   r   r$   r#   r   )r   r   r#   r$   )rI   zIterable[dict[str, Any]]r#   r%   )+__doc__
__future__r   r]   dataclassesr   typingr   r   r   r   r	   r
   r   utilr   block_parserr   corer   LIST_PATTERNr^   r   r   r-   rU   rH   rF   ra   r>   rc   r`   r   rv   rE   r_   r\   r   rt   r   ru   r   re   r+   r   r   <module>r      s   > " 	 ! O O O ) #  J' $ $ $$ & & &8v/%%% % 	%
 % % %P888 8 	8
 8 8 8v
#  	
 #* *	*)&		r   