
    ]j#U                         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  e j2                  e j4                  d      Z G d d      Z G d d      Zy)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)jsonable_encoder)RequestOptions)'convert_and_respect_annotation_metadata)construct_type)View   )CreateViewsRequestData)UpdateViewsRequestData.c                   ~   e Zd ZdefdZddddej                  e   dej                  e   de	ej                  e      fdZeedd	d
ej                  e   dej                  e   dej                  e   de	e   fdZdddej                   e   dedej                  e   de	d   fdZdddedej                  e   de	d   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dd	ded
ej                  e   dej                  e   dej                  e   de	e   f
dZy)RawViewsClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     K/root/env/lib/python3.12/site-packages/label_studio_sdk/views/raw_client.py__init__zRawViewsClient.__init__   
    -    Nprojectrequest_optionsr    r!   returnc                P   | j                   j                  j                  ddd|i|      }	 d|j                  cxk  rdk  rin nft	        j
                  t        j                  t           t        t        j                  t           |j                                     }t        ||      S |j                         }t        |j                  t        |j                        |	      # t        $ r6 t        |j                  t        |j                        |j                  	      w xY w)
aN  
        List all views for a specific project.

        Parameters
        ----------
        project : typing.Optional[int]
            Project ID

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

        Returns
        -------
        HttpResponse[typing.List[View]]

        api/dm/views/GETr    methodparamsr!      ,  type_object_responsedatastatus_codeheadersbody)r   httpx_clientrequestr2   typingcastListr   r   jsonr	   r   r   dictr3   textr   r    r!   	_response_data_response_jsons         r   listzRawViewsClient.list   s   & ((55==7 , > 
		ti++1c1KK%"$kk$/ ) 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%r0   r    r!   r0   c          	      >   | j                   j                  j                  ddt        |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                         }t        |j                  t        |j                         |      # t        $ r6 t        |j                  t        |j                         |j"                        w xY w)a  
        Create a view for a specific project.

        Parameters
        ----------
        data : typing.Optional[CreateViewsRequestData]
            Custom view data

        project : typing.Optional[int]
            Project ID

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

        Returns
        -------
        HttpResponse[View]

        r$   POSTwriter-   
annotation	directionr0   r    content-typeapplication/jsonr'   r:   r3   r!   omitr)   r*   r+   r.   r1   )r   r5   r6   r   r   OMITr2   r7   r8   r   r   r:   r	   r   r   r;   r3   r<   r   r0   r    r!   r>   r?   r@   s          r   createzRawViewsClient.createC   s   4 ((55==? -Cw #	  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!   idsc                   | j                   j                  j                  dd||d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  
        Update the order field of views based on the provided list of view IDs

        Parameters
        ----------
        ids : typing.Sequence[int]
            A list of view IDs in the desired order.

        project : int

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

        Returns
        -------
        HttpResponse[None]
        api/dm/views/order/rD   rR   r    rJ   rK   rL   r)   r*   Nr.   r1   )r   r5   r6   rN   r2   r	   r:   r   r   r;   r3   r<   r   rR   r    r!   r>   r@   s         r   update_orderzRawViewsClient.update_order{   s    ( ((55==!"
  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c                   | j                   j                  j                  ddd|i|      }	 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)
a1  
        Delete all views for a specific project.

        Parameters
        ----------
        project : int
            Project ID

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

        Returns
        -------
        HttpResponse[None]
        api/dm/views/reset/DELETEr    r&   r)   r*   Nr.   r1   )r   r5   r6   r2   r	   r:   r   r   r;   r3   r<   r   r    r!   r>   r@   s        r   
delete_allzRawViewsClient.delete_all   s    $ ((55==!7 , > 
		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idc                    | 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                         }t        |j                  t        |j                        |	      # t        $ r6 t        |j                  t        |j                        |j                  	      w xY w)
a;  
        Get the details about a specific view in the data manager

        Parameters
        ----------
        id : str
            View ID

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

        Returns
        -------
        HttpResponse[View]

        r$   /r%   r'   r!   r)   r*   r+   r.   r1   )r   r5   r6   r
   r2   r7   r8   r   r   r:   r	   r   r   r;   r3   r<   r   r]   r!   r>   r?   r@   s         r   getzRawViewsClient.get   s    " ((55==,R013+ > 
	
	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c                   | 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                        |	      # t        $ r6 t        |j                  t        |j                        |j                  	      w xY w)
a  
        Delete a specific view by ID.

        Parameters
        ----------
        id : str
            View ID

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

        Returns
        -------
        HttpResponse[None]
        r$   r_   rZ   r`   r)   r*   Nr.   r1   )r   r5   r6   r
   r2   r	   r:   r   r   r;   r3   r<   r   r]   r!   r>   r@   s        r   deletezRawViewsClient.delete   s      ((55==,R013+ > 
	
	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c          	      X   | j                   j                  j                  dt        |       ddt	        |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                         }t        |j                  t!        |j"                        |      # t        $ r6 t        |j                  t!        |j"                        |j$                        w xY w)a  
        Update view data with additional filters and other information for a specific project.

        Parameters
        ----------
        id : str
            View ID

        data : typing.Optional[UpdateViewsRequestData]
            Custom view data

        project : typing.Optional[int]
            Project ID

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

        Returns
        -------
        HttpResponse[View]

        r$   r_   PATCHrE   rF   rI   rJ   rK   rL   r)   r*   r+   r.   r1   )r   r5   r6   r
   r   r   rN   r2   r7   r8   r   r   r:   r	   r   r   r;   r3   r<   r   r]   r0   r    r!   r>   r?   r@   s           r   updatezRawViewsClient.update  s!   < ((55==,R013? -Cw #	  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))__name__
__module____qualname__r   r   r7   Optionalintr   r	   r9   r   rA   rN   r   rP   SequencerW   r\   strrb   re   r   ri    r   r   r   r      s   .*; . 26jn(p //#.(pHNXfHg(p	fkk$'	((pZ 9=(,;?6p oo456p %	6p
  86p 
d	6pr nr'pooc*'p58'pKQ??[iKj'p	d	'pT SW p p060O p	d	 pD RV #pc #pv~/N #pZfgkZl #pJ UY p p&//.2Q p]ijn]o pB 9=(,;?:p:p oo45	:p
 %:p  8:p 
d	:pr   r   c                   ~   e Zd ZdefdZddddej                  e   dej                  e   de	ej                  e      fdZeedd	d
ej                  e   dej                  e   dej                  e   de	e   fdZdddej                   e   dedej                  e   de	d   fdZdddedej                  e   de	d   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dd	ded
ej                  e   dej                  e   dej                  e   de	e   f
dZy)AsyncRawViewsClientr   c                    || _         y r   r   r   s     r   r   zAsyncRawViewsClient.__init__F  r   r   Nr   r    r!   r"   c                l  K   | j                   j                  j                  ddd|i|       d{   }	 d|j                  cxk  rdk  rin nft	        j
                  t        j                  t           t        t        j                  t           |j                                     }t        ||	      S |j                         }t        |j                  t        |j                        |
      7 # t        $ r6 t        |j                  t        |j                        |j                  
      w xY ww)aS  
        List all views for a specific project.

        Parameters
        ----------
        project : typing.Optional[int]
            Project ID

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

        Returns
        -------
        AsyncHttpResponse[typing.List[View]]

        r$   r%   r    r&   Nr)   r*   r+   r.   r1   )r   r5   r6   r2   r7   r8   r9   r   r   r:   r   r   r   r;   r3   r<   r=   s         r   rA   zAsyncRawViewsClient.listI  s    & ..;;CC7 , D 
 
		ti++1c1KK%"$kk$/ ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo+
&  	ty'<'<d9K\K\F]dmdrdrss	ts3   /D4C0D4A=C2 4D45C2 ,D42?D11D4rB   r0   c          	      Z  K   | j                   j                  j                  ddt        |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                         }t        |j                  t        |j                         |      7 # t        $ r6 t        |j                  t        |j                         |j"                        w xY ww)a  
        Create a view for a specific project.

        Parameters
        ----------
        data : typing.Optional[CreateViewsRequestData]
            Custom view data

        project : typing.Optional[int]
            Project ID

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

        Returns
        -------
        AsyncHttpResponse[View]

        r$   rD   rE   rF   rI   rJ   rK   rL   Nr)   r*   r+   r.   r1   )r   r5   r6   r   r   rN   r2   r7   r8   r   r   r:   r   r   r   r;   r3   r<   rO   s          r   rP   zAsyncRawViewsClient.creates  s    4 ..;;CC? -Cw #	  2 , D 
 
		ti++1c1"" ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo9
4  	ty'<'<d9K\K\F]dmdrdrss	ts7   AD+
C'D+AC) +D+,C) <,D+)?D((D+rQ   rR   c                  K   | j                   j                  j                  dd||d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  
        Update the order field of views based on the provided list of view IDs

        Parameters
        ----------
        ids : typing.Sequence[int]
            A list of view IDs in the desired order.

        project : int

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

        Returns
        -------
        AsyncHttpResponse[None]
        rT   rD   rU   rJ   rK   rL   Nr)   r*   r.   r1   )r   r5   r6   rN   r2   r   r:   r   r   r;   r3   r<   rV   s         r   rW   z AsyncRawViewsClient.update_order  s     ( ..;;CC!"
  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s3   8C$B C$ $B" $C$%B" 5,C$"?C!!C$c                  K   | j                   j                  j                  ddd|i|       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)
a6  
        Delete all views for a specific project.

        Parameters
        ----------
        project : int
            Project ID

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

        Returns
        -------
        AsyncHttpResponse[None]
        rY   rZ   r    r&   Nr)   r*   r.   r1   )r   r5   r6   r2   r   r:   r   r   r;   r3   r<   r[   s        r   r\   zAsyncRawViewsClient.delete_all  s     $ ..;;CC!7 , 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   /CBC$B CB ,,C?CCr]   c                <  K   | j                   j                  j                  dt        |       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@  
        Get the details about a specific view in the data manager

        Parameters
        ----------
        id : str
            View ID

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

        Returns
        -------
        AsyncHttpResponse[View]

        r$   r_   r%   r`   Nr)   r*   r+   r.   r1   )r   r5   r6   r
   r2   r7   r8   r   r   r:   r   r   r   r;   r3   r<   ra   s         r   rb   zAsyncRawViewsClient.get  s    " ..;;CC,R013+ 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s4   9DCDAC DC -,D?DDc                  K   | j                   j                  j                  dt        |       d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 a specific view by ID.

        Parameters
        ----------
        id : str
            View ID

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

        Returns
        -------
        AsyncHttpResponse[None]
        r$   r_   rZ   r`   Nr)   r*   r.   r1   )r   r5   r6   r
   r2   r   r:   r   r   r;   r3   r<   rd   s        r   re   zAsyncRawViewsClient.delete  s     $ ..;;CC,R013+ 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   9C%B!C%$B# %C%&B# 6,C%#?C""C%c          	      t  K   | j                   j                  j                  dt        |       ddt	        |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                         }t        |j                  t!        |j"                        |      7 # t        $ r6 t        |j                  t!        |j"                        |j$                        w xY ww)a  
        Update view data with additional filters and other information for a specific project.

        Parameters
        ----------
        id : str
            View ID

        data : typing.Optional[UpdateViewsRequestData]
            Custom view data

        project : typing.Optional[int]
            Project ID

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

        Returns
        -------
        AsyncHttpResponse[View]

        r$   r_   rg   rE   rF   rI   rJ   rK   rL   Nr)   r*   r+   r.   r1   )r   r5   r6   r
   r   r   rN   r2   r7   r8   r   r   r:   r   r   r   r;   r3   r<   rh   s           r   ri   zAsyncRawViewsClient.update:  s/    < ..;;CC,R013? -Cw #	  2 , D 
 
		ti++1c1"" ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo9
4  	ty'<'<d9K\K\F]dmdrdrss	ts7   AD8C4D8AC6 8D89C6 	,D86?D55D8)rj   rk   rl   r   r   r7   rm   rn   r   r   r9   r   rA   rN   r   rP   ro   rW   r\   rp   rb   re   r   ri   rq   r   r   rs   rs   E  s   .*< . 26jn(p //#.(pHNXfHg(p	6;;t,	-(pZ 9=(,;?6p oo456p %	6p
  86p 
4	 6pr nr'pooc*'p58'pKQ??[iKj'p	4	 'pT SW p p060O p	4	  pD X\ #pC #pV__^5T #p`qrv`w #pL NRpp+1??>+Jp	4	 pF 9=(,;?:p:p oo45	:p
 %:p  8:p 
4	 :pr   rs   )r7   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r	   core.jsonable_encoderr
   core.request_optionsr   core.serializationr   core.unchecked_base_modelr   
types.viewr   types.create_views_request_datar   types.update_views_request_datar   r8   AnyrN   r   rs   rq   r   r   <module>r      s`     ( % G @ 4 1 H 6  C C v{{6::s#mp mp`	op opr   