%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/duplicity/backends/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/duplicity/backends/__pycache__/boxbackend.cpython-312.pyc

�

�2ea���ddlZddlZddlmZGd�dej
j�Zej
jde�y)�N)�BackendExceptionc�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dd�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zy)�
BoxBackendc��tjjj||�ddlm}m}|j|�|_|jddk(r|jddn|j|_
i|_|j|j�|_
|j�!|j|j�|_
yy)Nr)�Client�JWTAuth�/�)�	duplicity�backend�Backend�__init__�boxsdkrr�get_box_client�_client�path�_folder�_file_to_metadata_map�get_id_from_path�
_folder_id�makedirs)�self�
parsed_urlrrs    �?/usr/lib/python3/dist-packages/duplicity/backends/boxbackend.pyrzBoxBackend.__init__s������!�!�*�*�4��<�	
�
�*�*�:�6���.8�o�o�a�.@�C�.G�z���q�r�*�Z�_�_���%'��"��/�/����=����?�?�"�"�m�m�D�L�L�9�D�O�#�c��	tjj|jdd�}t	t
j
|��S#t$rq}tjjd�}|�@	t	t
j
|��cYd}~S#t$r}td��d}~wwxYwtd��d}~wwxYw)N�configr�BOX_CONFIG_PATHzbox config file is not found.z.box config file is not specified or not found.)�osr�
expanduser�
query_argsrr�from_settings_file�	Exception�environ�getr)rr�config_path�es    rrzBoxBackend.get_box_client-s���	U��'�'�,�,�Z�-B�-B�8�-L�Q�-O�P�K��'�4�4�[�A�B�B���	U��*�*�.�.�):�;�K��&�L�!�'�"<�"<�[�"I�J�J�� �L�*�+J�K�K��L��#�#S�T�T��	U�s<�AA�	C	�!C�:B�C	�	B6�&B1�1B6�6C�C	c���	|j|j��|j|j	�j�|j���y#t$rY�IwxYw)zwUploads file to the specified remote folder
        (tries to delete it first to make sure the new one can be uploaded))�
local_file�remote_fileN)�delete�decoder#�upload�
get_canonical)r�source_path�remote_filenames   r�_putzBoxBackend._put;sd��	��K�K��.�.�0�1�	
���"�0�0�2�9�9�;�'�.�.�0�	�	
���	��	�s�A�	A+�*A+c�v�|j|j�|jj���y)z-Downloads file from the specified remote path)r*r)N)�downloadr,�name)rr0�
local_paths   r�_getzBoxBackend._getHs1��	
�
�
�'�.�.�0�!���-�-�/�	�	
rc�"�|j�S)z(Lists files in the specified remote path)�folder_contents)rs r�_listzBoxBackend._listPs���#�#�%�%rc�D�|j|j���y)z+Deletes file from the specified remote path)r*N)r+r,)r�filenames  r�_deletezBoxBackend._deleteUs��	
������ 1��2rc	��|D�cic]/}||jj|j�ddi���1c}Scc}w)z!Query metadata for a list of file�size���)rr%r,)r�
filename_listr;s   r�_query_listzBoxBackend._query_listZs;��jw�x�^f��$�4�4�8�8����9J�V�UW�L�Y�Y�x�x��xs�4<c�~�|jd�D�cgc]&}|j�dk7s�|j���(}}|d}|dd}	d}|jj|��j	�D]}|j
|k(s�|j}n|�yt|�dk(r|S|}|d}|dd}�ncc}w)z'Get the folder or file id from its pathr	�rr
N��	folder_id)�split�stripr�folder�	get_itemsr4�id�len)	r�remote_path�	parent_id�x�
path_items�head�tail�selected_item_id�items	         rrzBoxBackend.get_id_from_path^s���)4�):�):�3�)?�S�A�1�7�7�9�PR�?�a�g�g�i�S�
�S��!�}���!�"�~���#�����+�+�i�+�@�J�J�L�
���9�9��$�'+�w�w�$��
�
 �'���T��a��'�'�(�I���7�D����8�D���	Ts
�B:�B:c�6�|jj|�}|�|dS|j||j��}|jj|�j�}|j|jd�|j|j<|S)z Get the fild id by its file namerJ)rM�rJr>)	rr%rrr�filerJr>r4)rr0rV�file_ids    r�get_file_id_from_filenamez$BoxBackend.get_file_id_from_filenamevs����)�)�-�-�o�>������:���'�'��4�?�?�'�S���|�|� � ��)�-�-�/���'�'��I�I�1
��"�"�4�9�9�-��rc��|jd�D�cgc]&}|j�dk7s�|j���(}}d}d}t|�dkDrld}|jj	|��j�D]"}|j|dk(s�|j}n|�|}n|}|dd}t|�dkDr�l|�?|}|D]8}|jj	|�j|�}|j}�:|Scc}w)z'Create folder(s) in a path if necessaryr	rC�0NrrDr
)	rFrGrKrrHrIr4rJ�create_subfolder)	rrLrNrOrM�start_folder_idrRrS�	subfolders	         rrzBoxBackend.makedirs�s��)4�):�):�3�)?�S�A�1�7�7�9�PR�?�a�g�g�i�S�
�S��	����*�o��!�#�����+�+�i�+�@�J�J�L�
���9�9�
�1�
�-�'+�w�w�$��
�
 �'�"+���(�I�#�A�B��J��*�o��!��&�'�I�"�
)�� �L�L�/�/�	�:�K�K�D�Q�	�%�L�L�	�
)����1Ts
�D�Dc	��|jj|j��jgd���D�cgc]}|jdk(r|��}}|j
j
|D�cic]&}|j|j|jd���(c}�|D�cgc]}|j��c}Scc}wcc}wcc}w)z Lists files of a remote box pathrD)rJr4r>)�fieldsrVrU)
rrHrrI�typer�updater4rJr>)rrN�itemss   rr8zBoxBackend.folder_contents�s���
�\�\�(�(�4�?�?�(�C�M�M�Uk�M�l�
���v�v���
�
��
�	
�"�"�)�)�Y^�*_�TU�1�6�6�!�$�$����3O�+O�*_�`� %�&�1����&�&��
��+`��&s�B:�.+B?�$Cc���|jj|j�j||��}|j|j
d�|j|j<y)z#Upload local file to the box folder)�	file_path�	file_namerUN)rrHrr-rJr>rr4)rr*r)�new_files    rr-zBoxBackend.upload�sQ���<�<�&�&�t���7�>�>��_j�>�k���+�+��M�M�5
��"�"�8�=�=�1rc��|j|�}t|d�5}|jj|�j	|�ddd�y#1swYyxYw)zDownload file in box folder�wbN)rX�openrrV�download_to)rr*r)rW�fps     rr3zBoxBackend.download�sP���0�0��=��
�*�d�
#�	7�r��L�L���g�&�2�2�2�6�	7�	7�	7�s�+A�Ac�x�|j|�}|jj|�j�y)zDelete file in box folderN)rXrrVr+)rr*rWs   rr+zBoxBackend.delete�s-���0�0��=�������'�"�)�)�+rN)rZ)�__name__�
__module__�__qualname__rrr1r6r9r<rArrXrr8r-r3r+�rrrrsJ��:� U�
�
�&�
3�
y��0
��8'�
�7�,rr�box)	r�duplicity.backendr�duplicity.errorsrrr
r�register_backendrprr�<module>rusC��,
��-�d,��"�"�*�*�d,�N
���"�"�5�*�5r

Zerion Mini Shell 1.0