+
    :i  c                   s   ^ RI t ^ RIt^ RIt^ RIHt ^ RIt^ RIHtHt ^ RI	H
t
 ]P                  ! ]4      t]P                  P                  RR4      R,           t]P                  P                  RR	4      R,           t]P                  P                  R
R4      t]P                  P                  RR4      t ! R R]4      t]t ! R R]4      t ! R R]4      t ! R R]4      tR# )i    N)Path)FernetInvalidToken)KeyringErrorXDG_DATA_HOMEz~/.local/sharez/ykmanXDG_CONFIG_HOMEz	~/.configZYKMAN_KEYRING_SERVICEZykmanZYKMAN_KEYRING_KEYwrap_keyc                   s@   a  ] tR t^.t o ]tR tR tR tR t	Rt
RtV tR# )Settingsc                s   \        V P                  4      P                  4       P                  4       VR ,           ,          V n        V P                  P                  4       '       dU    V P                  P                  R4      ;_uu_ 4       pV P                  \        P                  ! V4      4       RRR4       R# R#   + '       g   i     R# ; i  \         d    \        P                  RRR7        R# i ; i)z.jsonZrNzError reading settings fileT)Zexc_info)r    _config_dirZ
expanduserZresolvefnameZis_fileopenZupdatejsonZload	ExceptionloggerZwarning)selfnamefds   && 3/usr/lib/python3.14/site-packages/ykman/settings.py__init__ZSettings.__init__1   s    $**+668@@BdWnU
::MZZ__S))RKK		". *)  ))) M<tLMs0   &#C 	&B;/C ;C	C C "C54C5c                sL    VR J;'       d    V P                   VP                   8H  # Nr	   r   Zother   &&r   __eq__ZSettings.__eq__;   s"    D >>TZZ5;;%>>    c                sL    VR J ;'       g    V P                   VP                   8g  # r   r   r   r   r   __ne__ZSettings.__ne__>   s!    }99

ekk 99r   c                s4   V P                   P                  pVP                  4       '       g   VP                  R RR7       V P                   P	                  R4      ;_uu_ 4       p\
        P                  ! W^R7       RRR4       R#   + '       g   i     R# ; i)i  T)ZparentsZw)ZindentN)r	   ZparentZis_dirZmkdirr
   r   Zdump)r   Zconf_dirr      &  r   writeZSettings.writeA   s`    ::$$  NN5$N/ZZ__S!!RIIdq) "!!!s   #BB	Nr   )__name__
__module____qualname____firstlineno__r   r   r   r   r   r   Z__hash____static_attributes____classdictcell__)__classdict__s   @r   r   r   .   s&     !KM?:* Hr   r   c                   s    ] tR t^OtRtRtR# )KeystoreErrorzError accessing the OS keystore Nr   r   r   r   Z__doc__r    r$   r   r   r#   r#   O   s    )r   r#   c                   s    ] tR t^StRtRtR# )UnwrapValueErrorz*Error unwrapping a particular secret valuer$   Nr%   r$   r   r   r&   r&   S   s    4r   r&   c                   s   a a ] tR t^Wt o]t]]3V 3R llt]	V3R lR l4       t
R tV3R lR ltV3R lR ltR	tVtV ;t# )
AppDatac                s>   < \         SV `  V4       W n        W0n        R # r   )Zsuperr   _service	_username)r   r   Zkeyring_serviceZkeyring_key	__class__s   &&&&r   r   ZAppData.__init__Z   s    '$r   c                    < V ^8  d   QhRS[ /# )   return)ZboolZformatr"      "r   __annotate__AppData.__annotate__`   s     ( ($ (r   c                s    \        V R 4      # )_fernet)Zhasattr)r   s   &r   keyring_unlockedZAppData.keyring_unlocked_   s    tY''r   c                s   V P                   '       g    \        P                  ! V P                  V P                  4      pTfb   \        P                  ! 4       p\        P                  ! T P                  T P                  TP                  4       4       \        T4      T n        R# \        T4      T n        R# R#   \
         d    \        R 4      hi ; i)zKeyring locked or unavailableN)r3   keyringZget_passwordr(   r)   r   r#   r   Zgenerate_keyZset_passworddecoder2   )r   r   keyr   r   ensure_unlockedZAppData.ensure_unlockedc   s    $$$E"//t~~N ))+$$T]]DNNCJJLQ%c{%h/ %   E#$CDDEs   +B8 8Cc                r+   )r,   r6   Zstrr.   r/   r   r0   r1   q   s     : :c :r   c                s    V P                  4         \        P                  ! V P                  P	                  W,          P                  4       4      4      #   \         d    \        R 4      hi ; i)zUndecryptable value)r7   r   Zloadsr2   Zdecryptencoder   r&   )r   r6   r   r   
get_secretZAppData.get_secretq   sW    	:::dll22493C3C3EFGG 	:"#899	:s   AA A,c                s$   < V ^8  d   QhRS[ RR/# )r,   r6   r-   Nr8   r.   r/   r   r0   r1   x   s     N Nc NT Nr   c                s    V P                  4        V P                  P                  \        P                  ! V4      P                  4       4      P                  4       W&   R # r   )r7   r2   Zencryptr   Zdumpsr9   r5   )r   r6   Zvalues   &&&r   
put_secretZAppData.put_secretx   s?    LL((E):)A)A)CDKKM	r   )r2   r(   r)   )r   r   r   r   r   r   KEYRING_SERVICEKEYRING_KEYr   Zpropertyr3   r7   r:   r;   r    r!   Z__classcell__)r*   r"   s   @@r   r'   r'   W   sI     K-<+ %
 ( (0: :N N Nr   r'   )r   ZloggingZosZpathlibr    r4   Zcryptography.fernetr   r   Zkeyring.errorsr   Z	getLoggerr   r   ZenvironZgetr   r   r<   r=   Zdictr   ZConfigurationr   r#   r&   r'   r$   r   r   <module>r>      s   8   	   4 '			8	$

0@AHL**..!2K@8K**..!8'Bjjnn0*=t < *I *5y 5#Nh #Nr   