
    pJbdw                         d Z ddlZ ej                  dd        ej                  dd        ej                  dd       ddlmZmZ ddlZddlZddl	Zdd	l
mZmZmZ  G d
 de      Z G d d      Zy)z1.0.0    NGtkz3.0GdkX11XAppz1.0)r   r   )AptErrorDialogAptProgressDialogAptConfirmDialogc                   b    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zy)APTNc                 J    || _         d | _        d | _        d | _        d | _        y N)parent_windowprogress_callbackfinished_callbackerror_callbackcancelled_callback)selfr   s     6/usr/lib/python3/dist-packages/mintcommon/aptdaemon.py__init__zAPT.__init__   s*    *!%!%""&    c                     || _         y r   )r   )r   r   s     r   set_progress_callbackzAPT.set_progress_callback   
    !2r   c                     || _         y r   r   )r   r   s     r   set_finished_callbackzAPT.set_finished_callback   r   r   c                     || _         y r   )r   )r   r   s     r   set_error_callbackzAPT.set_error_callback   s
    ,r   c                     || _         y r   )r   )r   r   s     r   set_cancelled_callbackzAPT.set_cancelled_callback    s
    "4r   c                     t         j                  j                         }|j                         }| j	                  |       y r   )	aptdaemonclient	AptClientupdate_cache_run_transaction)r   aptdaemon_clientupdate_transactions      r   r$   zAPT.update_cache#   s5    $++557-::<01r   c                     t         j                  j                         }|j                  |dd| j                  | j
                         y )NTF)forcewaitreply_handlererror_handler)r!   r"   r#   install_file_simulate_trans	_on_error)r   pathr&   s      r   r-   zAPT.install_file(   sI    $++557%%d$URVRfRfvz  wE  wE%  	Fr   c                     t         j                  j                         }|j                  || j                  | j
                         y Nr+   r,   )r!   r"   r#   install_packagesr.   r/   r   packagesr&   s      r   r4   zAPT.install_packages,   s9    $++557))($BVBVfjftft)ur   c                     t         j                  j                         }|j                  || j                  | j
                         y r2   )r!   r"   r#   remove_packagesr.   r/   r5   s      r   r8   zAPT.remove_packages0   s9    $++557((AUAUeieses(tr   c                 2   | j                   Tt        || j                        }|j                  ddd | j                         |j                  d| j                         y t        || j                   | j                  | j                  | j                         y )NparentTc                       y)NT r=   r   r   <lambda>z&APT._run_transaction.<locals>.<lambda>7   s    r   )close_on_finished
show_errorr+   r,   finished)
r   r   r   runr/   connect
_on_finishAptDaemonTransactionr   r   )r   transactiondias      r   r%   zAPT._run_transaction4   s    !!)#K8J8JKCGGdt<gkguguGv
DOO< d.D.DdF\F\^b^q^qsw  tF  tF  Gr   c                 J     j                   fd j                         y )Nc                  &     j                        S r   )_confirm_depsr   transs   r   r>   z%APT._simulate_trans.<locals>.<lambda>=   s    T-?-?-F r   r3   )simulater/   rK   s   ``r   r.   zAPT._simulate_trans<   s    %FVZVdVder   c                    	 |j                   D cg c]  }|s|	 c}rqt        || j                        }|j                         }|j	                          |t
        j                  j                  k7  r| j                  | j                          y | j                  |       y c c}w # t        $ r}t        |       Y d }~y d }~ww xY w)Nr:   )dependenciesr   r   rB   hider   ResponseTypeOKr   r%   	Exceptionprint)r   rL   pkgsrG   reses         r   rJ   zAPT._confirm_deps?   s    	!&!3!3<t<&uT5G5GHggi
#**---..://1!!%( =  	!HH	s3   B' B"B"A3B' B' "B' '	C0C  Cc                    t        |t        j                  j                        r| j                  | j	                          y t        |t        j                  j
                        sAt        j                  j                  t        j                  j                  t        |            }t        |      }|j                          |j                          y r   )
isinstancer!   errorsNotAuthorizedErrorr   TransactionFailedenumsERROR_UNKNOWNstrr   rB   rP   )r   errorrG   s      r   r/   zAPT._on_errorM   s    eY--@@A&&2'')E9#3#3#E#EF$$66y7T7TVYZ_V`aEU#	
r   c                 B    | j                   | j                  ||       y y r   r   r   rF   
exit_states      r   rD   zAPT._on_finishY   s#    !!-"";
; .r   r   )__name__
__module____qualname__r   r   r   r   r   r$   r-   r4   r8   r%   r.   rJ   r/   rD   r=   r   r   r
   r
      sM    '33-52
FvuGf
<r   r
   c                   $    e Zd Zd Zd Zd Zd Zy)rE   c                 4   || _         || _        || _        || _        || _        |j                  d       |j                  d| j                         |j                  d| j                         |j                  d| j                         |j                          y )Ngnomezprogress-changedrA   r`   )r   r   r   rF   r   set_debconf_frontendrC   on_transaction_progresson_transaction_finishon_transaction_errorrB   )r   rF   r   r   r   r   s         r   r   zAptDaemonTransaction.__init___   s    !2!2,&*((1.0L0LMJ(B(BCGT%>%>?r   c                     | j                   | j                  |       | j                  !t        j                  | j                  |       y y r   )r   r   r   set_window_progress)r   rF   progresss      r   rk   z,AptDaemonTransaction.on_transaction_progressl   sC    !!-""8,)$$T%7%7B *r   c                     | j                   | j                  ||       | j                  !t        j                  | j                  d       y y )Nr   )r   r   r   ro   )r   rF   
error_codeerror_detailss       r   rm   z)AptDaemonTransaction.on_transaction_errorr   sE    *
M:)$$T%7%7; *r   c                 ~    |t         j                  j                  k(  r | j                  | j                  ||       y y y r   )r!   r]   EXIT_SUCCESSr   rb   s      r   rl   z*AptDaemonTransaction.on_transaction_finishx   s:    )//666%%1&&{J? 2 7r   N)rd   re   rf   r   rk   rm   rl   r=   r   r   rE   rE   ]   s    C<@r   rE   )__version__girequire_versiongi.repositoryr   r   aptdaemon.clientr!   aptdaemon.enumsaptdaemon.errorsaptdaemon.gtk3widgetsr   r   r   objectr
   rE   r=   r   r   <module>r      sp    	   5%     8U #   65 ! #    U UM<& M<^@ @r   