
    %hF                     *    S SK r SSKJr  S rS rS rg)    N   )iscoroutinefunctionc                     [        U SS5      (       a  g[        U SS5      (       a  g[        R                  " U 5      (       a  g[        U S5      (       a  [	        U R
                  5      (       a  g[	        U 5      (       + $ )zQ
Tests to see if an application is a legacy-style (double-callable) application.
_asgi_single_callableF_asgi_double_callableT__call__)getattrinspectisclasshasattrr   r   applications    G/var/www/html/env/lib/python3.13/site-packages/asgiref/compatibility.pyis_double_callabler      sm    
 {3U;;{3U;;{##{J'' {3344";///    c                    ^  U 4S jnU$ )zK
Transforms a double-callable ASGI application into a single-callable one.
c                 @   >#    T" U 5      nU" X5      I S h  vN $  N7f)N )scopereceivesendinstancer   s       r   new_application2double_to_single_callable.<locals>.new_application!   s!     u%g,,,,s   r   )r   r   s   ` r   double_to_single_callabler      s    
- r   c                 <    [        U 5      (       a  [        U 5      n U $ )z
Takes either a single- or double-callable application and always returns it
in single-callable style. Use this to add backwards compatibility for ASGI
2.0 applications to your server/test harness/etc.
)r   r   r   s    r   guarantee_single_callabler   (   s     +&&/<r   )r
   syncr   r   r   r   r   r   r   <module>r      s     %0,	r   