+
    ei  c                   sX    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                   s   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                s    < V ^8  d   QhRS[ /# )i   Zreturn)Zfloat)Zformat__classdict__s   "=/usr/lib/python3.14/site-packages/keyring/backends/chainer.pyZ__annotate__ZChainerBackend.__annotate__   s     L L L    c                s|    \        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.
)Zlenbackendsr   ZKeyringpriority)clss   &r   r   ZChainerBackend.priority   s.     &*rK1F1F1JKr   c                s~    R p\        V\        P                  ! 4       4      p\        V\        P                  RR7      # )z%
Discover all keyrings for chaining.
c                 s    \         P                  ;'       g    \        p\        V \        4      '       * ;'       d     V! V 4      ;'       d    V P
                  ^ 8  # )i    )r    Z_limitZboolZ
isinstancer   r   )keyringZlimits   & r   allowZ&ChainerBackend.backends.<locals>.allow$   sN    NN**dEw77 ) )'N) )$$q(r   T)ZkeyZreverse)Zfilterr    Zget_all_keyringZsortedZby_priority)r	   r   Zalloweds   &  r   r   Z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
   password   &&&  r   r   ZChainerBackend.get_password/   s+    }}G++G>H# %r   c                sv    V P                    F  p VP                  WV4      u # 	  R #   \         d     K*  i ; ir   )r   set_passwordNotImplementedError)r   r   r   r   r
   s   &&&& r   r   ZChainerBackend.set_password5   s<    }}G++GxHH % ' s   )88c                st    V P                    F  p VP                  W4      u # 	  R #   \         d     K)  i ; ir   )r   delete_passwordr   )r   r   r   r
   s   &&& r   r   ZChainerBackend.delete_password<   s:    }}G..wAA % ' s   (77c                r   r   )r   get_credential)r   r   r   r
   Z
credentialr   r   r   ZChainerBackend.get_credentialC   s,    }}G //BJ%!! %r    N)Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__Zviabler   Zclasspropertyr   r   r   r   r   r   Z__static_attributes__Z__classdictcell__)r   s   @r   r   r      s`      FL L F F  " "r   r   N)r   Z r    Zcompatr   r   ZKeyringBackendr   r   r   r   <module>r      s'   
   <"W++ <"r   