
    ?g(%              (          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\                  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^                  ejb                  hiZ2e3ee4e   f   ed<   de4e   dede5fdZ6 G d de      Z7e7jp                  e7jr                  e7jt                  e7jv                  hZ<e4e7   ed<    G d de=      Z>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                   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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    *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strr!    r"   r    r   r      sE    DDDDDDDEEEE8 8r"   r   c                   `    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y)Featurer   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FSTRING_PARSINGTYPE_PARAM_DEFAULTSFORCE_OPTIONAL_PARENTHESESFUTURE_ANNOTATIONSr2   r"   r    r4   r4   "   s~    I N KO%'"KO!# r"   r4   annotationsFUTURE_FLAG_TO_FEATUREVERSION_TO_FEATUREStarget_versionsfeaturer   c                 ,    t        fd| D              S )Nc              3   4   K   | ]  }t         |   v   y wN)rU   ).0versionrW   s     r    	<genexpr>z#supports_feature.<locals>.<genexpr>   s     Vo7w-g66os   )all)rV   rW   s    `r    supports_featurer_      s    VoVVVr"   c                       e Zd ZdZ e       Z e       Z e       Z e       Z e       Z	 e       Z
 e       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   hex_codes_in_unicode_sequencesstring_processing*hug_parens_with_braces_and_square_bracketsunify_docstring_detection no_normalize_fmt_skip_whitespacewrap_long_dict_values_in_parensmultiline_string_handlingtyped_params_trailing_comma*is_simple_lookup_for_doublestar_expressiondocstring_check_for_newlineremove_redundant_guard_parens(parens_for_long_if_clauses_in_case_block$pep646_typed_star_arg_type_var_tupler2   r"   r    ra   ra      so    ,%)V" 15. $'+v$&*f# $"&&15."&&$(F!/3v,+/6(r"   ra   UNSTABLE_FEATURESc                       e Zd ZdZy)
DeprecatedzVisible deprecation warning.N)r#   r$   r%   rb   r2   r"   r    rr   rr      s    &r"   rr       _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y)Mode)default_factoryrV   line_lengthTstring_normalizationFis_pyiis_ipynbskip_source_first_linemagic_trailing_commapython_cell_magicspreviewunstableenabled_featuresrW   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   rp   )r   rW   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	        |      t
        kD  r.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rZ   )r1   value)r[   r\   s     r    r]   z%Mode.get_cache_key.<locals>.<genexpr>	  s!      #TG GMM"Ts   !r   )key-c              3   4   K   | ]  }|j                     y wrZ   r   )r[   fs     r    r]   z%Mode.get_cache_key.<locals>.<genexpr>  s     B,AqAFF,As   @r   )rV   joinsortedr   lenrt   r   encode	hexdigestr   r~   r1   rx   intry   rz   r{   r|   r}   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 	
 "#&@@"()<)C)C)E"F"P"P"R++#   !D--./DKK !DMM"#D//01D--./DLL!"DMM"#
 xxr"   N)r#   r$   r%   r   setrV   r   __annotations__r
   rx   r   ry   boolrz   r{   r|   r}   r~   r1   r   r   r   ra   r   r   r2   r"   r    rv   rv      s    */*DOS'D*K*!%$%FDHd#(D(!%$%#(#=C=GTHd%*3%?c'l?AG A A!s !r"   rv   N)Arb   dataclassesr   r   enumr   r   hashlibr   operatorr   typingr	   black.constr
   r   r4   rR   rT   r   r&   rB   r'   r(   r@   r)   r>   r?   rA   r*   rC   r+   rL   rD   rE   rH   rI   r,   rF   rM   r-   rG   r.   rJ   rK   r/   rN   rO   r0   rP   rU   dictr   r   r_   ra   rd   rh   ri   re   rp   UserWarningrr   rt   rv   r2   r"   r    <module>r      sg   )     +8D 8$d : 7--!   223223779R9RS##&&%%!! ##&&%%"" ##&&%%""&&""!!'' ##&&%%""&&""""!!''.. ##&&%%""&&""""!!''..    ##&&%%""&&""""!!''..  !!!$ ##&&%%""&&""""!!''..  !!%( ##&&%%""&&""""!!''..  !!##'Kz: T-W56 zzWc-&8 W7 Wt W2d 2, ++%%66	# 3w< 	' ' %' E & < < <r"   