
    j!f                     B   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	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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 jJ                  e jL                  d      Z' G d d      Z( G d d      Z)y)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)jsonable_encoder)parse_obj_as)RequestOptions)ConflictError)NotFoundError)DashboardPagePublic)DashboardPublic)JsonNodePublic)JsonNodeWrite   )DashboardUpdatePublicScope)DashboardUpdatePublicType)DashboardWriteScope)DashboardWriteType.c                      e Zd ZdefdZdddddddddej                  e   dej                  e   dej                  e   dej                  e   d	ej                  e   d
ej                  e   dej                  e	   de
e   fdZeeeeedddededej                  e   dej                  e   dej                  e   dej                  e   dej                  e   dej                  e	   de
e   fdZdddedej                  e	   de
e   fdZdddedej                  e	   de
d   fdZee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j                  e   dej                  e	   de
e   fdZdddej2                  e   dej                  e	   de
d   fdZy)RawDashboardsClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     |/Users/manta/Documents/Projects/TheRoad-I1/backend/.venv/lib/python3.12/site-packages/opik/rest_api/dashboards/raw_client.py__init__zRawDashboardsClient.__init__   
    -    Npagesizename
project_idsortingfiltersrequest_optionsr&   r'   r(   r)   r*   r+   r,   returnc                   | j                   j                  j                  dd||||||d|      }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }	t        ||	      S |j                         }
t        |j                  t        |j                        |
	      # t        $ r6 t        |j                  t        |j                        |j                  	      w xY w)
a  
        Find dashboards in a workspace

        Parameters
        ----------
        page : typing.Optional[int]

        size : typing.Optional[int]

        name : typing.Optional[str]

        project_id : typing.Optional[str]

        sorting : typing.Optional[str]

        filters : typing.Optional[str]

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

        Returns
        -------
        HttpResponse[DashboardPagePublic]
            Dashboard page
        v1/private/dashboardsGETr&   r'   r(   r)   r*   r+   methodparamsr,      ,  type_object_responsedatastatus_codeheadersbody)r   httpx_clientrequestr>   typingcastr   r   jsonr	   r   r   dictr?   textr    r&   r'   r(   r)   r*   r+   r,   	_response_data_response_jsons              r!   find_dashboardsz#RawDashboardsClient.find_dashboards   s    H ((55==#("" , > 
		ti++1c1' 1 ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AC	 C	 	?Dr)   project_nametypescopedescriptionr,   configrN   rO   rP   rQ   c                (   | j                   j                  j                  dd|||||||dddi|t              }		 d|	j                  cxk  rdk  rGn nDt        j                  t        t        t        |	j                         	            }
t        |	|

      S |	j                         }t        |	j                  t        |	j                        |      # t        $ r6 t        |	j                  t        |	j                        |	j                        w xY w)a  
        Create a new dashboard in a workspace

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

        config : JsonNodeWrite

        project_id : typing.Optional[str]
            Project ID. Takes precedence over project_name when both are provided.

        project_name : typing.Optional[str]
            For project scope, specify either project_id or project_name. If project_name is provided and the project does not exist, it will be created. Ignored when project_id is provided. If neither is provided, the dashboard is created at workspace level.

        type : typing.Optional[DashboardWriteType]

        scope : typing.Optional[DashboardWriteScope]

        description : typing.Optional[str]

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

        Returns
        -------
        HttpResponse[DashboardPublic]
            Created
        r/   POSTr)   rN   r(   rO   rP   rQ   rR   content-typeapplication/jsonr3   rE   r?   r,   omitr5   r6   r7   r:   r=   )r   rA   rB   OMITr>   rC   rD   r   r   rE   r	   r   r   rF   r?   rG   r    r(   rR   r)   rN   rO   rP   rQ   r,   rI   rJ   rK   s               r!   create_dashboardz$RawDashboardsClient.create_dashboard_   s   R ((55==#( ,*   2 ,! > 
	$	ti++1c1# - ) 0 $YUCC&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AC C ?Dr,   dashboard_idc                R   | j                   j                  j                  dt        |       d|      }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||      S |j                  dk(  rt        t        |j                        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                     	      |j                         }t#        |j                  t        |j                        |
      # t         $ r6 t#        |j                  t        |j                        |j$                  
      w xY w)a4  
        Get dashboard by id

        Parameters
        ----------
        dashboard_id : str

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

        Returns
        -------
        HttpResponse[DashboardPublic]
            Dashboard resource
        v1/private/dashboards/r0   r3   r,   r5   r6   r7   r:     r?   r@   r=   )r   rA   rB   r
   r>   rC   rD   r   r   rE   r	   r   rF   r?   OptionalAnyr   r   rG   r    r^   r,   rI   rJ   rK   s         r!   get_dashboard_by_idz'RawDashboardsClient.get_dashboard_by_id   s\   $ ((55==$%5l%C$DE+ > 
	
	ti++1c1# - ) 0 $YUCC$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AE' B*E' '?F&c                   | j                   j                  j                  dt        |       d|      }	 d|j                  cxk  rdk  rn nt        |d      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)	a  
        Delete dashboard by id

        Parameters
        ----------
        dashboard_id : str

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

        Returns
        -------
        HttpResponse[None]
        r`   DELETEra   r5   r6   Nr:   r=   )r   rA   rB   r
   r>   r	   rE   r   r   rF   r?   rG   r    r^   r,   rI   rK   s        r!   delete_dashboardz$RawDashboardsClient.delete_dashboard   s    " ((55==$%5l%C$DE+ > 
	
	ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $B B ?Cr(   rO   rP   rQ   rR   r,   c                   | j                   j                  j                  dt        |       d|||||dddi|t              }	 d|j
                  cxk  rdk  rGn nDt        j                  t        t        t        |j                         	            }	t        ||	
      S |j
                  dk(  rt        t        |j                        t        j                  t        j                  t        j                      t        t        j                  t        j                      |j                         	                  |j
                  dk(  rt#        t        |j                        t        j                  t        j                  t        j                      t        t        j                  t        j                      |j                         	                  |j                         }
t'        |j
                  t        |j                        |
      # t$        $ r6 t'        |j
                  t        |j                        |j(                        w xY w)ax  
        Update dashboard by id. Partial updates are supported - only provided fields will be updated.

        Parameters
        ----------
        dashboard_id : str

        name : typing.Optional[str]

        type : typing.Optional[DashboardUpdatePublicType]

        scope : typing.Optional[DashboardUpdatePublicScope]

        description : typing.Optional[str]

        config : typing.Optional[JsonNodePublic]

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

        Returns
        -------
        HttpResponse[DashboardPublic]
            Updated dashboard
        r`   PATCHr(   rO   rP   rQ   rR   rV   rW   rX   r5   r6   r7   r:   rb   rc     r=   )r   rA   rB   r
   rZ   r>   rC   rD   r   r   rE   r	   r   rF   r?   rd   re   r   r   r   rG   r    r^   r(   rO   rP   rQ   rR   r,   rI   rJ   rK   s              r!   update_dashboardz$RawDashboardsClient.update_dashboard   s   H ((55==$%5l%C$DE*   2 , > 
	 "	ti++1c1# - ) 0 $YUCC$$+# !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   AH !EH ?Iidsc                   | j                   j                  j                  ddd|iddi|t              }	 d|j                  cxk  rdk  rn nt        |d	
      S |j                         }t        |j                  t        |j                        |      # t        $ r6 t        |j                  t        |j                        |j                        w xY w)a  
        Delete dashboards batch

        Parameters
        ----------
        ids : typing.Sequence[str]

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

        Returns
        -------
        HttpResponse[None]
        "v1/private/dashboards/delete-batchrT   rs   rV   rW   rX   r5   r6   Nr:   r=   )r   rA   rB   rZ   r>   r	   rE   r   r   rF   r?   rG   r    rs   r,   rI   rK   s        r!   delete_dashboards_batchz+RawDashboardsClient.delete_dashboards_batchQ  s    " ((55==0s  2 , > 
		ti++1c1#YTBB&^^-N 9#8#8$yGXGXBY`noo  	ty'<'<d9K\K\F]dmdrdrss	ts   $B B ?C)__name__
__module____qualname__r   r"   rC   rd   intstrr   r	   r   rL   rZ   r   r   r   r   r\   rg   rk   r   r   r   rr   Sequencerw    r$   r!   r   r      s   .*; . &*%)%)+/(,(,;?>p ooc">p ooc"	>p
 ooc">p OOC(>p %>p %>p  8>p 
)	*>pJ ,0-1486:,0;?Hp Hp 	Hp
 OOC(Hp ooc*Hp oo01Hp 23Hp __S)Hp  8Hp 
o	&HpV X\/p/p5;__^5T/p	o	&/pd X\pp5;__^5Tp	d	pD &*;?=A,026;?WpWp ooc"	Wp
 oo78Wp 9:Wp __S)Wp /Wp  8Wp 
o	&Wpt `d#pooc*#p=C__^=\#p	d	#pr$   r   c                      e Zd ZdefdZdddddddddej                  e   dej                  e   dej                  e   dej                  e   d	ej                  e   d
ej                  e   dej                  e	   de
e   fdZeeeeedddededej                  e   dej                  e   dej                  e   dej                  e   dej                  e   dej                  e	   de
e   fdZdddedej                  e	   de
e   fdZdddedej                  e	   de
d   fdZee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j                  e   dej                  e	   de
e   fdZdddej2                  e   dej                  e	   de
d   fdZy)AsyncRawDashboardsClientr   c                    || _         y r   r   r   s     r!   r"   z!AsyncRawDashboardsClient.__init__x  r#   r$   Nr%   r&   r'   r(   r)   r*   r+   r,   r-   c                2  K   | j                   j                  j                  dd||||||d|       d{   }	 d|j                  cxk  rdk  rGn nDt	        j
                  t        t        t        |j                                     }	t        ||		      S |j                         }
t        |j                  t        |j                        |

      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)a  
        Find dashboards in a workspace

        Parameters
        ----------
        page : typing.Optional[int]

        size : typing.Optional[int]

        name : typing.Optional[str]

        project_id : typing.Optional[str]

        sorting : typing.Optional[str]

        filters : typing.Optional[str]

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

        Returns
        -------
        AsyncHttpResponse[DashboardPagePublic]
            Dashboard page
        r/   r0   r1   r2   Nr5   r6   r7   r:   r=   )r   rA   rB   r>   rC   rD   r   r   rE   r   r   r   rF   r?   rG   rH   s              r!   rL   z(AsyncRawDashboardsClient.find_dashboards{  s    H ..;;CC#("" , D 
 
		ti++1c1' 1 ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo5
0  	ty'<'<d9K\K\F]dmdrdrss	ts3   4DCDAC DC (,D?DDrM   rR   rN   rO   rP   rQ   c                D  K   | j                   j                  j                  dd|||||||dddi|t               d{   }		 d|	j                  cxk  rd	k  rGn nDt        j                  t        t        t        |	j                         
            }
t        |	|
      S |	j                         }t        |	j                  t        |	j                        |      7 # t        $ r6 t        |	j                  t        |	j                        |	j                        w xY ww)a  
        Create a new dashboard in a workspace

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

        config : JsonNodeWrite

        project_id : typing.Optional[str]
            Project ID. Takes precedence over project_name when both are provided.

        project_name : typing.Optional[str]
            For project scope, specify either project_id or project_name. If project_name is provided and the project does not exist, it will be created. Ignored when project_id is provided. If neither is provided, the dashboard is created at workspace level.

        type : typing.Optional[DashboardWriteType]

        scope : typing.Optional[DashboardWriteScope]

        description : typing.Optional[str]

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

        Returns
        -------
        AsyncHttpResponse[DashboardPublic]
            Created
        r/   rT   rU   rV   rW   rX   Nr5   r6   r7   r:   r=   )r   rA   rB   rZ   r>   rC   rD   r   r   rE   r   r   r   rF   r?   rG   r[   s               r!   r\   z)AsyncRawDashboardsClient.create_dashboard  s     R ..;;CC#( ,*   2 ,! D 
 
	$	ti++1c1# - ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo?
:  	ty'<'<d9K\K\F]dmdrdrss	ts5   =D C D AC  D !C 1,D ?DD r]   r^   c                p  K   | j                   j                  j                  dt        |       d|       d{   }	 d|j                  cxk  rdk  rGn nDt        j                  t        t        t        |j                                     }t        ||      S |j                  d	k(  rt        t        |j                        t        j                  t
        j                  t
        j                     t        t
        j                  t
        j                     |j                                     
      |j                         }t#        |j                  t        |j                        |      7 7# t         $ r6 t#        |j                  t        |j                        |j$                        w xY ww)a9  
        Get dashboard by id

        Parameters
        ----------
        dashboard_id : str

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

        Returns
        -------
        AsyncHttpResponse[DashboardPublic]
            Dashboard resource
        r`   r0   ra   Nr5   r6   r7   r:   rb   rc   r=   )r   rA   rB   r
   r>   rC   rD   r   r   rE   r   r   rF   r?   rd   re   r   r   rG   rf   s         r!   rg   z,AsyncRawDashboardsClient.get_dashboard_by_id  sj    $ ..;;CC$%5l%C$DE+ D 
 
	
	ti++1c1# - ) 0 ))%HH$$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noo;
6  	ty'<'<d9K\K\F]dmdrdrss	ts5   8F6E1F6 AE4 F6B*E4 ,F64?F33F6c                  K   | j                   j                  j                  dt        |       d|       d{   }	 d|j                  cxk  rdk  rn nt        |d      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)	a  
        Delete dashboard by id

        Parameters
        ----------
        dashboard_id : str

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

        Returns
        -------
        AsyncHttpResponse[None]
        r`   ri   ra   Nr5   r6   r:   r=   )r   rA   rB   r
   r>   r   rE   r   r   rF   r?   rG   rj   s        r!   rk   z)AsyncRawDashboardsClient.delete_dashboard6  s     " ..;;CC$%5l%C$DE+ D 
 
	
	ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo
  	ty'<'<d9K\K\F]dmdrdrss	ts3   8C$B C$ $B" $C$%B" 5,C$"?C!!C$rl   c                  K   | j                   j                  j                  dt        |       d|||||dddi|t               d{   }	 d|j
                  cxk  rd	k  rGn nDt        j                  t        t        t        |j                         
            }	t        ||	      S |j
                  dk(  rt        t        |j                        t        j                  t        j                  t        j                      t        t        j                  t        j                      |j                         
                  |j
                  dk(  rt#        t        |j                        t        j                  t        j                  t        j                      t        t        j                  t        j                      |j                         
                  |j                         }
t'        |j
                  t        |j                        |
      7 # t$        $ r6 t'        |j
                  t        |j                        |j(                        w xY ww)a}  
        Update dashboard by id. Partial updates are supported - only provided fields will be updated.

        Parameters
        ----------
        dashboard_id : str

        name : typing.Optional[str]

        type : typing.Optional[DashboardUpdatePublicType]

        scope : typing.Optional[DashboardUpdatePublicScope]

        description : typing.Optional[str]

        config : typing.Optional[JsonNodePublic]

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

        Returns
        -------
        AsyncHttpResponse[DashboardPublic]
            Updated dashboard
        r`   rn   ro   rV   rW   rX   Nr5   r6   r7   r:   rb   rc   rp   r=   )r   rA   rB   r
   rZ   r>   rC   rD   r   r   rE   r   r   rF   r?   rd   re   r   r   r   rG   rq   s              r!   rr   z)AsyncRawDashboardsClient.update_dashboardT  s    H ..;;CC$%5l%C$DE*   2 , D 
 
	 "	ti++1c1# - ) 0 ))%HH$$+# !2!23

3$"(//&**"=$-NN$4	 	 $$+# !2!23

3$"(//&**"=$-NN$4	 	 '^^-N 9#8#8$yGXGXBY`noog
b  	ty'<'<d9K\K\F]dmdrdrss	ts8   AI	H
IAH *I+EH /,I?IIrs   c                  K   | j                   j                  j                  ddd|iddi|t               d{   }	 d|j                  cxk  rd	k  rn nt        |d
      S |j                         }t        |j                  t        |j                        |      7 e# t        $ r6 t        |j                  t        |j                        |j                        w xY ww)a  
        Delete dashboards batch

        Parameters
        ----------
        ids : typing.Sequence[str]

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

        Returns
        -------
        AsyncHttpResponse[None]
        ru   rT   rs   rV   rW   rX   Nr5   r6   r:   r=   )r   rA   rB   rZ   r>   r   rE   r   r   rF   r?   rG   rv   s        r!   rw   z0AsyncRawDashboardsClient.delete_dashboards_batch  s     " ..;;CC0s  2 , D 
 
		ti++1c1()$GG&^^-N 9#8#8$yGXGXBY`noo%
   	ty'<'<d9K\K\F]dmdrdrss	ts2   7C#BC#$B! #C#$B! 4,C#!?C  C#)rx   ry   rz   r   r"   rC   rd   r{   r|   r   r   r   rL   rZ   r   r   r   r   r\   rg   rk   r   r   r   rr   r}   rw   r~   r$   r!   r   r   w  s   .*< . &*%)%)+/(,(,;?>p ooc">p ooc"	>p
 ooc">p OOC(>p %>p %>p  8>p 
.	/>pJ ,0-1486:,0;?Hp Hp 	Hp
 OOC(Hp ooc*Hp oo01Hp 23Hp __S)Hp  8Hp 
?	+HpV X\/p/p5;__^5T/p	?	+/pd X\pp5;__^5Tp	4	 pD &*;?=A,026;?WpWp ooc"	Wp
 oo78Wp 9:Wp __S)Wp /Wp  8Wp 
?	+Wpt `d#pooc*#p=C__^=\#p	4	 #pr$   r   )*rC   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r	   core.jsonable_encoderr
   core.pydantic_utilitiesr   core.request_optionsr   errors.conflict_errorr   errors.not_found_errorr   types.dashboard_page_publicr   types.dashboard_publicr   types.json_node_publicr   types.json_node_writer   #types.dashboard_update_public_scoper   "types.dashboard_update_public_typer   types.dashboard_write_scoper   types.dashboard_write_typer   rD   re   rZ   r   r   r~   r$   r!   <module>r      sr     ( % G @ 4 2 1 1 2 = 4 3 1 K I < : v{{6::s#Yp Ypx
Yp Ypr$   