
    ]j0                         d dl 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mZ  e j                  e j                  d	      Z G d
 d      Z G d d      Zy)    N   )core)AsyncClientWrapperSyncClientWrapper)RequestOptions)
FileUpload   )AsyncRawFilesClientRawFilesClient.c                   L   e Zd ZdefdZ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dfd
Zedddede	j                  ej"                     de	j                  e   defdZddddddede	j                  e   de	j                  e	j(                  ee	j,                  e   f      de	j                  e   de	j                  e   de	j.                  e   fdZdddede	j                  e   ddfdZdddede	j                  e   ddfdZy)FilesClientclient_wrapperc                &    t        |      | _        y N)r   )r   _raw_clientselfr   s     G/root/env/lib/python3.12/site-packages/label_studio_sdk/files/client.py__init__zFilesClient.__init__   s    )H    returnc                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        RawFilesClient
        r   r   s    r   with_raw_responsezFilesClient.with_raw_response        r   Nrequest_optionsidr   c                T    | j                   j                  ||      }|j                  S )a  
        Retrieve details about a specific uploaded file.

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

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

        Returns
        -------
        FileUpload


        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.files.get(
            id=1,
        )
        r   r   getdatar   r   r   	_responses       r   r"   zFilesClient.get   s)    6 $$((_(M	~~r   c                T    | j                   j                  ||      }|j                  S )a  
        Delete a specific uploaded file.

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

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

        Returns
        -------
        None

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.files.delete(
            id=1,
        )
        r   r   deleter#   r$   s       r   r(   zFilesClient.delete<   s)    4 $$++B+P	~~r   filer   r*   c                V    | j                   j                  |||      }|j                  S )a<  
        Update a specific uploaded file.

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

        file : typing.Optional[core.File]
            See core.File for more documentation

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

        Returns
        -------
        FileUpload


        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.files.update(
            id=1,
        )
        r)   r   updater#   r   r   r*   r   r%   s        r   r-   zFilesClient.updateY   s,    H $$++BT?+[	~~r   all_idsorderingr   r0   r1   r2   c                Z    | j                   j                  |||||      }|j                  S )a  

                Retrieve the list of uploaded files used to create labeling tasks for a specific project.


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

        all_ : typing.Optional[bool]
            Set to "true" if you want to retrieve all file uploads

        ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
            Specify the list of file upload IDs to retrieve, e.g. ids=[1,2,3]

        ordering : typing.Optional[str]
            Which field to use when ordering the results.

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

        Returns
        -------
        typing.List[FileUpload]


        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.files.list(
            id=1,
        )
        r/   r   listr#   r   r   r0   r1   r2   r   r%   s          r   r5   zFilesClient.list   s1    \ $$))"4S8et)u	~~r   c                T    | j                   j                  ||      }|j                  S )a  

                Delete uploaded files for a specific project.


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

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

        Returns
        -------
        None

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.files.delete_many(
            id=1,
        )
        r   r   delete_manyr#   r$   s       r   r9   zFilesClient.delete_many   s)    8 $$00_0U	~~r   filenamec                T    | j                   j                  ||      }|j                  S )a  
        Download a specific uploaded file.

        Parameters
        ----------
        filename : str

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

        Returns
        -------
        None

        Examples
        --------
        from label_studio_sdk import LabelStudio

        client = LabelStudio(
            api_key="YOUR_API_KEY",
        )
        client.files.download(
            filename="filename",
        )
        r   r   downloadr#   r   r:   r   r%   s       r   r=   zFilesClient.download   s)    4 $$--h-X	~~r   )__name__
__module____qualname__r   r   propertyr   r   inttypingOptionalr   r   r"   r(   OMITr   Filer-   boolUnionstrSequenceListr5   r9   r=    r   r   r   r      s   I*; I  >     RV c v~/N Zd < UY  &//.2Q ]a B ,0;?%% oodii(	%
  8% 
%V '+HL)-;?// ood#	/
 __V\\#vs/C*CDE/ //#&/  8/ 
Z	 /b Z^ c v~7V bf > ]a  &//.:Y ei r   r   c                   L   e Zd ZdefdZ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dfd
Zedddede	j                  ej"                     de	j                  e   defdZddddddede	j                  e   de	j                  e	j(                  ee	j,                  e   f      de	j                  e   de	j                  e   de	j.                  e   fdZdddede	j                  e   ddfdZdddede	j                  e   ddfdZy)AsyncFilesClientr   c                &    t        |      | _        y r   )r
   r   r   s     r   r   zAsyncFilesClient.__init__   s    .nMr   r   c                     | j                   S )z
        Retrieves a raw implementation of this client that returns raw responses.

        Returns
        -------
        AsyncRawFilesClient
        r   r   s    r   r   z"AsyncFilesClient.with_raw_response   r   r   Nr   r   r   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)ac  
        Retrieve details about a specific uploaded file.

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

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

        Returns
        -------
        FileUpload


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.files.get(
                id=1,
            )


        asyncio.run(main())
        r   Nr!   r$   s       r   r"   zAsyncFilesClient.get   s7     F **..r?.SS	~~ T   !646c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)aO  
        Delete a specific uploaded file.

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

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

        Returns
        -------
        None

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.files.delete(
                id=1,
            )


        asyncio.run(main())
        r   Nr'   r$   s       r   r(   zAsyncFilesClient.delete#  s7     D **11"o1VV	~~ WrS   r)   r*   c                r   K   | j                   j                  |||       d{   }|j                  S 7 w)a  
        Update a specific uploaded file.

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

        file : typing.Optional[core.File]
            See core.File for more documentation

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

        Returns
        -------
        FileUpload


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.files.update(
                id=1,
            )


        asyncio.run(main())
        r)   Nr,   r.   s        r   r-   zAsyncFilesClient.updateH  s:     X **11"4Q`1aa	~~ bs   "757r/   r0   r1   r2   c                v   K   | j                   j                  |||||       d{   }|j                  S 7 w)a  

                Retrieve the list of uploaded files used to create labeling tasks for a specific project.


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

        all_ : typing.Optional[bool]
            Set to "true" if you want to retrieve all file uploads

        ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
            Specify the list of file upload IDs to retrieve, e.g. ids=[1,2,3]

        ordering : typing.Optional[str]
            Which field to use when ordering the results.

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

        Returns
        -------
        typing.List[FileUpload]


        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.files.list(
                id=1,
            )


        asyncio.run(main())
        r/   Nr4   r6   s          r   r5   zAsyncFilesClient.listw  sE     l **//TsX 0 
 
	 ~~
s   $979c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)ak  

                Delete uploaded files for a specific project.


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

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

        Returns
        -------
        None

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.files.delete_many(
                id=1,
            )


        asyncio.run(main())
        r   Nr8   r$   s       r   r9   zAsyncFilesClient.delete_many  s7     H **66r?6[[	~~ \rS   r:   c                p   K   | j                   j                  ||       d{   }|j                  S 7 w)ah  
        Download a specific uploaded file.

        Parameters
        ----------
        filename : str

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

        Returns
        -------
        None

        Examples
        --------
        import asyncio

        from label_studio_sdk import AsyncLabelStudio

        client = AsyncLabelStudio(
            api_key="YOUR_API_KEY",
        )


        async def main() -> None:
            await client.files.download(
                filename="filename",
            )


        asyncio.run(main())
        r   Nr<   r>   s       r   r=   zAsyncFilesClient.download  s7     D **33Ho3^^	~~ _rS   )r?   r@   rA   r   r   rB   r
   r   rC   rD   rE   r   r   r"   r(   rF   r   rG   r-   rH   rI   rJ   rK   rL   r5   r9   r=   rM   r   r   rO   rO      s   N*< N  #6     X\ $C $V__^5T $`j $L [_ #s #8W #cg #R ,0;?-- oodii(	-
  8- 
-f '+HL)-;?99 ood#	9
 __V\\#vs/C*CDE9 //#&9  89 
Z	 9v `d %C %V__^=\ %hl %N cg #s #P^@_ #ko #r   rO   )rD    r   core.client_wrapperr   r   core.request_optionsr   types.file_uploadr   
raw_clientr
   r   castAnyrF   r   rO   rM   r   r   <module>r`      sJ      G 1 * ; v{{6::s#\ \~N Nr   