o
    FDi(                  +   @   sX  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	 d	eZG d
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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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j)ej+ej,ej.ej/hej0e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j+ej,ej.ej/ej1hej2e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j+ej,ej.ej/ej1ej3hiZ4e5ee6e f ed< de6e dede7fddZ8G dd deZ9e9j:e9j;e9j<hZ=e6e9 ed< G dd de>Z?dZ@eed< eG dd dZAdS )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                   @   sJ   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dZdS )TargetVersion                  	   
               returnc                 C   s6   | j d d dksJ d| j d  d| j dd   S )N   PYzPython .r   name)self r   C/var/www/Datamplify/venv/lib/python3.10/site-packages/black/mode.pypretty   s    zTargetVersion.prettyN)__name__
__module____qualname__PY33PY34PY35PY36PY37PY38PY39PY310PY311PY312PY313PY314strr    r   r   r   r   r
      s    r
   c                   @   sd   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dS )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FSTRING_PARSINGTYPE_PARAM_DEFAULTSUNPARENTHESIZED_EXCEPT_TYPESFORCE_OPTIONAL_PARENTHESESFUTURE_ANNOTATIONSr   r   r   r   r1   #   s.    r1   annotationsFUTURE_FLAG_TO_FEATUREVERSION_TO_FEATUREStarget_versionsfeaturer   c                    s"   | st dt fdd| D S )Nz!target_versions must not be emptyc                 3   s    | ]	} t | v V  qd S N)rS   .0versionrU   r   r   	<genexpr>   s    z#supports_feature.<locals>.<genexpr>)
ValueErrorall)rT   rU   r   rZ   r   supports_feature   s   r^   c                   @   sF   e Zd Zd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   string_processing*hug_parens_with_braces_and_square_bracketswrap_long_dict_values_in_parensmultiline_string_handlingalways_one_newline_after_importfix_fmt_skip_in_one_linerswrap_comprehension_in!remove_parens_around_except_typesnormalize_cr_newlinesr   r   r   r   r_      s    
r_   UNSTABLE_FEATURESc                   @   s   e Zd ZdZdS )
DeprecatedzVisible deprecation warning.N)r!   r"   r#   r`   r   r   r   r   rk      s    rk       _MAX_CACHE_KEY_PART_LENGTHc                   @   s   e Zd ZU eed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dZee ed< dZeed< dZeed< eedZee ed< dedefddZdefddZdS )Mode)default_factoryrT   line_lengthTstring_normalizationFis_pyiis_ipynbskip_source_first_linemagic_trailing_commapython_cell_magicspreviewunstableenabled_featuresrU   r   c                 C   s&   | j rdS || jv rdS | jo|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)rx   ry   rw   rj   )r   rU   r   r   r   __contains__  s
   
zMode.__contains__c                 C   s  | j rddd t| j tddD }nd}t|tkr)t|  d t }dtdd | j	D d dt| j
 }t|tkrRt|  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	|S )
N,c                 s   s    | ]}t |jV  qd S rV   )r0   valuerW   r   r   r   r[      s
    
z%Mode.get_cache_key.<locals>.<genexpr>r|   )key-c                 s   s    | ]}|j V  qd S rV   r   )rX   fr   r   r   r[   +  s    @r   )rT   joinsortedr   lenrm   r   encode	hexdigestry   rv   r0   rp   intrq   rr   rs   rt   ru   rw   rx   )r   version_strfeatures_and_magicspartsr   r   r   get_cache_key  s>   


zMode.get_cache_keyN)r!   r"   r#   r   setrT   r
   __annotations__r	   rp   r   rq   boolrr   rs   rt   ru   rv   r0   rw   rx   ry   r_   rz   r   r   r   r   r   rn     s   
 rn   N)Br`   dataclassesr   r   enumr   r   hashlibr   operatorr   typingr   black.constr	   r
   r1   rP   rR   r   r$   r?   r%   r&   r=   r'   r;   r<   r>   r(   r@   r)   rI   rA   rB   rE   rF   r*   rC   rJ   r+   rD   r,   rG   rH   r-   rK   rL   r.   rM   r/   rN   rS   dictr   r   r^   r_   ra   rd   rb   rj   UserWarningrk   rm   rn   r   r   r   r   <module>   sL   

 
