+
    Z8i                     X    R t ^RIHt ^RIHt ^RIHt  ! R R]P                  4      tR# )zV
Keyring Chainer - iterates over other viable backends to
discover passwords in each.
)backend)
properties)failc                      a  ] tR t^t o RtRt]P                  V 3R lR l4       t]P                  R 4       t	R t
R tR tR	 tR
tV tR# )ChainerBackendzN
>>> ChainerBackend()
<keyring.backends.chainer.ChainerBackend object at ...>
Tc                    < V ^8  d   QhRS[ /# )   return)float)format__classdict__s   "8lib/python3.14/site-packages/keyring/backends/chainer.py__annotate__ChainerBackend.__annotate__   s     L L L    c                |    \        V P                  4      ^8  d   ^
# \        P                  P                  ^,
          # )z
If there are backends to chain, high priority
Otherwise very low priority since our operation when empty
is the same as null.
)lenbackendsr   Keyringpriority)clss   &r   r   ChainerBackend.priority   s.     &*rK1F1F1JKr   c                ~    R p\        V\        P                  ! 4       4      p\        V\        P                  RR7      # )z%
Discover all keyrings for chaining.
c                     \         P                  ;'       g    \        p\        V \        4      '       * ;'       d     V! V 4      ;'       d    V P
                  ^ 8  # )    )r   _limitbool
isinstancer   r   )keyringlimits   & r   allow&ChainerBackend.backends.<locals>.allow$   sN    NN**dEw77 ) )'N) )$$q(r   T)keyreverse)filterr   get_all_keyringsortedby_priority)r   r    alloweds   &  r   r   ChainerBackend.backends   s3    	  7 7 9:g7#6#6EEr   c                ^    V P                    F  pVP                  W4      pVf   K  Vu # 	  R # N)r   get_password)selfserviceusernamer   passwords   &&&  r   r,   ChainerBackend.get_password/   s+    }}G++G>H# %r   c                v    V P                    F  p VP                  WV4      u # 	  R #   \         d     K*  i ; ir+   )r   set_passwordNotImplementedError)r-   r.   r/   r0   r   s   &&&& r   r3   ChainerBackend.set_password5   s<    }}G++GxHH % ' s   )88c                t    V P                    F  p VP                  W4      u # 	  R #   \         d     K)  i ; ir+   )r   delete_passwordr4   )r-   r.   r/   r   s   &&& r   r7   ChainerBackend.delete_password<   s:    }}G..wAA % ' s   (77c                ^    V P                    F  pVP                  W4      pVf   K  Vu # 	  R # r+   )r   get_credential)r-   r.   r/   r   
credentials   &&&  r   r:   ChainerBackend.get_credentialC   s,    }}G //BJ%!! %r    N)__name__
__module____qualname____firstlineno____doc__viabler   classpropertyr   r   r,   r3   r7   r:   __static_attributes____classdictcell__)r   s   @r   r   r      s`      FL L F F  " "r   r   N)rB    r   compatr   r   KeyringBackendr   r=   r   r   <module>rJ      s'   
   <"W++ <"r   