
    ,h                         d dl mZmZmZmZmZmZmZmZ g dZ	 G d de
      Z G d de      Z G d de      Z	 dd	ee   d
edededeeef   f
dZ edd      Z G d de      Zdeeeeeef   defdZy)    )AnyDictNoReturnPatternTupleTypeTypeVarUnion)ProtocolErrorLocalProtocolErrorRemoteProtocolErrorvalidatebytesifyc                   &    e Zd ZdZddededdfdZy)r   aM  Exception indicating a violation of the HTTP/1.1 protocol.

    This as an abstract base class, with two concrete base classes:
    :exc:`LocalProtocolError`, which indicates that you tried to do something
    that HTTP/1.1 says is illegal, and :exc:`RemoteProtocolError`, which
    indicates that the remote peer tried to do something that HTTP/1.1 says is
    illegal. See :ref:`error-handling` for details.

    In addition to the normal :exc:`Exception` features, it has one attribute:

    .. attribute:: error_status_hint

       This gives a suggestion as to what status code a server might use if
       this error occurred as part of a request.

       For a :exc:`RemoteProtocolError`, this is useful as a suggestion for
       how you might want to respond to a misbehaving peer, if you're
       implementing a server.

       For a :exc:`LocalProtocolError`, this can be taken as a suggestion for
       how your peer might have responded to *you* if h11 had allowed you to
       continue.

       The default is 400 Bad Request, a generic catch-all for protocol
       violations.

    msgerror_status_hintreturnNc                 v    t        |       t        u rt        d      t        j	                  | |       || _        y )Nz+tried to directly instantiate ProtocolError)typer   	TypeError	Exception__init__r   )selfr   r   s      K/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/h11/_util.pyr   zProtocolError.__init__)   s2    :&IJJ4%!2    )i  )__name__
__module____qualname____doc__strintr    r   r   r   r      s!    83C 3C 3$ 3r   r   c                       e Zd ZdefdZy)r   r   c                     t         | _        | N)r   	__class__r   s    r   !_reraise_as_remote_protocol_errorz4LocalProtocolError._reraise_as_remote_protocol_error<   s     - 
r   N)r   r   r   r   r(   r"   r   r   r   r   ;   s    8 r   r   c                       e Zd Zy)r   N)r   r   r   r"   r   r   r   r   P   s    r   r   regexdatar   format_argsr   c                     | j                  |      }|s|r |j                  | }t        |      |j                         S r%   )	fullmatchformatr   	groupdict)r*   r+   r   r,   matchs        r   r   r   T   s@     OOD!E#**k*C %%??r   _T_SentinelSentinel)boundc                   ^     e Zd Zdee   dedeedf   deee	f   de	def fdZ
defd	Z xZS )
r3   clsnamebases.	namespacekwdsr   c                 T    |t         fk(  sJ t        |   | |||fi |}||_        |S r%   )r3   super__new__r&   )r6   r7   r8   r9   r:   vr&   s         r   r=   zSentinel.__new__l   s7     ##GOCui@4@r   c                     | j                   S r%   )r   r'   s    r   __repr__zSentinel.__repr__x   s    }}r   )r   r   r   r   r2   r    r   r   r   r   r=   r@   __classcell__)r&   s   @r   r3   r3   k   sb    
+

 T3Y
 S>	

 
 

# r   sc                     t        |       t        u r| S t        | t              r| j	                  d      } t        | t
              rt        d      t        |       S )Nasciiz#expected bytes-like object, not int)r   bytes
isinstancer    encoder!   r   )rB   s    r   r   r      sJ    Aw%!SHHW!S=>>8Or   N)zmalformed data)typingr   r   r   r   r   r   r	   r
   __all__r   r   r   r   rE   r    r   r2   r   r3   	bytearray
memoryviewr!   r   r"   r   r   <module>rL      s    L L L!3I !3^ *	- 	
 4D5>!&-0SV	#u*( m:6t (eY
C<= % r   