o
    Rh                     @  s   d dl mZ d dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZmZ eeef Z	 G dd deZG dd deZG d	d
 d
eZdddZdS )    )annotations)MutableMapping)Path)AnyCallableIterabler   	TypedDictcastc                   @  sj   e Zd ZU dZded< 	 ded< 	 ded< 	 ded< 	 ded	< 	 ded
< 	 ded< 	 ded< 	 ded< dS )OptionsTypezOptions for parsing.int
maxNestingboolhtmllinkifytypographerstrquotesxhtmlOutbreaks
langPrefix%Callable[[str, str, str], str] | None	highlightN__name__
__module____qualname____doc____annotations__ r   r   S/home/air/sanwanet/backup_V2/venv/lib/python3.10/site-packages/markdown_it/utils.pyr
      s(   
 r
   c                   @  s$   e Zd ZU dZded< 	 ded< dS )
PresetTypez%Preset configuration for markdown-it.r
   optionsz3MutableMapping[str, MutableMapping[str, list[str]]]
componentsNr   r   r   r   r   r    $   s   
 r    c                   @  sn  e Zd ZdZd:ddZd;ddZd<ddZd=ddZd>ddZd?ddZ	d@ddZ
d@ddZed?ddZejdAddZedBd d!ZejdCd"d!ZedBd#d$ZejdCd%d$ZedBd&d'ZejdCd(d'Zed@d)d*ZejdDd+d*ZedBd,d-ZejdCd.d-ZedBd/d0ZejdCd1d0Zed@d2d3ZejdDd4d3ZedEd6d7ZejdFd8d7Zd9S )GOptionsDictzMA dictionary, with attribute access to core markdownit configuration options.r!   r
   returnNonec                 C  s   t tt|| _d S N)r	   r
   dict_options)selfr!   r   r   r   __init__3   s   zOptionsDict.__init__keyr   r   c                 C  s
   | j | S r&   r(   r)   r+   r   r   r   __getitem__6      
zOptionsDict.__getitem__valuec                 C  s   || j |< d S r&   r,   )r)   r+   r0   r   r   r   __setitem__9   s   zOptionsDict.__setitem__c                 C  s   | j |= d S r&   r,   r-   r   r   r   __delitem__<   s   zOptionsDict.__delitem__Iterable[str]c                 C  
   t | jS r&   )iterr(   r)   r   r   r   __iter__?   r/   zOptionsDict.__iter__r   c                 C  r4   r&   )lenr(   r6   r   r   r   __len__B   r/   zOptionsDict.__len__c                 C  r4   r&   )reprr(   r6   r   r   r   __repr__E   r/   zOptionsDict.__repr__c                 C  r4   r&   )r   r(   r6   r   r   r   __str__H   r/   zOptionsDict.__str__c                 C  
   | j d S )z%Internal protection, recursion limit.r   r,   r6   r   r   r   r   K      
zOptionsDict.maxNestingc                 C     || j d< d S )Nr   r,   r)   r0   r   r   r   r   P      r   c                 C  r=   )zEnable HTML tags in source.r   r,   r6   r   r   r   r   T   r>   zOptionsDict.htmlc                 C  r?   )Nr   r,   r@   r   r   r   r   Y   rA   c                 C  r=   )z1Enable autoconversion of URL-like texts to links.r   r,   r6   r   r   r   r   ]   r>   zOptionsDict.linkifyc                 C  r?   )Nr   r,   r@   r   r   r   r   b   rA   c                 C  r=   )z$Enable smartquotes and replacements.r   r,   r6   r   r   r   r   f   r>   zOptionsDict.typographerc                 C  r?   )Nr   r,   r@   r   r   r   r   k   rA   c                 C  r=   )zQuote characters.r   r,   r6   r   r   r   r   o   r>   zOptionsDict.quotesc                 C  r?   )Nr   r,   r@   r   r   r   r   t   rA   c                 C  r=   )z&Use '/' to close single tags (<br />).r   r,   r6   r   r   r   r   x   r>   zOptionsDict.xhtmlOutc                 C  r?   )Nr   r,   r@   r   r   r   r   }   rA   c                 C  r=   )z)Convert newlines in paragraphs into <br>.r   r,   r6   r   r   r   r      r>   zOptionsDict.breaksc                 C  r?   )Nr   r,   r@   r   r   r   r      rA   c                 C  r=   )z&CSS language prefix for fenced blocks.r   r,   r6   r   r   r   r      r>   zOptionsDict.langPrefixc                 C  r?   )Nr   r,   r@   r   r   r   r      rA   r   c                 C  r=   )zEHighlighter function: (content, langName, langAttrs) -> escaped HTML.r   r,   r6   r   r   r   r      r>   zOptionsDict.highlightc                 C  r?   )Nr   r,   r@   r   r   r   r      rA   N)r!   r
   r$   r%   )r+   r   r$   r   )r+   r   r0   r   r$   r%   )r+   r   r$   r%   )r$   r3   )r$   r   )r$   r   )r0   r   r$   r%   )r$   r   )r0   r   r$   r%   )r0   r   r$   r%   )r$   r   )r0   r   r$   r%   )r   r   r   r   r*   r.   r1   r2   r7   r9   r;   r<   propertyr   setterr   r   r   r   r   r   r   r   r   r   r   r   r#   -   s\    







r#   path
str | Pathr$   list[list[Any]]c                 C  s   t | jdd}g }d}d}|jdd}tt|D ]M}||  dkrg|dkr8||||d   g d}n-|dkrO|d d	||d |  d
}n|d
kre|d d	||d |  d}|}q|S )Nzutf-8)encodingr   T)keepends.       )	r   	read_text
splitlinesranger8   rstripappendstripjoin)rD   texttestssectionlast_poslinesir   r   r   read_fixture_file   s&     r[   N)rD   rE   r$   rF   )
__future__r   collections.abcr   MutableMappingABCpathlibr   typingr   r   r   r   r	   r   EnvTyper
   r    r#   r[   r   r   r   r   <module>   s     	p