
    ϑi              	         S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	J
r
   " S S\\\\\   4      5      r\	" SS5      r\	" S	S 5      r\" S
S5      r\" SS5      r\
" SS5      r\" SS5      r\" SS5      r\" SS5      r\" SS5      r\" SS5      r\" SS5      r\" S0 5      r\" SS5      r\" SS5      r\
" SS5      r\" SS5      r\" SS5      r\" SS5      r \
" SS5      r!\" SS5      r"S  r#\#" 5         \S+S! j5       r$\S,S" j5       r%\S+S# j5       r&\S-S$ j5       r'\S+S% j5       r(\S+S& j5       r)\S+S' j5       r*\S+S( j5       r+\S-S) j5       r,\S+S* j5       r-g).    )annotationsN)contextmanager)BooleanEnvironmentVariableEnvironmentVariableEnvironmentVariableGuardIntegerEnvironmentVariableStringEnvironmentVariablec                  l   ^  \ rS rSrSrS	U 4S jjrS
S jrSS jr\SS j5       r	\SS j5       r
SrU =r$ )PEP508LikeEnvironmentVariable   a  
Environment variable parser following PEP 508 extras specification syntax.
https://peps.python.org/pep-0508/

Processes strings using PEP 508-style bracket notation for optional components:
"feat1[opt1,opt2], feat2[opt3,opt4]" -> {'feat1': ['opt1', 'opt2'], 'feat2': ['opt3', 'opt4']}
c                \   > [         TU ]  X5        [        U[        5      (       d   S5       eg )Nzdefault must be a dict)super__init__
isinstancedict)selfnamedefault	__class__s      Y/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/jit/sot/utils/envs.pyr   &PEP508LikeEnvironmentVariable.__init__&   s)    ''4((B*BB(    c                    [         R                  " U R                  5      nUb  US:X  a  U R                  $ U R	                  U5      n0 nU H#  nUR                  U R                  U5      5        M%     U$ )N )osgetenvr   r   split_by_unbracketed_commasupdateparse_parameterized_key)r   env_varitemsretitems        r   parse_from_string/PEP508LikeEnvironmentVariable.parse_from_string*   sd    ))DII&?gm<<009DJJt33D9: 
r   c                   [        U[        5      (       d   S5       e[        S UR                  5        5       5      (       d   S5       e[        S UR	                  5        5       5      (       d   S5       e/ nUR                  5        H?  u  p4UR                  U [        U5      (       a  SSR                  U5       S3OS	-   5        MA     SR                  U5      $ )
NzThe input must be a dictc              3  B   #    U  H  n[        U[        5      v   M     g 7fN)r   str.0xs     r   	<genexpr>BPEP508LikeEnvironmentVariable.convert_to_string.<locals>.<genexpr>6   s     <|!:a%%|   zKeys must be a stringc              3  B   #    U  H  n[        U[        5      v   M     g 7fr(   )r   listr*   s     r   r-   r.   9   s     ?1:a&&r/   zValues must be a list[,]r   )	r   r   allkeysvaluesr!   appendlenjoin)r   valueenv_listkvs        r   convert_to_string/PEP508LikeEnvironmentVariable.convert_to_string4   s    %&&B(BB&<uzz|<<< 	
#	
< ???? 	
#	
? KKMDAOOqcCFF#((1+a&8KL " xx!!r   c                <   Sn/ nSn[        U 5       H\  u  pEUS:X  a  US-  nOUS:X  a  [        SUS-
  5      nUS:X  d  M.  US:X  d  M6  UR                  XU R                  5       5        US-   nM^     XS R                  5       =n(       a  UR                  U5        U$ )z?Split string by commas that are not enclosed in square bracketsr   r2      r4   r3   N)	enumeratemaxr8   strip)	input_strbracket_depthsplit_parts_start_currentchar	remainings          r   r   9PEP508LikeEnvironmentVariable.split_by_unbracketed_commasC   s     '	2NHs{" #}q(! s{}1""9H#=#C#C#EF!A 3 "'*002292y)r   c                4   U R                  S5      nU R                  S5      nUS:X  d  US:X  a  U / 0$ U SU R                  5       nXS-   U nUR                  S5       Vs/ s H)  oUR                  5       (       d  M  UR                  5       PM+     nnX60$ s  snf )z8Parse key with parameters in brackets into a dictionary.r2   r4   NrB   r3   )findrfindrE   split)rF   start_bracketend_bracketparameter_keyparameters_strr>   parameter_valuess          r   r   5PEP508LikeEnvironmentVariable.parse_parameterized_key]   s     "s+ooc*B+"3r?"!.=1779 #1#4{C-33C8
8!GGIIAGGI8 	 
 00	
s    B<B )r   r)   r   dict[str, list[str]])returnrZ   )r;   rZ   r[   r)   )rF   r)   r[   z	list[str])rF   r)   r[   rZ   )__name__
__module____qualname____firstlineno____doc__r   r$   r?   staticmethodr   r   __static_attributes____classcell__)r   s   @r   r   r      s@    C"  2 1 1r   r   MIN_GRAPH_SIZE
   SOT_LOG_LEVELSTRICT_MODEFSOT_WITH_CONTROL_FLOWT
SOT_EXPORTr   SOT_ALLOW_DYNAMIC_SHAPESOT_ENABLE_FASTER_GUARDSOT_ENABLE_STRICT_GUARD_CHECKSOT_ENABLE_GUARD_TREEENABLE_SOT_STEP_PROFILER%SOT_BREAK_GRAPH_ON_GET_SYMBOLIC_VALUESOT_COLLECT_INFOSOT_SERIALIZE_INFOSOT_CE_DEBUG_MODESOT_FORCE_FALLBACK_SIR_IDSENV_SOT_TRACE_NUMPYSOT_UNSAFE_CACHE_FASTPATHSOT_ENABLE_0_SIZE_FALLBACKSOT_SPECIALIZED_DIM_NUMBERS0SOT_ENABLE_COMPILE_TIME_LIMITc                     [         R                  5       (       d  g [        R                  5       n U R                  S/ 5        U R                  S/ 5        [        R	                  U 5        [
        R	                  S5        g )Nbreakgraph_reasonsubgraph_infoT)ENV_SOT_CE_DEBUG_MODEgetENV_SOT_COLLECT_INFO
setdefaultsetENV_SOT_SERIALIZE_INFO)collected_info_items    r   update_ce_flagsr      sd     $$&& 1E0H0H0J""#6;""?B701t$r   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_STRICT_MODEr;   s    r   strict_mode_guardr      s     	!/5	9 
:	9	9   2!	2
/2c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_MIN_GRAPH_SIZEr   s    r   min_graph_size_guardr      s     	!"4e	< 
=	<	<r   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_SOT_WITH_CONTROL_FLOWr   s    r   with_control_flow_guardr           	!";U	C 
D	C	Cr   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_SOT_EXPORTr   s    r   export_guardr      s     	!.%	8 
9	8	8r   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_SOT_ALLOW_DYNAMIC_SHAPEr   s    r   allow_dynamic_shape_guardr           	!"=u	E 
F	E	Er   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_SOT_ENABLE_FASTER_GUARDr   s    r   faster_guard_guardr      r   r   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_SOT_ENABLE_GUARD_TREEr   s    r   guard_tree_guardr      r   r   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_ENABLE_SOT_STEP_PROFILERr   s    r   sot_step_profiler_guardr      s     	!">	F 
G	F	Fr   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_SOT_SPECIALIZED_DIM_NUMBERSr   s    r   specialized_dim_numbers_guardr      s     	!"A5	I 
J	I	Ir   c              #  h   #    [        [        U 5         S v   S S S 5        g ! , (       d  f       g = f7fr(   )r   ENV_SOT_ENABLE_0_SIZE_FALLBACKr   s    r   enable_0_size_fallback_guardr      s     	!"@%	H 
I	H	Hr   )r;   bool)r;   int)r;   r)   ).
__future__r   r   
contextlibr   paddle.utils.environmentsr   r   r   r   r	   r   r)   r1   r   r   ENV_SOT_LOG_LEVELr   r   r   r   r   !ENV_SOT_ENABLE_STRICT_GUARD_CHECKr   r   )ENV_SOT_BREAK_GRAPH_ON_GET_SYMBOLIC_VALUEr   r   r}   ENV_SOT_FORCE_FALLBACK_SIR_IDSrt   ENV_SOT_UNSAFE_CACHE_FASTPATHr   r   !ENV_SOT_ENABLE_COMPILE_TIME_LIMITr   r   r   r   r   r   r   r   r   r   r   rY   r   r   <module>r      sY   # 	 % R1$7S$s)^8L$M R1j 00@"E .B ,]EB6T  +<<8 
 9	  %?#	% ! 7	   :   -G+U- ) 55GL 34H%P 23FN !: ""  11FM  :!  "< $"  #<!3#  %?#T% !

%    
  
  
  
  
  
  
  
  
  r   