
    !.d=              !       ^   U d Z ddl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 ddlmZ ej        d	k     rdd
lmZ n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j        ej        hej         ej!        ej"        ej        ej#        ej        hej$        ej!        ej"        ej        ej#        ej%        ej        hej&        ej!        ej'        ej"        ej        ej#        ej%        ej        ej(        ej)        ej*        ej+        hej,        ej!        ej'        ej"        ej        ej#        ej%        ej        ej(        ej-        ej)        ej*        ej+        ej.        hej/        ej!        ej'        ej"        ej        ej#        ej%        ej        ej(        ej-        ej)        ej*        ej+        ej.        ej0        hej1        ej!        ej'        ej"        ej        ej#        ej%        ej        ej(        ej-        ej)        ej*        ej+        ej.        ej0        ej2        ej3        hi	Z4eeee         f         ed<   dee         dede5fdZ6 G d de          Z7 G d de8          Z9e G d d                      Z:dS )zData structures configuring Black behavior.

Mostly around Python language feature support per version and Black configuration
chosen by the user.
    N)	dataclassfield)Enumauto)sha256)
attrgetter)DictSet)warn)      )Final)DEFAULT_LINE_LENGTHc                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )TargetVersionr               r   	   
      N)__name__
__module____qualname__PY33PY34PY35PY36PY37PY38PY39PY310PY311     *lib/python3.11/site-packages/black/mode.pyr   r      s;        DDDDDDDEEEEr&   r   c                   V    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S )Feature   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FORCE_OPTIONAL_PARENTHESESFUTURE_ANNOTATIONSr%   r&   r'   r)   r)   #   s|        I N KO%'"!# r&   r)   annotationsFUTURE_FLAG_TO_FEATUREVERSION_TO_FEATUREStarget_versionsfeaturereturnc                 :    t          fd| D                       S )Nc              3   6   K   | ]}t           |         v V  d S N)rG   ).0versionrI   s     r'   	<genexpr>z#supports_feature.<locals>.<genexpr>   s.      VV7w-g66VVVVVVr&   )all)rH   rI   s    `r'   supports_featurerR      s&    VVVVoVVV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dS )Previewz"Individual preview style features.N)r   r   r   __doc__r   add_trailing_comma_consistently"blank_line_after_nested_stub_classhex_codes_in_unicode_sequences"improved_async_statements_handlingmultiline_string_handling/prefer_splitting_right_hand_side_of_assignmentsstring_processing$parenthesize_conditional_expressions&skip_magic_trailing_comma_in_subscriptwrap_long_dict_values_in_parens(wrap_multiple_context_managers_in_parensr%   r&   r'   rT   rT      s        ,,&*dff#)-&%)TVV")-& $6:dff3 +/466(-1TVV*&*dff#/3tvv,,,r&   rT   c                       e Zd ZdZdS )
DeprecatedzVisible deprecation warning.N)r   r   r   rU   r%   r&   r'   rb   rb      s        &&&&r&   rb   c                       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
<   dZeed<    ee          Zee         ed<   dZeed<   ddZdedefdZdefdZdS )Mode)default_factoryrH   line_lengthTstring_normalizationFis_pyiis_ipynbskip_source_first_linemagic_trailing_commaexperimental_string_processingpython_cell_magicspreviewrJ   Nc                 B    | j         rt          dt                     d S d S )Nzf`experimental string processing` has been included in `preview` and deprecated. Use `preview` instead.)rl   r   rb   )selfs    r'   __post_init__zMode.__post_init__   s=    . 	>     	 	r&   rI   c                 H    |t           j        u r| j        p| j        S | j        S )z
        Provide `Preview.FEATURE in Mode` syntax that mirrors the ``preview`` flag.

        The argument is not checked and features are not differentiated.
        They only exist to make development easier by clarifying intent.
        )rT   r\   rn   rl   )rp   rI   s     r'   __contains__zMode.__contains__   s*     g///<F4#FF|r&   c                 Z   | j         rAd                    d t          | j         t          d                    D                       }nd}|t	          | j                  t	          t          | j                            t	          t          | j                            t	          t          | j	                            t	          t          | j
                            t	          t          | j                            t	          t          | j                            t	          t          | j                            t          d                    t          | j                                                                                                      g
}d                    |          S )N,c              3   >   K   | ]}t          |j                  V  d S rM   )strvalue)rN   rO   s     r'   rP   z%Mode.get_cache_key.<locals>.<genexpr>   s@       # # GM""# # # # # #r&   rx   )key-.)rH   joinsortedr   rw   rf   intrg   rh   ri   rj   rk   rl   rn   r   rm   encode	hexdigest)rp   version_strpartss      r'   get_cache_keyzMode.get_cache_key   sX    	(( # #%d&:
7@S@STTT# # #  KK
 K !!D-..//DK  !!DM""##D/0011D-..//D78899DL!!""CHHVD$;<<==EEGGHHRRTT
 xxr&   )rJ   N)r   r   r   r   setrH   r
   r   __annotations__r   rf   r~   rg   boolrh   ri   rj   rk   rl   rm   rw   rn   rq   rT   rs   r   r%   r&   r'   rd   rd      s/        */%*D*D*DOS'DDD*K***!%$%%%FDHd#(D(((!%$%%%+0"D000#(5#=#=#=C===GT   	G 	 	 	 	 	s      r&   rd   );rU   sysdataclassesr   r   enumr   r   hashlibr   operatorr   typingr	   r
   warningsr   version_infotyping_extensionsr   black.constr   r   r)   rD   rF   r   r   r7   r   r   r5   r   r3   r4   r6   r    r8   r!   rA   r9   r:   r=   r>   r"   r;   rB   r#   r<   r$   r?   r@   rG   r   rR   rT   UserWarningrb   rd   r%   r&   r'   <module>r      sR     


 ( ( ( ( ( ( ( (                                  f''''''' + + + + + +	 	 	 	 	D 	 	 	    d   4 7-!     232379RS#&%! #&%" #&%"&"!' #&%"&""!'. #&%"&""!'.   #&%"&""!'. !!Q: T-W56 Q Q QhWc-&8 W7 Wt W W W W6 6 6 6 6d 6 6 6$' ' ' ' ' ' ' ' 5 5 5 5 5 5 5 5 5 5r&   