
    i	                     T   S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	J
r
Jr  S SKJr  S\S\S	\ R                  4S
 jrS\\ R                     S	\
4S jr\ R$                  " 5       \ R&                  " SS\ R
                  " S\S9S9\ R(                  " S\ R
                  " \S9SS9\ R(                  " SSSS9\" \R*                  R-                  5        V Vs/ s H  u  pU S;  d  M  \" X5      PM     snn 5      S\	S	S4S j5       5       5       5       5       r\S:X  a  \" 5         ggs  snn f )    N)Enum)Path)	FieldInfo)AnyCallableList)
LlamaParsenamefieldreturnc                 |   UR                   (       a  UR                   OSUR                  S.n[        US   [        5      (       a  US   R                  US'   UR
                  [        L a*  SUS'   UR                   (       a  UR                   SL a  SU  3n [        R                  " SU R                  SS	5       340 UD6$ )
z+Convert a Pydantic field to a Click option.N)defaulthelpr   Tis_flagzno-z--_-)
r   description
isinstancer   value
annotationboolclickoptionreplace)r
   r   kwargss      ]/home/james-whalen/.local/lib/python3.13/site-packages/llama_cloud_services/parse/cli/main.pypydantic_field_to_click_optionr      s     %*MM5==t!!F
 &#T**"9-33y4 y==U]]d2<D<<"T\\#s345@@@    optionsc                 0   ^  S[         S[         4U 4S jjnU$ )Nfuncr   c                 <   > [        T5       H  nU" U 5      n M     U $ )N)reversed)r!   r   r   s     r   _add_options!add_options.<locals>._add_options   s     w'F$<D (r   )r   )r   r$   s   ` r   add_optionsr&      s    8  
 r   
file_pathsT)exists	path_type)nargstypez--output-file)r*   zPath to save the output)r,   r   z--output-raw-jsonzOutput the raw JSON result)r   r   )custom_clientr   c            	      ~   U R                  S5      nU R                  S5      nU R                  S5      nU R                  5        VVs0 s H  u  pEUc  M
  XE_M     n nnU R                  5        VVs0 s H  u  pEUR                  SS5      U_M     n nn[        S0 U D6nU(       a  UR	                  [        U5      5      nU(       aJ  UR                  S5       n[        R                  " Xx5        SSS5        [        R                  " SU 35        g[        R                  " U5        gUR                  [        U5      5      nU(       a  UR                  S5       n[        U5       Ht  u  pUR                  S	U
R                  R                  S
S5       S35        UR                  U
R                   5        U	[#        U5      S-
  :  d  Mc  UR                  S5        Mv     SSS5        [        R                  " SU 35        g[        U5       H  u  p[        R                  " S	U
R                  R                  S
S5       35        [        R                  " U
R                   5        U	[#        U5      S-
  :  d  Ml  [        R                  " S5        M     gs  snnf s  snnf ! , (       d  f       GN= f! , (       d  f       N= f)z4Parse files using LlamaParse and output the results.r'   output_fileoutput_raw_jsonNno_ wzResults saved to zFile: 	file_pathUnknown
   z

---

z
---
 )popitemsr   r	   get_json_resultlistopenjsondumpr   echo	load_data	enumeratewritemetadatagettextlen)r   r'   r/   r0   kvparserresultsfidocs              r   parserO   %   s    L)J**]+Kjj!23O  &||~?~tqdad~F? 39,,.A.$!aiir"A%.FA!&!F((j)9:!!#&!		'% 'JJ*;-89JJw""4
#34!!#&!'0FAGGfS\\%5%5k9%M$NbQRGGCHH%3w<!++.	 1 ' JJ*;-89#G,

VCLL$4$4[)$L#MNO

388$s7|a''JJy)	 -7 @ B '& '&s1   	JJ0JJA+J.J.
J+.
J<__main__)r   r>   enumr   pathlibr   pydantic.fieldsr   typingr   r   r   llama_cloud_services.parse.baser	   strOptionr   r&   commandargumentr   model_fieldsr:   rO   __name__)r
   r   s   00r   <module>r\      sG       % & & 6A AY A5<< A"ell+   BUZZtt-TU%**t4;T !46RS &2288::KD(( 	4&t3:&*C &*D &* T V &*R z	G _s   D$%D$