
    	]j                        d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZ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j4                  e      Z eej:                        Zd Z e       Z  ed e
dgddd e	ddddiddidddd      idgddgd !      "       G d# d$e             Z! ed e
dgd%d&d e	ddddiddidddd'      id(gddgd !      "       G d) d*e             Z" ed e
dgd+d,dd-idgd.d/gd !      "       G d0 d1ejF                               Z$ ed e
dgd2d3dd4id(gd.d/gd !      "       G d5 d6ejF                               Z%y)7zThis file and its contents are licensed under the Apache License 2.0. Please see the included NOTICE for copyright information and LICENSE for a copy of the license.
    N)all_permissions)settings)method_decorator)OpenApiResponseextend_schema)generics)
FormParser
JSONParserMultiPartParser)Response)APIView)	load_func   )LocalFilesExportStorageListAPILocalFilesImportStorageListAPIc                  `    t               } t        j                  r| ddt        t        dgz  } | S )N
localfileszLocal files)nametitleimport_list_apiexport_list_api)get_storage_listr   ENABLE_LOCAL_FILES_STORAGEr   r   )storage_lists    J/root/env/lib/python3.12/site-packages/label_studio/io_storages/all_api.py_get_common_storage_listr      s;    #%L**$&#A#A	
 	
     getStoragezList all import storages typesz-Retrieve a list of the import storages types.   arrayobjecttypestringr   r   )r#   
properties)r#   itemszList of import storage types)responsedescriptionimport_storage
list_typespublic)zx-fern-sdk-group-namezx-fern-sdk-method-namezx-fern-audiences)tagssummaryr)   	responses
extensions)r   	decoratorc                   *    e Zd Zej                  Zd Zy)AllImportStorageTypesAPIc                 X    t        t        D cg c]  }|d   |d   d c}      S c c}w Nr   r   r%   r   _common_storage_listselfrequestkwargsss       r   r   zAllImportStorageTypesAPI.getJ   )    K_`a!F)ajA`aa`   'N__name__
__module____qualname__r   storages_viewpermission_requiredr    r   r   r3   r3   +       : *77br   r3   zList all export storages typesz-Retrieve a list of the export storages types.zList of export storage typesexport_storagec                   *    e Zd Zej                  Zd Zy)AllExportStorageTypesAPIc                 X    t        t        D cg c]  }|d   |d   d c}      S c c}w r5   r6   r8   s       r   r   zAllExportStorageTypesAPI.getm   r=   r>   Nr?   rE   r   r   rI   rI   N   rF   r   rI   z)List all import storages from the projectzCRetrieve a list of the import storages of all types with their IDs.zList of ImportStorageSerializerlistinternalc                   :    e Zd ZeeefZej                  Z	d Z
d Zy)AllImportStorageListAPIc                 &   	 |j                         } ||j                  g|i |}|j                  }t        |t              st        d|       |S # t        $ r3 t        j                  d|j                  j                   d       g cY S w xY wNzResponse is not list: zCan't process T)exc_infoas_view_requestdata
isinstancerK   
ValueError	Exceptionloggererror	__class__r@   r9   apir:   argsr;   viewr(   payloads           r   _get_responsez%AllImportStorageListAPI._get_response       		;;=DG,,>t>v>HmmGgt, #9'!CDDN 	LL>#--*@*@)ABTLRI	   AA 9BBc           
          t        t        D cg c]  } | j                  |d   |g|i | c}g       }t        |      S c c}w )Nr   sumr7   ra   r   r9   r:   r^   r;   r<   list_responsess         r   rK   zAllImportStorageListAPI.list   Q    YmnTUT"3 4gOOOnpr
 '' o   !ANr@   rA   rB   r
   r	   r   parser_classesr   rC   rD   ra   rK   rE   r   r   rN   rN   q   s&     !*o>N)77
(r   rN   z)List all export storages from the projectzCRetrieve a list of the export storages of all types with their IDs.zList of ExportStorageSerializerc                   :    e Zd ZeeefZej                  Z	d Z
d Zy)AllExportStorageListAPIc                 &   	 |j                         } ||j                  g|i |}|j                  }t        |t              st        d|       |S # t        $ r3 t        j                  d|j                  j                   d       g cY S w xY wrP   rR   r\   s           r   ra   z%AllExportStorageListAPI._get_response   rb   rc   c           
          t        t        D cg c]  } | j                  |d   |g|i | c}g       }t        |      S c c}w )Nr   re   rg   s         r   rK   zAllExportStorageListAPI.list   ri   rj   Nrk   rE   r   r   rn   rn      s&      !*o>N)77
(r   rn   )&__doc__loggingcore.permissionsr   django.confr   django.utils.decoratorsr   drf_spectacular.utilsr   r   rest_frameworkr   rest_framework.parsersr	   r
   r   rest_framework.responser   rest_framework.viewsr   label_studio.core.utils.commonr   localfiles.apir   r   	getLoggerr@   rY   GET_STORAGE_LISTr   r   r7   r3   rI   ListAPIViewrN   rn   rE   r   r   <module>r      s!    ,   4 @ # J J , ( 4 Z			8	$ X667  01  	[0C# (%+X$6&,h%7'	 ;
  '7%7&2!)

'8bw b98b 	[0C# (%+X$6&,h%7'	 ;
  '7%7&2!)

'8bw b98b 	[;Y9:&6%7&,!+

(h22 ((. 	[;Y9:&6%7&,!+

(h22 ((r   