o
    h                     @  s   d dl mZ d dlZd dlmZ d dlmZmZ ejdkr$d dlm	Z	 nd dl
m	Z	 d dlmZ e	dZG d	d
 d
ee ZG dd dZdS )    )annotationsN)Iterator)AnyProtocol)   
   )	ParamSpec)ASGIAppPc                   @  s   e Zd Zddd	Zd
S )_MiddlewareFactoryappr	   argsP.argskwargsP.kwargsreturnc                O  s   d S N )selfr   r   r   r   r   q/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/starlette/middleware/__init__.py__call__   s    z_MiddlewareFactory.__call__N)r   r	   r   r   r   r   r   r	   )__name__
__module____qualname__r   r   r   r   r   r      s    r   c                   @  s*   e Zd Zdd	d
ZdddZdddZdS )
Middlewarecls_MiddlewareFactory[P]r   r   r   r   r   Nonec                 O  s   || _ || _|| _d S r   )r   r   r   )r   r   r   r   r   r   r   __init__   s   
zMiddleware.__init__Iterator[Any]c                 C  s   | j | j| jf}t|S r   )r   r   r   iter)r   as_tupler   r   r   __iter__    s   zMiddleware.__iter__strc                 C  s^   | j j}dd | jD }dd | j D }t| jdd}d|g| | }| d| dS )	Nc                 S  s   g | ]}|qS r   r   ).0valuer   r   r   
<listcomp>&   s    z'Middleware.__repr__.<locals>.<listcomp>c                 S  s   g | ]\}}| d |qS )=r   )r$   keyr%   r   r   r   r&   '   s    r    z, ())	__class__r   r   r   itemsgetattrr   join)r   
class_nameargs_stringsoption_stringsname	args_reprr   r   r   __repr__$   s   zMiddleware.__repr__N)r   r   r   r   r   r   r   r   )r   r   )r   r#   )r   r   r   r   r"   r5   r   r   r   r   r      s    


r   )
__future__r   syscollections.abcr   typingr   r   version_infor   typing_extensionsstarlette.typesr	   r
   r   r   r   r   r   r   <module>   s    
