
    Ngj                     f    d Z ddlmZ ddlmZmZmZmZ  G d de          Z G d de          Z	dS )	zR
hyperframe/flags
~~~~~~~~~~~~~~~~

Defines basic Flag and Flags data structures.
    )
MutableSet)
NamedTupleIterableSetIteratorc                   $    e Zd ZU eed<   eed<   dS )FlagnamebitN)__name__
__module____qualname__str__annotations__int     L/var/www/html/ai-engine/env/lib/python3.11/site-packages/hyperframe/flags.pyr	   r	      s"         
III	HHHHHr   r	   c                       e Zd ZdZdee         fdZdefdZde	de
fdZdee         fdZdefd	Zd
eddfdZd
eddfdZdS )Flagsz
    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.
    defined_flagsc                 h    t          d |D                       | _        t                      | _        d S )Nc              3   $   K   | ]}|j         V  d S N)r
   ).0flags     r   	<genexpr>z!Flags.__init__.<locals>.<genexpr>   s$      DDd	DDDDDDr   )set_valid_flags_flags)selfr   s     r   __init__zFlags.__init__   s0    DDmDDDDD #r   returnc                 ^    t          t          t          | j                                      S r   )reprsortedlistr    r!   s    r   __repr__zFlags.__repr__   s"    F4,,--...r   xc                 6    | j                             |          S r   )r    __contains__)r!   r*   s     r   r,   zFlags.__contains__    s    {''***r   c                 4    | j                                         S r   )r    __iter__r(   s    r   r.   zFlags.__iter__#   s    {##%%%r   c                 4    | j                                         S r   )r    __len__r(   s    r   r0   zFlags.__len__&   s    {""$$$r   valueNc                 6    | j                             |          S r   )r    discardr!   r1   s     r   r3   zFlags.discard)   s    {""5)))r   c                     || j         vr(t          d                    || j                             | j                            |          S )Nz(Unexpected flag: {}. Valid flags are: {})r   
ValueErrorformatr    addr4   s     r   r8   z	Flags.add,   sS    ))):AA4,   
 {u%%%r   )r   r   r   __doc__r   r	   r"   r   r)   objectboolr,   r   r.   r   r0   r3   r8   r   r   r   r   r      s         &htn & & & &/# / / / /+f + + + + +&(3- & & & &% % % % %*S *T * * * *& & & & & & & &r   r   N)
r9   collections.abcr   typingr   r   r   r   r	   r   r   r   r   <module>r>      s     ' & & & & & 6 6 6 6 6 6 6 6 6 6 6 6    :   
"& "& "& "& "&J "& "& "& "& "&r   