
    jR                         d dl Zd dl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mZ  ej&                  ej(                  d      Z G d d      Z G d d      Zy)    N   )AsyncClientWrapperSyncClientWrapper)RequestOptions)Result)WorkspaceConfiguration)WorkspaceMetricResponse)WorkspaceMetricsSummaryResponse   )AsyncRawWorkspacesClientRawWorkspacesClient.c                   $   e Zd ZdefdZedefd       Zeeddde	j                  de	j                  d	ej                  ej                  e      d
ej                  e   dej                  e   defdZdddej                  e   defdZeeedddej                  e   dej                  e   dej                  ej*                  eef      dej                  e   def
dZdddej                  e   ddfdZeeddde	j                  de	j                  d	ej                  ej                  e      d
ej                  e   dej                  e   defdZeeddde	j                  de	j                  d	ej                  ej                  e      d
ej                  e   dej                  e   defdZeeddde	j                  de	j                  d	ej                  ej                  e      d
ej                  e   dej                  e   defdZy)WorkspacesClientclient_wrapperc                &    t        |      | _        y N)r   )r   _raw_clientselfr   s     x/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/rest_api/workspaces/client.py__init__zWorkspacesClient.__init__   s    .nM    returnc                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawWorkspacesClient
        r   r   s    r   with_raw_responsez"WorkspacesClient.with_raw_response        r   Nproject_idsstart_before_endrequest_optionsinterval_startinterval_endr    r!   r"   c                Z    | j                   j                  |||||      }|j                  S )a2  
        Get costs summary

        Parameters
        ----------
        interval_start : dt.datetime

        interval_end : dt.datetime

        project_ids : typing.Optional[typing.Sequence[str]]

        start_before_end : typing.Optional[bool]

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

        Returns
        -------
        Result
            Workspace Metrics

        Examples
        --------
        from Opik import OpikApi
        import datetime
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.workspaces.costs_summary(interval_start=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), interval_end=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), )
        r#   r$   r    r!   r"   r   costs_summarydatar   r#   r$   r    r!   r"   	_responses          r   r(   zWorkspacesClient.costs_summary!   s;    J $$22)%#-+ 3 
	 ~~r   r"   c                R    | j                   j                  |      }|j                  S )a  
        Get workspace configuration

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

        Returns
        -------
        WorkspaceConfiguration
            Workspace Configuration

        Examples
        --------
        from Opik import OpikApi
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.workspaces.get_workspace_configuration()
        r,   r   get_workspace_configurationr)   r   r"   r+   s      r   r/   z,WorkspacesClient.get_workspace_configurationO   s(    , $$@@Q`@a	~~r   "timeout_to_mark_thread_as_inactivetruncation_on_tables	color_mapr"   r2   r3   r4   c                X    | j                   j                  ||||      }|j                  S )a  
        Upsert workspace configuration

        Parameters
        ----------
        timeout_to_mark_thread_as_inactive : typing.Optional[str]
            Duration in ISO-8601 format (e.g., PT30M for 30 minutes, PT2H for 2 hours, P1D for 1 day). Minimum precision supported is seconds, please use a duration with seconds precision or higher. Also, the max duration allowed is 7 days.

        truncation_on_tables : typing.Optional[bool]
            Enable or disable data truncation in table views. When disabled, the frontend will limit pagination to prevent performance issues. Default: true (truncation enabled).

        color_map : typing.Optional[typing.Dict[str, str]]
            Workspace-level color map. Maps label names to hex color values (e.g. #FF0000). Max 10000 entries.

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

        Returns
        -------
        WorkspaceConfiguration
            Configuration Updated

        Examples
        --------
        from Opik import OpikApi
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.workspaces.upsert_workspace_configuration()
        r1   r   upsert_workspace_configurationr)   r   r2   r3   r4   r"   r+   s         r   r7   z/WorkspacesClient.upsert_workspace_configurationh   s9    H $$CC/Q!5+	 D 
	 ~~r   c                R    | j                   j                  |      }|j                  S )a  
        Delete workspace configuration

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

        Returns
        -------
        None

        Examples
        --------
        from Opik import OpikApi
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.workspaces.delete_workspace_configuration()
        r,   r   delete_workspace_configurationr)   r0   s      r   r;   z/WorkspacesClient.delete_workspace_configuration   s(    & $$CCTcCd	~~r   c                Z    | j                   j                  |||||      }|j                  S )aJ  
        Get cost daily data

        Parameters
        ----------
        interval_start : dt.datetime

        interval_end : dt.datetime

        project_ids : typing.Optional[typing.Sequence[str]]

        start_before_end : typing.Optional[bool]

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

        Returns
        -------
        WorkspaceMetricResponse
            Workspace cost data by days

        Examples
        --------
        from Opik import OpikApi
        import datetime
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.workspaces.get_cost(interval_start=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), interval_end=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), )
        r&   r   get_costr)   r*   s          r   r>   zWorkspacesClient.get_cost   s;    J $$--)%#-+ . 
	 ~~r   c                Z    | j                   j                  |||||      }|j                  S )aP  
        Get metric daily data

        Parameters
        ----------
        interval_start : dt.datetime

        interval_end : dt.datetime

        project_ids : typing.Optional[typing.Sequence[str]]

        start_before_end : typing.Optional[bool]

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

        Returns
        -------
        WorkspaceMetricResponse
            Workspace metric data by days

        Examples
        --------
        from Opik import OpikApi
        import datetime
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.workspaces.get_metric(interval_start=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), interval_end=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), )
        r&   r   
get_metricr)   r*   s          r   rA   zWorkspacesClient.get_metric   s;    J $$//)%#-+ 0 
	 ~~r   c                Z    | j                   j                  |||||      }|j                  S )aO  
        Get metrics summary

        Parameters
        ----------
        interval_start : dt.datetime

        interval_end : dt.datetime

        project_ids : typing.Optional[typing.Sequence[str]]

        start_before_end : typing.Optional[bool]

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

        Returns
        -------
        WorkspaceMetricsSummaryResponse
            Workspace Metrics

        Examples
        --------
        from Opik import OpikApi
        import datetime
        client = OpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        client.workspaces.metrics_summary(interval_start=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), interval_end=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), )
        r&   r   metrics_summaryr)   r*   s          r   rD   z WorkspacesClient.metrics_summary  s;    J $$44)%#-+ 5 
	 ~~r   )__name__
__module____qualname__r   r   propertyr   r   OMITdtdatetimetypingOptionalSequencestrboolr   r   r(   r   r/   Dictr7   r;   r	   r>   rA   r
   rD    r   r   r   r      s   N*; N  #6     >B26;?, , kk	,
 __V__S%9:, !//$/,  8, 
,^ EI"(//."A	8 DH6:<@;?* -3OOC,@* %ood3	*
 ??6;;sCx#89*  8* 
 *X dh Q_A` lp 6 >B26;?, , kk	,
 __V__S%9:, !//$/,  8, 
!,f >B26;?, , kk	,
 __V__S%9:, !//$/,  8, 
!,f >B26;?, , kk	,
 __V__S%9:, !//$/,  8, 
),r   r   c                   $   e Zd ZdefdZedefd       Zeeddde	j                  de	j                  d	ej                  ej                  e      d
ej                  e   dej                  e   defdZdddej                  e   defdZeeedddej                  e   dej                  e   dej                  ej*                  eef      dej                  e   def
dZdddej                  e   ddfdZeeddde	j                  de	j                  d	ej                  ej                  e      d
ej                  e   dej                  e   defdZeeddde	j                  de	j                  d	ej                  ej                  e      d
ej                  e   dej                  e   defdZeeddde	j                  de	j                  d	ej                  ej                  e      d
ej                  e   dej                  e   defdZy)AsyncWorkspacesClientr   c                &    t        |      | _        y r   )r   r   r   s     r   r   zAsyncWorkspacesClient.__init__6  s    3>Rr   r   c                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawWorkspacesClient
        r   r   s    r   r   z'AsyncWorkspacesClient.with_raw_response9  r   r   Nr   r#   r$   r    r!   r"   c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  
        Get costs summary

        Parameters
        ----------
        interval_start : dt.datetime

        interval_end : dt.datetime

        project_ids : typing.Optional[typing.Sequence[str]]

        start_before_end : typing.Optional[bool]

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

        Returns
        -------
        Result
            Workspace Metrics

        Examples
        --------
        from Opik import AsyncOpikApi
        import datetime
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.workspaces.costs_summary(interval_start=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), interval_end=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), )
        asyncio.run(main())
        r&   Nr'   r*   s          r   r(   z#AsyncWorkspacesClient.costs_summaryD  sI     P **88)%#-+ 9 
 
	 ~~
   $979r,   c                n   K   | j                   j                  |       d{   }|j                  S 7 w)a\  
        Get workspace configuration

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

        Returns
        -------
        WorkspaceConfiguration
            Workspace Configuration

        Examples
        --------
        from Opik import AsyncOpikApi
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.workspaces.get_workspace_configuration()
        asyncio.run(main())
        r,   Nr.   r0   s      r   r/   z1AsyncWorkspacesClient.get_workspace_configurationu  s5     2 **FFWfFgg	~~ h    535r1   r2   r3   r4   c                t   K   | j                   j                  ||||       d{   }|j                  S 7 w)a(  
        Upsert workspace configuration

        Parameters
        ----------
        timeout_to_mark_thread_as_inactive : typing.Optional[str]
            Duration in ISO-8601 format (e.g., PT30M for 30 minutes, PT2H for 2 hours, P1D for 1 day). Minimum precision supported is seconds, please use a duration with seconds precision or higher. Also, the max duration allowed is 7 days.

        truncation_on_tables : typing.Optional[bool]
            Enable or disable data truncation in table views. When disabled, the frontend will limit pagination to prevent performance issues. Default: true (truncation enabled).

        color_map : typing.Optional[typing.Dict[str, str]]
            Workspace-level color map. Maps label names to hex color values (e.g. #FF0000). Max 10000 entries.

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

        Returns
        -------
        WorkspaceConfiguration
            Configuration Updated

        Examples
        --------
        from Opik import AsyncOpikApi
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.workspaces.upsert_workspace_configuration()
        asyncio.run(main())
        r1   Nr6   r8   s         r   r7   z4AsyncWorkspacesClient.upsert_workspace_configuration  sG     N **II/Q!5+	 J 
 
	 ~~
s   #868c                n   K   | j                   j                  |       d{   }|j                  S 7 w)a,  
        Delete workspace configuration

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

        Returns
        -------
        None

        Examples
        --------
        from Opik import AsyncOpikApi
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.workspaces.delete_workspace_configuration()
        asyncio.run(main())
        r,   Nr:   r0   s      r   r;   z4AsyncWorkspacesClient.delete_workspace_configuration  s5     , **IIZiIjj	~~ krZ   c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  
        Get cost daily data

        Parameters
        ----------
        interval_start : dt.datetime

        interval_end : dt.datetime

        project_ids : typing.Optional[typing.Sequence[str]]

        start_before_end : typing.Optional[bool]

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

        Returns
        -------
        WorkspaceMetricResponse
            Workspace cost data by days

        Examples
        --------
        from Opik import AsyncOpikApi
        import datetime
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.workspaces.get_cost(interval_start=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), interval_end=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), )
        asyncio.run(main())
        r&   Nr=   r*   s          r   r>   zAsyncWorkspacesClient.get_cost  sI     P **33)%#-+ 4 
 
	 ~~
rX   c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  
        Get metric daily data

        Parameters
        ----------
        interval_start : dt.datetime

        interval_end : dt.datetime

        project_ids : typing.Optional[typing.Sequence[str]]

        start_before_end : typing.Optional[bool]

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

        Returns
        -------
        WorkspaceMetricResponse
            Workspace metric data by days

        Examples
        --------
        from Opik import AsyncOpikApi
        import datetime
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.workspaces.get_metric(interval_start=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), interval_end=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), )
        asyncio.run(main())
        r&   Nr@   r*   s          r   rA   z AsyncWorkspacesClient.get_metric
  sI     P **55)%#-+ 6 
 
	 ~~
rX   c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  
        Get metrics summary

        Parameters
        ----------
        interval_start : dt.datetime

        interval_end : dt.datetime

        project_ids : typing.Optional[typing.Sequence[str]]

        start_before_end : typing.Optional[bool]

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

        Returns
        -------
        WorkspaceMetricsSummaryResponse
            Workspace Metrics

        Examples
        --------
        from Opik import AsyncOpikApi
        import datetime
        import asyncio
        client = AsyncOpikApi(api_key="YOUR_API_KEY", workspace_name="YOUR_WORKSPACE_NAME", )
        async def main() -> None:
            await client.workspaces.metrics_summary(interval_start=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), interval_end=datetime.datetime.fromisoformat("2024-01-15 09:30:00+00:00", ), )
        asyncio.run(main())
        r&   NrC   r*   s          r   rD   z%AsyncWorkspacesClient.metrics_summary;  sI     P **::)%#-+ ; 
 
	 ~~
rX   )rE   rF   rG   r   r   rH   r   r   rI   rJ   rK   rL   rM   rN   rO   rP   r   r   r(   r   r/   rQ   r7   r;   r	   r>   rA   r
   rD   rR   r   r   rT   rT   5  s   S*< S  #;     >B26;?/ / kk	/
 __V__S%9:/ !//$//  8/ 
/d EI"(//."A	> DH6:<@;?- -3OOC,@- %ood3	-
 ??6;;sCx#89-  8- 
 -^ jn vWeGf rv < >B26;?/ / kk	/
 __V__S%9:/ !//$//  8/ 
!/l >B26;?/ / kk	/
 __V__S%9:/ !//$//  8/ 
!/l >B26;?/ / kk	/
 __V__S%9:/ !//$//  8/ 
)/r   rT   )rK   rJ   rL   core.client_wrapperr   r   core.request_optionsr   types.resultr   types.workspace_configurationr   types.workspace_metric_responser	   (types.workspace_metrics_summary_responser
   
raw_clientr   r   castAnyrI   r   rT   rR   r   r   <module>ri      sS      G 1 ! B E V E v{{6::s#` `F	u ur   