
    *eX                    R   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<    eef          Zd
ed<    eeef          Zd
ed<    G d d          ZdS )    )annotationsN)AnyCallableFinalMappingPattern)defaults)	ErrorCodeerror_codes)get_class_descriptorsreplace_object_statec                  :    e Zd ZU dZded<   dZded<   dZded<   dS )		BuildTyper   r   STANDARD   MODULE   PROGRAM_TEXTN)__name__
__module____qualname__r   __annotations__r   r        ,lib/python3.11/site-packages/mypy/options.pyr   r      sE         HF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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INCOMPLETE_FEATURESCOMPLETE_FEATURESc                      e Zd ZdZddZddZddZddZe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S )$OptionszOptions collected from flags.returnNonec                   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| _        g | _        d| _        d| _        d| _        d| _        d| _        d| _        g | _         d| _!        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        g | _9        g | _:        g | _;        ty                      | _=        g | _>        ty                      | _?        d| _@        d | _A        d | _B        d | _C        d | _D        d | _E        d | _F        d| _G        d| _H        t          jJ        | _K        d| _L        d| _M        d| _N        d| _O        d| _P        d| _Q        d| _R        d| _S        d| _T        d| _U        d| _V        d| _W        g | _X        i | _Y        g | _Z        ty                      | _[        d| _\        d| _]        d| _^        d| __        d| _`        d| _a        d| _b        g | _c        d | _d        d | _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        g | _t        i | _u        d| _v        d| _w        d| _x        d | _y        d| _z        d| _{        d| _|        t          j}        | _~        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d S )	Nr   MACHDEP
emscriptenFnormalTglobalr   )_per_module_cacher   r   
build_typesysversion_infopython_version
executablepython_executable	sysconfigget_config_varrC   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>   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&   r2   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_docstringsrB   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shadow_fileshow_column_numbersshow_error_endhide_error_codesshow_error_code_linkspretty
dump_graph	dump_depslogical_depsr1   rA   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_thresholdrD   new_type_inferenceexport_ref_inforE   rF   force_uppercase_builtinsforce_union_syntax)selfrU   s     r   __init__zOptions.__init__S   s   <@ $,/2/?/C .1^ *955l""#DMMLDM04!/3 37$$&+-(-% %&+#16.& ).%
 #' ',#"$ &+"',$!&&+#%*" ',# 13" &+" ).% #( ,1( ).% %*! %*! #  % $)  $)  #  $ #( !! "' "& &+" #(  % #( " !& ') (* .047EE! -/3655  $)  (,
 ,0 (,
 +/ *. &*!)  !+! "'',$(-%"'&+#  % 

 ! # #( #% AC=?(+ # %$$)! %46&(,/3  ',# &+" 48). $) %%*"!#( 
! (*57"'"' >B(-"  % &.%C""'"'  %+0(,1)(-%"'r   boolc                ,    | j         dk    r| j         S dS )N)   	   F)r]   r   r   s    r   use_lowercase_nameszOptions.use_lowercase_names{  s!    &((444ur   c                ,    | j         dk    r| j         S dS )N)r   
   F)r]   r   r   s    r   use_or_syntaxzOptions.use_or_syntax  s!    '))...ur   c                    | j         dk    S )N)r      )r]   r   s    r   use_star_unpackzOptions.use_star_unpack  s    "g--r   c                    dS )NTr   r   s    r   new_semantic_analyzerzOptions.new_semantic_analyzer  s    tr   dict[str, object]c                    t          t          | dd                    }t          t                    D ]+}t	          | |          r|dk    rt          | |          ||<   ,d |                                D             }|S )z,Produce a comparable snapshot of this Option__dict__r   r   c                D    i | ]\  }}|                     d           ||S )_)
startswith).0kvs      r   
<dictcomp>z$Options.snapshot.<locals>.<dictcomp>  s/    AAAdaq||C/@/@AQAAAr   )dictgetattrr   rQ   hasattritems)r   dr   s      r   snapshotzOptions.snapshot  s     z2..//&w// 	( 	(AtQ (A)@$@$@tQ''!AAaggiiAAAr   strc                V    dt          j        |                                            dS )NzOptions())pprintpformatr   r   s    r   __repr__zOptions.__repr__  s%    <&.99<<<<r   changesc                x   t                      }t          || d           |                                D ]\  }}t          |||           |                    d          rd|_        | j                                        |_        | j                                        |_        |j	        D ]C}t          |         }|j                            |           |j                            |           D|j        D ]C}t          |         }|j                            |           |j                            |           D|S )NT)	copy_dictr:   )rQ   r   r   setattrgetri   r3   copyr0   r.   r   adddiscardr)   )r   r   new_optionskeyvaluecode_strcodes          r   apply_changeszOptions.apply_changes  sA   ii[$$????!--// 	- 	-JCKe,,,,;;/00 	A =AK9 ,0+D+I+I+K+K(*.*B*G*G*I*I'#6 	: 	:Hx(D,00666+33D9999#5 	; 	;Hx(D+//555,44T::::r   other_snapshotc                    t                                          |                                                                           t                                          |                                          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.
        )rQ   r   r   )r   r   s     r   compare_stablezOptions.compare_stable  sY     II##DMMOO44==??yy&&~66??AAB	
r   c                8   i | _         d | j                                        D             }d | j                                        D             }t          d |D                       }d |D             }|D ]1}| j                            ||                     |          f           2t          |          | _        ||z   D ]?}| 	                    |          }|
                    | j        |                   | j         |<   @| j                            |           d S )Nc                *    g | ]}d |dd         v |S *Nr   r   r   s     r   
<listcomp>z2Options.build_per_module_cache.<locals>.<listcomp>  s*    !]!]!]sVWX[Y[X[V\}}!}}}r   c                *    g | ]}d |dd         v|S r   r   r   s     r   r   z2Options.build_per_module_cache.<locals>.<listcomp>  s/    ZZZSTUXVXUXSYHYHY1HYHYHYr   c              3  D   K   | ]}|                     d           |V  dS ).*Nendswithr   s     r   	<genexpr>z1Options.build_per_module_cache.<locals>.<genexpr>  s3      JJD9I9IJ1JJJJJJr   c                <    g | ]}|                     d           |S )r   r   r   s     r   r   z2Options.build_per_module_cache.<locals>.<listcomp>  s)    GGG!ajj6F6FGAGGGr   )rY   r   keyssortedr   appendcompile_globrt   r   clone_for_moduler   update)r   unstructured_glob_keysstructured_keys	wildcardsconcreteglobr   optionss           r   build_per_module_cachezOptions.build_per_module_cache  sC   !#" "^!]T-D-I-I-K-K!]!]!]ZZd&=&B&B&D&DZZZJJoJJJJJ	GGGGG* 	G 	GD%%tT->->t-D-D&EFFFF ""899x' 	^ 	^C ++C00G*1*?*?@WX[@\*]*]D"3'' 	""?33333r   modulec                   | j         |                                  | j         J || j         v r'| j                            |           | j         |         S | }|                    d          }t          t          |          dd          D ]U}d                    |d|         dgz             }|| j         v r)| j                            |           | j         |         } nV|                    d          s\| j	        D ]T\  }}|
                    |          r:| j                            |           |                    | j        |                   }U|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   )rY   r  r   r   splitrangelenjoinr   r   matchr   r   )r   r  r  pathir   patterns          r   r   zOptions.clone_for_module  sv    !)'')))%111 T+++''///)&11 ||C  s4yy!R(( 	 	A((48se+,,Cd,,,#++C00005 - t$$ 	R $ 2 R RW==(( R'//444%33D4KC4PQQG r   sPattern[str]c                   |                     d          }|d         dk    rt          j        |d                   nd}|dd          D ]$}||dk    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   r  partsexprparts        r   r   zOptions.compile_glob  s     &+Ah#ooryq"""4!""I 	I 	IDTS[[BIcDj)))jHDDz$,'''r   Mapping[str, object]c                    i }t           D ]4}t          | |          }|dv rt          d |D                       }|||<   5|S )N)r3   r0   c                    g | ]	}|j         
S r   )r   )r   r   s     r   r   z:Options.select_options_affecting_cache.<locals>.<listcomp>&  s    888Ddi888r   )rG   r   r   )r   resultoptvals       r   select_options_affecting_cachez&Options.select_options_affecting_cache!  s]    $&* 	 	C$$$CEEE88C88899F3KKr   N)rR   rS   )rR   r   )rR   r   )rR   r   )r   r   rR   rQ   )r   r   rR   r   )r  r   rR   rQ   )r  r   rR   r  )rR   r  )r   r   r   __doc__r   r   r   r   propertyr   r   r   r   r   r  r   r   r  r   r   r   rQ   rQ   P   s1       ''f( f( f( f(P	   
   
. . . .    X	 	 	 	= = = =   6	
 	
 	
 	
)4 )4 )4 )4V) ) ) )V( ( ( (     r   rQ   )
__future__r   r   r  r[   r`   typingr   r   r   r   r   mypyr	   mypy.errorcodesr
   r   	mypy.utilr   r   r   r@   r   rG   rI   rK   rM   	frozensetrN   rO   rQ   r   r   r   <module>r'     s   " " " " " " "  				 



     9 9 9 9 9 9 9 9 9 9 9 9 9 9       2 2 2 2 2 2 2 2 A A A A A A A A       & & &  & & & &R    O
"  
 
 
 
 ' & & & &    0  0 0 0 0&Y(;'=>>  > > > >$9nf%=>>  > > > >X X X X X X X X X Xr   