Ë
    vl�j;  ã                   ó’   — d dl Z d dl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 ddlmZ ddlmZmZ ddlmZmZmZ  G d	„ d
e«      Zy)é    N)ÚStringIO)Úchain)ÚAnyÚDictÚListÚOptionalÚSetÚTextIOé   )Úutils)ÚT_objÚ
T_obj_list)ÚCSV_COLS_REQUIREDÚCSV_COLS_TO_PREPENDÚ
Serializerc                   ó¢  — e Zd Zg d¢Zedeee      fd„«       Zede	e
ef   fd„«       Z	 ddeee
      de	e
ef   fd„Zddeee
      ddfd	„Zedefd
„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Z	 	 	 	 	 	 d dee   deee
      deee
      deee
      dee   dee   dee
   fd„Z	 	 	 	 	 d!dee   deee
      dee   deee
      deee
      dee
   fd„Z y)"Ú	Container)Ú_rect_edgesÚ_curve_edgesÚ_edgesÚ_objectsÚreturnc                 ó   — t         ‚©N©ÚNotImplementedError©Úselfs    úJ/var/www/html/pp/venv/lib/python3.12/site-packages/pdfplumber/container.pyÚpageszContainer.pages   ó   € ä!Ð!ó    c                 ó   — t         ‚r   r   r   s    r   ÚobjectszContainer.objects   r!   r"   NÚobject_typesc                 ó   — t         ‚r   r   )r   r%   s     r   Úto_dictzContainer.to_dict   s
   € ô "Ð!r"   Ú
propertiesc                 ód   — |€| j                   n|}|D ]  }t        | |«      sŒt        | |«       Œ y r   )Úcached_propertiesÚhasattrÚdelattr)r   r(   ÚpropsÚps       r   Úflush_cachezContainer.flush_cache   s7   € Ø*4Ð*<�×&Ò&À*ˆØò 	!ˆAÜ�t˜QÕÜ˜˜aÕ ñ	!r"   c                 ó:   — | j                   j                  dg «      S )NÚrect©r$   Úgetr   s    r   ÚrectszContainer.rects"   ó   € à�|‰|×Ñ ¨Ó+Ð+r"   c                 ó:   — | j                   j                  dg «      S )NÚliner2   r   s    r   ÚlineszContainer.lines&   r5   r"   c                 ó:   — | j                   j                  dg «      S )NÚcurver2   r   s    r   ÚcurveszContainer.curves*   ó   € à�|‰|×Ñ ¨Ó,Ð,r"   c                 ó:   — | j                   j                  dg «      S )NÚimager2   r   s    r   ÚimageszContainer.images.   r<   r"   c                 ó:   — | j                   j                  dg «      S )NÚcharr2   r   s    r   ÚcharszContainer.chars2   r5   r"   c                 ó:   — | j                   j                  dg «      S )NÚtextboxverticalr2   r   s    r   ÚtextboxverticalszContainer.textboxverticals6   s   € à�|‰|×ÑÐ 1°2Ó6Ð6r"   c                 ó:   — | j                   j                  dg «      S )NÚtextboxhorizontalr2   r   s    r   ÚtextboxhorizontalszContainer.textboxhorizontals:   s   € à�|‰|×ÑÐ 3°RÓ8Ð8r"   c                 ó:   — | j                   j                  dg «      S )NÚtextlineverticalr2   r   s    r   ÚtextlineverticalszContainer.textlineverticals>   s   € à�|‰|×ÑÐ 2°BÓ7Ð7r"   c                 ó:   — | j                   j                  dg «      S )NÚtextlinehorizontalr2   r   s    r   ÚtextlinehorizontalszContainer.textlinehorizontalsB   s   € à�|‰|×ÑÐ 4°bÓ9Ð9r"   c                 óœ   — t        | d«      r| j                  S d„ | j                  D «       }t        t	        |Ž «      | _        | j                  S )Nr   c              3   óF   K  — | ]  }t        j                  |«      –— Œ y ­wr   )r   Úrect_to_edges©Ú.0Úrs     r   ú	<genexpr>z'Container.rect_edges.<locals>.<genexpr>J   s   è ø€ ÒE°Qœ%×-Ñ-¨a×0ÑEùó   ‚!)r+   r   r4   Úlistr   )r   Úrect_edges_gens     r   Ú
rect_edgeszContainer.rect_edgesF   sD   € ä�4˜Ô'Ø×#Ñ#Ð#ÙE¸$¿*¹*ÔEˆÜ'+¬E°>Ð,BÓ'CˆÔØ×ÑÐr"   c                 óœ   — t        | d«      r| j                  S d„ | j                  D «       }t        t	        |Ž «      | _        | j                  S )Nr   c              3   óF   K  — | ]  }t        j                  |«      –— Œ y ­wr   )r   Úcurve_to_edgesrR   s     r   rU   z(Container.curve_edges.<locals>.<genexpr>R   s   è ø€ ÒH°qœ5×/Ñ/°×2ÑHùrV   )r+   r   r;   rW   r   )r   Úcurve_edges_gens     r   Úcurve_edgeszContainer.curve_edgesN   sD   € ä�4˜Ô(Ø×$Ñ$Ð$ÙH¸D¿K¹KÔHˆÜ(,¬U°OÐ-DÓ(EˆÔØ× Ñ Ð r"   c                 óæ   — t        | d«      r| j                  S t        t        t        j
                  | j                  «      «      }|| j                  z   | j                  z   | _        | j                  S )Nr   )	r+   r   rW   Úmapr   Úline_to_edger8   rY   r^   )r   Ú
line_edgess     r   ÚedgeszContainer.edgesV   sV   € ä�4˜Ô"Ø—;‘;ÐÜœ#œe×0Ñ0°$·*±*Ó=Ó>ˆ
Ø",¨t¯©Ñ">À×AQÑAQÑ"QˆŒØ�{‰{Ðr"   c                 ó`   — dt         dt        fd„}t        t        || j                  «      «      S )NÚxr   c                 ó$   — t        | d   dk(  «      S )NÚorientationÚh©Úbool©re   s    r   Útestz(Container.horizontal_edges.<locals>.test`   ó   € Ü˜˜-Ñ(¨CÑ/Ó0Ð0r"   ©r   rj   rW   Úfilterrc   ©r   rl   s     r   Úhorizontal_edgeszContainer.horizontal_edges^   ó-   € ð	1”Eð 	1œdó 	1ô ”F˜4 §¡Ó,Ó-Ð-r"   c                 ó`   — dt         dt        fd„}t        t        || j                  «      «      S )Nre   r   c                 ó$   — t        | d   dk(  «      S )Nrg   Úvri   rk   s    r   rl   z&Container.vertical_edges.<locals>.testg   rm   r"   rn   rp   s     r   Úvertical_edgeszContainer.vertical_edgese   rr   r"   ÚstreamÚinclude_attrsÚexclude_attrsÚ	precisionÚindentc                 óÂ   — | j                  |«      }t        |||¬«      j                  |«      }|€t        j                  ||¬«      S t        j
                  |||¬«       y )N©rz   rx   ry   )r{   )r'   r   Ú	serializeÚjsonÚdumpsÚdump)	r   rw   r%   rx   ry   rz   r{   ÚdataÚ
serializeds	            r   Úto_jsonzContainer.to_jsonl   s^   € ð �|‰|˜LÓ)ˆäØØ'Ø'ô
÷ ‰)�D‹/ð	 	ð ˆ>Ü—:‘:˜j°Ô8Ð8ä�I‰I�j &°Õ8Ør"   c           
      ó¤  — |€t        «       }d}nd}|€'t        | j                  j                  «       «      dgz   }g }t	        «       }| j
                  €| gn| j
                  }	t        |||¬«      }
|	D ]‰  }|D ]‚  }t        ||dz   «      }t        |«      sŒ||
j                  |«      z  }|d   j                  «       D ��cg c]  \  }}t        |«      t        usŒ|‘Œ }}}|j                  t	        |«      «      }Œ„ Œ‹ t        t        t        t	        |«      t	        t         t        z   «      z
  «      «      z   }t         t        t#        |
j$                  |«      «      z   }t'        j(                  ||dt&        j*                  d¬	«      }|j-                  «        |j/                  |«       |r!|j1                  d«       |j3                  «       S y c c}}w )
NTFÚannotr}   Úsr   Úignoreú\)Ú
fieldnamesÚextrasactionÚquotingÚ
escapechar)r   rW   r$   ÚkeysÚsetr    r   ÚgetattrÚlenr~   ÚitemsÚtypeÚdictÚunionr   Úsortedr   ro   Úattr_filterÚcsvÚ
DictWriterÚQUOTE_MINIMALÚwriteheaderÚ	writerowsÚseekÚread)r   rw   r%   rz   rx   ry   Ú	to_stringrƒ   Úfieldsr    Ú
serializerÚpageÚtÚobjsÚkru   Únew_keysÚnon_req_colsÚcolsÚws                       r   Úto_csvzContainer.to_csv„   s©  € ð ˆ>Ü“ZˆFØ‰IàˆIàÐÜ §¡× 1Ñ 1Ó 3Ó4¸°yÑ@ˆLàˆ
Ü›5ˆàŸ*™*Ð,�‘°$·*±*ˆäØØ'Ø'ô
ˆ
ð
 ò 	9ˆDØ!ò 9�Ü˜t Q¨¡WÓ-�Ü�t•9Ø *×"6Ñ"6°tÓ"<Ñ<�JØ.2°1©g¯m©m«o×U¡d a¨ÄÀaÃÔPTÒAT¢ÐU�HÑUØ#Ÿ\™\¬#¨h«-Ó8‘Fñ9ð	9ô +¬TÜ”3�v“;¤Ô%6Ô9LÑ%LÓ!MÑMÓNó.
ñ 
ˆô !¤4¬¨z×/EÑ/EÀ|Ó(TÓ#UÑUˆä�N‰NØØØ!Ü×%Ñ%Øô
ˆð 	
�‰ŒØ	�‰�JÔáØ�K‰K˜ŒNØ—;‘;“=Ð àùó/  Vs   Â?G
ÃG
r   )NNNNNN)NNNNN)!Ú__name__Ú
__module__Ú__qualname__r*   Úpropertyr   r   r   r    r   Ústrr   r$   r'   r/   r4   r8   r;   r?   rB   rE   rH   rK   rN   rY   r^   rc   rq   rv   r
   Úintr„   rª   © r"   r   r   r      s  „ ÚMÐàð"�x  S¡	Ñ*ò "ó ð"ð ð"˜˜c :˜oÑ.ò "ó ð"ð 37ñ"Ø$ T¨#¡YÑ/ð"à	ˆc�3ˆh‰ó"ñ
! h¨t°C©yÑ&9ð !ÀTó !ð ð,�zò ,ó ð,ð ð,�zò ,ó ð,ð ð-˜
ò -ó ð-ð ð-˜
ò -ó ð-ð ð,�zò ,ó ð,ð ð7 *ò 7ó ð7ð ð9 Jò 9ó ð9ð ð8 :ò 8ó ð8ð ð: Zò :ó ð:ð ð ˜Jò  ó ð ð ð!˜Zò !ó ð!ð ð�zò ó ðð ð. *ò .ó ð.ð ð. 
ò .ó ð.ð $(Ø,0Ø-1Ø-1Ø#'Ø $ñà˜Ñ ðð ˜t C™yÑ)ðð    S¡	Ñ*ð	ð
    S¡	Ñ*ðð ˜C‘=ðð ˜‘ðð 
�#‰óð4 $(Ø,0Ø#'Ø-1Ø-1ñ7à˜Ñ ð7ð ˜t C™yÑ)ð7ð ˜C‘=ð	7ð
    S¡	Ñ*ð7ð    S¡	Ñ*ð7ð 
�#‰ô7r"   r   )r˜   r   Úior   Ú	itertoolsr   Útypingr   r   r   r   r	   r
   Ú r   Ú_typingr   r   Úconvertr   r   r   Úobjectr   r±   r"   r   ú<module>r¹      s1   ðÛ 
Û Ý Ý ß 9× 9å ß &ß GÑ Gôo�õ or"   