
    ]j(              +       .   U d 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  G d d	e      Z G d
 de      Zdej"                  iZeed<   ej(                  ej*                  hej,                  ej*                  hej.                  ej0                  ej*                  hej2                  ej4                  ej6                  ej0                  ej8                  ej*                  hej:                  ej4                  ej6                  ej0                  ej8                  ej<                  ej"                  hej>                  ej4                  ej@                  ej6                  ej0                  ej8                  ej<                  ej"                  ejB                  ejD                  ejF                  ejH                  hejJ                  ej4                  ej@                  ej6                  ej0                  ej8                  ej<                  ej"                  ejB                  ejL                  ejD                  ejF                  ejH                  ejN                  hejP                  ej4                  ej@                  ej6                  ej0                  ej8                  ej<                  ej"                  ejB                  ejL                  ejD                  ejF                  ejH                  ejN                  ejR                  hejT                  ej4                  ej@                  ej6                  ej0                  ej8                  ej<                  ej"                  ejB                  ejL                  ejD                  ejF                  ejH                  ejN                  ejR                  ejV                  ejX                  hejZ                  ej4                  ej@                  ej6                  ej0                  ej8                  ej<                  ej"                  ejB                  ejL                  ejD                  ejF                  ejH                  ejN                  ejR                  ejV                  ejX                  ej\                  hej^                  ej4                  ej@                  ej6                  ej0                  ej8                  ej<                  ej"                  ejB                  ejL                  ejD                  ejF                  ejH                  ejN                  ejR                  ejV                  ejX                  ej\                  ej`                  hejb                  ej4                  ej@                  ej6                  ej0                  ej8                  ej<                  ej"                  ejB                  ejL                  ejD                  ejF                  ejH                  ejN                  ejR                  ejV                  ejX                  ej\                  ej`                  ejd                  ejf                  hiZ4e5ee6e   f   ed<   de6e   dede7fdZ8 G d de      Z9e9jt                  e9jv                  hZ<e6e9   ed<   dZ=eed<   e G d d             Z>y)zData structures configuring Black behavior.

Mostly around Python language feature support per version and Black configuration
chosen by the user.
    )	dataclassfield)Enumauto)sha256)
attrgetter)Final)DEFAULT_LINE_LENGTHc                   H    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdefdZy)TargetVersion                  	   
               returnc                 n    | j                   d d dk(  sJ d| j                   d    d| j                   dd   S )N   PYzPython .r   nameselfs    4/root/env/lib/python3.12/site-packages/black/mode.pyprettyzTargetVersion.pretty   s?    yy!}$$$1a		!"77    N)__name__
__module____qualname__PY33PY34PY35PY36PY37PY38PY39PY310PY311PY312PY313PY314strr#    r$   r"   r   r      sJ    DDDDDDDEEEEE8 8r$   r   c                   d    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZy)Featurer   r   r   r   r   r   r   r   r   r   r   r   r                        2   3   N)r%   r&   r'   	F_STRINGSNUMERIC_UNDERSCORESTRAILING_COMMA_IN_CALLTRAILING_COMMA_IN_DEFASYNC_IDENTIFIERSASYNC_KEYWORDSASSIGNMENT_EXPRESSIONSPOS_ONLY_ARGUMENTSRELAXED_DECORATORSPATTERN_MATCHINGUNPACKING_ON_FLOWANN_ASSIGN_EXTENDED_RHSEXCEPT_STARVARIADIC_GENERICSDEBUG_F_STRINGSPARENTHESIZED_CONTEXT_MANAGERSTYPE_PARAMSTYPE_PARAM_DEFAULTSUNPARENTHESIZED_EXCEPT_TYPES	T_STRINGSFORCE_OPTIONAL_PARENTHESESFUTURE_ANNOTATIONSr5   r$   r"   r7   r7   #   s    I N KO%'"K#% I!# r$   r7   annotationsFUTURE_FLAG_TO_FEATUREVERSION_TO_FEATUREStarget_versionsfeaturer   c                 F    | st        d      t        fd| D              S )Nz5At least one target Python version must be specified.c              3   4   K   | ]  }t         |   v   y wN)rY   ).0versionr[   s     r"   	<genexpr>z#supports_feature.<locals>.<genexpr>   s     V7w-g66Vs   )
ValueErrorall)rZ   r[   s    `r"   supports_featurerd      s#    PQQVoVVVr$   c                   d    e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
y)Previewz"Individual preview style features.N)r%   r&   r'   __doc__r   string_processing*hug_parens_with_braces_and_square_bracketswrap_comprehension_insimplify_power_operator_huggingwrap_long_dict_values_in_parens(fix_if_guard_explosion_in_case_statementr5   r$   r"   rf   rf      s7    , 15. F&*f#&*f#/3v,r$   rf   UNSTABLE_FEATURES    _MAX_CACHE_KEY_PART_LENGTHc                      e Zd ZU  ee      Zee   ed<   eZ	e
ed<   dZeed<   dZeed<   dZeed<   dZeed	<   dZeed
<    ee      Zee   ed<   dZeed<   dZeed<    ee      Zee   ed<   dedefdZdefdZde
fdZy)Mode)default_factoryrZ   line_lengthTstring_normalizationFis_pyiis_ipynbskip_source_first_linemagic_trailing_commapython_cell_magicspreviewunstableenabled_featuresr[   r   c                 f    | j                   ry|| j                  v ry| j                  xr |t        vS )a)  
        Provide `Preview.FEATURE in Mode` syntax that mirrors the ``preview`` flag.

        In unstable mode, all features are enabled. In preview mode, all features
        except those in UNSTABLE_FEATURES are enabled. Any features in
        `self.enabled_features` are also enabled.
        T)r|   r}   r{   rn   )r!   r[   s     r"   __contains__zMode.__contains__  s4     ==d+++||@/@ @@r$   c                    | j                   r7dj                  d t        | j                   t        d            D              }nd}t	        |      t
        kD  r.t        |j                               j                         d t
         }dj                  t        d | j                  D                    dz   dj                  t        | j                              z   }t        |j                               j                         d t
         }|t        | j                        t        t        | j                              t        t        | j                              t        t        | j                               t        t        | j"                              t        t        | j$                              t        t        | j&                              t        t        | j(                              |g
}dj                  |      S )	N,c              3   F   K   | ]  }t        |j                          y wr^   )r4   value)r_   r`   s     r"   ra   z%Mode.get_cache_key.<locals>.<genexpr>  s!      # GMM"#s   !r   )key-c              3   4   K   | ]  }|j                     y wr^   r   )r_   fs     r"   ra   z%Mode.get_cache_key.<locals>.<genexpr>  s     BqAFFBs   @r   )rZ   joinsortedr   lenrp   r   encode	hexdigestr}   rz   r4   rt   intru   rv   rw   rx   ry   r{   r|   )r!   version_strfeatures_and_magicspartss       r"   get_cache_keyzMode.get_cache_key  s   (( #%d&:&:
7@ST# K
 K{88 !3!3!56@@B++K HHVBD,A,ABBChhvd55678 	
 %%8%?%?%ABLLN''
   !D--./DKK !DMM"#D//01D--./DLL!"DMM"#
 xxr$   c                 @   t        t        | j                        | j                  | j                  | j
                  | j                  | j                  | j                  t        | j                        | j                  | j                  t        | j                        f      S r^   )hash	frozensetrZ   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r    s    r"   __hash__zMode.__hash__4  s~    d**+%%KKMM''%%d--.LLMMd++,
  	r$   N)r%   r&   r'   r   setrZ   r   __annotations__r
   rt   r   ru   boolrv   rw   rx   ry   rz   r4   r{   r|   r}   rf   r   r   r   r5   r$   r"   rr   rr      s    */*DOS'D*K*!%$%FDHd#(D(!%$%#(#=C=GTHd%*3%?c'l?AG A A s  D# r$   rr   N)?rg   dataclassesr   r   enumr   r   hashlibr   operatorr   typingr	   black.constr
   r   r7   rV   rX   r   r(   rE   r)   r*   rC   r+   rA   rB   rD   r,   rF   r-   rO   rG   rH   rK   rL   r.   rI   rP   r/   rJ   r0   rM   rN   r1   rQ   r2   rR   r3   rS   rT   rY   dictr   r   rd   rf   rh   ri   rn   rp   rr   r5   r$   r"   <module>r      s   )     +8D 8&d > 7--!   223223779R9RS##&&%%!! ##&&%%"" ##&&%%""&&""!!'' ##&&%%""&&""""!!''.. ##&&%%""&&""""!!''..    ##&&%%""&&""""!!''..  !!!$ ##&&%%""&&""""!!''..  !!#& ##&&%%""&&""""!!''..  !!##%( ##&&%%""&&""""!!''..  !!##,,)qN: T-W56 NbWc-&8 W7 Wt W
6d 
6 66	# 3w<  %' E & J J Jr$   