
    nbip                    n    d Z ddlmZ ddlmZ ddl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.
    )annotations)
MutableSet)IterableIterator
NamedTuplec                  $    e Zd ZU ded<   ded<   dS )FlagstrnameintbitN)__name__
__module____qualname____annotations__     d/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/jh2/hyperframe/flags.pyr	   r	      s"         IIIHHHHHr   r	   c                  J    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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]c                N    d |D             | _         t                      | _        d S )Nc                    h | ]	}|j         
S r   )r   ).0flags     r   	<setcomp>z!Flags.__init__.<locals>.<setcomp>   s    AAA4TYAAAr   )_valid_flagsset_flags)selfr   s     r   __init__zFlags.__init__   s'    AA=AAA #r   returnr
   c                ^    t          t          t          | j                                      S N)reprsortedlistr    r!   s    r   __repr__zFlags.__repr__    s"    F4,,--...r   xobjectboolc                6    | j                             |          S r%   )r    __contains__)r!   r+   s     r   r/   zFlags.__contains__#   s    {''***r   Iterator[str]c                4    | j                                         S r%   )r    __iter__r)   s    r   r2   zFlags.__iter__&   s    {##%%%r   r   c                4    | j                                         S r%   )r    __len__r)   s    r   r4   zFlags.__len__)   s    {""$$$r   valueNonec                6    | j                             |          S r%   )r    discardr!   r5   s     r   r8   zFlags.discard,   s    {""5)))r   c                    || j         vr(t          d                    || j                             | j                            |          S )Nz(Unexpected flag: {}. Valid flags are: {})r   
ValueErrorformatr    addr9   s     r   r=   z	Flags.add/   sS    ))):AA4,   
 {u%%%r   N)r   r   )r#   r
   )r+   r,   r#   r-   )r#   r0   )r#   r   )r5   r
   r#   r6   )r   r   r   __doc__r"   r*   r/   r2   r4   r8   r=   r   r   r   r   r      s         & & & &/ / / /+ + + +& & & &% % % %* * * *& & & & & &r   r   N)r>   
__future__r   collections.abcr   typingr   r   r   r	   r   r   r   r   <module>rB      s     # " " " " " & & & & & & 1 1 1 1 1 1 1 1 1 1    :   
#& #& #& #& #&J #& #& #& #& #&r   