2
2
3
3
from .constants .errors import ERRORS
4
4
from .file import File
5
+ from .models .CopyFileRequestOptions import CopyFileRequestOptions
6
+ from .models .CopyFolderRequestOptions import CopyFolderRequestOptions
7
+ from .models .CreateCustomMetadataFieldsRequestOptions import (
8
+ CreateCustomMetadataFieldsRequestOptions ,
9
+ )
10
+ from .models .CreateFolderRequestOptions import CreateFolderRequestOptions
11
+ from .models .DeleteFolderRequestOptions import DeleteFolderRequestOptions
12
+ from .models .ListAndSearchFileRequestOptions import ListAndSearchFileRequestOptions
13
+ from .models .MoveFileRequestOptions import MoveFileRequestOptions
14
+ from .models .MoveFolderRequestOptions import MoveFolderRequestOptions
15
+ from .models .RenameFileRequestOptions import RenameFileRequestOptions
16
+ from .models .UpdateCustomMetadataFieldsRequestOptions import (
17
+ UpdateCustomMetadataFieldsRequestOptions ,
18
+ )
19
+ from .models .UpdateFileRequestOptions import UpdateFileRequestOptions
20
+ from .models .UploadFileRequestOptions import UploadFileRequestOptions
21
+ from .models .results .BulkDeleteFileResult import BulkDeleteFileResult
22
+ from .models .results .CustomMetadataFieldsResultWithResponseMetadata import (
23
+ CustomMetadataFieldsResultWithResponseMetadata ,
24
+ )
25
+ from .models .results .FileResultWithResponseMetadata import (
26
+ FileResultWithResponseMetadata ,
27
+ )
28
+ from .models .results .FolderResult import FolderResult
29
+ from .models .results .GetBulkJobStatusResult import GetBulkJobStatusResult
30
+ from .models .results .GetMetadataResult import GetMetadataResult
31
+ from .models .results .ListCustomMetadataFieldsResult import (
32
+ ListCustomMetadataFieldsResult ,
33
+ )
34
+ from .models .results .ListFileResult import ListFileResult
35
+ from .models .results .PurgeCacheResult import PurgeCacheResult
36
+ from .models .results .PurgeCacheStatusResult import PurgeCacheStatusResult
37
+ from .models .results .RenameFileResult import RenameFileResult
38
+ from .models .results .ResponseMetadataResult import ResponseMetadataResult
39
+ from .models .results .TagsResult import TagsResult
40
+ from .models .results .UploadFileResult import UploadFileResult
5
41
from .resource import ImageKitRequest
6
42
from .url import Url
7
43
from .utils .calculation import get_authenticated_params , hamming_distance
@@ -27,96 +63,190 @@ def __init__(
27
63
self .file = File (self .ik_request )
28
64
self .url_obj = Url (self .ik_request )
29
65
30
- def upload (self , file = None , file_name = None , options = None ) -> Dict [str , Any ]:
31
- """Provides upload functionality
32
- """
66
+ def upload (self , file = None , file_name = None , options = None ) -> UploadFileResult :
67
+ """Provides upload functionality"""
33
68
return self .file .upload (file , file_name , options )
34
69
35
- def upload_file (self , file = None , file_name = None , options = None ) -> Dict [str , Any ]:
36
- """Provides upload functionality
37
- """
38
- return self .file .upload (file , file_name , options )
70
+ def upload_file (
71
+ self , file = None , file_name = None , options : UploadFileRequestOptions = None
72
+ ) -> UploadFileResult :
73
+ """Provides upload functionality"""
74
+ return self .file .upload (
75
+ file , file_name , options if options is not None else None
76
+ )
39
77
40
- def list_files (self , options : Dict ) -> Dict :
41
- """Get list(filtered if given param) of images of client
42
- """
78
+ def list_files (
79
+ self , options : ListAndSearchFileRequestOptions = None
80
+ ) -> ListFileResult :
81
+ """Get list(filtered if given param) of images of client"""
43
82
return self .file .list (options )
44
83
45
- def get_file_details (self , file_identifier : str = None ) -> Dict :
46
- """Get file_detail by file_id or file_url
47
- """
48
- return self .file .details (file_identifier )
84
+ def get_file_details (self , file_id : str = None ) -> FileResultWithResponseMetadata :
85
+ """Get file_detail by file_id or file_url"""
86
+ return self .file .details (file_id )
87
+
88
+ def get_file_versions (self , file_id : str = None ) -> ListFileResult :
89
+ """Get file_version by file_id or file_url"""
90
+ return self .file .get_file_versions (file_id )
49
91
50
- def update_file_details (self , file_id : str , options : dict = None ) -> Dict :
51
- """Update file detail by file id and options
52
- """
92
+ def get_file_version_details (
93
+ self , file_id : str = None , version_id : str = None
94
+ ) -> FileResultWithResponseMetadata :
95
+ """Get file_version details by file_id and version_id"""
96
+ return self .file .get_file_version_details (file_id , version_id )
97
+
98
+ def update_file_details (
99
+ self , file_id : str , options : UpdateFileRequestOptions = None
100
+ ) -> FileResultWithResponseMetadata :
101
+ """Update file details by file id and options"""
53
102
return self .file .update_file_details (file_id , options )
54
103
55
- def delete_file (self , file_id : str = None ) -> Dict [str , Any ]:
56
- """Delete file by file_id
57
- """
104
+ def add_tags (self , file_ids , tags ) -> TagsResult :
105
+ """Add tags by file ids and tags"""
106
+ return self .file .manage_tags (file_ids , tags , "addTags" )
107
+
108
+ def remove_tags (self , file_ids , tags ) -> TagsResult :
109
+ """Remove tags by file ids and tags"""
110
+ return self .file .manage_tags (file_ids , tags , "removeTags" )
111
+
112
+ def remove_ai_tags (self , file_ids , ai_tags ) -> TagsResult :
113
+ """Remove AI tags by file ids and AI tags"""
114
+ return self .file .remove_ai_tags (file_ids , ai_tags )
115
+
116
+ def delete_file (self , file_id : str = None ) -> ResponseMetadataResult :
117
+ """Delete file by file_id"""
58
118
return self .file .delete (file_id )
59
119
60
- def bulk_delete (self , file_ids : list = None ):
61
- """Delete files in bulk by provided list of ids
62
- """
120
+ def delete_file_version (self , file_id , version_id ) -> ResponseMetadataResult :
121
+ """Delete file version by provided file id and version id"""
122
+ return self .file .delete_file_version (file_id , version_id )
123
+
124
+ def bulk_delete (self , file_ids : list = None ) -> BulkDeleteFileResult :
125
+ """Delete files in bulk by provided list of file ids"""
63
126
return self .file .batch_delete (file_ids )
64
127
65
- def bulk_file_delete (self , file_ids : list = None ):
66
- """Delete files in bulk by provided list of ids
67
- """
128
+ def bulk_file_delete (self , file_ids : list = None ) -> BulkDeleteFileResult :
129
+ """Delete files in bulk by provided list of file ids"""
68
130
return self .file .batch_delete (file_ids )
69
131
70
- def purge_cache (self , file_url : str = None ) -> Dict [str , Any ]:
71
- """Purge Cache from server by file url
72
- """
132
+ def copy_file (
133
+ self , options : CopyFileRequestOptions = None
134
+ ) -> ResponseMetadataResult :
135
+ """Copy file by provided sourceFilePath, destinationPath and includeFileVersions as an options"""
136
+ return self .file .copy_file (options )
137
+
138
+ def move_file (
139
+ self , options : MoveFileRequestOptions = None
140
+ ) -> ResponseMetadataResult :
141
+ """Move file by provided sourceFilePath and destinationPath as an options"""
142
+ return self .file .move_file (options )
143
+
144
+ def rename_file (self , options : RenameFileRequestOptions = None ) -> RenameFileResult :
145
+ """Rename file by provided filePath, newFileName and purgeCache as an options"""
146
+ return self .file .rename_file (options )
147
+
148
+ def restore_file_version (
149
+ self , file_id , version_id
150
+ ) -> FileResultWithResponseMetadata :
151
+ """Restore file version by provided file id and version id"""
152
+ return self .file .restore_file_version (file_id , version_id )
153
+
154
+ def create_folder (
155
+ self , options : CreateFolderRequestOptions = None
156
+ ) -> ResponseMetadataResult :
157
+ """Create folder by provided folderName and parentFolderPath as an options"""
158
+ return self .file .create_folder (options )
159
+
160
+ def delete_folder (
161
+ self , options : DeleteFolderRequestOptions = None
162
+ ) -> ResponseMetadataResult :
163
+ """Delete folder by provided folderPath as an options"""
164
+ return self .file .delete_folder (options )
165
+
166
+ def copy_folder (self , options : CopyFolderRequestOptions = None ) -> FolderResult :
167
+ """Copy folder by provided sourceFolderPath, destinationPath and includeFileVersions as an options"""
168
+ return self .file .copy_folder (options )
169
+
170
+ def move_folder (self , options : MoveFolderRequestOptions = None ) -> FolderResult :
171
+ """Move folder by provided sourceFolderPath and destinationPath as an options"""
172
+ return self .file .move_folder (options )
173
+
174
+ def get_bulk_job_status (self , job_id ) -> GetBulkJobStatusResult :
175
+ """Get bulk job status by provided only jobId"""
176
+ return self .file .get_bulk_job_status (job_id )
177
+
178
+ def purge_cache (self , file_url : str = None ) -> PurgeCacheResult :
179
+ """Purge Cache from server by file url"""
73
180
return self .file .purge_cache (file_url )
74
181
75
- def purge_file_cache (self , file_url : str = None ) -> Dict [str , Any ]:
76
- """Purge Cache from server by file url
77
- """
182
+ def purge_file_cache (self , file_url : str = None ) -> PurgeCacheResult :
183
+ """Purge Cache from server by file url"""
78
184
return self .file .purge_cache (file_url )
79
185
80
- def get_purge_cache_status (self , purge_cache_id : str = "" ) -> Dict [str , Any ]:
81
- """Get Purge Cache status by purge cache request_id
82
- """
186
+ def get_purge_cache_status (
187
+ self , purge_cache_id : str = ""
188
+ ) -> PurgeCacheStatusResult :
189
+ """Get Purge Cache status by purge cache request_id"""
83
190
return self .file .get_purge_cache_status (str (purge_cache_id ))
84
191
85
- def get_purge_file_cache_status (self , purge_cache_id : str = "" ) -> Dict [str , Any ]:
86
- """Get Purge Cache status by purge cache request_id
87
- """
192
+ def get_purge_file_cache_status (
193
+ self , purge_cache_id : str = ""
194
+ ) -> PurgeCacheStatusResult :
195
+ """Get Purge Cache status by purge cache request_id"""
88
196
return self .file .get_purge_cache_status (str (purge_cache_id ))
89
197
90
- def get_metadata (self , file_id : str = None ) -> Dict [str , Any ]:
91
- """Get Meta Data of a file by file id
92
- """
198
+ def get_metadata (self , file_id : str = None ) -> GetMetadataResult :
199
+ """Get Meta Data of a file by file id"""
93
200
return self .file .get_metadata (str (file_id ))
94
201
95
- def get_file_metadata (self , file_id : str = None ) -> Dict [str , Any ]:
96
- """Get Meta Data of a file by file id
97
- """
202
+ def get_file_metadata (self , file_id : str = None ) -> GetMetadataResult :
203
+ """Get Meta Data of a file by file id"""
98
204
return self .file .get_metadata (str (file_id ))
99
205
100
- def get_remote_url_metadata (self , remote_file_url : str = "" ):
206
+ def get_remote_url_metadata (self , remote_file_url : str = "" ) -> GetMetadataResult :
101
207
return self .file .get_metadata_from_remote_url (remote_file_url )
102
208
103
- def get_remote_file_url_metadata (self , remote_file_url : str = "" ):
209
+ def get_remote_file_url_metadata (
210
+ self , remote_file_url : str = ""
211
+ ) -> GetMetadataResult :
212
+ """Get remote metadata by provided remote_file_url"""
104
213
return self .file .get_metadata_from_remote_url (remote_file_url )
105
214
215
+ def create_custom_metadata_fields (
216
+ self , options : CreateCustomMetadataFieldsRequestOptions = None
217
+ ) -> CustomMetadataFieldsResultWithResponseMetadata :
218
+ """creates custom metadata fields by passing name, label and schema as an options"""
219
+ return self .file .create_custom_metadata_fields (options )
220
+
221
+ def get_custom_metadata_fields (
222
+ self , include_deleted : bool = False
223
+ ) -> ListCustomMetadataFieldsResult :
224
+ """get custom metadata fields"""
225
+ return self .file .get_custom_metadata_fields (include_deleted )
226
+
227
+ def update_custom_metadata_fields (
228
+ self , field_id , options : UpdateCustomMetadataFieldsRequestOptions = None
229
+ ) -> CustomMetadataFieldsResultWithResponseMetadata :
230
+ """updates custom metadata fields by passing id of custom metadata field and params as an options"""
231
+ return self .file .update_custom_metadata_fields (field_id , options )
232
+
233
+ def delete_custom_metadata_field (
234
+ self , field_id : str = ""
235
+ ) -> ResponseMetadataResult :
236
+ """Deletes custom metadata fields by passing field_id"""
237
+ return self .file .delete_custom_metadata_field (field_id )
238
+
106
239
def url (self , options : Dict [str , Any ]) -> str :
107
- """Get generated Url from options parameter
108
- """
240
+ """Get generated Url from options parameter"""
109
241
return self .url_obj .generate_url (options )
110
242
111
243
@staticmethod
112
244
def phash_distance (first , second ):
113
- """Get hamming distance between two phash(to check similarity)
114
- """
245
+ """Get hamming distance between two phash(to check similarity)"""
115
246
if not (first and second ):
116
247
raise TypeError (ERRORS .MISSING_PHASH_VALUE .value )
117
248
return hamming_distance (first , second )
118
249
119
250
def get_authentication_parameters (self , token = "" , expire = 0 ):
120
- """Get Authentication parameters
121
- """
251
+ """Get Authentication parameters"""
122
252
return get_authenticated_params (token , expire , self .ik_request .private_key )
0 commit comments