U
    e                     @  s   d dl mZ d dlZd dlmZ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mZmZmZ edZG dd	 d	ee ZG d
d dZdS )    )annotationsN)AnyIteratorProtocol)   
   )	ParamSpec)ASGIAppReceiveScopeSendPc                   @  s4   e Zd ZdddddddZdd	d
ddddZdS )_MiddlewareClassr	   P.argsP.kwargsNone)appargskwargsreturnc                 O  s   d S N )selfr   r   r   r   r   A/tmp/pip-unpacked-wheel-2mv5qoba/starlette/middleware/__init__.py__init__   s    z_MiddlewareClass.__init__r   r
   r   )scopereceivesendr   c                   s   d S r   r   )r   r   r   r   r   r   r   __call__   s    z_MiddlewareClass.__call__N)__name__
__module____qualname__r   r   r   r   r   r   r      s   r   c                   @  s<   e Zd ZdddddddZdd	d
dZdd	ddZdS )
Middlewareztype[_MiddlewareClass[P]]r   r   r   )clsr   r   r   c                 O  s   || _ || _|| _d S r   )r#   r   r   )r   r#   r   r   r   r   r   r      s    zMiddleware.__init__zIterator[Any])r   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  sT   | j j}dd | jD }dd | j D }d| jj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     z, ())	__class__r   r   r   itemsjoinr#   )r   
class_nameZargs_stringsoption_stringsZ	args_reprr   r   r   __repr__'   s
    zMiddleware.__repr__N)r   r    r!   r   r&   r4   r   r   r   r   r"      s   
r"   )
__future__r   systypingr   r   r   version_infor   Ztyping_extensionsZstarlette.typesr	   r
   r   r   r   r   r"   r   r   r   r   <module>   s   
