
    k7i                         S SK r S SKrS SKrSSKJr  SSKJr  SSKJr  SSK	J
r
JrJrJr   S SKrS SKJr  S r " S	 S
\5      r " S S\5      rg! \ a     N"\ a     N)f = f)    N   )KeyringBackend)
properties)SimpleCredential)	InitErrorKeyringLockedPasswordDeleteErrorPasswordSetError)DBusGMainLoopc                      [         [        [        4n [        R                  " U 5         [
        R                  S   sSSS5        $ ! , (       d  f       g= f)z'
Safely infer an app id from sys.argv.
r   N)AttributeError
IndexError	TypeError
contextlibsuppresssysargv)alloweds    R/home/james-whalen/.local/lib/python3.13/site-packages/keyring/backends/kwallet.py_id_from_argvr      s5     j)3G			W	%xx{ 
&	%	%s   A
Ac                      ^  \ rS rSrSr\" 5       =(       d    SrSrSrSr	\
R                  S\4S j5       rU 4S	 jrS
 rS rS rU 4S jrS rS rSrU =r$ )DBusKeyring   z
KDE KWallet 5 via D-Bus
zPython keyring libraryNzorg.kde.kwalletd5z/modules/kwalletd5returnc                    S[        5       ;  a  [        S5      e [        R                  " [	        5       S9nUR                  U R                  5      (       a  U R                  UR                  5       ;   d  [        S5      eS[        R                  " SS5      R                  S5      ;   a  g	g
! [        R
                   a  n[        UR                  5       5      UeS nAff = f)Ndbuszpython-dbus not installedmainloopzCThe KWallet daemon is neither running nor activatable through D-BusKDEXDG_CURRENT_DESKTOP :gffffff@g@)globalsRuntimeErrorr   
SessionBusr   DBusExceptionget_dbus_messagename_has_ownerbus_namelist_activatable_namesosgetenvsplit)clsbusexcs      r   priorityDBusKeyring.priority'   s    ":;;	@//=?;C s||,, : : <<U  BII3R8>>sCC !! 	@s3356C?	@s   B, ,C CCc                 4   > [         TU ]  " U0 UD6  SU l        g )N)super__init__handle)selfargkw	__class__s      r   r6   DBusKeyring.__init__:   s    #$$    c                    Sn/ nU R                   R                  U R                  X R                  5      (       Ga<  U R                   R	                  U R                  USU R                  5      nUR                  5        H  nUS   nUS   nUR                  SS5      u  pqU R                   R                  U R                  XX`R                  5      nUS:X  d  MZ  U R                   R                  U R                  X%U R                  5        M     U R                   R	                  U R                  USU R                  5      nU(       d1  U R                   R                  U R                  X R                  5        g g g )NPythonz*@*r      @*)
iface	hasFolderr7   appidreadPasswordListitemsrsplitwritePasswordremoveEntryremoveFolder)	r8   service
old_folder
entry_listentrykeypasswordusernamerets	            r   _migrateDBusKeyring._migrate>   s'   

::ZDD44Z

J $))+Ah 8$'JJsA$6!jj..KKHjj !8JJ**4;;
T , 44ZdjjJ 

''ZL ' Er=   c                 ^   U R                   S:  a+  U R                  R                  U R                   5      (       a  g[        R                  " [        5       S9nSn UR                  U R                  U R                  5      n[        R                  " US5      U l        U R                  R                  U R                  R                  5       X0R                  5      U l         U R                   S:  a  gU R                  U5        g! [        R                   a  n[        SU S35      UeS nAff = f)Nr   Tr   zorg.kde.KWalletzFailed to open keyring: .F)r7   rC   isOpenr   r%   r   
get_objectr)   object_path	InterfaceopennetworkWalletrE   r&   r   rT   )r8   rL   r/   wId
remote_objes         r   	connectedDBusKeyring.connectedW   s    ;;!zz  --oo}7	Dt7G7GHJ
4EFDJ**//$***B*B*Dc::VDK ;;?g !! 	D6qc;<!C	Ds   BD D,D''D,c                 *   U R                  U5      (       d  [        S5      eU R                  R                  U R                  XU R
                  5      (       d  gU R                  R                  U R                  XU R
                  5      n[        U5      $ )z,Get password of the username for the serviceFailed to unlock the keyring!N)ra   r   rC   hasEntryr7   rE   readPasswordstrr8   rL   rR   rQ   s       r   get_passwordDBusKeyring.get_passwordj   sk    ~~g&& ?@@zz""4;;4::NN::**4;;4::V8}r=   c                 x  > Ub  [         TU ]  X5      $ U R                  U5      (       d  [        S5      eU R                  R                  U R                  XR                  5       HR  nU R                  R                  U R                  XU R                  5      n[        [        U5      [        U5      5      s  $    g)zGets the first username and password for a service.
Returns a Credential instance

The username can be omitted, but if there is one, it will forward to
get_password.
Otherwise, it will return the first username and password combo that it finds.
Nrd   )r5   get_credentialra   r   rC   	entryListr7   rE   rf   r   rg   )r8   rL   rR   rQ   r;   s       r   rl   DBusKeyring.get_credentialt   s     7)'<<~~g&& ?@@

,,T[['::NHzz..W

H $CM3x=AA	 Or=   c                     U R                  U5      (       d  [        S5      eU R                  R                  U R                  XX0R
                  5        g)z,Set password for the username of the serviceCancelled by userN)ra   r
   rC   rI   r7   rE   rh   s       r   set_passwordDBusKeyring.set_password   s;    ~~g&&"#677

  g::Vr=   c                 *   U R                  U5      (       d  [        S5      eU R                  R                  U R                  XU R
                  5      (       d  [        S5      eU R                  R                  U R                  XU R
                  5        g)z4Delete the password for the username of the service.rp   zPassword not foundN)ra   r	   rC   re   r7   rE   rJ   )r8   rL   rR   s      r   delete_passwordDBusKeyring.delete_password   sh    ~~g&&%&9::zz""4;;4::NN%&:;;

t{{GtzzJr=   )r7   rC   )__name__
__module____qualname____firstlineno____doc__r   rE   walletr)   rZ   r   classpropertyfloatr1   r6   rT   ra   ri   rl   rq   rt   __static_attributes____classcell__r;   s   @r   r   r      sr     O77EF"H&K  $M2&B*WK Kr=   r   c                   R   ^  \ rS rSrSrSrSr\R                  U 4S j5       r	Sr
U =r$ )DBusKeyringKWallet4   z
KDE KWallet 4 via D-Bus
zorg.kde.kwalletdz/modules/kwalletdc                    > [         TU ]  S-
  $ )Nr@   )r5   r1   )r.   r;   s    r   r1   DBusKeyringKWallet4.priority   s    w!##r=    )rv   rw   rx   ry   rz   r)   rZ   r   r|   r1   r~   r   r   s   @r   r   r      s,     "H%K$ $r=   r   )r   r+   r   backendr   compatr   credentialsr   errorsr   r   r	   r
   r   dbus.mainloop.glibr   ImportErrorr   r   r   r   r   r=   r   <module>r      sj     	 
 $  * T T	0zK. zKz
$+ 
$[  	 		s   
A A A A 