
    wiS	                         d dl mZmZ d dlmZmZmZmZmZm	Z	 d dl
ZddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ e G d
 d                      ZdS )    )	dataclassfield)AnyDictListOptionalTupleUnionN   )logger)ToJSON)
ToMarkdown)save_img)VisResc                      e Zd ZU dZeej                 ed<   dZeej                 ed<   dZ	ee
e                  ed<   dZee
e                  ed<   dZe
e
eeeeee                           f                  ed<    ee          Zeeedf                  ed	<    ed
          Zeed<   dZee         ed<   d Zd Zdeeeeef                           fdZdefdZddee         deej                 fdZdS )RapidOCROutputNimgboxestxtsscores)) g      ?Nword_results)default_factoryelapse_listF)initelapseviserc                 L    t          d | j        D                       | _        d S )Nc              3   D   K   | ]}t          |t                    |V  d S N)
isinstancefloat.0vs     m/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/rapidocr/utils/output.py	<genexpr>z/RapidOCROutput.__post_init__.<locals>.<genexpr>   s1      NNAu9M9MN!NNNNNN    )sumr   r   selfs    r&   __post_init__zRapidOCROutput.__post_init__   s'    NNT%5NNNNNr(   c                 <    | j         dS t          | j                   S )Nr   )r   lenr*   s    r&   __len__zRapidOCROutput.__len__    s    9149~~r(   returnc                     t          d | j        | j        | j        fD                       rt	          j        d           d S t          j        | j        | j        | j                  S )Nc              3      K   | ]}|d u V  	d S r     r#   s     r&   r'   z)RapidOCROutput.to_json.<locals>.<genexpr>&   s&      GGQqDyGGGGGGr(   z The identified content is empty.)anyr   r   r   r   warningr   tor*   s    r&   to_jsonzRapidOCROutput.to_json%   s^    GG4:ty$+"FGGGGG 	N=>>>4yTY<<<r(   c                 @    t          j        | j        | j                  S r    )r   r6   r   r   r*   s    r&   to_markdownzRapidOCROutput.to_markdown+   s    }TZ333r(   	save_pathc                 T   | j         | j        t          j        d           d S | j        t          j        d           d S t          d | j        D                       rU|                     | j         | j        | j        | j	                  }|%t          ||           t          j        d|           |S t          | j        d          }t          t          |           \  }}}|                     | j         |||          }|%t          ||           t          j        d|           |S )NzNo image or boxes to visualize.zvis instance is Nonec              3      K   | ]}|d u V  	d S r    r3   r#   s     r&   r'   z%RapidOCROutput.vis.<locals>.<genexpr>7   s&      44QqDy444444r(   zVisualization saved as %sr3   z%Single word visualization saved as %s)r   r   r   r5   r   errorallr   r   r   r   infor)   listzip)r+   r:   vis_imgwords_resultswordswords_scoreswords_boxess          r&   viszRapidOCROutput.vis.   s(   8tz1N<===4:L/000444$"344444 	jj4:ty$+NNG$G,,,7CCCN D-r22+/]0C+D+D(|[**TX{E<HH Y(((K?KKKr(   r    )__name__
__module____qualname__r   r   npndarray__annotations__r   r   r	   strr   r"   r   r   intr   r@   r   r
   r   r   r   r,   r/   r   r   r7   r9   rG   r3   r(   r&   r   r      s         $C"*	$$$"&E8BJ&&&!%D(5:
%%%%)FHU5\")))IL%c5(4S	?*CCDE    -2E$,G,G,GKeE4K()GGGEu%%%FE%%%"E8F"""O O O  
=$tCH~"67 = = = =4S 4 4 4 4 Xc] hrz6J      r(   r   )dataclassesr   r   typingr   r   r   r   r	   r
   numpyrK   logr   r7   r   r9   r   utilsr   vis_resr   r   r3   r(   r&   <module>rV      s    ) ( ( ( ( ( ( ( : : : : : : : : : : : : : : : :                 # # # # # #             6 6 6 6 6 6 6 6 6 6r(   