
     jV                         d dl Z ddlmZ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  e j        e j        d          Z G d d          Z G d d          ZdS )    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions   )AsyncRawProjectsClientRawProjectsClient)ApiKeyDeletionResponse)
ApiKeyList)ApiKeyResponse)Project)ProjectDeletionResponse)Projects.c                   ~   e Zd ZdefdZedefd            Zdddej	        e
         defdZedd	d
ededej	        ej        eej        f                  dej	        e
         def
dZeeddded
edej	        ej        eej        f                  dej	        e         dej	        e
         defdZdddedej	        e
         defdZdddedej	        e
         defdZeeedddedej	        e         dej	        e         dej	        e         dej	        e
         defdZdddededej	        e
         defdZdS )ProjectsClientclient_wrapperc                0    t          |          | _        d S N)r   )r	   _raw_clientselfr   s     f/lsinfo/ai/hellotax_ai/base_platform/venv/lib/python3.11/site-packages/langfuse/api/projects/client.py__init__zProjectsClient.__init__   s    ,NKKK    returnc                     | j         S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawProjectsClient
        r   r   s    r   with_raw_responsez ProjectsClient.with_raw_response        r   Nrequest_optionsr"   c                F    | j                             |          }|j        S )aU  
        Get Project associated with API key (requires project-scoped API key). You can use GET /api/public/organizations/projects to get all projects with an organization-scoped key.

        Parameters
        ----------
        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Projects

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.projects.get()
        r!   r   getdatar   r"   	_responses      r   r%   zProjectsClient.get"   s%    : $(((II	~r   metadatar"   name	retentionr*   c                L    | j                             ||||          }|j        S )aH  
        Create a new project (requires organization-scoped API key)

        Parameters
        ----------
        name : str

        retention : int
            Number of days to retain data. Must be 0 or at least 3 days. Requires data-retention entitlement for non-zero values. Optional.

        metadata : typing.Optional[typing.Dict[str, typing.Any]]
            Optional metadata for the project

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Project

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.projects.create(
            name="name",
            retention=1,
        )
        r+   r,   r*   r"   r   creater&   r   r+   r,   r*   r"   r(   s         r   r0   zProjectsClient.createB   s8    Z $+++	 , 
 
	 ~r   r*   r,   r"   
project_idc                N    | j                             |||||          }|j        S )a  
        Update a project by ID (requires organization-scoped API key).

        Parameters
        ----------
        project_id : str

        name : str

        metadata : typing.Optional[typing.Dict[str, typing.Any]]
            Optional metadata for the project

        retention : typing.Optional[int]
            Number of days to retain data.
            Must be 0 or at least 3 days.
            Requires data-retention entitlement for non-zero values.
            Optional. Will retain existing retention setting if omitted.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Project

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.projects.update(
            project_id="projectId",
            name="name",
        )
        r+   r*   r,   r"   r   updater&   r   r3   r+   r*   r,   r"   r(   s          r   r7   zProjectsClient.updatew   s;    f $+++ , 
 
	 ~r   c                H    | j                             ||          }|j        S )al  
        Delete a project by ID (requires organization-scoped API key). Project deletion is processed asynchronously.

        Parameters
        ----------
        project_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ProjectDeletionResponse

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.projects.delete(
            project_id="projectId",
        )
        r!   r   deleter&   r   r3   r"   r(   s       r   r;   zProjectsClient.delete   s(    H $++J+XX	~r   c                H    | j                             ||          }|j        S )a>  
        Get all API keys for a project (requires organization-scoped API key)

        Parameters
        ----------
        project_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ApiKeyList

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.projects.get_api_keys(
            project_id="projectId",
        )
        r!   r   get_api_keysr&   r<   s       r   r?   zProjectsClient.get_api_keys   s1    H $11 2 
 
	 ~r   note
public_key
secret_keyr"   rA   rB   rC   c                N    | j                             |||||          }|j        S )a  
        Create a new API key for a project (requires organization-scoped API key)

        Parameters
        ----------
        project_id : str

        note : typing.Optional[str]
            Optional note for the API key

        public_key : typing.Optional[str]
            Optional predefined public key. Must start with 'pk-lf-'. If provided, secretKey must also be provided.

        secret_key : typing.Optional[str]
            Optional predefined secret key. Must start with 'sk-lf-'. If provided, publicKey must also be provided.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ApiKeyResponse

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.projects.create_api_key(
            project_id="projectId",
        )
        r@   r   create_api_keyr&   r   r3   rA   rB   rC   r"   r(   s          r   rF   zProjectsClient.create_api_key  s;    ` $33!!+ 4 
 
	 ~r   
api_key_idc                J    | j                             |||          }|j        S )a  
        Delete an API key for a project (requires organization-scoped API key)

        Parameters
        ----------
        project_id : str

        api_key_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ApiKeyDeletionResponse

        Examples
        --------
        from langfuse import LangfuseAPI

        client = LangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )
        client.projects.delete_api_key(
            project_id="projectId",
            api_key_id="apiKeyId",
        )
        r!   r   delete_api_keyr&   r   r3   rH   r"   r(   s        r   rK   zProjectsClient.delete_api_key<  s3    P $33
O 4 
 
	 ~r   )__name__
__module____qualname__r   r   propertyr	   r   typingOptionalr   r   r%   OMITstrintDictAnyr   r0   r7   r   r;   r   r?   r   rF   r
   rK    r   r   r   r      s       L*; L L L L  #4       X  EI  "(/."A	   J CG;?3 3 3 3 	3
 /&+c6:o">?3  83 
3 3 3 3t CG*.;?: : :: 	:
 /&+c6:o">?: ?3':  8: 
: : : :@ <@	% % %%  8	%
 
!% % % %V <@	' ' ''  8	'
 
' ' ' 'Z &*+/+/;?7 7 77 oc"	7
 OC(7 OC(7  87 
7 7 7 7| <@+ + ++ +
  8+ 
 + + + + + +r   r   c                   ~   e Zd ZdefdZedefd            Zdddej	        e
         defdZedd	d
ededej	        ej        eej        f                  dej	        e
         def
dZeeddded
edej	        ej        eej        f                  dej	        e         dej	        e
         defdZdddedej	        e
         defdZdddedej	        e
         defdZeeedddedej	        e         dej	        e         dej	        e         dej	        e
         defdZdddededej	        e
         defdZdS )AsyncProjectsClientr   c                0    t          |          | _        d S r   )r   r   r   s     r   r   zAsyncProjectsClient.__init__k  s    1PPPr   r   c                     | j         S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawProjectsClient
        r   r   s    r   r   z%AsyncProjectsClient.with_raw_responsen  r    r   Nr!   r"   c                V   K   | j                             |           d{V }|j        S )a  
        Get Project associated with API key (requires project-scoped API key). You can use GET /api/public/organizations/projects to get all projects with an organization-scoped key.

        Parameters
        ----------
        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Projects

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.projects.get()


        asyncio.run(main())
        r!   Nr$   r'   s      r   r%   zAsyncProjectsClient.gety  s<      J *...OOOOOOOO	~r   r)   r+   r,   r*   c                \   K   | j                             ||||           d{V }|j        S )a  
        Create a new project (requires organization-scoped API key)

        Parameters
        ----------
        name : str

        retention : int
            Number of days to retain data. Must be 0 or at least 3 days. Requires data-retention entitlement for non-zero values. Optional.

        metadata : typing.Optional[typing.Dict[str, typing.Any]]
            Optional metadata for the project

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Project

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.projects.create(
                name="name",
                retention=1,
            )


        asyncio.run(main())
        r.   Nr/   r1   s         r   r0   zAsyncProjectsClient.create  sZ      j *11+	 2 
 
 
 
 
 
 
 
	 ~r   r2   r3   c                ^   K   | j                             |||||           d{V }|j        S )aR  
        Update a project by ID (requires organization-scoped API key).

        Parameters
        ----------
        project_id : str

        name : str

        metadata : typing.Optional[typing.Dict[str, typing.Any]]
            Optional metadata for the project

        retention : typing.Optional[int]
            Number of days to retain data.
            Must be 0 or at least 3 days.
            Requires data-retention entitlement for non-zero values.
            Optional. Will retain existing retention setting if omitted.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        Project

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.projects.update(
                project_id="projectId",
                name="name",
            )


        asyncio.run(main())
        r5   Nr6   r8   s          r   r7   zAsyncProjectsClient.update  s]      v *11+ 2 
 
 
 
 
 
 
 
	 ~r   c                X   K   | j                             ||           d{V }|j        S )a  
        Delete a project by ID (requires organization-scoped API key). Project deletion is processed asynchronously.

        Parameters
        ----------
        project_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ProjectDeletionResponse

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.projects.delete(
                project_id="projectId",
            )


        asyncio.run(main())
        r!   Nr:   r<   s       r   r;   zAsyncProjectsClient.delete"  sS      X *11 2 
 
 
 
 
 
 
 
	 ~r   c                X   K   | j                             ||           d{V }|j        S )a  
        Get all API keys for a project (requires organization-scoped API key)

        Parameters
        ----------
        project_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ApiKeyList

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.projects.get_api_keys(
                project_id="projectId",
            )


        asyncio.run(main())
        r!   Nr>   r<   s       r   r?   z AsyncProjectsClient.get_api_keysS  sS      X *77 8 
 
 
 
 
 
 
 
	 ~r   r@   rA   rB   rC   c                ^   K   | j                             |||||           d{V }|j        S )aK  
        Create a new API key for a project (requires organization-scoped API key)

        Parameters
        ----------
        project_id : str

        note : typing.Optional[str]
            Optional note for the API key

        public_key : typing.Optional[str]
            Optional predefined public key. Must start with 'pk-lf-'. If provided, secretKey must also be provided.

        secret_key : typing.Optional[str]
            Optional predefined secret key. Must start with 'sk-lf-'. If provided, publicKey must also be provided.

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ApiKeyResponse

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.projects.create_api_key(
                project_id="projectId",
            )


        asyncio.run(main())
        r@   NrE   rG   s          r   rF   z"AsyncProjectsClient.create_api_key  s]      p *99!!+ : 
 
 
 
 
 
 
 
	 ~r   rH   c                Z   K   | j                             |||           d{V }|j        S )a  
        Delete an API key for a project (requires organization-scoped API key)

        Parameters
        ----------
        project_id : str

        api_key_id : str

        request_options : typing.Optional[RequestOptions]
            Request-specific configuration.

        Returns
        -------
        ApiKeyDeletionResponse

        Examples
        --------
        import asyncio

        from langfuse import AsyncLangfuseAPI

        client = AsyncLangfuseAPI(
            x_langfuse_sdk_name="YOUR_X_LANGFUSE_SDK_NAME",
            x_langfuse_sdk_version="YOUR_X_LANGFUSE_SDK_VERSION",
            x_langfuse_public_key="YOUR_X_LANGFUSE_PUBLIC_KEY",
            username="YOUR_USERNAME",
            password="YOUR_PASSWORD",
            base_url="https://yourhost.com/path/to/api",
        )


        async def main() -> None:
            await client.projects.delete_api_key(
                project_id="projectId",
                api_key_id="apiKeyId",
            )


        asyncio.run(main())
        r!   NrJ   rL   s        r   rK   z"AsyncProjectsClient.delete_api_key  sU      ` *99
O : 
 
 
 
 
 
 
 
	 ~r   )rM   rN   rO   r   r   rP   r   r   rQ   rR   r   r   r%   rS   rT   rU   rV   rW   r   r0   r7   r   r;   r   r?   r   rF   r
   rK   rX   r   r   rZ   rZ   j  s       Q*< Q Q Q Q  #9       X  EI& & &"(/."A&	& & & &Z CG;?; ; ; ; 	;
 /&+c6:o">?;  8; 
; ; ; ;D CG*.;?B B BB 	B
 /&+c6:o">?B ?3'B  8B 
B B B BP <@	/ / //  8	/
 
!/ / / /j <@	/ / //  8	/
 
/ / / /j &*+/+/;?? ? ?? oc"	?
 OC(? OC(?  8? 
? ? ? ?L <@3 3 33 3
  83 
 3 3 3 3 3 3r   rZ   )rQ   core.client_wrapperr   r   core.request_optionsr   
raw_clientr   r	   types.api_key_deletion_responser
   types.api_key_listr   types.api_key_responser   types.projectr   types.project_deletion_responser   types.projectsr   castrW   rS   r   rZ   rX   r   r   <module>rn      sB    G G G G G G G G 1 1 1 1 1 1 A A A A A A A A C C C C C C * * * * * * 2 2 2 2 2 2 " " " " " " D D D D D D $ $ $ $ $ $ v{6:s##T T T T T T T Tn
N N N N N N N N N Nr   