
    e               $       
   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mZ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j0                  ej.                  hej2                  ej4                  ej.                  hej6                  ej8                  ej:                  ej4                  ej<                  ej.                  hej>                  ej8                  ej:                  ej4                  ej<                  ej@                  ej&                  hejB                  ej8                  ejD                  ej:                  ej4                  ej<                  ej@                  ej&                  ejF                  ejH                  ejJ                  ejL                  hejN                  ej8                  ejD                  ej:                  ej4                  ej<                  ej@                  ej&                  ejF                  ejP                  ejH                  ejJ                  ejL                  ejR                  hejT                  ej8                  ejD                  ej:                  ej4                  ej<                  ej@                  ej&                  ejF                  ejP                  ejH                  ejJ                  ejL                  ejR                  ejV                  hejX                  ej8                  ejD                  ej:                  ej4                  ej<                  ej@                  ej&                  ejF                  ejP                  ejH                  ejJ                  ejL                  ejR                  ejV                  ejZ                  ej\                  hej^                  ej8                  ejD                  ej:                  ej4                  ej<                  ej@                  ej&                  ejF                  ejP                  ejH                  ejJ                  ejL                  ejR                  ejV                  ejZ                  ej\                  ej`                  hi
Z1eeee   f   ed<   dee   dede2fdZ3 G d de      Z4e4jj                  e4jl                  e4jn                  e4jp                  hZ9ee4   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)DictFinalSet)DEFAULT_LINE_LENGTHc                   4    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)TargetVersion                  	   
         N)__name__
__module____qualname__PY33PY34PY35PY36PY37PY38PY39PY310PY311PY312     ,/usr/lib/python3/dist-packages/black/mode.pyr   r      s4    DDDDDDDEEEr'   r   c                   X    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y)Feature   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FORCE_OPTIONAL_PARENTHESESFUTURE_ANNOTATIONSr&   r'   r(   r*   r*      ss    I N KO%'"K!# r'   r*   annotationsFUTURE_FLAG_TO_FEATUREVERSION_TO_FEATUREStarget_versionsfeaturereturnc                 ,    t        fd| D              S )Nc              3   4   K   | ]  }t         |   v   y wN)rI   ).0versionrK   s     r(   	<genexpr>z#supports_feature.<locals>.<genexpr>   s     V7w-g66Vs   )all)rJ   rK   s    `r(   supports_featurerT      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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_parensr&   r'   r(   rV   rV      s_    ,%)V" 15. $'+v$&*f# $"&&15."&&$(F!r'   rV   UNSTABLE_FEATURESc                       e Zd ZdZy)
DeprecatedzVisible deprecation warning.N)r   r   r   rW   r&   r'   r(   re   re      s    &r'   re       _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_factoryrJ   line_lengthTstring_normalizationFis_pyiis_ipynbskip_source_first_linemagic_trailing_commapython_cell_magicspreviewunstableenabled_featuresrK   rL   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)rs   rt   rr   rc   )selfrK   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&                              |g	}dj                  |      S )	N,c              3   F   K   | ]  }t        |j                          y wrO   )strvalue)rP   rQ   s     r(   rR   z%Mode.get_cache_key.<locals>.<genexpr>   s!      # GMM"#s   !r|   )key-c              3   4   K   | ]  }|j                     y wrO   )name)rP   fs     r(   rR   z%Mode.get_cache_key.<locals>.<genexpr>   s     BqAFFBs   @.)rJ   joinsortedr   lenrg   r   encode	hexdigestrt   rq   r{   rk   intrl   rm   rn   ro   rp   rr   )rv   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!"

 xxr'   N)r   r   r   r   setrJ   r   r   __annotations__r   rk   r   rl   boolrm   rn   ro   rp   rq   r{   rr   rs   rt   rV   rw   r   r&   r'   r(   ri   ri      s    */*DOS'D*K*!%$%FDHd#(D(!%$%#(#=C=GTHd%*3%?c'l?AG A A s  r'   ri   N)>rW   dataclassesr   r   enumr   r   hashlibr   operatorr   typingr	   r
   r   black.constr   r   r*   rF   rH   r   r   r8   r   r   r6   r   r4   r5   r7   r    r9   r!   rB   r:   r;   r>   r?   r"   r<   rC   r#   r=   r$   r@   rA   r%   rD   rI   r   rT   rV   rY   r]   r^   rZ   rc   UserWarningre   rg   ri   r&   r'   r(   <module>r      s   )    # # +
D 
d 6 7--!   223223779R9RS##&&%%!! ##&&%%"" ##&&%%""&&""!!'' ##&&%%""&&""""!!''.. ##&&%%""&&""""!!''..    ##&&%%""&&""""!!''..  !!!$ ##&&%%""&&""""!!''..  !!#cd: T-W56 dNWc-&8 W7 Wt W+d +( ++%%66	# 3w< 	' ' %' E & ; ; ;r'   