
    !.d              
          d dl Z d dlZd dlmZmZ d dl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"#           ej*        d$e,d%d&#           ej-        ej                  d'e+d(e,d)dfd*                                                Z.d)ej/        fd+Z0d,ej1        d-ed)ej2        fd.Z3d/e+d)ee4eej5                 f         fd0Z6d3d1Z7e8d2k    r e7             dS dS )4    N)ExecutorProcessPoolExecutor)datetime)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.	localhost)typehelp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   mainr0   <   sv     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)r.   r5   s     r   r)   r)   J   sw    
/(H-(H(H(HIIIJ  C #$$HNNCHS'&8"D"D"DEEFGGGJr   requestr5   c           
      j	  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                    }d}|
r,|                    d          dz   }|d |         }||d          }t?          j                     }|!                    |tE          t          j#        |||                     d {V }||                    d          dz
           dk    r(|$                    dd          }||k    rt          j%        ||z   }||z   }t#          | j                            tL          d
                    }|rit9          j                    }d| d}d| d}t?          j                     }|!                    |tE          t          j'        ||||                     d {V }t          j        | j(        |||          S # t          j%        $ r t          j        d|          cY S t          j)        $ r.}t          j        d|tU          |                    cY d }~S d }~wtV          $ rB}tY          j-        d           t          j        d|tU          |                    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   )rA   modez
zIn	z +0000zOut	)content_typecharsetheadersr?      )r>   rP   )r>   rP   r?   z#Exception during handling a requesti  ).BLACK_VERSION_HEADERr+   rP   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readrO   decoder   utcnowfindasyncioget_event_looprun_in_executorr   format_file_contentsreplaceNothingChangedDIFF_HEADERdiffrN   InvalidInputstr	Exceptionr&   	exception)r;   r5   rP   rD   valuepyiversionseskip_string_normalizationskip_magic_trailing_commarE   rH   rA   rL   	req_bytesrO   req_strthenheaderfirst_newline_positionloopformatted_str	only_diffnowsrc_namedst_names                             r   r:   r:   S   ss     #[1Gb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++  ! 	7*1,,t*<*<q*@"4445F4556G%''"22ge8'SWXXX
 
 
 
 
 
 
 

 7<<%%)*d22)11$??M''** 7". ,,[%@@AA	 	/##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K%P %R2,R2:#Q#R2#R207R-'R2-R2rv   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 )Nrw   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lenrV   r   hasattrr*   TargetVersionaddKeyErrorrY   )rv   rx   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                      t                       t                       t          j                     t	                       d S )N)r   r   r*   patch_clickr0   r   r   r   patched_mainr      s6    	FFFFFr   __main__)r   N)9rj   r&   concurrent.futuresr   r   r   	functoolsr   multiprocessingr   typingr   r	   aiohttpr
   r3   r   ImportErrorieclickr*   _black_versionr   r+   black.concurrencyr   Event_stop_signalrT   rW   rZ   ra   r_   r`   rb   rc   rp   r7   rR   rt   r   commandoptionrs   rV   version_optionr0   r6   r)   RequestrU   r:   r^   r   r[   r   r   r   r   r   <module>r      s]     < < < < < < < <             * * * * * *        	!!!!!!!   
+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"BK   m#,?OOOe/000VC VC VD V V V 10 PO  IHV#/    dF#+ dF dFcl dF dF dF dFNs uT3u?R;S5S/T    B    zLNNNNN s   9 AAA