o
    0Îj6  ã                   @  s6   d Z ddlmZ ddlZddlmZ G dd„ dƒZdS )uB   MarkdownConverter â€” converts document blocks to Markdown format.é    )ÚannotationsNé   )Úmerge_formula_and_numberc                   @  s*   e Zd ZdZedddddœd	dd„ƒZdS )
ÚMarkdownConverteraz  Converts a list of document blocks into Markdown text + images.

    The caller is responsible for building ``handle_funcs_dict`` (typically via
    :func:`~.markdown_format_funcs.build_handle_funcs_dict`) and passing it in.  This
    class centralises the iteration / image-collection / special-case logic
    that was previously duplicated across multiple Result classes.
    FN)Úshow_formula_numberÚuse_seg_flagÚget_seg_flag_funcÚimgs_in_docÚreturnÚdictc                C  s‚  t | ƒ}d}i }d}	d}
d}d}d}t|ƒD ]„\}}|j}|jdur,|jd ||jd < |r?|dur?|||
ƒ\}}|du r?|}|re|dv re|t|ƒd k re||d  }|jdkret |¡}t|j|jƒ|_| |d¡}|rš|rq|}
|rŠ||	  kr}d	krŠn n|d
u rŠ|||ƒ7 }n||r“d||ƒ n||ƒ7 }|}	q||dœ}|r®|du r¨d}||f|d< |r¿|D ]}|d |d |d < q²|S )aü  Convert *blocks* to Markdown.

        Args:
            blocks: Iterable of objects satisfying the DocumentBlock protocol
                (``label``, ``content``, ``bbox``, ``image``).
            handle_funcs_dict: ``{label: formatting_func}`` mapping built by
                :func:`build_handle_funcs_dict`.
            show_formula_number: If *True*, merge adjacent formula + number
                blocks (PaddleOCR-VL behaviour).
            use_seg_flag: If *True*, use paragraph-continuity detection so
                that consecutive ``"text"`` blocks are joined without extra
                newlines (PP-StructureV3 / LayoutParsingResultV2 behaviour).
            get_seg_flag_func: ``(block, prev_block) -> (start, end)`` called
                when *use_seg_flag* is *True*.
            imgs_in_doc: Extra images to include (list of ``{"path", "img"}``).

        Returns:
            dict with keys ``markdown_texts``, ``markdown_images``, and
            optionally ``page_continuation_flags``.
        Ú NTÚimgÚpath)Zdisplay_formulaZformular   Zformula_numberÚtextFz

)Zmarkdown_textsÚmarkdown_imagesZpage_continuation_flagsr   )	ÚlistÚ	enumerateÚlabelÚimageÚlenÚcopyr   ÚcontentÚget)ÚblocksZhandle_funcs_dictr   r   r   r	   Zblocks_listZmarkdown_contentr   Z
last_labelZ
prev_blockZseg_start_flagZseg_end_flagZ!page_first_element_seg_start_flagÚidxÚblockr   Z
next_blockZhandle_funcÚresultr   © r   ú}/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/inference/common/result/converter/markdown_converter.pyÚconvert!   sn   
ÿ

ÿÿÿý€þþzMarkdownConverter.convert)r
   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r   r   r   r      s    ùr   )r#   Ú
__future__r   r   Zmarkdown_format_funcsr   r   r   r   r   r   Ú<module>   s
   