
    Eh$                         d dl Z d dlZd dlmZ d dlmZmZ d dlZd dlZd dl	Z	d dl
Z
 G d de	j                        Zd Zd Zd Zd	 Zd
 Zedk(  r e        yy)    N)chain)DecimalROUND_HALF_UPc                        e Zd Z fdZ xZS )DecimalEncoderc                     t        |t              r)t        |j                  t        d      t                    S t
        t        |   |      S )Nz.0001)rounding)
isinstancer   floatquantizer   superr   default)selfo	__class__s     O/var/www/html/bid_assistant/venv/lib/python3.12/site-packages/pdfplumber/cli.pyr   zDecimalEncoder.default   s<    a!GG$4}MNN^T2155    )__name__
__module____qualname__r   __classcell__)r   s   @r   r   r      s    6 6r   r   c           
      ~    d| v r.t        t        t        t        | j	                  d                   S t        |       gS )N-)listrangemapintsplit)p_strs    r   parse_page_specr       s5    
e|E3sEKK$45677u:
r   c                  2   t        j                  d      } t        j                  d   dk\  rt        j                  j
                  nt        j                  }| j                  ddt        j                  d      |       | j                  dd	d
gd	       | j                  dd       | j                  ddg dg d       | j                  ddt               | j                         }|j                  d k7  r t        t        |j                         |_
        |S )N
pdfplumberr      infile?rb)nargstyper   z--formatcsvjson)choicesr   z
--encodingutf-8)r   z--types+)charannolinerect	rect_edge)r.   r/   r0   r1   )r'   r+   r   z--pages)r'   r(   )argparseArgumentParsersysversion_infostdinbufferadd_argumentFileTyper    
parse_argspagesr   r   )parserr7   argss      r   r;   r;      s   $$\2F!$!1!1!!4!9SYYsyyE
t$   
      	?2  4 	   DzzT%,-
Kr   c           	         g }t               }|D ]M  }t        | |dz         }t        |      s||z  }|j                  t        |d   j	                                     }O g d}|t        t        t        |      t        |      z
              z   }t        j                  d   dk\  rt        j                  j                  nt        j                  }	t        j                  |	||      }
|
j                          |
j                  |       y )Nsr   )object_typepage_numberx0x1y0y1doctoptopbottomwidthheightr#   )
fieldnamesencoding)setgetattrlenunionkeysr   sortedr5   r6   stdoutr8   
unicodecsv
DictWriterwriteheader	writerows)pdftypesrM   objsfieldstnew_objsfirst_columnscolsrT   ws              r   to_csvrb   1   s    DUF ;3C(x=HD\\#hqk&6&6&8"9:F	;M 4s6{S5G'G HIID#&#3#3A#6!#;cjjFf(	,AMMOKKr   c                    d| j                   i}fd}t        t        || j                              |d<   t	        t
        j                  d      rh t        j                  d      t
        j                  j                  d      t
        _        t        j                  |t
        j                  t               y t        j                  |t
        j                  t        |       y )	Nmetadatac                 n     t         fdD              } j                  |d<    j                  |d<   |S )Nc              3   F   K   | ]  }|d z   t        |d z         f  yw)r@   N)rO   ).0r]   pages     r   	<genexpr>z1to_json.<locals>.get_page_data.<locals>.<genexpr>L   s-       c'74S12 s   !rJ   rK   )dictrJ   rK   )rh   drZ   s   ` r   get_page_datazto_json.<locals>.get_page_dataK   s9      ZZ'
kk(r   r<   r8   r,   strict)cls)rn   rM   )rd   r   r   r<   hasattrr5   rT   codecs	getwriterr8   r*   dumpr   )rY   rZ   rM   datarl   s    `   r   to_jsonrt   H   s    'D ]CII67DMszz8$.V%%g.szz/@/@(K
		$

7		$

Jr   c                     t               } t        j                  | j                  | j                        }| j
                  dk(  r"t        || j                  | j                         y t        || j                  | j                         y )N)r<   r)   )
r;   r"   loadr$   r<   formatrb   rZ   rM   rt   )r>   rY   s     r   mainrx   Z   sU    <D
//$++TZZ
8C{{esDJJ.TZZ/r   __main__)r"   r3   	itertoolsr   decimalr   r   rU   rp   r*   r5   JSONEncoderr   r    r;   rb   rt   rx   r    r   r   <module>r~      s]       *    
6T%% 6 
6.K$0 zF r   