
    %GgW                     `   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	 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 ddlmZ ddlmZ 	 d dlZej2                  j5                  d      red dlmZ  e j<                  e j>                  d      Z  G d d      Z! G d d      Z"y# e$ r d dlZY =w xY w)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)jsonable_encoder)remove_none_from_dict)UnprocessableEntityError)HttpValidationError)Project)ProjectCreate)UsageAndPlanz1..c            	       F   e Zd ZdefdZddddej                  e   dej                  e   dej                  e	   fdZ
dd	dej                  e   d
ede	fdZdd	dej                  e   d
ede	fdZdd	dej                  e   dej                  e   de	fdZdd	dej                  e   dej                  e   dede	fdZdd	dej                  e   dej                  e   ddfdZddddej                  e   dej                  e   dej                  e   defdZy)ProjectsClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     /home/kushmeetdev/apache_webroot/langgraph_flaskproject/venv/lib/python3.12/site-packages/llama_cloud/resources/projects/client.py__init__zProjectsClient.__init__   
    -    Norganization_idproject_namer   r   returnc          	         | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        ||d      | j                   j                         d      }d|j                  cxk  rdk  r<n n9t        j                  t        j                  t           |j                               S |j                  d	k(  r1t!        t        j                  t"        |j                                     	 |j                         }t'        |j                  |
      # t$        $ r" t'        |j                  |j(                  
      w xY w)a]  
        List projects or get one by name

        Parameters:
            - organization_id: typing.Optional[str].

            - project_name: typing.Optional[str].
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.projects.list_projects()
        GET/api/v1/projectsr   <   paramsheaderstimeout   ,    status_codebodyr   httpx_clientrequesturllibparseurljoinget_base_urlr	   get_headersr-   pydanticparse_obj_astypingListr   jsonr
   r   r   r   textr   r   r   	_response_response_jsons        r   list_projectszProjectsClient.list_projects!   s1   $ ((55==LL  D$8$8$E$E$G#H!JL]^(_^j)kl((446 > 
	 )''-#-((W)=y~~?OPP  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   E +E,r   r1   c                   | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        d|i      t        |      | j                   j                         d      }d|j                  cxk  rdk  r+n n(t        j                  t        |j                               S |j                  d	k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |
      # t"        $ r" t%        |j                  |j&                  
      w xY w)a  
        Create a new project.

        Parameters:
            - organization_id: typing.Optional[str].

            - request: ProjectCreate.
        ---
        from llama_cloud import ProjectCreate
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.projects.create_project(
            request=ProjectCreate(
                name="string",
            ),
        )
        POSTr"   r#   r   r$   r&   r;   r'   r(   r)   r*   r+   r,   r   r0   r1   r2   r3   r4   r5   r	   r   r6   r-   r7   r8   r   r;   r
   r   r   r   r<   r   r   r1   r>   r?   s        r   create_projectzProjectsClient.create_projectD   s0   * ((55==LL  D$8$8$E$E$G#H!JL]^(*;_)MN!'*((446 > 
	 )''-#-(()..2BCC  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	S   D9 9+E$c                   | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        d|i      t        |      | j                   j                         d      }d|j                  cxk  rdk  r+n n(t        j                  t        |j                               S |j                  d	k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |
      # t"        $ r" t%        |j                  |j&                  
      w xY w)a-  
        Upsert a project.
        Updates if a project with the same name already exists. Otherwise, creates a new project.

        Parameters:
            - organization_id: typing.Optional[str].

            - request: ProjectCreate.
        ---
        from llama_cloud import ProjectCreate
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.projects.upsert_project(
            request=ProjectCreate(
                name="string",
            ),
        )
        PUTr"   r#   r   r$   rD   r)   r*   r+   r,   rE   rF   s        r   upsert_projectzProjectsClient.upsert_projectk   s0   , ((55==LL  D$8$8$E$E$G#H!JL]^(*;_)MN!'*((446 > 
	 )''-#-(()..2BCC  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	SrH   
project_idc                   | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       t        d|i      | j                   j                         d      }d|j                  cxk  rdk  r+n n(t        j                  t        |j                               S |j                  d	k(  r1t        t        j                  t        |j                                     	 |j                         }t#        |j                  |
      # t         $ r" t#        |j                  |j$                  
      w xY w)aM  
        Get a project by ID.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.projects.get_project()
        r!   r"   api/v1/projects/r   r$   r%   r)   r*   r+   r,   r   r0   r1   r2   r3   r4   r5   r	   r6   r-   r7   r8   r   r;   r
   r   r   r   r<   r   rL   r   r>   r?   s        r   get_projectzProjectsClient.get_project   s1     ((55==LL  D$8$8$E$E$G#H!JN^_i^jLkl(*;_)MN((446 > 
	 )''-#-(()..2BCC  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   D2 2+Enamec          	         | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       t        d|i      t        d|i      | j                   j                         d      }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      # t"        $ r" t%        |j                  |j&                        w xY w)a  
        Update an existing project.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

            - name: str.
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.projects.update_existing_project(
            name="string",
        )
        rJ   r"   rN   r   rR   r$   rD   r)   r*   r+   r,   rE   r   rL   r   rR   r>   r?   s         r   update_existing_projectz&ProjectsClient.update_existing_project   s=   , ((55==LL  D$8$8$E$E$G#H!JN^_i^jLkl(*;_)MN!64.1((446 > 
	 )''-#-(()..2BCC  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   D> >+E)c                n   | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       t        d|i      | j                   j                         d      }d|j                  cxk  rdk  ry	 |j                  d
k(  r1t        t        j                  t        |j                                     	 |j                         }t!        |j                  |      # t        $ r" t!        |j                  |j"                        w xY w)aS  
        Delete a project by ID.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.projects.delete_project()
        DELETEr"   rN   r   r$   r%   r)   r*   Nr+   r,   r   r0   r1   r2   r3   r4   r5   r	   r6   r-   r
   r7   r8   r   r;   r   r   r<   rP   s        r   delete_projectzProjectsClient.delete_project   s     ((55==LL  D$8$8$E$E$G#H!JN^_i^jLkl(*;_)MN((446 > 
	 )''-#- .  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   "D	 	+D4get_current_invoice_totalr   r[   c          	         | j                   j                  j                  dt        j                  j                  | j                   j                          dd| d      t        ||d      | j                   j                         d      }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t        |j                                     	 |j                         }t#        |j                  |      # t         $ r" t#        |j                  |j$                        w xY w)a  
        Get usage for a project

        Parameters:
            - project_id: typing.Optional[str].

            - get_current_invoice_total: typing.Optional[bool].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import LlamaCloud

        client = LlamaCloud(
            token="YOUR_TOKEN",
        )
        client.projects.get_project_usage()
        r!   r"   rN   /usagerZ   r$   r%   r)   r*   r+   r,   r   r0   r1   r2   r3   r4   r5   r	   r6   r-   r7   r8   r   r;   r
   r   r   r   r<   r   rL   r[   r   r>   r?   s         r   get_project_usagez ProjectsClient.get_project_usage   s9   0 ((55==LL  D$8$8$E$E$G#H!JN^_i^jjpLqr(.G\kl ((446 > 
	 )''-#-((y~~7GHH  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN  	Sy'<'<9>>RR	Ss   D4 4+E)__name__
__module____qualname__r   r   r9   Optionalstrr:   r   r@   r   rG   rK   rQ   rU   rY   boolr   r`    r   r   r   r      s   .*; . :>dh!O"(//#"6!OMS__]`Ma!O	W	!OF IM %O1E %OWd %Oip %ON IM &O1E &OWd &Oip &OP hl Ofooc&: OPVP_P_`cPd Opw OD \`&O //#.&ODJOOTWDX&Ogj&O	&OP ko O)= OSYSbSbcfSg Osw OJ <@04)OOOC()O $*??4#8	)O
  -)O 
)Or   r   c            	       F   e Zd ZdefdZddddej                  e   dej                  e   dej                  e	   fdZ
dd	dej                  e   d
ede	fdZdd	dej                  e   d
ede	fdZdd	dej                  e   dej                  e   de	fdZdd	dej                  e   dej                  e   dede	fdZdd	dej                  e   dej                  e   ddfdZddddej                  e   dej                  e   dej                  e   defdZy)AsyncProjectsClientr   c                    || _         y r   r   r   s     r   r   zAsyncProjectsClient.__init__*  r   r   Nr   r   r   r   c          	        K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        ||d      | j                   j                         d       d{   }d|j                  cxk  rd	k  r<n n9t        j                  t        j                  t           |j                               S |j                  d
k(  r1t!        t        j                  t"        |j                                     	 |j                         }t'        |j                  |      7 # t$        $ r" t'        |j                  |j(                        w xY ww)am  
        List projects or get one by name

        Parameters:
            - organization_id: typing.Optional[str].

            - project_name: typing.Optional[str].
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.projects.list_projects()
        r!   r"   r#   r   r$   r%   Nr)   r*   r+   r,   r/   r=   s        r   r@   z!AsyncProjectsClient.list_projects-  s?    $ ..;;CCLL  D$8$8$E$E$G#H!JL]^(_^j)kl((446 D 
 
	 )''-#-((W)=y~~?OPP  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN
  	Sy'<'<9>>RR	Ss+   BE;EBE;$E 4E;+E88E;rA   r1   c                  K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        d|i      t        |      | j                   j                         d       d{   }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      7 # t"        $ r" t%        |j                  |j&                        w xY ww)a  
        Create a new project.

        Parameters:
            - organization_id: typing.Optional[str].

            - request: ProjectCreate.
        ---
        from llama_cloud import ProjectCreate
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.projects.create_project(
            request=ProjectCreate(
                name="string",
            ),
        )
        rC   r"   r#   r   r$   rD   Nr)   r*   r+   r,   rE   rF   s        r   rG   z"AsyncProjectsClient.create_projectP  s>    * ..;;CCLL  D$8$8$E$E$G#H!JL]^(*;_)MN!'*((446 D 
 
	 )''-#-(()..2BCC  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN!
  	Sy'<'<9>>RR	S+   BE3EBE3E ,E3+E00E3c                  K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd      t        d|i      t        |      | j                   j                         d       d{   }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      7 # t"        $ r" t%        |j                  |j&                        w xY ww)a=  
        Upsert a project.
        Updates if a project with the same name already exists. Otherwise, creates a new project.

        Parameters:
            - organization_id: typing.Optional[str].

            - request: ProjectCreate.
        ---
        from llama_cloud import ProjectCreate
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.projects.upsert_project(
            request=ProjectCreate(
                name="string",
            ),
        )
        rJ   r"   r#   r   r$   rD   Nr)   r*   r+   r,   rE   rF   s        r   rK   z"AsyncProjectsClient.upsert_projectw  s>    , ..;;CCLL  D$8$8$E$E$G#H!JL]^(*;_)MN!'*((446 D 
 
	 )''-#-(()..2BCC  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN!
  	Sy'<'<9>>RR	Srm   rL   c                  K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       t        d|i      | j                   j                         d       d{   }d|j                  cxk  rd	k  r+n n(t        j                  t        |j                               S |j                  d
k(  r1t        t        j                  t        |j                                     	 |j                         }t#        |j                  |      7 # t         $ r" t#        |j                  |j$                        w xY ww)a]  
        Get a project by ID.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.projects.get_project()
        r!   r"   rN   r   r$   r%   Nr)   r*   r+   r,   rO   rP   s        r   rQ   zAsyncProjectsClient.get_project  s?    $ ..;;CCLL  D$8$8$E$E$G#H!JN^_i^jLkl(*;_)MN((446 D 
 
	 )''-#-(()..2BCC  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN
  	Sy'<'<9>>RR	Ss+   BE,D<BE,D> %E,>+E))E,rR   c          	        K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       t        d|i      t        d|i      | j                   j                         d       d{   }d	|j                  cxk  rd
k  r+n n(t        j                  t        |j                               S |j                  dk(  r1t        t        j                  t         |j                                     	 |j                         }t%        |j                  |      7 # t"        $ r" t%        |j                  |j&                        w xY ww)a  
        Update an existing project.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].

            - name: str.
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.projects.update_existing_project(
            name="string",
        )
        rJ   r"   rN   r   rR   r$   rD   Nr)   r*   r+   r,   rE   rT   s         r   rU   z+AsyncProjectsClient.update_existing_project  sK    , ..;;CCLL  D$8$8$E$E$G#H!JN^_i^jLkl(*;_)MN!64.1((446 D 
 
	 )''-#-(()..2BCC  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN!
  	Sy'<'<9>>RR	Ss+   BE8EBE8!E
 1E8
+E55E8c                  K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd|       t        d|i      | j                   j                         d       d{   }d|j                  cxk  rd	k  ry |j                  d
k(  r1t        t        j                  t        |j                                     	 |j                         }t!        |j                  |      7 # t        $ r" t!        |j                  |j"                        w xY ww)ac  
        Delete a project by ID.

        Parameters:
            - project_id: typing.Optional[str].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.projects.delete_project()
        rW   r"   rN   r   r$   r%   Nr)   r*   r+   r,   rX   rP   s        r   rY   z"AsyncProjectsClient.delete_project  s-    $ ..;;CCLL  D$8$8$E$E$G#H!JN^_i^jLkl(*;_)MN((446 D 
 
	 )''-#- .  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN
  	Sy'<'<9>>RR	Ss+   BEDAE,D <E+E  ErZ   r[   c          	        K   | j                   j                  j                  dt        j                  j                  | j                   j                          dd| d      t        ||d      | j                   j                         d       d{   }d	|j                  cxk  rd
k  r+n n(t        j                  t        |j                               S |j                  dk(  r1t        t        j                  t        |j                                     	 |j                         }t#        |j                  |      7 # t         $ r" t#        |j                  |j$                        w xY ww)a  
        Get usage for a project

        Parameters:
            - project_id: typing.Optional[str].

            - get_current_invoice_total: typing.Optional[bool].

            - organization_id: typing.Optional[str].
        ---
        from llama_cloud.client import AsyncLlamaCloud

        client = AsyncLlamaCloud(
            token="YOUR_TOKEN",
        )
        await client.projects.get_project_usage()
        r!   r"   rN   r]   rZ   r$   r%   Nr)   r*   r+   r,   r^   r_   s         r   r`   z%AsyncProjectsClient.get_project_usage  sG    0 ..;;CCLL  D$8$8$E$E$G#H!JN^_i^jjpLqr(.G\kl ((446 D 
 
	 )''-#-((y~~7GHH  C'*8+@+@ATV_VdVdVf+ghh	S&^^-N 9#8#8~NN#
  	Sy'<'<9>>RR	Ss+   BE.D>BE.E  'E. +E++E.)ra   rb   rc   r   r   r9   rd   re   r:   r   r@   r   rG   rK   rQ   rU   rY   rf   r   r`   rg   r   r   ri   ri   )  s   .*< . :>dh!O"(//#"6!OMS__]`Ma!O	W	!OF OS %Ovs7K %O]j %Oov %ON OS &Ovs7K &O]j &Oov &OR \`!O //#.!ODJOOTWDX!O	!OH \`&O //#.&ODJOOTWDX&Ogj&O	&OR \`!O //#.!ODJOOTWDX!O	!ON <@04)OOOC()O $*??4#8	)O
  -)O 
)Or   ri   )#r9   urllib.parser2   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.jsonable_encoderr   core.remove_none_from_dictr	   !errors.unprocessable_entity_errorr
   types.http_validation_errorr   types.projectr   types.project_creater   types.usage_and_planr   r7   __version__
startswithImportErrorpydantic.v1v1castAnyOMITr   ri   rg   r   r   <module>r      s      ( & H 5 ? I > $ 1 0&&t,"
 v{{6::s#IO IOXMO MOg  s   'B! !	B-,B-