
    @'h	                     `   d dl 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	m
Z
mZ d dlmZ deded	e j                  fd
Zdee j                     d	e
fdZ e j$                          e j&                  dd e j
                  de             e j(                  d e j
                  e      d       e j(                  ddd       eej*                  j-                         D  cg c]  \  } }| dvr	 e| |       c}}       de	d	dfd                                   Zedk(  r e        yyc c}} w )    N)Enum)Path)	FieldInfo)AnyCallableList)
LlamaParsenamefieldreturnc                 X   |j                   r|j                   nd|j                  d}t        |d   t              r|d   j                  |d<   |j
                  t        u r$d|d<   |j                   r|j                   du rd|  } t        j                  d| j                  dd	       fi |S )
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      j/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/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                 ,     dt         dt         f fd}|S )Nfuncr   c                 8    t              D ]
  } ||       }  | S )N)reversed)r!   r   r   s     r   _add_optionsz!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            	      ,   | j                  d      }| j                  d      }| j                  d      }| j                         D ci c]  \  }}|	|| } }}| j                         D ci c]  \  }}|j                  dd      | } }}t        di | }|r{|j	                  t        |            }|rI|j                  d      5 }t        j                  ||       ddd       t        j                  d|        yt        j                  |       y|j                  t        |            }|r|j                  d      5 }t        |      D ]r  \  }	}
|j                  d	|
j                  j                  d
d       d       |j                  |
j                          |	t#        |      dz
  k  sb|j                  d       t 	 ddd       t        j                  d|        yt        |      D ]}  \  }	}
t        j                  d	|
j                  j                  d
d              t        j                  |
j                          |	t#        |      dz
  k  sit        j                  d        yc c}}w c c}}w # 1 sw Y   xY w# 1 sw Y   xY w)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.   r/   kvparserresultsfidocs              r   parserN   %   s5    L)J**]+Kjj!23O  &||~?tq!ad?F? 39,,.A$!Qaiir"A%AFA!&!F((j)9:!!#& &!		'1%&JJ*;-89JJw""4
#34!!#& /!'0 /FAsGGfS\\%5%5k9%M$NbQRGGCHH%3w<!++.	// JJ*;-89#G, *3

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

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