
    iO                        U d Z ddlZddlZddlZddlmZmZ ddlm	Z	m
Z
 ddlmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z" ddl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 e:e;ef         e;z  Z<ee=d<    G d	 d
          Z>ddde?de@de<fdZAdede>de<fdZBdede>de<fdZCdede>de<fdZDdede>de<fdZEdede<fdZFdede<fdZGdede<fdZHdede<fdZIdede<fdZJde de<fdZKdede>de<fdZLdede<fdZMdede<fdZNdede<fd ZOdede<fd!ZPdede<fd"ZQd#e/de<fd$ZRde(de<fd%ZSde'de<fd&ZTde0de<fd'ZUde%de<fd(ZVde*de<fd)ZWde7de<fd*ZXde.de<fd+ZYde)de<fd,ZZde4de<fd-Z[de&de<fd.Z\de+de<fd/Z]de2de<fd0Z^de6de<fd1Z_de8de<fd2Z`de-de<fd3Zade3de<fd4Zbde,de<fd5Zcde1de<fd6Zdde5de<fd7Zede?d8e;de<fd9Zfd<d:Zgehd;k    r eg             dS dS )=aV  Tool to convert binary mypy cache files (.ff) to JSON (.ff.json).

Usage:
   python -m mypy.exportjson .mypy_cache/.../my_module.data.ff

The idea is to make caches introspectable once we've switched to a binary
cache format and removed support for the older JSON cache format.

This is primarily to support existing use cases that need to inspect
cache files, and to support debugging mypy caching issues. This means that
this doesn't necessarily need to be kept 1:1 up to date with changes in the
binary cache format (to simplify maintenance -- we don't want this to slow
down mypy development).
    N)Any	TypeAlias)
ReadBuffercache_version)CACHE_VERSION	CacheMeta)FUNCBASE_FLAGSFUNCDEF_FLAGS	VAR_FLAGSClassDefDataclassTransformSpec	DecoratorFuncDefMypyFileOverloadedFuncDefOverloadPartParamSpecExpr
SymbolNodeSymbolTableSymbolTableNoder   TypeInfoTypeVarExprTypeVarTupleExprVar	get_flags
node_kinds)	NOT_READYAnyTypeCallableType
ExtraAttrsInstanceLiteralTypeNoneType
Overloaded
ParametersParamSpecType	TupleTypeTypeTypeAliasTypeTypedDictTypeTypeTypeTypeVarTupleTypeTypeVarTypeUnboundTypeUninhabitedType	UnionType
UnpackTypeget_proper_typeJsonc                   $    e Zd ZdddeddfdZdS )ConfigTimplicit_namesr7   returnNc                    || _         d S Nr6   )selfr7   s     N/root/projects/qq-shell/venv/lib64/python3.11/site-packages/mypy/exportjson.py__init__zConfig.__init__L   s    ,    )__name__
__module____qualname__boolr=    r>   r<   r5   r5   K   sC        15 - - -$ -$ - - - - - -r>   r5   Tr6   datar7   r8   c                    t          j        t          |                     }t          |t	          |                    S )Nr6   )r   readr   convert_mypy_file_to_jsonr5   )rD   r7   trees      r<   convert_binary_cache_to_jsonrI   P   s4    =D))**D$T6+P+P+PQQQr>   r;   cfgc           	          d| j         t          | j        |          | j        | j        | j        t          | j                  dS )Nr   ).class	_fullnamenamesis_stubpathis_partial_stub_packagefuture_import_flags)rM   convert_symbol_tablerN   rO   rP   rQ   sortedrR   r;   rJ   s     r<   rG   rG   U   sF    ^%dj#66<	#'#?%d&>??  r>   c                     ddi}|                                  D ]2\  }}|dk    s|j        r|j        s|dv rt          ||          ||<   3|S )NrL   r   __builtins__>   __doc____file__r?   __spec____package____annotations__)itemsno_serializer7   convert_symbol_table_node)r;   rJ   rD   keyvalues        r<   rS   rS   a   sz    $m4Djjll : :
U
 .  E$6 ! 	c .
 '
 '
 -eS99S		Kr>   c                     dt           | j                 d}| j        rd|d<   | j        sd|d<   | j        rd|d<   | j        rd|d<   | j        r| j        |d	<   n| j        t          | j        |          |d
<   |S )Nr   )rL   kindTmodule_hiddenFmodule_publicimplicitplugin_generated	cross_refnode)	r   rc   rd   re   rf   rg   rh   ri   convert_symbol_noder;   rJ   rD   s      r<   r_   r_   w   s    &7DIAVWWD % $_ & %_}  Z (#' ~ ; N[		*49c::VKr>   c                    t          | t                    rt          |           S t          | t                    rt	          |           S t          | t
                    rt          |           S t          | t                    rt          |           S t          | t                    rt          | |          S t          | t                    rt          |           S t          | t                    rt          |           S t          | t                    rt!          |           S t          | t"                    rt%          |           S dt'          |           diS NERRORz unrecognized)
isinstancer   convert_func_defr   convert_overloaded_func_defr   convert_decoratorr   convert_varr   convert_type_infor   convert_type_aliasr   convert_type_var_exprr   convert_param_spec_exprr   convert_type_var_tuple_exprtyperU   s     r<   rj   rj      s@   $   1%%%	D+	,	, 1*4000	D)	$	$ 1 &&&	D#		 14   	D(	#	# 	1 s+++	D)	$	$ 1!$'''	D+	&	& 1$T***	D-	(	( 1&t,,,	D*	+	+ 1*4000T

33344r>   c                 
   d| j         | j        | j        d | j        D             | j        d nt          | j                  t          | t                    | j        | j	        d nt          | j	                  | j        | j        dS )Nr   c                 6    g | ]}t          |j                  S rC   intra   .0xs     r<   
<listcomp>z$convert_func_def.<locals>.<listcomp>        ;;;qc!'ll;;;r>   )rL   namefullname	arg_names	arg_kindsry   flagsabstract_statusdataclass_transform_spec
deprecatedoriginal_first_arg)_namerM   r   r   ry   convert_typer   r
   r   r    convert_dataclass_transform_specr   r   r;   s    r<   rp   rp      s    
N^;;DN;;;	)|DI/F/F4/// ,4 D1$2OPPo"5!  r>   c                 ^    | j         | j        | j        | j        t	          | j                  dS )N)
eq_defaultorder_defaultkw_only_defaultfrozen_defaultfield_specifiers)r   r   r   r   listr   r   s    r<   r   r      s6    o+/- !677  r>   c           	          dd | j         D             | j        d nt          | j                  | j        | j        d nt          | j                  t          | t                    | j        | j	        dS )Nr   c                 ,    g | ]}t          |          S rC   )convert_overload_part)r   is     r<   r   z/convert_overloaded_func_def.<locals>.<listcomp>   s!    ???q'**???r>   )rL   r]   ry   r   implr   r   setter_index)
r]   ry   r   rM   r   r   r   r	   r   r   r   s    r<   rq   rq      su    %??DJ???	)|DI/F/FN	)/DTY/O/O400o)	 	 	r>   c                 h    t          | t                    rt          |           S t          |           S r:   )ro   r   rp   rr   r   s    r<   r   r      s0    $   '%%% &&&r>   c                 b    dt          | j                  t          | j                  | j        dS )Nr   )rL   funcvaris_overload)rp   r   rs   r   r   r   s    r<   rr   rr      s4     ++48$$'	  r>   c           	          d| j         | j        | j        d nt          | j                  | j        d nt          | j                  t          | t                    d}| j        
| j        |d<   |S )Nr   )rL   r   r   ry   setter_typer   final_value)r   rM   ry   r   r   r   r   r   r;   rD   s     r<   rs   rs      sw    
N	)|DI/F/F#/7tt\$JZ=[=[4++ D #".]Kr>   c                 B   i ddd| j         d| j        dt          | j        |          dt	          | j                  d| j        d| j        d	| j        d
d | j	        D             d| j
        dd | j        D             d| j        d nt          | j                  d| j        d nt          | j                  d| j        d nt          | j                  d| j        d nt          | j                  d| j        d nt%          | j                  dt'          | t(          j                  | j        | j        t1          | j                  nd | j        | j        t          | j                  nd | j        t9          | j                  nd | j        d}|S )NrL   r   module_namer   rN   defnabstract_attributes	type_varshas_param_spec_typebasesc                 ,    g | ]}t          |          S rC   r   )r   bs     r<   r   z%convert_type_info.<locals>.<listcomp>       666a,q//666r>   mro_promotec                 ,    g | ]}t          |          S rC   r   )r   ps     r<   r   z%convert_type_info.<locals>.<listcomp>   s    <<<\!__<<<r>   alt_promotedeclared_metaclassmetaclass_type
tuple_typetypeddict_typer   )metadataslotsdeletable_attributes	self_typer   r   )r   r   rS   rN   convert_class_defr   r   r   r   r   	_mro_refsr   r   r   r   r   r   r   convert_typeddict_typer   r   FLAGSr   r   rT   r   r   r   r   r   rk   s      r<   rt   rt      s   "*"t'" 	DM" 	%dj#66	"
 	!$),," 	t7" 	T^" 	t7" 	664:666" 	t~" 	<<dm<<<" 	t/7tt\$JZ=[=[" 	+3DDdF]9^9^"  	'/DD\$BU5V5V#"& 	do5dd<;X;X'"( 	'/DD5KDL_5`5`+". 	400/"0 M'+z'=
###4 $ 959^5O\$.111UY ,8 -T-JKKKoC" " "DF Kr>   c                 B    d| j         | j        d | j        D             dS )Nr   c                 ,    g | ]}t          |          S rC   r   r   vs     r<   r   z%convert_class_def.<locals>.<listcomp>      >>>!l1oo>>>r>   )rL   r   r   r   )r   r   r   r   s    r<   r   r     s1    	M>>t~>>>	  r>   c           	          d| j         | j        t          | j                  d | j        D             | j        | j        | j        d}|S )Nr   c                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z&convert_type_alias.<locals>.<listcomp>  s    BBBAQBBBr>   )rL   r   moduletargetalias_tvarsno_args
normalizedpython_3_12_type_alias)rM   r   r   r   r   r   r   r   r   s     r<   ru   ru     sS    N+t{++BB1ABBB<o"&"=	 	D Kr>   c                     d| j         | j        d | j        D             t          | j                  t          | j                  | j        dS )Nr   c                 ,    g | ]}t          |          S rC   r   r   ts     r<   r   z)convert_type_var_expr.<locals>.<listcomp>+      888q<??888r>   )rL   r   r   valuesupper_bounddefaultvariance)r   rM   r   r   r   r   r   r   s    r<   rv   rv   &  sQ    
N88DK888#D$455--M  r>   c                 z    d| j         | j        t          | j                  t          | j                  | j        dS )Nr   )rL   r   r   r   r   r   )r   rM   r   r   r   r   r   s    r<   rw   rw   2  s>    !
N#D$455--M  r>   c                     d| j         | j        t          | j                  t          | j                  t          | j                  | j        dS )Nr   )rL   r   r   r   tuple_fallbackr   r   )r   rM   r   r   r   r   r   r   s    r<   rx   rx   =  sL    $
N#D$455&t':;;--M  r>   typc                 Z   t          |           t          u rt          |           S t          |           } t	          | t
                    rt          |           S t	          | t                    rt          |           S t	          | t                    rt          |           S t	          | t                    rt          |           S t	          | t                    rt          |           S t	          | t                    rt!          |           S t	          | t"                    rt%          |           S t	          | t&                    rt)          |           S t	          | t*                    rt-          |           S t	          | t.                    rt1          |           S t	          | t2                    rt5          |           S t	          | t6                    rt9          |           S t	          | t:                    rt=          |           S t	          | t>                    rtA          |           S t	          | tB                    rtE          |           S t	          | tF                    rtI          |           S t	          | tJ                    rtM          |           S dt          |           diS rm   )'ry   r)   convert_type_alias_typer2   ro   r!   convert_instancer   convert_any_typer#   convert_none_typer0   convert_union_typer'   convert_tuple_typer   convert_callable_typer$   convert_overloadedr"   convert_literal_typer-   convert_type_var_typer+   convert_type_typer/   convert_uninhabited_typer1   convert_unpack_typer&   convert_param_spec_typer,   convert_type_var_tuple_typer%   convert_parametersr*   r   r.   convert_unbound_type)r   s    r<   r   r   I  si   CyyM!!&s+++
#

C#x   !)$$$	C	!	! )$$$	C	"	" ) %%%	C	#	# )!#&&&	C	#	# )!#&&&	C	&	& )$S)))	C	$	$ )!#&&&	C	%	% )#C(((	C	%	% )$S)))	C	"	" ) %%%	C	)	) )',,,	C	$	$ )"3'''	C	'	' 	)&s+++	C)	*	* )*3///	C	$	$ )!#&&&	C	'	' )%c***	C	%	% )#C(((S		22233r>   c                 P   | j         t          u}| j        s*| j        s#| j        s|r| j         j        S | j        r| j        S d|r| j         j        n| j        d | j        D             d}| j        t          | j                  |d<   | j        rt          | j                  nd |d<   |S )Nr!   c                 ,    g | ]}t          |          S rC   r   r   args     r<   r   z$convert_instance.<locals>.<listcomp>}       888sc""888r>   rL   type_refargslast_known_valueextra_attrs)	ry   r   r   r   r   r   r   r   convert_extra_attrs)r;   readyrD   s      r<   r   r   r  s    IY&E9 !T2 !4;K ! 	!9%%] 	!=  */BDI&&T]88di888 D
 (#/0E#F#F CGCS]-d.>???Y]DKr>   c                     dd | j                                         D             t          | j                  | j        dS )Nr    c                 4    i | ]\  }}|t          |          S rC   r   )r   kr   s      r<   
<dictcomp>z'convert_extra_attrs.<locals>.<dictcomp>  s$    DDDA!\!__DDDr>   )rL   attrs	immutablemod_name)r   r]   rT   r   r   r   s    r<   r   r     sE    DD1A1A1C1CDDDDN++M	  r>   c                 :    d| j         d | j        D             d}|S )Nr)   c                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z+convert_type_alias_type.<locals>.<listcomp>  r   r>   r   )r   r   r   s     r<   r   r     s0    !M88di888 D
 Kr>   c                 Z    d| j         | j        t          | j                  nd | j        dS )Nr   )rL   type_of_any
source_anymissing_import_name)r  r  r   r  r   s    r<   r   r     s:    '7;7Rl4?333X\#7	  r>   c                 
    ddiS )NrL   r#   rC   r   s    r<   r   r     s    j!!r>   c                 6    dd | j         D             | j        dS )Nr0   c                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z&convert_union_type.<locals>.<listcomp>  r   r>   )rL   r]   uses_pep604_syntax)r]   r
  r   s    r<   r   r     s-    664:666"5  r>   c                 \    dd | j         D             t          | j                  | j        dS )Nr'   c                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z&convert_tuple_type.<locals>.<listcomp>  r   r>   )rL   r]   partial_fallbackrf   )r]   r   r  rf   r   s    r<   r   r     s:    664:666()>??M	  r>   c                 <    d| j         t          | j                  dS )Nr"   )rL   ra   fallback)ra   r   r  r   s    r<   r   r     s     #djlSWS`FaFabbbr>   c           
          | j                                         rJ d| j        | j        | j         j        | j         j        d | j        D             t          | j                  t          | j	                  | j
        d	S )Nr-   c                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z)convert_type_var_type.<locals>.<listcomp>  r   r>   )	rL   r   r   id	namespacer   r   r   r   )r  is_meta_varr   r   raw_idr  r   r   r   r   r   r   s    r<   r   r     sz    w""$$$$$	MgnW&88DK888#D$455--M
 
 
r>   c                    i dddd | j         D             dd | j        D             d| j        dt          | j                  d	t          | j                  d
| j        dd | j        D             d| j        d| j	        d| j
        d| j        t          | j                  nd d| j        t          | j                  nd d| j        d| j        d| j        S )NrL   r   	arg_typesc                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z)convert_callable_type.<locals>.<listcomp>  r   r>   r   c                 6    g | ]}t          |j                  S rC   r|   r~   s     r<   r   z)convert_callable_type.<locals>.<listcomp>  r   r>   r   ret_typer  r   	variablesc                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z)convert_callable_type.<locals>.<listcomp>  r   r>   is_ellipsis_argsrf   is_bound
type_guardtype_isfrom_concatenateimprecise_arg_kindsunpack_kwargs)r  r   r   r   r  r  r   r  r  rf   r  r  r   r!  r"  r#  r   s    r<   r   r     sP   .>>t~>>> 	;;DN;;; 	T^	
 	L// 	L// 		 	>>t~>>> 	D1 	DM 	DM 	t7Rl4?333X\ 	1I<---t 	D1  	t7!" 	+# r>   c                 *    dd | j         D             dS )Nr$   c                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z&convert_overloaded.<locals>.<listcomp>  s    -R-R-R!l1oo-R-R-Rr>   )rL   r]   )r]   r   s    r<   r   r     s!    "-R-Rtz-R-R-RSSSr>   c                 0    dt          | j                  dS )Nr+   )rL   item)r   r'  r   s    r<   r   r     s     ,ty*A*ABBBr>   c                 
    ddiS )NrL   r/   rC   r   s    r<   r   r     s    '((r>   c                 0    dt          | j                  dS )Nr1   )rL   ry   )r   ry   r   s    r<   r   r     s    "L,C,CDDDr>   c                    | j                                         rJ d| j        | j        | j         j        | j         j        | j        t          | j                  t          | j	                  t          | j
                  d	S )Nr&   )	rL   r   r   r  r  flavorr   r   prefix)r  r  r   r   r  r  r+  r   r   r   r,  r   s    r<   r   r     st    w""$$$$$!	MgnW&+#D$455--t{++
 
 
r>   c           
         | j                                         rJ d| j        | j        | j         j        | j         j        t          | j                  t          | j                  t          | j	                  | j
        d	S )Nr,   )	rL   r   r   r  r  r   r   r   min_len)r  r  r   r   r  r  r   r   r   r   r.  r   s    r<   r   r     su    w""$$$$$$	MgnW&#D$455&t':;;--<
 
 
r>   c                     dd | j         D             d | j        D             | j        d | j        D             | j        dS )Nr%   c                 ,    g | ]}t          |          S rC   r   r   s     r<   r   z&convert_parameters.<locals>.<listcomp>  r   r>   c                 6    g | ]}t          |j                  S rC   r|   r~   s     r<   r   z&convert_parameters.<locals>.<listcomp>  r   r>   c                 ,    g | ]}t          |          S rC   r   )r   tvs     r<   r   z&convert_parameters.<locals>.<listcomp>  s     @@@2l2&&@@@r>   )rL   r  r   r   r  r"  )r  r   r   r  r"  r   s    r<   r   r     sX    >>t~>>>;;DN;;;^@@@@@#7  r>   c                     dd | j                                          D             t          | j                  t          | j                  t	          | j                  dS )Nr*   c                 6    g | ]\  }}|t          |          gS rC   r   )r   nr   s      r<   r   z*convert_typeddict_type.<locals>.<listcomp>  s'    HHH6Aq1l1oo&HHHr>   )rL   r]   required_keysreadonly_keysr  )r]   rT   r7  r8  r   r  r   s    r<   r   r     s\    !HHTZ5E5E5G5GHHH 233 233 //  r>   c                 N    d| j         d | j        D             | j        | j        dS )Nr.   c                 ,    g | ]}t          |          S rC   r   )r   as     r<   r   z(convert_unbound_type.<locals>.<listcomp>%  s    444Qa444r>   )rL   r   r   exprexpr_fallback)r   r   original_str_exproriginal_str_fallbackr   s    r<   r   r   !  s8    	44$)444&3  r>   	data_filec                    | d         t                      k    r| d         t          k    s
J d            t          j        t	          | dd                    |          }|J d|             i d|j        d|j        d|j        d	|j        d
|j	        d|j
        d|j        d|j        d|j        d|j        d|j        dd |j        D             d|j                                        d|j        d|j        d|j        S )Nr      z2Cache file created by an incompatible mypy version   z.Error reading meta cache file associated with r  rP   mtimesizehash
data_mtimedependencies
suppressedoptions	dep_prios	dep_lines
dep_hashesc                 6    g | ]}|                                 S rC   )hex)r   deps     r<   r   z5convert_binary_cache_meta_to_json.<locals>.<listcomp>=  s     <<<Sswwyy<<<r>   interface_hash
version_id
ignore_allplugin_data)r   r   r   rF   r   r  rP   rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rQ  rO  rR  rS  rT  )rD   r@  metas      r<   !convert_binary_cache_meta_to_jsonrV  +  sw   Q=??""tAw-'?'?'?; (@'?'?>*T!""X..	::DYiYYdg	 	 			
 		 	do 	) 	do 	4< 	T^ 	T^ 	<<DO<<< 	$-1133 	do 	do  	t'! r>   c                     t          j        d          } |                     ddd           |                                 }|j        }|D ]}|                    d          rd}n/|                    d	          rd
}nt          j        d|            t          |d          5 }|	                                }d d d            n# 1 swxY w Y   |rt          |          }n(|                    d	          dz   }t          ||          }|dz   }	t          |	d          5 }t          j        ||           d d d            n# 1 swxY w Y   t          | d|	            d S )NzbConvert binary cache files to JSON. Create files in the same directory with extra .json extension.)descriptionrP   +z4mypy cache data file to convert (.data.ff extension))nargshelpz.data.ffTz.meta.ffFz8error: Expected .data.ff or .meta.ff extension, but got rbz.jsonwz -> )argparseArgumentParseradd_argument
parse_argsrP   endswithsysexitopenrF   rI   removesuffixrV  jsondumpprint)
parserr   fnamsfnamis_datafrD   	json_datar@  new_fnams
             r<   mainrq  E  s   $I  F c V     DyE ' '==$$ 	XGG]]:&& 	XGGHVPTVVWWW$ 	6688D	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	K4T::II))*55
BI9$	JJI'>(C   	$AIi###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$%%8%%&&&&#' 's$   %CC
	C
	 EE		E	__main__)r8   N)irX   r^  rg  rc  typingr   r   
_TypeAliaslibrt.internalr   r   
mypy.cacher   r   
mypy.nodesr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
mypy.typesr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   dictstrr3   r\   r5   bytesrB   rI   rG   rS   r_   rj   rp   r   rq   r   rr   rs   rt   r   ru   rv   rw   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rV  rq  r?   rC   r>   r<   <module>r|     sD       



 / / / / / / / / 4 4 4 4 4 4 4 4 / / / / / / / /                                             .                                               2 S>C'j ' ' '- - - - - - - -
 IM R R Ru R RQU R R R R
	H 	6 	d 	 	 	 	{  D    ,O & T    "5j 5v 5$ 5 5 5 5,7 t    *+A d    
&7 
D 
 
 
 
' ' ' ' ' 'I $    c d    $H $6 $d $ $ $ $NH     Y 4    	 	 	 	 	 	- D    	&6 	4 	 	 	 	&4d &4t &4 &4 &4 &4R8     &j T    - D    7 t    "H " " " " "Y 4    Y 4    c{ ct c c c c          ,TZ TD T T T TCH C C C C C)? )t ) ) ) )Ej ET E E E E- D    &6 4    Z D     4    { t    E c d    4' ' ' '< zDFFFFF r>   