o
    /h                     @  sT   d Z ddlmZ ddlmZmZmZ ddlmZ G dd deZ	G dd deZ
d	S )
z'
Basic Flag and Flags data structures.
    )annotations)IterableIterator
MutableSet)
NamedTuplec                   @  s   e Zd ZU ded< ded< dS )FlagstrnameintbitN)__name__
__module____qualname____annotations__ r   r   I/var/www/html/govbot/env/lib/python3.10/site-packages/hyperframe/flags.pyr   
   s   
 r   c                   @  sV   e Zd ZdZdddZdd	d
ZdddZdddZd ddZd!ddZ	d!d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_flagsIterable[Flag]returnNonec                 C  s   dd |D | _ t | _d S )Nc                 S  s   h | ]}|j qS r   )r	   ).0flagr   r   r   	<setcomp>   s    z!Flags.__init__.<locals>.<setcomp>)_valid_flagsset_flags)selfr   r   r   r   __init__   s   zFlags.__init__r   c                 C  s   t t| jS N)reprsortedr   r   r   r   r   __repr__   s   zFlags.__repr__xobjectboolc                 C     | j |S r   )r   __contains__)r   r$   r   r   r   r(         zFlags.__contains__Iterator[str]c                 C  
   | j  S r   )r   __iter__r"   r   r   r   r,   "      
zFlags.__iter__r
   c                 C  r+   r   )r   __len__r"   r   r   r   r.   %   r-   zFlags.__len__valuec                 C  r'   r   )r   discard)r   r/   r   r   r   r0   (   r)   zFlags.discardc                 C  s0   || j vrd| d| j  }t|| j|S )NzUnexpected flag: z. Valid flags are: )r   
ValueErrorr   add)r   r/   msgr   r   r   r2   +   s   
z	Flags.addN)r   r   r   r   )r   r   )r$   r%   r   r&   )r   r*   )r   r
   )r/   r   r   r   )r   r   r   __doc__r   r#   r(   r,   r.   r0   r2   r   r   r   r   r      s    





r   N)r4   
__future__r   collections.abcr   r   r   typingr   r   r   r   r   r   r   <module>   s    