
    ]jZ(                        d dl Z 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	m
Z
 d dlmZ 	 d dlmZ d dlmZ dd	lmZ d dlZd dlZd dlmZ d dlmZ  e j8                         ZdZd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&e'e(gZ)dZ*dZ+ ejX                         xs dZ- G d de.      Z/ G d d e.      Z0 ejb                  d!d"d#gi$       ejd                  d%e3d&d'd()       ejd                  d*e4d+d,d()       ejd                  d-d.d(d/0       ejd                  d1 ejj                  d2      e+d(d34       ejl                  ej2                        d5e3d6e4d.e7e3d7f   d8e4d9df
d:                                          Z8e	d9efd;       Z9d<e+d=d.e7e3d7f   d8e4d9ejt                  fd>Z;d?ejx                  d@edAe jz                  d9ej|                  fdBZ?dCe3dDe@dEej                  dFedGe@d@edAe jz                  d9e3fdHZBdIee3   d9ej                  fdJZDdKe3d9e7e@eEej                     f   fdLZGdOdMZHeIdNk(  r eH        yy# e$ rZ ed
e ddz   dz         ddZ[ww xY w)P    N)ExecutorProcessPoolExecutor)datetimetimezone)cachepartial)freeze_support)web)MultiMapping   )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_use_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-UnstablezX-Enable-Unstable-FeaturezX-Fast-Or-SafezX-DiffzX-Black-Versioni  P c                       e Zd Zy)HeaderErrorN__name__
__module____qualname__     9/root/env/lib/python3.12/site-packages/blackd/__init__.pyr   r   ?       r   r   c                       e Zd Zy)InvalidVariantHeaderNr   r   r   r   r   r   C   r   r   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  z--cors-allow-origincors_allow_originszHOrigin allowed to access blackd over CORS. Can be passed multiple times.)multipler    z--max-body-size)minz#Maximum request body size in bytes.)r   r!   r"   r    	bind_host	bind_port.max_body_sizereturnc                    t        j                  t         j                         t        ||      }t        j
                  }t	        j                  d| d|  d|        t               }	 t        j                  || |dd |       |j                         s|j                          y y # |j                         s|j                          w w xY w)N)levelr#   r(   zblackd version z listening on z port T)hostporthandle_signalsprintloop)loggingbasicConfigINFOmake_appblack__version__outr   r
   run_app	is_closedclose)r&   r'   r#   r(   appverr1   s          r   mainr>   G   s    > gll+
&8
VC


C	IIuN9+VI;OPD	
 ~~JJL  t~~JJL  s   +B( (#Cc                  "    t        t              S )N)max_workers)r   DEFAULT_WORKERSr   r   r   executorrB   y   s    ?;;r   r   r,   c                 &   t        j                  |t        g t        dt	        |       t
        f      g      }|j                  t        j                  dt        t        t               t        j                  t                          g       |S )NzContent-Type)allow_headersallow_originsexpose_headers)client_max_sizemiddlewares/)rB   executor_semaphore)r
   Applicationr   BLACK_HEADERS	frozensetBLACK_VERSION_HEADER
add_routespostr   handlerB   asyncioBoundedSemaphorerA   )r#   r(   r<   s      r   r5   r5   ~   s    
 //%>>~>'(:; 46
	C NN!#*#;#;O#L	
	 	 Jr   requestrB   rJ   c           	         K   t         t        i}	 | j                  j                  t        d      dk7  rt        j                  dd      S d}| j                  j                  t        d      dk(  rd}	 t        | j                        }| j                          d {   }| j                  | j                  nd}|j                  |      }	t        j                  t         j"                        }
d}|j$                  r|	j'                  d      dz   }|	d | }|	|d  }	t)        | j                  j                  t*        d            }t-        |	|||
|||       d {   }||	z   }	||z   }t        j                  | j.                  |||      S # t        $ r.}t        j                  d	|j                  d
         cY d }~S d }~ww xY w7 )7 n# t0        j2                  $ r t        j                  d|      cY S t0        j4                  $ r+}t        j                  d	|t7        |            cY d }~S d }~wt
        j8                  $ r  t:        $ r@}t=        j>                  d       t        j                  d|t7        |            cY d }~S d }~ww xY ww)N1i  z,This server only supports protocol version 1)statustextFsafefastTi  r   utf8 
r   )req_strrZ   modethen	only_diffrB   rJ   )content_typecharsetheadersrX      )rW   rd   )rW   rd   rX   z#Exception during handling a requesti  ) rN   r7   rd   getPROTOCOL_VERSION_HEADERr
   ResponseFAST_OR_SAFE_HEADER
parse_moder   argsreadrc   decoder   nowr   utcskip_source_first_linefindboolDIFF_HEADERformat_coderb   r6   NothingChangedInvalidInputstrHTTPException	Exceptionr2   	exception)rT   rB   rJ   rd   rZ   r_   e	req_bytesrc   r^   r`   headerfirst_newline_positionra   formatted_strs                  r   rQ   rQ      sB    
 $[1G5F??6<C<<!O  ??2F;vED	<goo.D ",,.(	%,__%@'//f""7+||HLL)&&*1,,t*<q*@"445F456G,,[%@A	)1
 
 7".|| --	
 	
9  	<<<s;;	<(
(  9||388 F||3c!fEE  F?@||3c!fEEFs   J9G 	J
'G 2F	 G GB<G G0G J		G #F;5G 6G :J;G  G G *J2J4J H,&J'J,J5J JJJJr^   rZ   r_   r`   ra   c                    K   |4 d {    t        j                         }|j                  |t        t        j
                  | ||             d {   }|s|cd d d       d {    S t        j                  t        j                        }	d| }
d|	 }|j                  |t        t        j                  | ||
|             d {   cd d d       d {    S 7 7 7 |7 7 # 1 d {  7  sw Y   y xY ww)N)rZ   r_   zIn	zOut	)rR   get_event_looprun_in_executorr   r6   format_file_contentsr   rn   r   ro   diff)r^   rZ   r_   r`   ra   rB   rJ   r1   r   rn   src_namedst_names               r   rt   rt      s      " 
 
%%'"22ge88'SWX
 
  
 
 
 ll8<<($=3%=))EJJ(K
 

 
 




 
 
 
s   C>CC>AC)C!C)C>&C#'C>,AC)	C%
C)C>C'C>!C)#C>%C)'C>)C;/C20C;7C>rd   c                    	 t        | j                  t        t        j                              }t        | v r| t           }	 t        |      \  }}nd}t               }t        | j                  t        d            }t        | j                  t        d            }t        | j                  t        d            }t        | j                  t         d            }	t        | j                  t"        d            }
t               }| j                  t$        d      j'                  d      }|D ]8  }|j)                         }|s	 |j+                  t        j,                  |          : t        j0                  ||||| | |	|
|	      S # t
        $ r t        d      d w xY w# t        $ r(}t        dt         d|j                  d          d d }~ww xY w# t.        $ r t        dt$         d|       d w xY w)	Nz Invalid line length header valuezInvalid value for z: r   Fr\   ,)	target_versionsis_pyiline_lengthrp   string_normalizationmagic_trailing_commapreviewunstableenabled_features)intrf   LINE_LENGTH_HEADERr6   DEFAULT_LINE_LENGTH
ValueErrorr   PYTHON_VARIANT_HEADERparse_python_variant_headerr   rk   setrr    SKIP_STRING_NORMALIZATION_HEADERSKIP_MAGIC_TRAILING_COMMASKIP_SOURCE_FIRST_LINEPREVIEWUNSTABLEENABLE_UNSTABLE_FEATUREsplitstripaddPreviewKeyErrorFileMode)rd   r   valuepyiversionsr{   skip_string_normalizationskip_magic_trailing_commarp   r   r   enable_featuresenable_unstable_featurespieces                 r   rj   rj      s   H'++&8%:S:STU '-.	7>MC 5 $4e<! !%W[[1JE%R S!'++.De"LM7;;w./GGKK%01H*-%O&{{+BBGMMcR) ##EMM%$89	 >> 5!::!::(
 
G  H<=4GH $ 	$%:$;2affQi[I	.  !()@(AE7Ks/   -F F ?"GF	G%#GG G0r   c                    | dk(  rdt               fS t               }| j                  d      D ]  }|j                  d      r|t        d      d  }d|v r|j                  d      ^}}n|d   }t        |      dkD  r|dd  gng }	 t	        |      }|dvrt        d	      t        |      dkD  rt	        |d         }|d
k(  rt        d      |d
k(  rdnd}d| | }|dk(  r)t        t        j                  |      st        d| d      |j                  t        j                  |           d|fS # t        t        f$ r t        d      d w xY w)Nr   Tr   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   r   
startswithlenr   r   hasattrr6   TargetVersionr   r   r   )r   r   r   	major_strrestmajorminorversion_strs           r   r   r   '  ss   ~SU{5{{3' 	UG!!$'!#d)+.g~#*==#5 	D#AJ	(+Gq(8}bUI&./MNNt9q=QLEz23NOO "'!AE "5'%1A:ge.A.A;&O.E7:K/LMMU00=>-	U2 h j) U*+IJPTTUs   B&D//Ec                  ,    t                t                y )N)r	   r>   r   r   r   patched_mainr   H  s    Fr   __main__)r)   N)JrR   r2   osconcurrent.futuresr   r   r   r   	functoolsr   r   multiprocessingr	   aiohttpr
   	multidictr   rH   r   ImportErrorieclickr6   _black_versionr   r7   black.concurrencyr   Event_stop_signalrg   r   r   r   r   r   r   r   r   ri   rs   rL   rN   DEFAULT_MAX_BODY_SIZE	cpu_countrA   ry   r   r   commandoptionrw   r   IntRangeversion_optiontupler>   rB   rK   r5   RequestrS   rh   rQ   rr   r   rt   Moderj   r   r   r   r   r   r   r   r   <module>r      s     	 < ' $ *
&!   1 . w}} / $ * 3 #@  9 
5 &  $ ) ' ",,.%A	) 		9 	 !4tX6F GH		) "5uSW 	S	 	A	!	. e//0 c3h 	
 
 1 I22 <( < < +-.c3h  	__	8;F[[;F;F  00;F 	\\	;F|

 
 ..	

 
 
 
  00
 	
80S) 0ejj 0fs uT3u?R?R;S5S/T B
 zN 	  

/t26
A	B
:	; 	s   H5 5I:II