o
    h                     @   s`   d Z ddlZzddlmZ W n ey   ddlmZ Y nw edddgZG dd deZdS )	zR
hyperframe/flags
~~~~~~~~~~~~~~~~

Defines basic Flag and Flags data structures.
    N)
MutableSetFlagnamebitc                   @   s@   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Z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.
    c                 C   s    t dd |D | _t  | _d S )Nc                 s   s    | ]}|j V  qd S N)r   ).0flag r
   X/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/hyperframe/flags.py	<genexpr>   s    z!Flags.__init__.<locals>.<genexpr>)set_valid_flags_flags)selfZdefined_flagsr
   r
   r   __init__   s   zFlags.__init__c                 C      | j |S r   )r   __contains__)r   xr
   r
   r   r         zFlags.__contains__c                 C   
   | j  S r   )r   __iter__r   r
   r
   r   r   "      
zFlags.__iter__c                 C   r   r   )r   __len__r   r
   r
   r   r   %   r   zFlags.__len__c                 C   r   r   )r   discardr   valuer
   r
   r   r   (   r   zFlags.discardc                 C   s(   || j vrtd|| j | j|S )Nz(Unexpected flag: {}. Valid flags are: {})r   
ValueErrorformatr   addr   r
   r
   r   r    +   s   
z	Flags.addN)
__name__
__module____qualname____doc__r   r   r   r   r   r    r
   r
   r
   r   r      s    r   )r$   collectionscollections.abcr   ImportError
namedtupler   r   r
   r
   r
   r   <module>   s   