
    ɭdej               
          d dl Z d dlZd dlmZmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZ 	 d dlmZ dd	lmZ n## e$ rZ ed
e ddz   dz             ddZ[ww xY wd dlZd dlZd dlmZ d dlmZ  e j                    ZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%eeee e!e"e#e$e%g	Z&dZ' G d de(          Z) ej*        dddgi           ej+        d e,d!d"d#$           ej+        d%e-d&d'd#$           ej.        ej                  d(e,d)e-d*dfd+                                                Z/d*ej0        fd,Z1d-ej2        d.ed*ej3        fd/Z4d0e,d*ee5eej6                 f         fd1Z7d4d2Z8e9d3k    r e8             dS dS )5    N)ExecutorProcessPoolExecutor)datetimetimezone)partial)freeze_support)SetTuple)web   )corsz%aiohttp dependency is not installed: z. z5Please re-install black with the '[d]' extra install z.to obtain aiohttp_cors: `pip install black[d]`)version)maybe_install_uvloopzX-Protocol-VersionzX-Line-LengthzX-Python-VariantzX-Skip-Source-First-LinezX-Skip-String-NormalizationzX-Skip-Magic-Trailing-Commaz	X-PreviewzX-Fast-Or-SafezX-DiffzX-Black-Versionc                       e Zd ZdS )InvalidVariantHeaderN)__name__
__module____qualname__     /lib/python3.11/site-packages/blackd/__init__.pyr   r   8   s        Dr   r   help_option_namesz-hz--help)context_settingsz--bind-hostzAddress to bind the server to.	localhostT)typehelpdefaultshow_defaultz--bind-portzPort to listen oni  	bind_host	bind_portreturnc                     t          j        t           j                   t                      }t          j        }t	          j        d| d|  d|            t          j        || |dd            d S )N)levelzblackd version z listening on z port T)hostporthandle_signalsprint)	loggingbasicConfigINFOmake_appblack__version__outr   run_app)r   r    appvers       r   mainr2   <   sx     gl++++
**C

C	IOOO9OOIOOPPP K))DPTUUUUUUr   c            	          t          j        t          g t          dR           g          } t	                      }|                     t          j        dt          t          |                    g           | S )NzContent-Type)allow_headers)middlewares/)executor)	r   Applicationr   BLACK_HEADERSr   
add_routespostr   handle)r0   r7   s     r   r+   r+   R   sw    
/(H-(H(H(HIIIJ  C #$$HNNCHS'&8"D"D"DEEFGGGJr   requestr7   c           
      	  K   t           t          i}	 | j                            t          d          dk    rt          j        dd          S 	 t          | j                            t          t          j
                            }n&# t          $ r t          j        dd          cY S w xY wt          | j        v ri| j        t                   }	 t          |          \  }}nS# t          $ r6}t          j        ddt           d|j        d	                    cY d }~S d }~ww xY wd
}t!                      }t#          | j                            t$          d
                    }t#          | j                            t&          d
                    }	t#          | j                            t(          d
                    }
t#          | j                            t*          d
                    }d
}| j                            t,          d          dk    rd}t          j        ||||
| |	 |          }| j                                         d {V }| j        | j        nd}|                    |          }t9          j        t<          j                  }d}|
r,|                     d          dz   }|d |         }||d          }tC          j"                    }|#                    |tI          t          j%        |||                     d {V }|                     d          }|d	k    r7||dz
           dk    r(|&                    dd          }||k    rt          j'        ||z   }||z   }t#          | j                            tP          d
                    }|rrt9          j        t<          j                  }d| }d| }tC          j"                    }|#                    |tI          t          j)        ||||                     d {V }t          j        | j*        |||          S # t          j'        $ r t          j        d|          cY S t          j+        $ r.}t          j        d|tY          |                    cY d }~S d }~wtZ          $ rB}t]          j/        d           t          j        d|tY          |                    cY d }~S d }~ww xY w)N1i  z,This server only supports protocol version 1)statustexti  z Invalid line length header valuezInvalid value for z: r   FsafefastT)target_versionsis_pyiline_lengthskip_source_first_linestring_normalizationmagic_trailing_commapreviewutf8 
r   )rC   modez
zIn	zOut	)content_typecharsetheadersrA      )r@   rR   )r@   rR   rA   z#Exception during handling a requesti  )0BLACK_VERSION_HEADERr-   rR   getPROTOCOL_VERSION_HEADERr   ResponseintLINE_LENGTH_HEADERr,   DEFAULT_LINE_LENGTH
ValueErrorPYTHON_VARIANT_HEADERparse_python_variant_headerr   argssetbool SKIP_STRING_NORMALIZATION_HEADERSKIP_MAGIC_TRAILING_COMMASKIP_SOURCE_FIRST_LINEPREVIEWFAST_OR_SAFE_HEADERFileModecontentreadrQ   decoder   nowr   utcfindasyncioget_event_looprun_in_executorr   format_file_contentsreplaceNothingChangedDIFF_HEADERdiffrP   InvalidInputstr	Exceptionr(   	exception)r=   r7   rR   rF   valuepyiversionseskip_string_normalizationskip_magic_trailing_commarG   rJ   rC   rN   	req_bytesrQ   req_strthenheaderfirst_newline_positionloopformatted_strnl	only_diffrj   src_namedst_names                              r   r<   r<   [   s|     #[1GcF?6<<CC<!O   	U##$68QRR KK  	U 	U 	U<s1STTTTTT	U !GO33O$9:E ;E B BXX'   |R.CRRqvayRR         CuuH$(O @%HH%
 %
! %)O 95AA%
 %
! "&O 6>>"
 "
 w**7E::;;?2F;;vEED~$##9%>!>%>!>
 
 
 "/..00000000	%,_%@'//f""7++|HL))! 	7*1,,t*<*<q*@"4445F4556G%''"22ge8'SWXXX
 
 
 
 
 
 
 

 \\$66gb1fo--)11$??M''** 7". ,,[%@@AA	 	,x|,,C$d}}H$s}}H)++D"&"6"6
G]HhOO# #      M
 | -	
 
 
 	
  9 9 9|3888888 F F F|3c!ffEEEEEEEEE F F F?@@@|3c!ffEEEEEEEEEFs   9P! 7B P!  B(%P! 'B((#P! C P! 
D)+DDP! DLP! !%SS#Q?9S?S7S	S	Sry   c                 D   | dk    rdt                      fS t                      }|                     d          D ]b}|                    d          r|t          d          d          }d|v r|                    d          ^}}n(|d         }t          |          dk    r|dd          gng }	 t	          |          }|dvrt          d	          t          |          dk    r+t	          |d                   }|d
k    rt          d          n
|d
k    rdnd}d| | }|dk    r-t          t          j        |          st          d| d          |	                    t          j        |                    ?# t          t          f$ r t          d          d w xY wd|fS )Nrz   T,py.r   r   )      zmajor version must be 2 or 3r   zPython 2 is not supported   r   PYz3.z is not supportedzexpected e.g. '3.7', 'py3.5'F)r_   split
startswithlenrX   r   hasattrr,   TargetVersionaddKeyErrorr[   )ry   r{   r   	major_strrestmajorminorversion_strs           r   r]   r]      s   ~~SUU{55{{3'' 	U 	UG!!$'' /!#d))++.g~~#*==#5#5 	DD#AJ	(+Gq(8(8}}bUI&&./MNNNt99q==QLLEzz23NOOO " "'!AAE151%11A::ge.A;&O&O:./LE/L/L/LMMMU0=>>>>j) U U U*+IJJPTTUhs   .C	E99"Fc                  Z    t                       t                       t                       d S )N)r   r   r2   r   r   r   patched_mainr      s'    FFFFFr   __main__)r!   N):rm   r(   concurrent.futuresr   r   r   r   	functoolsr   multiprocessingr   typingr	   r
   aiohttpr   r5   r   ImportErrorieclickr,   _black_versionr   r-   black.concurrencyr   Event_stop_signalrV   rY   r\   rc   ra   rb   rd   re   rs   r9   rT   rw   r   commandoptionrv   rX   version_optionr2   r8   r+   RequestrW   r<   r`   r   r]   r   r   r   r   r   <module>r      su     < < < < < < < < ' ' ' ' ' ' ' '       * * * * * *        	!!!!!!!   
+6666
A	B
:	;  	   1 1 1 1 1 1 2 2 2 2 2 2 w} / $ * 3 #@  9 
&  $
 ) 	 	 	 	 	9 	 	 	 !4tX6F GHHH		)   "5uSW   e/000VC VC VD V V V 10   IHV#/    eF#+ eF eFcl eF eF eF eFPs uT3u?R;S5S/T    B    zLNNNNN s   ; A AA