U
    \> ef  ã                   @  sŒ   d Z ddlmZ ddlmZ ddlmZmZ ddlZddl	m
Z
 e
rPdd	lmZ G d
d„ deƒZG dd„ deƒZG dd„ deƒZdd„ ZdS )z¤
Modify the behavior of Lists in Python-Markdown to act in a sane manor.

See [documentation](https://Python-Markdown.github.io/extensions/sane_lists)
for details.
é    )Úannotationsé   )Ú	Extensioné   )ÚOListProcessorÚUListProcessorN)ÚTYPE_CHECKING)Úblockparserc                      s0   e Zd ZdZdgZdZddœ‡ fdd„Z‡  ZS )ÚSaneOListProcessorzK Override `SIBLING_TAGS` to not include `ul` and set `LAZY_OL` to `False`. ÚolFúblockparser.BlockParser©Úparserc                   s&   t ƒ  |¡ t d| jd  ¡| _d S )Nz^[ ]{0,%d}((\d+\.))[ ]+(.*)r   ©ÚsuperÚ__init__ÚreÚcompileZ
tab_lengthZCHILD_RE©Úselfr   ©Ú	__class__© úB/tmp/pip-unpacked-wheel-wj0og6ym/markdown/extensions/sane_lists.pyr   )   s    ÿzSaneOListProcessor.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚSIBLING_TAGSZLAZY_OLr   Ú__classcell__r   r   r   r   r
   !   s   r
   c                      s,   e Zd ZdZdgZddœ‡ fdd„Z‡  ZS )ÚSaneUListProcessorz. Override `SIBLING_TAGS` to not include `ol`. Úulr   r   c                   s&   t ƒ  |¡ t d| jd  ¡| _d S )Nz^[ ]{0,%d}(([*+-]))[ ]+(.*)r   r   r   r   r   r   r   5   s    ÿzSaneUListProcessor.__init__)r   r   r   r   r   r   r   r   r   r   r   r    /   s   r    c                   @  s   e Zd ZdZdd„ ZdS )ÚSaneListExtensionz Add sane lists to Markdown. c                 C  s4   |j j t|j ƒdd¡ |j j t|j ƒdd¡ dS )z Override existing Processors. Zolisté(   Zulisté   N)r   ÚblockprocessorsÚregisterr
   r    )r   Zmdr   r   r   ÚextendMarkdown>   s    z SaneListExtension.extendMarkdownN)r   r   r   r   r'   r   r   r   r   r"   ;   s   r"   c                  K  s
   t f | ŽS )N)r"   )Úkwargsr   r   r   ÚmakeExtensionD   s    r)   )r   Ú
__future__r   Ú r   r%   r   r   r   Útypingr   r	   r
   r    r"   r)   r   r   r   r   Ú<module>   s   	