
    ]j                         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  e j&                  e j(                  d      Z G d d      Z G d d      Zy)    N)JSONDecodeError   )ApiError)AsyncClientWrapperSyncClientWrapper)AsyncHttpResponseHttpResponse)jsonable_encoder)RequestOptions)construct_type)ProjectMember.c            
           e Zd ZdefdZddde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y)RawMembersClientclient_wrapperc                    || _         y N_client_wrapperselfr   s     V/root/env/lib/python3.12/site-packages/label_studio_sdk/projects/members/raw_client.py__init__zRawMembersClient.__init__   
    -    Nrequest_optionsiduserr   returnc                6   | j                   j                  j                  dt        |       ddd|i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*  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Add a member to a specific project.

        Parameters
        ----------
        id : int

        user : int

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

        Returns
        -------
        HttpResponse[ProjectMember]

        api/projects/	/members/POSTr   content-typeapplication/jsonmethodjsonheadersr   omit   ,  type_object_responsedatastatus_coder)   body)r   httpx_clientrequestr
   OMITr4   typingcastr   r   r(   r	   r   r   dictr)   textr   r   r   r   	_response_data_response_jsons          r   addzRawMembersClient.add   s   4 ((55==,R01;  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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  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Remove a member from a specific project.

        Parameters
        ----------
        id : int

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

        Returns
        -------
        HttpResponse[None]
        r!   r"   DELETEr'   r   r+   r,   Nr0   r3   )r   r6   r7   r
   r4   r	   r(   r   r   r;   r)   r<   r   r   r   r>   r@   s        r   removezRawMembersClient.removeK   s    * ((55==,R01;+ > 
	
	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   intr9   Optionalr   r	   r   rA   rF    r   r   r   r      s    .*; . Y]3p3p #3p6<oon6U3p	m	$3pj UY  p  p&//.2Q  p]ijn]o  pr   r   c            
           e Zd ZdefdZddde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y)AsyncRawMembersClientr   c                    || _         y r   r   r   s     r   r   zAsyncRawMembersClient.__init__o   r   r   Nr   r   r   r   r   c                R  K   | j                   j                  j                  dt        |       ddd|i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/  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Add a member to a specific project.

        Parameters
        ----------
        id : int

        user : int

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

        Returns
        -------
        AsyncHttpResponse[ProjectMember]

        r!   r"   r#   r   r$   r%   r&   Nr+   r,   r-   r0   r3   )r   r6   r7   r
   r8   r4   r9   r:   r   r   r(   r   r   r   r;   r)   r<   r=   s          r   rA   zAsyncRawMembersClient.addr   s    4 ..;;CC,R01;  2 , D 
 
		ti++1c1!"+ ) 0 ))%HH&^^-N 9#8#8$yGXGXBY`noo3
.  	ty'<'<d9K\K\F]dmdrdrss	ts7   AD'C#D'AC% 'D'(C% 8,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  
        <Card href="https://humansignal.com/goenterprise">
                <img style="pointer-events: none; margin-left: 0px; margin-right: 0px;" src="https://docs.humansignal.com/images/badge.svg" alt="Label Studio Enterprise badge"/>
                <p style="margin-top: 10px; font-size: 14px;">
                    This endpoint is not available in Label Studio Community Edition. [Learn more about Label Studio Enterprise](https://humansignal.com/goenterprise)
                </p>
            </Card>
        Remove a member from a specific project.

        Parameters
        ----------
        id : int

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

        Returns
        -------
        AsyncHttpResponse[None]
        r!   r"   rC   rD   Nr+   r,   r0   r3   )r   r6   r7   r
   r4   r   r(   r   r   r;   r)   r<   rE   s        r   rF   zAsyncRawMembersClient.remove   s     . ..;;CC,R01;+ 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%)rG   rH   rI   r   r   rJ   r9   rK   r   r   r   rA   rF   rL   r   r   rN   rN   n   s    .*< . Y]3p3p #3p6<oon6U3p	=	)3pl NR"p"p+1??>+J"p	4	 "pr   rN   )r9   json.decoderr   core.api_errorr   core.client_wrapperr   r   core.http_responser   r	   core.jsonable_encoderr
   core.request_optionsr   core.unchecked_base_modelr   types.project_memberr   r:   Anyr8   r   rN   rL   r   r   <module>r[      sW     ( & H A 5 2 7 1 v{{6::s#Yp Ypx[p [pr   