o
    &zh*                     @   s  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 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 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, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< dd l=m>Z> dd!l?m@Z@mAZA G d"d# d#eBZCd$S )%    )AnyDict   )ERRORS)File)CopyFileRequestOptions)CopyFolderRequestOptions)(CreateCustomMetadataFieldsRequestOptions)CreateFolderRequestOptions)DeleteFolderRequestOptions)ListAndSearchFileRequestOptions)MoveFileRequestOptions)MoveFolderRequestOptions)RenameFileRequestOptions)(UpdateCustomMetadataFieldsRequestOptions)UpdateFileRequestOptions)UploadFileRequestOptions)BulkDeleteFileResult).CustomMetadataFieldsResultWithResponseMetadata)FileResultWithResponseMetadata)FolderResult)GetBulkJobStatusResult)GetMetadataResult)ListCustomMetadataFieldsResult)ListFileResult)PurgeCacheResult)PurgeCacheStatusResult)RenameFileResult)ResponseMetadataResult)
TagsResult)UploadFileResult)ImageKitRequest)Url)get_authenticated_paramshamming_distancec                   @   s  e Zd ZdZ					d^ddZd_defddZ	d_dedefd	d
Z	d`de	de
fddZd`dedefddZd`dede
fddZ	dadededefddZ	d`dededefddZdefddZdefddZdefddZd`dedefddZdefdd Zd`d!edefd"d#Zd`d!edefd$d%Z	d`dedefd&d'Z	d`de defd(d)Z!d`de"de#fd*d+Z$defd,d-Z%	d`de&defd.d/Z'	d`de(defd0d1Z)d`de*de+fd2d3Z,d`de-de+fd4d5Z.de/fd6d7Z0d`d8ede1fd9d:Z2d`d8ede1fd;d<Z3	=dbd>ede4fd?d@Z5	=dbd>ede4fdAdBZ6d`dede7fdCdDZ8d`dede7fdEdFZ9dbdGede7fdHdIZ:	=dbdGede7fdJdKZ;	d`de<de=fdLdMZ>	NdcdOe?de@fdPdQZA	d`deBde=fdRdSZC	=dbdTedefdUdVZDdeEeeFf defdWdXZGeHdYdZ ZIddd\d]ZJdS )eImageKitz@
    Main Class What user will use by creating
    instance
    Nc                 C   s.   t |||||| _t| j| _t| j| _d S N)r!   
ik_requestr   filer"   url_obj)self
public_keyprivate_keyurl_endpointtransformation_positionoptions r0   L/var/www/html/kangema/venv/lib/python3.10/site-packages/imagekitio/client.py__init__4   s
   
zImageKit.__init__returnc                 C   s   | j |||S )Provides upload functionalityr(   uploadr*   r(   	file_namer/   r0   r0   r1   r6   B      zImageKit.uploadr/   c                 C   s   | j |||dur|S dS )r4   Nr5   r7   r0   r0   r1   upload_fileF   s
   zImageKit.upload_filec                 C      | j |S )z5Get list(filtered if given param) of images of client)r(   listr*   r/   r0   r0   r1   
list_filesN      zImageKit.list_filesfile_idc                 C   r;   )z&Get file_detail by file_id or file_url)r(   detailsr*   r@   r0   r0   r1   get_file_detailsT      zImageKit.get_file_detailsc                 C   r;   )z'Get file_version by file_id or file_url)r(   get_file_versionsrB   r0   r0   r1   rE   X   rD   zImageKit.get_file_versions
version_idc                 C      | j ||S )z2Get file_version details by file_id and version_id)r(   get_file_version_detailsr*   r@   rF   r0   r0   r1   rH   \      z!ImageKit.get_file_version_detailsc                 C   rG   )z*Update file details by file id and options)r(   update_file_details)r*   r@   r/   r0   r0   r1   rK   b   rJ   zImageKit.update_file_detailsc                 C      | j ||dS )zAdd tags by file ids and tagsaddTagsr(   manage_tagsr*   file_idstagsr0   r0   r1   add_tagsh   r9   zImageKit.add_tagsc                 C   rL   )z Remove tags by file ids and tags
removeTagsrN   rP   r0   r0   r1   remove_tagsl   r9   zImageKit.remove_tagsc                 C   rG   )z&Remove AI tags by file ids and AI tags)r(   remove_ai_tags)r*   rQ   ai_tagsr0   r0   r1   rV   p      zImageKit.remove_ai_tagsc                 C   r;   )zDelete file by file_id)r(   deleterB   r0   r0   r1   delete_filet   rD   zImageKit.delete_filec                 C   rG   )z6Delete file version by provided file id and version id)r(   delete_file_versionrI   r0   r0   r1   r[   x   rX   zImageKit.delete_file_versionrQ   c                 C   r;   z1Delete files in bulk by provided list of file idsr(   batch_deleter*   rQ   r0   r0   r1   bulk_delete|   rD   zImageKit.bulk_deletec                 C   r;   r\   r]   r_   r0   r0   r1   bulk_file_delete   rD   zImageKit.bulk_file_deletec                 C   r;   )z[Copy file by provided sourceFilePath, destinationPath and includeFileVersions as an options)r(   	copy_filer=   r0   r0   r1   rb      r?   zImageKit.copy_filec                 C   r;   )zFMove file by provided sourceFilePath and destinationPath as an options)r(   	move_filer=   r0   r0   r1   rc      r?   zImageKit.move_filec                 C   r;   )zJRename file by provided filePath, newFileName and purgeCache as an options)r(   rename_filer=   r0   r0   r1   rd      rD   zImageKit.rename_filec                 C   rG   )z7Restore file version by provided file id and version id)r(   restore_file_versionrI   r0   r0   r1   re      rJ   zImageKit.restore_file_versionc                 C   r;   )zGCreate folder by provided folderName and parentFolderPath as an options)r(   create_folderr=   r0   r0   r1   rf      r?   zImageKit.create_folderc                 C   r;   )z2Delete folder by provided folderPath as an options)r(   delete_folderr=   r0   r0   r1   rg      r?   zImageKit.delete_folderc                 C   r;   )z_Copy folder by provided sourceFolderPath, destinationPath and includeFileVersions as an options)r(   copy_folderr=   r0   r0   r1   rh      rD   zImageKit.copy_folderc                 C   r;   )zJMove folder by provided sourceFolderPath and destinationPath as an options)r(   move_folderr=   r0   r0   r1   ri      rD   zImageKit.move_folderc                 C   r;   )z*Get bulk job status by provided only jobId)r(   get_bulk_job_status)r*   job_idr0   r0   r1   rj      rD   zImageKit.get_bulk_job_statusfile_urlc                 C   r;   z#Purge Cache from server by file urlr(   purge_cacher*   rl   r0   r0   r1   ro      rD   zImageKit.purge_cachec                 C   r;   rm   rn   rp   r0   r0   r1   purge_file_cache   rD   zImageKit.purge_file_cache purge_cache_idc                 C      | j t|S z0Get Purge Cache status by purge cache request_idr(   get_purge_cache_statusstrr*   rs   r0   r0   r1   rw         zImageKit.get_purge_cache_statusc                 C   rt   ru   rv   ry   r0   r0   r1   get_purge_file_cache_status   rz   z$ImageKit.get_purge_file_cache_statusc                 C   rt   z"Get Meta Data of a file by file idr(   get_metadatarx   rB   r0   r0   r1   r~      r9   zImageKit.get_metadatac                 C   rt   r|   r}   rB   r0   r0   r1   get_file_metadata   r9   zImageKit.get_file_metadataremote_file_urlc                 C   r;   r&   r(   get_metadata_from_remote_urlr*   r   r0   r0   r1   get_remote_url_metadata   s   z ImageKit.get_remote_url_metadatac                 C   r;   )z/Get remote metadata by provided remote_file_urlr   r   r0   r0   r1   get_remote_file_url_metadata   r?   z%ImageKit.get_remote_file_url_metadatac                 C   r;   )zNcreates custom metadata fields by passing name, label and schema as an options)r(   create_custom_metadata_fieldsr=   r0   r0   r1   r      r?   z&ImageKit.create_custom_metadata_fieldsFinclude_deletedc                 C   r;   )zget custom metadata fields)r(   get_custom_metadata_fields)r*   r   r0   r0   r1   r      r?   z#ImageKit.get_custom_metadata_fieldsc                 C   rG   )z^updates custom metadata fields by passing id of custom metadata field and params as an options)r(   update_custom_metadata_fields)r*   field_idr/   r0   r0   r1   r      rJ   z&ImageKit.update_custom_metadata_fieldsr   c                 C   r;   )z2Deletes custom metadata fields by passing field_id)r(   delete_custom_metadata_field)r*   r   r0   r0   r1   r      r?   z%ImageKit.delete_custom_metadata_fieldc                 C   r;   )z(Get generated Url from options parameter)r)   generate_urlr=   r0   r0   r1   url   rD   zImageKit.urlc                 C   s   | r|s
t tjjt| |S )z;Get hamming distance between two phash(to check similarity))	TypeErrorr   MISSING_PHASH_VALUEvaluer$   )firstsecondr0   r0   r1   phash_distance   s   
zImageKit.phash_distancer   c                 C   s   t ||| jjS )zGet Authentication parameters)r#   r'   r,   )r*   tokenexpirer0   r0   r1   get_authentication_parameters   r9   z&ImageKit.get_authentication_parameters)NNNNN)NNNr&   )NN)rr   )F)rr   r   )K__name__
__module____qualname____doc__r2   r    r6   r   r:   r   r   r>   rx   r   rC   rE   rH   r   rK   r   rS   rU   rV   r   rZ   r[   r<   r   r`   ra   r   rb   r   rc   r   r   rd   re   r
   rf   r   rg   r   r   rh   r   ri   r   rj   r   ro   rq   r   rw   r{   r   r~   r   r   r   r	   r   r   boolr   r   r   r   r   r   r   r   staticmethodr   r   r0   r0   r0   r1   r%   .   s    

	















r%   N)Dtypingr   r   constants.errorsr   r(   r   models.CopyFileRequestOptionsr   models.CopyFolderRequestOptionsr   /models.CreateCustomMetadataFieldsRequestOptionsr	   !models.CreateFolderRequestOptionsr
   !models.DeleteFolderRequestOptionsr   &models.ListAndSearchFileRequestOptionsr   models.MoveFileRequestOptionsr   models.MoveFolderRequestOptionsr   models.RenameFileRequestOptionsr   /models.UpdateCustomMetadataFieldsRequestOptionsr   models.UpdateFileRequestOptionsr   models.UploadFileRequestOptionsr   #models.results.BulkDeleteFileResultr   =models.results.CustomMetadataFieldsResultWithResponseMetadatar   -models.results.FileResultWithResponseMetadatar   models.results.FolderResultr   %models.results.GetBulkJobStatusResultr    models.results.GetMetadataResultr   -models.results.ListCustomMetadataFieldsResultr   models.results.ListFileResultr   models.results.PurgeCacheResultr   %models.results.PurgeCacheStatusResultr   models.results.RenameFileResultr   %models.results.ResponseMetadataResultr   models.results.TagsResultr   models.results.UploadFileResultr    resourcer!   r   r"   utils.calculationr#   r$   objectr%   r0   r0   r0   r1   <module>   sB    