o
    پi]                     @   s  d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	 eddde
de	fd	d
ZG dd dZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd dZe Zde_dedefddZded efd!d"Zd#d$ Ze  ed%d& ed'd& ed(d) ed*d+ ed,d- ed.d/ ed0d1 d dlZd2d3 Zd4d5 Zd6d7 Zd8d9 Ze d:kre  dS dS );    N)	ExitStackcontextmanager)IntEnum)AnyF)allow_sglangr   env_varsc                 k   s    | s|D ]}| ds| drtdqdd |D }z<| D ]\}}|du r2tj|d q"t|tj|< q"dV  W | D ]\}}|du rRtj|d qB|tj|< qBdS | D ]\}}|du rntj|d q^|tj|< q^w )u%  Temporarily set environment variables, restoring originals on exit.

    By default, SGLANG_*/SGL_* keys are rejected — use ``Envs`` descriptors
    for those.  Pass ``allow_sglang=True`` only for special env vars that
    intentionally bypass ``environ.py`` (e.g. ``SGLANG_DUMPER_*``).
    SGLANG_SGL_z3temp_set_env should not be used for sglang env varsc                 S   s   i | ]	}|t j|qS  )osenvironget).0keyr
   r
   F/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/environ.py
<dictcomp>   s    z temp_set_env.<locals>.<dictcomp>N)
startswith
ValueErroritemsr   r   popstr)r   r   r   backupvaluer
   r
   r   temp_set_env	   s,   r   c                   @   s   e Zd ZdZdefddZdd Zdedefd	d
ZdefddZ	dd Z
defddZedefddZdd Zdd Zdd ZdS )EnvFieldTdefaultc                 C   s   || _ d| _d S NF)r   _set_to_none)selfr   r
   r
   r   __init__)   s   
zEnvField.__init__c                 C   s   t jsJ d|| _d S )Nz&Usage like `a = envs.A` is not allowed)r   _allow_set_namename)r   ownerr!   r
   r
   r   __set_name__/   s   
zEnvField.__set_name__r   returnc                 C   s   t  N)NotImplementedErrorr   r   r
   r
   r   parse3   s   zEnvField.parsec                 C   s   t | j}| jr|td ksJ d S |d u r| jS z| |W S  tyF } zt	d| j d| d| j d | jW  Y d }~S d }~ww )NzInvalid value for z: z, using default "")
r   getenvr!   r   r   r   r(   r   warningswarn)r   r   er
   r
   r   r   6   s   zEnvField.getc                 C   s   | j tjv S r%   )r!   r   r   r   r
   r
   r   is_setJ   s   zEnvField.is_setc                 C   s   |d u | _ t|tj| j< d S r%   )r   r   r   r   r!   r'   r
   r
   r   setM   s   
zEnvField.setc                 c   s^    | j tjv }tj| j }| j}| | d V  |r"|tj| j < ntj| j d  || _d S r%   )r!   r   r   r   r   r0   r   )r   r   backup_presentbackup_valuebackup_set_to_noner
   r
   r   overrideQ   s   

zEnvField.overridec                 C   s   t j| jd  d| _d S r   )r   r   r   r!   r   r.   r
   r
   r   clear^   s   
zEnvField.clearc                 C      t dN=Please use `envs.YOUR_FLAG.get()` instead of `envs.YOUR_FLAG`RuntimeErrorr.   r
   r
   r   __bool__b      zEnvField.__bool__c                 C   r6   r7   r9   r.   r
   r
   r   __len__g   r<   zEnvField.__len__N)__name__
__module____qualname__r    r   r   r#   r   r(   r   r/   r0   r   r4   r5   r;   r=   r
   r
   r
   r   r   &   s    r   c                   @   s&   e Zd Zdedeedf fddZdS )EnvTupler   r$   .c                 C   s   t dd |dD S )Nc                 s   s     | ]}|  r|  V  qd S r%   )strip)r   sr
   r
   r   	<genexpr>o   s    z!EnvTuple.parse.<locals>.<genexpr>,)tuplesplitr'   r
   r
   r   r(   n   s   zEnvTuple.parseN)r>   r?   r@   r   rF   r(   r
   r
   r
   r   rA   m   s    rA   c                   @   s   e Zd ZdedefddZdS )EnvStrr   r$   c                 C   s   |S r%   r
   r'   r
   r
   r   r(   s   s   zEnvStr.parseN)r>   r?   r@   r   r(   r
   r
   r
   r   rH   r       rH   c                   @      e Zd ZdedefddZdS )EnvBoolr   r$   c                 C   s0   |  }|dv r
dS |dv rdS td| d)N)true1yesyT)false0nonFr)   z" is not a valid boolean value)lowerr   r'   r
   r
   r   r(   x   s   zEnvBool.parseN)r>   r?   r@   r   boolr(   r
   r
   r
   r   rK   w   rI   rK   c                   @   rJ   )EnvIntr   r$   c                 C   *   zt |W S  ty   td| dw )Nr)   z" is not a valid integer value)intr   r'   r
   r
   r   r(      
   
zEnvInt.parseN)r>   r?   r@   r   rX   r(   r
   r
   r
   r   rV      rI   rV   c                   @   rJ   )EnvFloatr   r$   c                 C   rW   )Nr)   z" is not a valid float value)floatr   r'   r
   r
   r   r(      rY   zEnvFloat.parseN)r>   r?   r@   r   r[   r(   r
   r
   r
   r   rZ      rI   rZ   c                   @   s   e Zd ZdZdZdZdZdS )ToolStrictLevelz
    Defines the strictness levels for tool call parsing and validation.

    OFF: No strict validation
    FUNCTION: Enables structural tag constraints for all tools
    PARAMETER: Enforces strict parameter validation for all tools
    r         N)r>   r?   r@   __doc__OFFFUNCTION	PARAMETERr
   r
   r
   r   r\      s
    r\   c                   @   s  e Zd ZedZee ZedZedZ	edZ
edZedZee ZedZedZedZedZedZedZedZedZedZedZedZedZed	Zed	Zed	Zed	Z ed	Z!edZ"edZ#edZ$ed
Z%ed
Z&edZ'edZ(edZ)edZ*edZ+edZ,edZ-edZ.edZ/edZ0edZ1edZ2ed
Z3edZ4edZ5edZ6ed	Z7ed
Z8edZ9edZ:edZ;edZ<edZ=edZ>edZ?edZ@edZAedZBedZCedZDedZEedZFedZGedZHedZIedZJedZKedZLedZMedZNedZOedZPedZQedZRedZSedZTedZUedZVedZWed
ZXedZYedZZedZ[edZ\edZ]edZ^edZ_edZ`edZaedZbedZcedZdedZeed Zfed!Zged"Zhed#ZiedZjed$ZkedZledZmedZnedZoedZpedZqedZredZsedZtedZuedZvedZwedZxedZyedZzedZ{edZ|edZ}ed
Z~edZedZed%ZedZedZedZedZedZedZedZedZed	ZedZedZed
Zed
ZedZedZedZeejd&ZedZedZed'ZedZed(Zed)ZedZed
Zed
Zed
ZedZedZedZedZedZedZedZedZedZedZedZedZed
ZedZedZedZedZedZedZed*ZedZed+ZedZed+Zed(ZedZedZed
Zed,Zed-ZedZed	ZedZedZedZedZedZed.ZedZed/ZedZedZedZedZed*Zeej΃ZedZedZed
ZedZedZedZed
ZedZedZedZedZedZedZed0Zed0ZdS )1EnvsF g      N@z/tmp/sglang_cuda_coredumpsNg{Gzt?i'  r   Tmultinomialz/tmpi  @      l        gffffff?gQ?iX     i   i  r]      i,  g      @r^   UCXg      ?   mooncake	localhostP2PHANDSHAKE4gbtcpi+#  i   z~/.cache/deep_gemmi           i      d   i   g?bfloat16g     f@)r>   r?   r@   rK   SGLANG_USE_MODELSCOPErA   rF   SGLANG_DISABLED_MODEL_ARCHSSGLANG_LOG_GCSGLANG_LOG_FORWARD_ITERSSGLANG_LOG_MSSGLANG_DISABLE_REQUEST_LOGGINGrV   SGLANG_LOG_REQUEST_EXCEEDED_MSSGLANG_LOG_REQUEST_HEADERSrH   "SGLANG_LOG_SCHEDULER_STATUS_TARGETrZ   $SGLANG_LOG_SCHEDULER_STATUS_INTERVALSGLANG_IS_IN_CISGLANG_IS_IN_CI_AMDSGLANG_CUDA_COREDUMPSGLANG_CUDA_COREDUMP_DIRSGLANG_TEST_MAX_RETRYSGLANG_GRAMMAR_POLL_INTERVAL"SGLANG_GRAMMAR_MAX_POLL_ITERATIONS"SGLANG_DISABLE_OUTLINES_DISK_CACHESGLANG_USE_CUTEDSL_GDN_DECODESGLANG_DETECT_SLOW_RANKSGLANG_TEST_STUCK_DETOKENIZERSGLANG_TEST_STUCK_DP_CONTROLLER SGLANG_TEST_STUCK_SCHEDULER_INITSGLANG_TEST_STUCK_TOKENIZER&SGLANG_TEST_CRASH_AFTER_STREAM_OUTPUTSIS_BLACKWELLIS_H200SGLANG_SET_CPU_AFFINITYSGLANG_PROFILE_WITH_STACKSGLANG_PROFILE_RECORD_SHAPESSGLANG_PROFILE_V2SGLANG_RECORD_STEP_TIMESGLANG_FORCE_SHUTDOWNSGLANG_DEBUG_MEMORY_POOLSGLANG_TEST_REQUEST_TIME_STATS(SGLANG_DISABLE_TP_MEMORY_INBALANCE_CHECKSGLANG_SIMULATE_ACC_LENSGLANG_SIMULATE_ACC_METHODSGLANG_TORCH_PROFILER_DIR*SGLANG_OTLP_EXPORTER_SCHEDULE_DELAY_MILLIS*SGLANG_OTLP_EXPORTER_MAX_EXPORT_BATCH_SIZESGLANG_NATIVE_MOVE_KV_CACHE'SGLANG_ENABLE_TP_MEMORY_INBALANCE_CHECKSGLANG_TEST_RETRACTSGLANG_TEST_RETRACT_INTERVAL!SGLANG_TEST_RETRACT_NO_PREFILL_BS*SGLANG_ENABLE_STRICT_MEM_CHECK_DURING_BUSY*SGLANG_ENABLE_STRICT_MEM_CHECK_DURING_IDLESGLANG_INIT_NEW_TOKEN_RATIO!SGLANG_MIN_NEW_TOKEN_RATIO_FACTOR"SGLANG_NEW_TOKEN_RATIO_DECAY_STEPSSGLANG_RETRACT_DECODE_STEPS%SGLANG_CLIP_MAX_NEW_TOKENS_ESTIMATION,SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_DEFAULT+SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_DECODE2SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_TARGET_VERIFY)SGLANG_SCHEDULER_RECV_SKIPPER_WEIGHT_NONE&SGLANG_DISAGGREGATION_THREAD_POOL_SIZE SGLANG_DISAGGREGATION_QUEUE_SIZE'SGLANG_DISAGGREGATION_BOOTSTRAP_TIMEOUT(SGLANG_DISAGGREGATION_HEARTBEAT_INTERVAL+SGLANG_DISAGGREGATION_HEARTBEAT_MAX_FAILURE%SGLANG_DISAGGREGATION_WAITING_TIMEOUT"SGLANG_DISAGGREGATION_NIXL_BACKENDSGLANG_EMPTY_CACHE_INTERVAL*SGLANG_DISABLE_CONSECUTIVE_PREFILL_OVERLAP"SGLANG_SCHEDULER_MAX_RECV_PER_POLL"SGLANG_EXPERIMENTAL_CPP_RADIX_TREE%SGLANG_DYNAMIC_CHUNKING_SMOOTH_FACTOR SGLANG_SCHEDULER_SKIP_ALL_GATHER&SGLANG_SCHEDULER_DECREASE_PREFILL_IDLE'SGLANG_PREFILL_DELAYER_MAX_DELAY_PASSES0SGLANG_PREFILL_DELAYER_TOKEN_USAGE_LOW_WATERMARK$SGLANG_DATA_PARALLEL_BUDGET_INTERVALSGLANG_REQ_WAITING_TIMEOUT6SGLANG_NCCL_ALL_GATHER_IN_OVERLAP_SCHEDULER_SYNC_BATCHSGLANG_REQ_RUNNING_TIMEOUTSGLANG_TEST_PD_DISAGG_BACKENDSGLANG_TEST_PD_DISAGG_DEVICES$SGLANG_USE_MESSAGE_QUEUE_BROADCASTER%SGLANG_ONE_VISIBLE_DEVICE_PER_PROCESS'SGLANG_DISTRIBUTED_INIT_METHOD_OVERRIDESGLANG_FORWARD_UNKNOWN_TOOLS SGLANG_HICACHE_HF3FS_CONFIG_PATH'SGLANG_HICACHE_FILE_BACKEND_STORAGE_DIR'SGLANG_HICACHE_NIXL_BACKEND_STORAGE_DIRSGLANG_MOONCAKE_CUSTOM_MEM_POOL$ENABLE_ASCEND_TRANSFER_WITH_MOONCAKEASCEND_NPU_PHY_IDSGLANG_MOONCAKE_SEND_AUX_TCP#SGLANG_HICACHE_MOONCAKE_CONFIG_PATHMOONCAKE_MASTERMOONCAKE_CLIENTMOONCAKE_LOCAL_HOSTNAMEMOONCAKE_TE_META_DATA_SERVERMOONCAKE_GLOBAL_SEGMENT_SIZEMOONCAKE_PROTOCOLMOONCAKE_DEVICEMOONCAKE_MASTER_METRICS_PORTMOONCAKE_CHECK_SERVERMOONCAKE_STANDALONE_STORAGESGLANG_USE_AITERSGLANG_ROCM_FUSED_DECODE_MLASGLANG_ROCM_DISABLE_LINEARQUANT$SGLANG_NPU_DISABLE_ACL_FORMAT_WEIGHTSGLANG_NPU_USE_MULTI_STREAMSGLANG_NPU_USE_MLAPO"SGLANG_NPU_FORWARD_NATIVE_GELUTANH(SGLANG_NPU_FORWARD_NATIVE_GEMMA_RMS_NORMSGLANG_INT4_WEIGHTSGLANG_CPU_QUANTIZATIONSGLANG_USE_DYNAMIC_MXFP4_LINEARSGLANG_FORCE_FP8_MARLINSGLANG_MOE_NVFP4_DISPATCH"SGLANG_NVFP4_CKPT_FP8_GEMM_IN_ATTN$SGLANG_PER_TOKEN_GROUP_QUANT_8BIT_V2SGLANG_NVFP4_CKPT_FP8_NEXTN_MOESGLANG_IS_FLASHINFER_AVAILABLE!SGLANG_ENABLE_FLASHINFER_FP8_GEMM"SGLANG_FLASHINFER_FP4_GEMM_BACKEND SGLANG_FLASHINFER_WORKSPACE_SIZE*SGLANG_TRITON_DECODE_ATTN_STATIC_KV_SPLITS%SGLANG_USE_CUSTOM_TRITON_KERNEL_CACHESGLANG_ENABLE_TORCH_COMPILE(SGLANG_EXPERT_LOCATION_UPDATER_LOG_INPUT%SGLANG_EXPERT_LOCATION_UPDATER_CANARY*SGLANG_EXPERT_LOCATION_UPDATER_LOG_METRICS#SGLANG_LOG_EXPERT_LOCATION_METADATA'SGLANG_EXPERT_DISTRIBUTION_RECORDER_DIR'SGLANG_EPLB_HEATMAP_COLLECTION_INTERVAL&SGLANG_ENABLE_EPLB_BALANCEDNESS_METRICSGLANG_TBO_DEBUGSGLANG_ENABLE_JIT_DEEPGEMMSGLANG_JIT_DEEPGEMM_PRECOMPILESGLANG_JIT_DEEPGEMM_FAST_WARMUP#SGLANG_JIT_DEEPGEMM_COMPILE_WORKERS#SGLANG_IN_DEEPGEMM_PRECOMPILE_STAGEr   path
expanduserSGLANG_DG_CACHE_DIRSGLANG_DG_USE_NVRTCSGLANG_USE_DEEPGEMM_BMM%SGLANG_CHUNKED_PREFIX_CACHE_THRESHOLDSGLANG_DEEPEP_BF16_DISPATCH.SGLANG_DEEPEP_NUM_MAX_DISPATCH_TOKENS_PER_RANK%SGLANG_DEEPEP_LL_COMBINE_SEND_NUM_SMS3SGLANG_BLACKWELL_OVERLAP_SHARED_EXPERTS_OUTSIDE_SBOSGLANG_NSA_FUSE_TOPK)SGLANG_NSA_ENABLE_MTP_PRECOMPUTE_METADATASGLANG_USE_FUSED_METADATA_COPY!SGLANG_VERIFY_FUSED_METADATA_COPYSGLANG_NSA_FORCE_MLA$SGLANG_SKIP_SGL_KERNEL_VERSION_CHECK USE_VLLM_CUTLASS_W8A8_FP8_KERNELUSE_TRITON_W8A8_FP8_KERNELSGLANG_RETURN_ORIGINAL_LOGPROB)SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LENSGLANG_MOE_PADDINGSGLANG_CUTLASS_MOEHF_HUB_DISABLE_XETDISABLE_OPENAPI_DOC"SGLANG_ENABLE_TORCH_INFERENCE_MODESGLANG_IS_FIRST_RANK_ON_NODE SGLANG_SUPPORT_CUTLASS_BLOCK_FP8SGLANG_SYNC_TOKEN_IDS_ACROSS_TP!SGLANG_ENABLE_COLOCATED_BATCH_GEN%SGLANG_ENABLE_DETERMINISTIC_INFERENCESGLANG_USE_1STAGE_ALLREDUCE)SGLANG_FLASHINFER_PREFILL_SPLIT_TILE_SIZE(SGLANG_FLASHINFER_DECODE_SPLIT_TILE_SIZE+SGLANG_TRITON_PREFILL_TRUNCATION_ALIGN_SIZE$SGLANG_TRITON_DECODE_SPLIT_TILE_SIZE#SGLANG_SPEC_EXPANSION_SAFETY_FACTORSGLANG_ROPE_CACHE_SAFETY_MARGINSGLANG_ROPE_CACHE_ALIGNSGLANG_ENABLE_SPEC_V2!SGLANG_ENABLE_OVERLAP_PLAN_STREAM&SGLANG_SPEC_ENABLE_STRICT_FILTER_CHECKSGLANG_VLM_CACHE_SIZE_MBSGLANG_IMAGE_MAX_PIXELSSGLANG_RESIZE_RESAMPLESGLANG_MM_BUFFER_SIZE_MBSGLANG_MM_PRECOMPUTE_HASHSGLANG_VIT_ENABLE_CUDA_GRAPHSGLANG_MM_SKIP_COMPUTE_HASHSGLANG_USE_CUDA_IPC_TRANSPORTSGLANG_MM_FEATURE_CACHE_MB,SGLANG_MM_ITEM_MEM_POOL_RECYCLE_INTERVAL_SECSGLANG_ENABLE_MM_SPLITTINGSGLANG_MAMBA_CONV_DTYPESGLANG_MAMBA_SSM_DTYPESGLANG_MEMORY_SAVER_CUDA_GRAPHSGLANG_EMBEDDINGS_SPARSE_HEAD$SGLANG_ENABLE_LOGITS_PROCESSER_CHUNK"SGLANG_LOGITS_PROCESSER_CHUNK_SIZEr\   r`   SGLANG_TOOL_STRICT_LEVEL SGLANG_NGRAM_FORCE_GREEDY_VERIFYSGLANG_WARMUP_TIMEOUT(SGLANG_ENABLE_HEALTH_ENDPOINT_GENERATIONSGLANG_EXTERNAL_MODEL_PACKAGESGLANG_EXTERNAL_MM_MODEL_ARCH$SGLANG_EXTERNAL_MM_PROCESSOR_PACKAGESGLANG_NUMA_BIND_V2"SGLANG_ENABLE_METRICS_DEVICE_TIMER"SGLANG_ENABLE_METRICS_DP_ATTENTIONSGLANG_PATCH_TOKENIZER!SGLANG_REQUEST_STATE_WAIT_TIMEOUT SGLANG_SYMM_MEM_PREALLOC_GB_SIZESGLANG_USE_AITER_FP8_PER_TOKENSGLANG_ENCODER_RECV_TIMEOUTSGLANG_ENCODER_SEND_TIMEOUTr
   r
   r
   r   rc      s   


rc   new_nameold_namec                 C   s:   |t jv rtd| d|  d t j| t j| < d S d S )NEnvironment variable z  will be deprecated, please use z insteadr   r   r+   r,   )rJ  rK  r
   r
   r   _print_deprecated_env  s   
rN  env_name
suggestionc                 C   s(   | t jv rtd|  d|  dS dS )z~Warn when a deprecated environment variable is used.

    This is for env vars that are deprecated in favor of CLI flags.
    rL  z is deprecated. NrM  )rO  rP  r
   r
   r    _warn_deprecated_env_to_cli_flag  s   
rQ  c                  C   s   t dd t dd t dd t dd d	d
d} |  D ]%\}}|tjv rBtj| }td| d| d tt|d tj|< qtj D ] \}}|drh|	ddd}td| d|  |tj|< qHd S )Nry   SGLANG_GC_LOGr   SGLANG_ENABLE_FLASHINFER_GEMMr   !SGLANG_CUTEDSL_MOE_NVFP4_DISPATCHr   %SGL_DISABLE_TP_MEMORY_INBALANCE_CHECKr   r   )SGLANG_QUEUED_TIMEOUT_MSSGLANG_FORWARD_TIMEOUT_MSrL  z# (in ms) is deprecated, please use z (in seconds) insteadg     @@r	   r   r]   z is deprecated, please use )
rN  r   r   r   r+   r,   r   r[   r   replace)_deprecated_ms_to_srK  rJ  ms_valr   r   new_keyr
   r
   r   _convert_SGL_to_SGLANG  sB   




r\  r   zbIt will be completely removed in 0.5.7. Please use '--fp8-gemm-backend=flashinfer_trtllm' instead.rS  r  zXIt will be completely removed in 0.5.7. Please use '--fp8-gemm-backend=cutlass' instead.r   zPIt will be completely removed in 0.5.9. Please use '--fp4-gemm-backend' instead.r   z.Please use '--enable-prefill-delayer' instead.r   z8Please use '--prefill-delayer-max-delay-passes' instead.r   zAPlease use '--prefill-delayer-token-usage-low-watermark' instead.c                  C   sH   t  } | tjd tj du sJ |   tj d u s"J d S r   )r   enter_contextenvsr   r4   r   close)
exit_stackr
   r
   r   example_with_exit_stackJ  s
   ra  c                  C   s   g d} t jd& tj| tjtjd}|  |j 	d
 }|dks)J W d    n1 s3w   Y  tj| tjtjd}|j 	d
 }|dksRJ d S )N)pythonz-cz2import os; print(os.getenv('SGLANG_TEST_RETRACT'))T)stdoutstderrzutf-8TrueNone)r^  r   r4   
subprocessPopenPIPEwaitrc  readdecoderB   )commandprocessoutputr
   r
   r   example_with_subprocessS  s   
rp  c                  C   s   t dtfdd} | d tjr	 W d    n1 sw   Y  | d ddks-tjr.	 W d    n1 s8w   Y  | d tjsIddkrR	 W d    d S W d    d S 1 s]w   Y  d S )Nmessage_matcherc              
   s   sb    zd V  W td t y0 } z| t|v sJ d|td|  W Y d }~d S d }~ww )Nze=z#assert_throws find expected error: z#assert_throws do not see exceptions)	Exceptionr   printAssertionError)rq  r-   r
   r
   r   assert_throwsc  s   z;example_with_implicit_bool_avoidance.<locals>.assert_throwsr8   r]   )r   r   r^  r   )ru  r
   r
   r   $example_with_implicit_bool_avoidanceb  s$   
	

"rv  c                   C   sP  t j  t j du sJ t jd  t j r t j d u s"J t j  t j r.J t jd t j du s=J t jd  t j rPt j d u sRJ W d    n1 s\w   Y  t j du sjJ t jd  t jd t j du sJ W d    n1 sw   Y  t j rt j d u sJ t  t  t	  d S )NFT)
r^  r   r5   r   r0   r/   r4   ra  rp  rv  r
   r
   r
   r   examplesz  s,   


rw  __main__)!r   rg  r+   
contextlibr   r   enumr   typingr   rU   r   r   rA   rH   rK   rV   rZ   r\   rc   r^  r    r   rN  rQ  r\  $sglang.srt.debug_utils.cuda_coredumpsglangra  rp  rv  rw  r>   r
   r
   r
   r   <module>   sx    G
  Q	"	 
