
     S_                     \    S r SSKrSSKJr  \R                  " SSS/5      r " S S\5      rg)	zR
hyperframe/flags
~~~~~~~~~~~~~~~~

Defines basic Flag and Flags data structures.
    N)
MutableSetFlagnamebitc                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)Flags   z
A simple MutableSet implementation that will only accept known flags as
elements.

Will behave like a regular set(), except that a ValueError will be thrown
when .add()ing unexpected flags.
c                 P    [        S U 5       5      U l        [        5       U l        g )Nc              3   8   #    U  H  oR                   v   M     g 7fN)r   ).0flags     2/usr/lib/python3/dist-packages/hyperframe/flags.py	<genexpr>!Flags.__init__.<locals>.<genexpr>   s     Dmd		ms   )set_valid_flags_flags)selfdefined_flagss     r   __init__Flags.__init__   s    DmDDe    c                 P    [        [        [        U R                  5      5      5      $ r   )reprsortedlistr   r   s    r   __repr__Flags.__repr__   s    F4,-..r   c                 8    U R                   R                  U5      $ r   )r   __contains__)r   xs     r   r"   Flags.__contains__   s    {{''**r   c                 6    U R                   R                  5       $ r   )r   __iter__r   s    r   r&   Flags.__iter__    s    {{##%%r   c                 6    U R                   R                  5       $ r   )r   __len__r   s    r   r)   Flags.__len__#   s    {{""$$r   c                 8    U R                   R                  U5      $ r   )r   discardr   values     r   r,   Flags.discard&   s    {{""5))r   c                     XR                   ;  a$  [        SR                  XR                   5      5      eU R                  R	                  U5      $ )Nz(Unexpected flag: {}. Valid flags are: {})r   
ValueErrorformatr   addr-   s     r   r3   	Flags.add)   sG    ))):AA,, 
 {{u%%r   )r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r"   r&   r)   r,   r3   __static_attributes__ r   r   r   r      s*    /+&%*&r   r   )r9   collectionscollections.abcr   
namedtupler   r   r;   r   r   <module>r?      s4     &fvuo6"&J "&r   