%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__/giobackend.cpython-312.pyc

�

�#	f����ddlZddlZddlZddlZddlZddlmZddlmZd�ZGd�dejj�Zejjde�y)�N)�log)�utilc���dtjvr�tjdgtjd��}|j�dj
dd��}|jd	�}|D]�}|jd
d�}t|�dk(s�$|dd
k(r?tjtjt|d�tj�|dtj|d<��yy)N�DBUS_SESSION_BUS_ADDRESSzdbus-launchT)�stdout�universal_newlinesr�utf8�replace)�errors�
�=���DBUS_SESSION_BUS_PID)�os�environ�
subprocess�Popen�PIPE�communicate�decode�split�len�atexit�register�kill�int�signal�SIGTERM)�p�output�lines�line�partss     �?/usr/lib/python3/dist-packages/duplicity/backends/giobackend.py�ensure_dbusr&s���"����3����m�_�Z�_�_�Y]�^�������#�*�*�6�)�*�D�����T�"���	0�D��J�J�s�A�&�E��5�z�Q����8�5�5��O�O�B�G�G�S��q��]�F�N�N�K�',�Q�x��
�
�5��8�$�	0�	4�c�L�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
y)
�
GIOBackendz�Use this backend when saving to a GIO URL.
    This is a bit of a meta-backend, in that it can handle multiple schemas.
    URLs look like schema://user@server/path.
    c�>��ddlm�ddlm}G�fd�d�j�}tj
jj||�t��jj|j�|_||�}|j�}|jj�jj |d|j"|�|j%�|jj'�s|jj)d�yy)Nr��Gio��GLibc�0��eZdZdZ�fd�Z�fd�Z�fd�Zy)�.GIOBackend.__init__.<locals>.DupMountOperationzjA simple MountOperation that grabs the password from the environment
            or the user.
            c����jj|�||_|jd|j�|jd|j
�y)Nzask-passwordzask-question)�MountOperation�__init__�backend�connect�ask_password_cb�ask_question_cb)�selfr4r,s  �r%r3z7GIOBackend.__init__.<locals>.DupMountOperation.__init__>sF����"�"�+�+�D�1�&������^�T�-A�-A�B����^�T�-A�-A�Br'c���|j|jj��|j�jj
�y�N)�set_passwordr4�get_password�reply�MountOperationResult�HANDLED�r8�args�kwargsr,s   �r%r6z>GIOBackend.__init__.<locals>.DupMountOperation.ask_password_cbDs6����!�!�$�,�,�";�";�"=�>��
�
�3�3�3�;�;�<r'c�r��|jd�|j�jj�y)Nr)�
set_choicer=r>r?r@s   �r%r7z>GIOBackend.__init__.<locals>.DupMountOperation.ask_question_cbHs)�������"��
�
�3�3�3�;�;�<r'N)�__name__�
__module__�__qualname__�__doc__r3r6r7r+s�r%�DupMountOperationr09s���
�
C�
=�
=r'rI)�
gi.repositoryr,r.r2�	duplicityr4�Backendr3r&�File�new_for_uri�
url_string�remote_file�MainLoop�mount_enclosing_volume�MountMountFlags�NONE�_GIOBackend__done_with_mount�run�query_exists�make_directory_with_parents)r8�
parsed_urlr.rI�op�loopr,s      @r%r3zGIOBackend.__init__5s����%�&�	=�� 2� 2�	=�2	���!�!�*�*�4��<��
��8�8�/�/�
�0E�0E�F����t�
$���}�}������/�/��0C�0C�0H�0H�"�d�TX�Tj�Tj�lp�q����
����,�,�.����8�8��>�/r'c��ddlm}ddlm}	|j|�|j!�y#|j$r�}|j
|jjk7rp|j
|jjk7rMtjtd�tj|�ztjj�Yd}~��d}~wwxYw)Nrr+r-z1Connection failed, please check your password: %s)rJr,r.�mount_enclosing_volume_finish�GError�code�IOErrorEnum�ALREADY_MOUNTED�
NOT_SUPPORTEDr�
FatalError�_r�uexc�	ErrorCode�connection_failed�quit)r8�fileobj�resultr[r,r.�es       r%�__done_with_mountzGIOBackend.__done_with_mountbs���%�&�	��1�1�&�9�	
�	�	����{�{�	��v�v����8�8�8�Q�V�V�s���Gd�Gd�=d�����I�J�T�Y�Y�WX�\�Y��M�M�3�3����	�s�0�C�BC�Cc��yr:�)r8rArBs   r%�__copy_progresszGIOBackend.__copy_progressqs��r'c�v�ddlm}|j||jjd|j
d�y�Nrr+)rJr,�copy�
FileCopyFlags�	OVERWRITE�_GIOBackend__copy_progress)r8�source�targetr,s    r%�__copy_filezGIOBackend.__copy_filets.��%�
	���F�C�-�-�7�7��t�?S�?S�UY�Zr'c�<�ddlm}ddlm}t||j�r�|j
|jjk(r|dk(rtjjS|j
|jjk(rtjjS|j
|jjk(rtjjS|j
|jjk(rtjjSyy)Nrr+r-�delete)rJr,r.�
isinstancer^r_r`�FAILEDrrf�backend_not_found�PERMISSION_DENIED�backend_permission_denied�	NOT_FOUND�NO_SPACE�backend_no_space)r8�	operationrkr,r.s     r%�_error_codezGIOBackend._error_code|s���%�&��a����%��v�v����/�/�/�I��4I��}�}�6�6�6����3�?�?�<�<�<��}�}�>�>�>����3�?�?�4�4�4��}�}�6�6�6����3�?�?�3�3�3��}�}�5�5�5�4�&r'c���ddlm}|jj|j�}|j
j
tj|��}|j||�yrq)
rJr,rM�new_for_path�namerP�get_child_for_display_namer�fsdecode�_GIOBackend__copy_file)r8�source_path�remote_filenamer,�source_file�target_files      r%�_putzGIOBackend._put�sN��%��h�h�+�+�K�,<�,<�=���&�&�A�A�"�+�+�o�B^�_������k�2r'c���ddlm}|jjt	j
|��}|jj|j�}|j||�yrq)
rJr,rPr�rr�rMr�r�r�)r8�filename�
local_pathr,r�r�s      r%�_getzGIOBackend._get�sL��%��&�&�A�A�"�+�+�h�BW�X���h�h�+�+�J�O�O�<������k�2r'c��ddlm}g}|jj|j|j
jd�}|jd�}|r3|j|j��|jd�}|r�3|Srq)
rJr,rP�enumerate_children�$FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME�FileQueryInfoFlagsrT�	next_file�append�get_display_name)r8r,�files�enum�infos     r%�_listzGIOBackend._list�s~��%���
���2�2��4�4�c�6L�6L�6Q�6Q�SW�
���~�~�d�#����L�L��.�.�0�1��>�>�$�'�D���r'c��|jjtj|��}|j	d�yr:)rPr�rr�rz)r8r�r�s   r%�_deletezGIOBackend._delete�s/���&�&�A�A�"�+�+�h�BW�X�����4� r'c���ddlm}|jjt	j
|��}|j
|j|jjd�}d|j�iS)Nrr+�size)rJr,rPr�rr��
query_info�FILE_ATTRIBUTE_STANDARD_SIZEr�rT�get_size)r8r�r,r�r�s     r%�_queryzGIOBackend._query�s\��%��&�&�A�A�"�+�+�h�BW�X���%�%�c�&F�&F��H^�H^�Hc�Hc�ei�j����
�
��(�(r'N)rErFrGrHr3rUrur�r�r�r�r�r�r�rnr'r%r)r)/s;���
+?�Z
�
�[�6� 3�3��"!�)r'r)�gio)
rrrr�duplicity.backendrKrrr&r4rLr)�register_backend_prefixrnr'r%�<module>r�sT��*�	�
�����
0� E)��"�"�*�*�E)�P
���)�)�%��<r'

Zerion Mini Shell 1.0