
    %^gt_                    X   U d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZ d dlmZ d dlmZmZ d dlmZmZ  G d d      Zh d	Zd
ed<   eh dz  dhz
  Zd
ed<   dZd
ed<   dZd
ed<   dZd
ed<   dZd
ed<   dZd
ed<    eeef      Zd
ed<    eeeef      Zd
ed<    G d d      Z y)    )annotationsN)AnyCallableFinalMappingPattern)defaults)	ErrorCodeerror_codes)get_class_descriptorsreplace_object_statec                  8    e Zd ZU dZded<   dZded<   dZded<   y)		BuildTyper   r   STANDARD   MODULE   PROGRAM_TEXTN)__name__
__module____qualname__r   __annotations__r   r        ,lib/python3.12/site-packages/mypy/options.pyr   r      s     HeFEL%r   r   >%   mypycalways_truedebug_cachealways_falseextra_checksignore_errorsfollow_importswarn_no_returnstrict_equalitystrict_optionalwarn_return_anywarn_unreachabledisallow_any_exprenable_error_codeimplicit_optionalimplicit_reexportallow_redefinitioncheck_untyped_defsdisable_error_codestrict_concatenateenabled_error_codeslocal_partial_typeswarn_unused_ignoresdisabled_error_codesallow_untyped_globalsdisallow_any_explicitdisallow_any_genericsdisallow_untyped_defsdisallow_any_decorateddisallow_untyped_callsfollow_untyped_importsignore_missing_importsdisallow_any_unimporteddisallow_incomplete_defsdisallow_subclassing_anyfollow_imports_for_stubsdisallow_untyped_decoratorsr   PER_MODULE_OPTIONS>   bazelpluginsplatformold_type_inferencedisable_bytearray_promotiondisable_memoryview_promotionr   OPTIONS_AFFECTING_CACHETypeVarTupleTYPE_VAR_TUPLEUnpackUNPACKPreciseTupleTypesPRECISE_TUPLE_TYPESNewGenericSyntaxNEW_GENERIC_SYNTAXInlineTypedDictINLINE_TYPEDDICTINCOMPLETE_FEATURESCOMPLETE_FEATURESc                      e Zd ZdZddZddZddZddZddZddZ	ddZ
	 	 	 	 	 	 dd	Zdd
ZddZddZddZddZddZy)OptionszOptions collected from flags.c                   d | _         t        j                  | _        t        j
                  d d | _        t        j                  | _        t        j                  d      }|dk(  r|| _        nt        j                  | _        d | _        d | _        d | _        g | _        i | _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        g | _        d| _        d| _        d| _        d| _        d| _        d| _         g | _!        d| _"        d| _#        d| _$        d| _%        d| _&        d| _'        d| _(        d| _)        d| _*        d| _+        d| _,        d| _-        d| _.        d| _/        d| _0        d| _1        d| _2        d| _3        d| _4        d| _5        d| _6        d| _7        d| _8        d| _9        d| _:        g | _;        g | _<        g | _=        t}               | _?        g | _@        t}               | _A        d| _B        d | _C        d | _D        d | _E        d | _F        d | _G        d | _H        d| _I        d| _J        t        j                  | _M        d| _N        d| _O        d| _P        d| _Q        d| _R        d| _S        d| _T        d| _U        d| _V        d| _W        d| _X        d| _Y        g | _Z        i | _[        g | _\        t}               | _]        d| _^        d| __        d| _`        d| _a        d| _b        d| _c        d| _d        g | _e        d | _f        d | _g        d| _h        d| _i        d| _j        d | _k        d| _l        d| _m        d| _n        d| _o        d| _p        d| _q        d| _r        d| _s        d| _t        d| _u        d| _v        g | _w        i | _x        d| _y        d| _z        d| _{        d | _|        d| _}        d| _~        d| _        t        j                   | _        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d | _        y )	Nr   MACHDEP
emscriptenFnormalTglobalr   )_per_module_cacher   r   
build_typesysversion_infopython_version
executablepython_executable	sysconfigget_config_varrD   custom_typing_modulecustom_typeshed_dirabs_custom_typeshed_dir	mypy_pathreport_dirsno_silence_site_packagesno_site_packagesr;   !ignore_missing_imports_per_moduler:   r"   r?   namespace_packagesexplicit_package_basesexcluder6   r<   r(   r8   r5   r9   untyped_calls_excluder7   r=   r-   r@   r>   warn_incomplete_stubwarn_redundant_castsr#   r&   report_deprecated_as_noter2   warn_unused_configsr!   r%   show_error_contextcolor_outputerror_summaryr*   r+   r4   r,   r$   r/   r    r'   r   r   r.   setr3   r)   r0   scripts_are_modulesconfig_filequickstart_filefilespackagesmodules	junit_xmljunit_formatincrementalr	   	CACHE_DIR	cache_dirsqlite_cacher   skip_version_checkskip_cache_mtime_checksfine_grained_incrementalcache_fine_graineduse_fine_grained_cachedebug_serializer   inspectionspreserve_astsinclude_docstringsrC   per_module_options_glob_optionsunused_configs	verbositypdbshow_tracebackraise_exceptionsdump_type_statsdump_inference_statsdump_build_statsenable_incomplete_featuretiming_statsline_checking_statssemantic_analysis_onlyuse_builtins_fixturestest_envshadow_fileshow_column_numbersshow_error_endhide_error_codesshow_error_code_linkspretty
dump_graph	dump_depslogical_depsr1   rB   export_typespackage_root	cache_map	fast_exitfast_module_lookupallow_empty_bodiestransform_sourceshow_absolute_pathinstall_typesnon_interactiveMANY_ERRORS_THRESHOLDmany_errors_thresholdrE   new_type_inferenceexport_ref_inforF   rG   force_uppercase_builtinsforce_union_syntaxoutput)selfrX   s     r   __init__zOptions.__init__V   s   <@ $,,/2/?/?/C .1^^ **95l"#DMLLDM04!/3 37$$&+-(-% %&+#16.&+#& ).%
 #' ',#"$ &+"',$!&&+#%*" ',# 13" &+" ).% #( ,1( ).% %*! %*! #  % */& $)  $)  #  $ #( !! "' "& &+" #(  % #( " !& ') (* .047E! -/365  $)  (,
 ,0 (,
 +/ *. &*!)  !++! "'',$(-%"'&+#  % 

 ! # #( #% AC=?(+ # %$$)! %46&(,/3  ',# &+"  48). $) %%*"!#( 
! (*57"'"' >B(-"  % &.%C%C""'"'  %+0(,1)(-%"' #'r   c                <    | j                   dk\  r| j                   S y)N)   	   F)r`   r   r   s    r   use_lowercase_nameszOptions.use_lowercase_names  s"    &(4444r   c                <    | j                   dk\  r| j                   S y)N)r   
   F)r`   r   r   s    r   use_or_syntaxzOptions.use_or_syntax  s"    ')....r   c                     | j                   dk\  S )N)r      )r`   r   s    r   use_star_unpackzOptions.use_star_unpack  s    ""g--r   c                   t        t        | dd            }t        t              D ]  }t	        | |      st        | |      ||<     |j                         D ci c]  \  }}|j                  d      r|| }}}|S c c}}w )z,Produce a comparable snapshot of this Option__dict__r   _)dictgetattrr   rV   hasattritems
startswith)r   dkvs       r   snapshotzOptions.snapshot  sz     z2./&w/AtQtQ'! 0  ggiAidaq||C/@QTiA Bs   A>4A>c                P    dt        j                  | j                                dS )NzOptions())pprintpformatr   r   s    r   __repr__zOptions.__repr__  s!    &..9:!<<r   c                  t        | j                        }t        | j                        }t        t        j                               }||z  |z
  }|r# |ddj                  t        |                    | xj                  |D ch c]  }t        |    c}z  c_        | xj                  |D ch c]  }t        |    c}z  c_        | xj                  | j                  z  c_        y c c}w c c}w )NzInvalid error code(s): z, )	rx   r.   r)   r   keysjoinsortedr3   r0   )r   error_callbackdisabled_codesenabled_codesvalid_error_codesinvalid_codescodes          r   process_error_codeszOptions.process_error_codes  s    T445D223 0 0 23&7;LL4TYYvm?T5U4VWX!!N%SNDk$&7N%SS!  =$Q=4[%6=$QQ  	!!T%=%==!	 &T$Qs   C)/C.c                   | j                   D ]1  }|t        t        z  vr |d|        |t        v s& |d| d       3 y )NzUnknown incomplete feature: z	Warning: z is already enabled by default)r   rS   rT   )r   r   warning_callbackfeatures       r   process_incomplete_featuresz#Options.process_incomplete_features  sN     55G14EEE!=gYGH++ 9WI5S!TU	 6r   c                l   t               }t        || d       |j                         D ]  \  }}t        |||        |j	                  d      rd|_        | j                  j                         |_        | j                  j                         |_        |j                  D ]A  }t        |   }|j                  j                  |       |j                  j                  |       C |j                  D ]A  }t        |   }|j                  j                  |       |j                  j                  |       C |S )NT)	copy_dictr;   )rV   r   r   setattrgetrl   r3   copyr0   r.   r   adddiscardr)   )r   changesnew_optionskeyvaluecode_strr   s          r   apply_changeszOptions.apply_changes  s   i[$$?!--/JCKe, *;;/0 =AK9 ,0+D+D+I+I+K(*.*B*B*G*G*I'#66Hx(D,,006++33D9 7 $55Hx(D++//5,,44T: 6
 r   c                    t               j                  | j                               j                         t               j                  |      j                         k(  S )a  Compare options in a way that is stable for snapshot() -> apply_changes() roundtrip.

        This is needed because apply_changes() has non-trivial effects for some flags, so
        Options().apply_changes(options.snapshot()) may result in a (slightly) different object.
        )rV   r   r   )r   other_snapshots     r   compare_stablezOptions.compare_stable  sG     I##DMMO4==?y&&~6??AB	
r   c                   i | _         | j                  j                         D cg c]  }d|d d v s| }}| j                  j                         D cg c]  }d|d d vs| }}t        d |D              }|D cg c]  }|j	                  d      r| }}|D ].  }| j
                  j                  || j                  |      f       0 t        |      | _	        ||z   D ]>  }| j                  |      }|j                  | j                  |         | j                   |<   @ | j                  j                  |       y c c}w c c}w c c}w )N*c              3  D   K   | ]  }|j                  d       s|  yw).*N)endswith).0r   s     r   	<genexpr>z1Options.build_per_module_cache.<locals>.<genexpr>  s     JoD9I1os     r   )r\   r   r   r   r   r   appendcompile_globrx   r   clone_for_moduler   update)	r   r   unstructured_glob_keysstructured_keys	wildcardsconcreteglobr   optionss	            r   build_per_module_cachezOptions.build_per_module_cache  sO   !#" .2-D-D-I-I-K!]-KsVWX[Y[V\}!-K!]&*&=&=&B&B&DZ&DSTUXVXSYHY1&DZJoJJ	.G!ajj6FAG*D%%tT->->t-D&EF + ""89x'C ++C0G*1*?*?@W@WX[@\*]D""3' ( 	""?3/ "^ZGs"   D>D>E E<EEc                   | j                   | j                          | j                   J || j                   v r*| j                  j                  |       | j                   |   S | }|j	                  d      }t        t        |      dd      D ]T  }dj                  |d| dgz         }|| j                   v s*| j                  j                  |       | j                   |   } n |j                  d      s_| j                  D ]P  \  }}|j                  |      s| j                  j                  |       |j                  | j                  |         }R |S )zCreate an Options object that incorporates per-module options.

        NOTE: Once this method is called all Options objects should be
        considered read-only, else the caching might be incorrect.
        N.r   r   r   r   )r\   r  r   r   splitrangelenr   r   r   matchr   r   )r   moduler  pathir   patterns          r   r   zOptions.clone_for_module  sC    !!)'')%%111 T+++''/))&11 ||C s4y!R(A((48se+,Cd,,,##++C0005 ) t$ $ 2 2W==(''//4%33D4K4KC4PQG !3 r   c                    |j                  d      }|d   dk7  rt        j                  |d         nd}|dd  D ]$  }||dk7  rt        j                  d|z         ndz  }& t        j                  |dz         S )Nr	  r   r   r   r   z(\..*)?z\Z)r
  reescapecompile)r   spartsexprparts        r   r   zOptions.compile_glob;  sq     &+Ah#oryyq"4!"IDTS[BIIcDj)jHD zz$,''r   c                    i }t         D ]:  }t        | |      }|dv r#t        |D cg c]  }|j                   c}      }|||<   < |S c c}w )N)r3   r0   )rH   r   r   r   )r   resultoptvalr   s        r   select_options_affecting_cachez&Options.select_options_affecting_cacheE  sX    $&*C$$CEEC8CDdiiC89F3K	 +
  9s   A
N)returnNone)r  bool)r  dict[str, object])r  str)r   Callable[[str], Any]r  r   )r   r$  r   r$  r  r   )r   r"  r  rV   )r   r"  r  r!  )r  r#  r  rV   )r  r#  r  zPattern[str])r  zMapping[str, object])r   r   r   __doc__r   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r   r   rV   rV   S   sk    'q'f	

.	=>"V!5VI]V	V6	
)4V)V(r   rV   )!
__future__r   r   r  r^   rc   typingr   r   r   r   r   mypyr	   mypy.errorcodesr
   r   	mypy.utilr   r   r   rA   r   rH   rJ   rL   rN   rP   rR   	frozensetrS   rT   rV   r   r   r   <module>r,     s    "  	 
  9 9  2 A ' E 'T  O
"  
 ' & 0 U 0. E .+ % +&(;=M'NO U O$nf>P%QR 5 Ry yr   