@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 9a8966bcc2
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 14, 05:30 UTC

[Docs] Fix warnings in mkdocs build (continued) (#24791)

Signed-off-by: Zerohertz <ohg3417@gmail.com>

Hyogeun Oh (오효근) committed Sep 13, 2025 at 16:13 UTC 9a8966bcc207036e9b65bd7951e808254ffba542
27 files changed +102 -110
vllm/distributed/eplb/eplb_state.py
+4 -4
@@ -337,11 +337,11 @@ class EplbState:
337 Args:
338 model (MixtureOfExperts): The MoE model.
339 is_dummy (bool): If `True`, this is a dummy step and the load
340 - metrics recorded in this forward pass will not count. Defaults
341 - to `False`.
340 + metrics recorded in this forward pass will not count. Defaults
341 + to `False`.
342 is_profile (bool): If `True`, perform a dummy rearrangement
343 - with maximum communication cost. This is used in `profile_run`
344 - to reserve enough memory for the communication buffer.
343 + with maximum communication cost. This is used in `profile_run`
344 + to reserve enough memory for the communication buffer.
345 log_stats (bool): If `True`, log the expert load metrics.
346
347 # Stats
vllm/distributed/eplb/rebalance_algo.py
+3 -3
@@ -102,14 +102,14 @@ def rebalance_experts_hierarchical(
102 num_groups: int,
103 num_nodes: int,
104 num_gpus: int,
105 -):
105 +) -> tuple[torch.Tensor, torch.Tensor, torch.Tensor]:
106 """
107 Parameters:
108 weight: [num_moe_layers, num_logical_experts]
109 num_physical_experts: number of physical experts after replication
110 num_groups: number of expert groups
111 - num_nodes: number of server nodes, where the intra-node network
112 - (e.g, NVLink) is faster
111 + num_nodes: number of server nodes, where the intra-node network
112 + (e.g, NVLink) is faster
113 num_gpus: number of GPUs, must be a multiple of `num_nodes`
114
115 Returns:
vllm/distributed/kv_transfer/kv_connector/v1/base.py
+3 -2
@@ -149,7 +149,7 @@ class KVConnectorBase_V1(ABC):
149
150 @abstractmethod
151 def start_load_kv(self, forward_context: "ForwardContext",
152 - **kwargs) -> None:
152 + **kwargs: Any) -> None:
153 """
154 Start loading the KV cache from the connector to vLLM's paged
155 KV buffer. This is called from the forward context before the
@@ -182,7 +182,8 @@ class KVConnectorBase_V1(ABC):
182
183 @abstractmethod
184 def save_kv_layer(self, layer_name: str, kv_layer: torch.Tensor,
185 - attn_metadata: "AttentionMetadata", **kwargs) -> None:
185 + attn_metadata: "AttentionMetadata",
186 + **kwargs: Any) -> None:
187 """
188 Start saving a layer of KV cache from vLLM's paged buffer
189 to the connector. This is called from within attention layer to
vllm/distributed/kv_transfer/kv_connector/v1/lmcache_connector.py
+3 -2
@@ -30,7 +30,7 @@ class LMCacheConnectorV1(KVConnectorBase_V1):
30 # Worker-side methods
31 # ==============================
32 def start_load_kv(self, forward_context: "ForwardContext",
33 - **kwargs) -> None:
33 + **kwargs: Any) -> None:
34 """
35 Start loading the KV cache from the connector to vLLM's paged
36 KV buffer. This is called from the forward context before the
@@ -61,7 +61,8 @@ class LMCacheConnectorV1(KVConnectorBase_V1):
61 self._lmcache_engine.wait_for_layer_load(layer_name)
62
63 def save_kv_layer(self, layer_name: str, kv_layer: torch.Tensor,
64 - attn_metadata: "AttentionMetadata", **kwargs) -> None:
64 + attn_metadata: "AttentionMetadata",
65 + **kwargs: Any) -> None:
66 """
67 Start saving the a layer of KV cache from vLLM's paged buffer
68 to the connector. This is called from within attention layer to
vllm/distributed/kv_transfer/kv_connector/v1/p2p/p2p_nccl_connector.py
+4 -3
@@ -91,7 +91,7 @@ class P2pNcclConnector(KVConnectorBase_V1):
91 # ==============================
92
93 def start_load_kv(self, forward_context: "ForwardContext",
94 - **kwargs) -> None:
94 + **kwargs: Any) -> None:
95 """Start loading the KV cache from the connector buffer to vLLM's
96 paged KV buffer.
97
@@ -212,7 +212,8 @@ class P2pNcclConnector(KVConnectorBase_V1):
212 return
213
214 def save_kv_layer(self, layer_name: str, kv_layer: torch.Tensor,
215 - attn_metadata: "AttentionMetadata", **kwargs) -> None:
215 + attn_metadata: "AttentionMetadata",
216 + **kwargs: Any) -> None:
217 """Start saving the KV cache of the layer from vLLM's paged buffer
218 to the connector.
219
@@ -278,7 +279,7 @@ class P2pNcclConnector(KVConnectorBase_V1):
279
280 def get_finished(
281 self, finished_req_ids: set[str],
281 - **kwargs) -> tuple[Optional[set[str]], Optional[set[str]]]:
282 + **kwargs: Any) -> tuple[Optional[set[str]], Optional[set[str]]]:
283 """
284 Notifies worker-side connector ids of requests that have
285 finished generating tokens.
vllm/distributed/kv_transfer/kv_connector/v1/p2p/tensor_memory_pool.py
+3 -2
@@ -218,8 +218,9 @@ class TensorMemoryPool:
218
219 return addr
220
221 - def load_tensor(self, addr: int, dtype: torch.dtype,
222 - shape: tuple[int, ...], device) -> torch.Tensor:
221 + def load_tensor(self, addr: int, dtype: torch.dtype, shape: tuple[int,
222 + ...],
223 + device: torch.device) -> torch.Tensor:
224 """Loads a tensor from pinned host memory to the specified device.
225
226 Args:
vllm/distributed/kv_transfer/kv_connector/v1/shared_storage_connector.py
+4 -3
@@ -3,7 +3,7 @@
3 import hashlib
4 import os
5 from dataclasses import dataclass
6 -from typing import TYPE_CHECKING, Optional
6 +from typing import TYPE_CHECKING, Any, Optional
7
8 import safetensors
9 import torch
@@ -90,7 +90,7 @@ class SharedStorageConnector(KVConnectorBase_V1):
90 logger.info("Shared storage path is %s", self._storage_path)
91
92 def start_load_kv(self, forward_context: "ForwardContext",
93 - **kwargs) -> None:
93 + **kwargs: Any) -> None:
94 """Start loading the KV cache from the connector buffer to vLLM's
95 paged KV buffer.
96
@@ -191,7 +191,8 @@ class SharedStorageConnector(KVConnectorBase_V1):
191 return
192
193 def save_kv_layer(self, layer_name: str, kv_layer: torch.Tensor,
194 - attn_metadata: "AttentionMetadata", **kwargs) -> None:
194 + attn_metadata: "AttentionMetadata",
195 + **kwargs: Any) -> None:
196 """Start saving the KV cache of the layer from vLLM's paged buffer
197 to the connector.
198
vllm/distributed/kv_transfer/kv_pipe/pynccl_pipe.py
+2 -2
@@ -251,8 +251,8 @@ class PyNcclPipe(KVPipeBase):
251 """
252 Receives a tensor and its metadata from the source rank. Blocking call.
253
254 - Args:
255 - tensor: The received tensor, or `None` if no tensor is received.
254 + Returns:
255 + The received tensor, or `None` if no tensor is received.
256 """
257 if self.transport_thread is None:
258 self.transport_thread = ThreadPoolExecutor(max_workers=1)
vllm/model_executor/models/interfaces.py
+1 -1
@@ -823,7 +823,7 @@ class SupportsEagle3(Protocol):
823
824 Args:
825 layers: Tuple of layer indices that should output auxiliary
826 - hidden states.
826 + hidden states.
827 """
828 ...
829
vllm/model_executor/models/keye.py
+3 -9
@@ -1520,15 +1520,9 @@ class BaseKeyeModule(nn.Module):
1520 batch.
1521 **NOTE**: If mrope is enabled (default setting for Qwen2-VL
1522 opensource models), the shape will be `(3, seq_len)`,
1523 - otherwise it will be `(seq_len,).
1524 - pixel_values: Pixel values to be fed to a model.
1525 - `None` if no images are passed.
1526 - image_grid_thw: Tensor `(n_images, 3)` of image 3D grid in LLM.
1527 - `None` if no images are passed.
1528 - pixel_values_videos: Pixel values of videos to be fed to a model.
1529 - `None` if no videos are passed.
1530 - video_grid_thw: Tensor `(n_videos, 3)` of video 3D grid in LLM.
1531 - `None` if no videos are passed.
1523 + otherwise it will be `(seq_len,)`.
1524 + intermediate_tensors: Intermediate tensors from prior forward pass.
1525 + inputs_embeds: Optional tensor of input embeddings.
1526 """
1527 if intermediate_tensors is not None:
1528 inputs_embeds = None
vllm/model_executor/models/keye_vl1_5.py
+6 -5
@@ -58,17 +58,18 @@ def split_thw(grid_thw: torch.Tensor) -> torch.Tensor:
58 return torch.cat([ones, h_w], dim=1).repeat_interleave(t, dim=0)
59
60
61 -def get_num_patches(grid_thw: torch.Tensor, num_frames: Union[list[int],
62 - torch.Tensor]):
61 +def get_num_patches(grid_thw: torch.Tensor,
62 + num_frames: Union[list[int], torch.Tensor]) -> list[int]:
63 """
64 Return num_patches per video.
65
66 Args:
67 - t: tensor with shape [N, ...] where each item is a list/tensor
68 - cu_seqlens: list indicating the boundaries of groups
67 + grid_thw: Tensor with shape [N, 3] containing temporal, height, width
68 + dimensions
69 + num_frames: List or tensor indicating the number of frames per video
70
71 Returns:
71 - list of ints representing the sum of products for each group
72 + List of ints representing the number of patches for each video
73
74 Examples:
75 >>> # Suppose there are 2 videos with a total of 3 grids
vllm/model_executor/models/llava.py
+3 -1
@@ -732,7 +732,9 @@ class LlavaForConditionalGeneration(nn.Module, SupportsMultiModal, SupportsPP):
732 Args:
733 input_ids: Flattened (concatenated) input_ids corresponding to a
734 batch.
735 - pixel_values: The pixels in each input image.
735 + positions: Position indices for the input tokens.
736 + intermediate_tensors: Intermediate tensors from prior forward pass.
737 + inputs_embeds: Optional tensor of input embeddings.
738
739 Info:
740 [LlavaImageInputs][]
vllm/model_executor/models/llava_next.py
+3 -2
@@ -535,8 +535,9 @@ class LlavaNextForConditionalGeneration(nn.Module, SupportsMultiModal,
535 Args:
536 input_ids: Flattened (concatenated) input_ids corresponding to a
537 batch.
538 - pixel_values: The pixels in each grid patch for each input image.
539 - image_sizes: The original `(height, width)` for each input image.
538 + positions: Position indices for the input tokens.
539 + intermediate_tensors: Intermediate tensors from prior forward pass.
540 + inputs_embeds: Optional tensor of input embeddings.
541
542 Info:
543 [LlavaNextImageInputs][]
vllm/model_executor/models/mistral3.py
+3 -1
@@ -578,7 +578,9 @@ class Mistral3ForConditionalGeneration(nn.Module, SupportsLoRA,
578 Args:
579 input_ids: Flattened (concatenated) input_ids corresponding to a
580 batch.
581 - pixel_values: The pixels in each input image.
581 + positions: Position indices for the input tokens.
582 + intermediate_tensors: Intermediate tensors from prior forward pass.
583 + inputs_embeds: Optional tensor of input embeddings.
584
585 Info:
586 [Mistral3ImagePixelInputs][]
vllm/model_executor/models/mllama4.py
+4 -5
@@ -387,11 +387,10 @@ class Llama4VisionEncoder(nn.Module):
387 ) -> torch.Tensor:
388 r"""
389 Args:
390 - inputs_embeds (`torch.FloatTensor` of shape
391 - `(batch_size, sequence_length, hidden_size)`):
392 - Optionally, instead of passing `input_ids` you can choose to
393 - directly pass an embedded representation. This is useful if you
394 - want more control over how to convert `input_ids` indices into
390 + hidden_states: Input tensor of shape
391 + (batch_size, sequence_length, hidden_size).
392 + Hidden states from the model embeddings, representing
393 + the input tokens.
394 associated vectors than the model's internal embedding
395 lookup matrix.
396 """
vllm/model_executor/models/moonvit.py
+14 -4
@@ -70,11 +70,15 @@ def multihead_attention(
70 v: torch.Tensor,
71 q_cu_seqlens: Optional[torch.Tensor] = None,
72 k_cu_seqlens: Optional[torch.Tensor] = None,
73 -):
73 +) -> torch.Tensor:
74 """Multi-head attention using flash attention 2.
75
76 Args:
77 - q, k, v: tensor of shape (batch_size, seqlen, num_heads, head_dim),
77 + q: Query tensor of shape (batch_size, seqlen, num_heads, head_dim),
78 + or (tot_seqlens, num_heads, head_dim) if packing.
79 + k: Key tensor of shape (batch_size, seqlen, num_heads, head_dim),
80 + or (tot_seqlens, num_heads, head_dim) if packing.
81 + v: Value tensor of shape (batch_size, seqlen, num_heads, head_dim),
82 or (tot_seqlens, num_heads, head_dim) if packing.
83 q_cu_seqlens (torch.Tensor): cumulative sequence lengths of q.
84 The first element should be 0 and the last element should be q.shape[0].
@@ -123,8 +127,14 @@ def sdpa_attention(
127 """SDPA attention.
128
129 Args:
126 - q, k, v: tensor of shape (batch_size, seqlen, num_heads, head_dim),
130 + q: Query tensor of shape (batch_size, seqlen, num_heads, head_dim),
131 + or (tot_seqlens, num_heads, head_dim) if packing.
132 + k: Key tensor of shape (batch_size, seqlen, num_heads, head_dim),
133 + or (tot_seqlens, num_heads, head_dim) if packing.
134 + v: Value tensor of shape (batch_size, seqlen, num_heads, head_dim),
135 or (tot_seqlens, num_heads, head_dim) if packing.
136 + q_cu_seqlens: Optional cumulative sequence lengths of q.
137 + k_cu_seqlens: Optional cumulative sequence lengths of k.
138 """
139 seq_length = q.shape[0]
140 attention_mask = torch.zeros([1, seq_length, seq_length],
@@ -387,7 +397,7 @@ class MLP2(nn.Module):
397 def __init__(self,
398 dims: list[int],
399 activation,
390 - bias=True,
400 + bias: bool = True,
401 prefix: str = "",
402 use_data_parallel: bool = False):
403 super().__init__()
vllm/model_executor/models/phi4_multimodal.py
+2 -2
@@ -374,8 +374,8 @@ class Phi4MMAudioMeanVarianceNormLayer(nn.Module):
374 Typically used as a very first layer in a model.
375
376 Args:
377 - input_size: int
378 - layer input size.
377 + config: [Phi4MultimodalAudioConfig](https://huggingface.co/docs/transformers/model_doc/phi4_multimodal#transformers.Phi4MultimodalAudioConfig)
378 + object containing model parameters.
379 """
380
381 def __init__(self, config: Phi4MultimodalAudioConfig):
vllm/model_executor/models/qwen2_vl.py
+3 -9
@@ -1372,15 +1372,9 @@ class Qwen2VLForConditionalGeneration(nn.Module, SupportsMultiModal,
1372 batch.
1373 **NOTE**: If mrope is enabled (default setting for Qwen2-VL
1374 opensource models), the shape will be `(3, seq_len)`,
1375 - otherwise it will be `(seq_len,).
1376 - pixel_values: Pixel values to be fed to a model.
1377 - `None` if no images are passed.
1378 - image_grid_thw: Tensor `(n_images, 3)` of image 3D grid in LLM.
1379 - `None` if no images are passed.
1380 - pixel_values_videos: Pixel values of videos to be fed to a model.
1381 - `None` if no videos are passed.
1382 - video_grid_thw: Tensor `(n_videos, 3)` of video 3D grid in LLM.
1383 - `None` if no videos are passed.
1375 + otherwise it will be `(seq_len,)`.
1376 + intermediate_tensors: Intermediate tensors from prior forward pass.
1377 + inputs_embeds: Optional tensor of input embeddings.
1378 """
1379
1380 if intermediate_tensors is not None:
vllm/model_executor/models/siglip2navit.py
+8 -19
@@ -390,12 +390,9 @@ class Siglip2EncoderLayer(nn.Module):
390 position_embeddings: torch.Tensor) -> tuple[torch.FloatTensor]:
391 """
392 Args:
393 - hidden_states (`torch.FloatTensor`):
394 - Input to the layer of shape `(batch, seq_len, embed_dim)`.
395 - output_attentions (`bool`, *optional*, defaults to `False`):
396 - Whether or not to return the attentions tensors of all
397 - attention layers. See `attentions` under
398 - returned tensors for more detail.
393 + hidden_states: Input tensor of shape (batch, seq_len, embed_dim).
394 + cu_seqlens: Cumulative sequence lengths tensor.
395 + position_embeddings: Position embeddings tensor.
396 """
397 residual = hidden_states
398
@@ -534,19 +531,11 @@ class Siglip2Encoder(nn.Module):
531 ) -> torch.Tensor:
532 r"""
533 Args:
537 - inputs_embeds (`torch.FloatTensor` of shape
538 - `(batch_size, sequence_length, hidden_size)`):
539 - Optionally, instead of passing `input_ids` you can choose to
540 - directly pass an embedded representation. This is useful if
541 - you want more control over how to convert `input_ids` indices
542 - into associated vectors than the model's internal embedding
543 - lookup matrix.
544 - grid_thws (`torch.LongTensor`):
545 - grid shape (num_patches, 3)
546 - output_hidden_states (`bool`, *optional*):
547 - Whether or not to return the hidden states of all layers. See
548 - `hidden_states` under returned tensors for more detail.
549 - return_dict (`bool`, *optional*):
534 + inputs_embeds: Input tensor of shape
535 + (batch_size, sequence_length, hidden_size).
536 + Embedded representation of the input tokens.
537 + grid_thws: Grid tensor of shape (num_patches, 3)
538 + containing grid dimensions.
539 Whether or not to return a [`~utils.ModelOutput`] instead of
540 a plain tuple.
541 """
vllm/model_executor/models/ultravox.py
+5 -4
@@ -597,10 +597,11 @@ class UltravoxModel(nn.Module, SupportsMultiModal, SupportsPP, SupportsLoRA):
597 with the `input_ids`.
598
599 Args:
600 - audio_features: A batch of audio input chunks [B, N, 80, M].
601 - audio_lens: Length of audio frames for each audio chunk [B].
602 - audio_token_len: Length of audio tokens for each audio chunk [B'].
603 - Note: batch dim is different from batch dim in audio chunks.
600 + input_ids: Flattened (concatenated) input_ids corresponding to a
601 + batch.
602 + positions: Position indices for the input tokens.
603 + intermediate_tensors: Intermediate tensors from prior forward pass.
604 + inputs_embeds: Optional tensor of input embeddings.
605
606 """
607
vllm/model_executor/models/zamba2.py
+2 -2
@@ -909,8 +909,8 @@ class Zamba2ForCausalLM(nn.Module, HasInnerState, IsHybrid):
909 prefix: Optional prefix for parameter names
910
911 Raises:
912 - AssertionError: If prefix caching is enabled
913 - (not supported by Mamba)
912 + AssertionError: If prefix caching is enabled
913 + (not supported by Mamba)
914 """
915 config = vllm_config.model_config.hf_config
916 cache_config = vllm_config.cache_config
vllm/transformers_utils/config.py
+7 -6
@@ -679,20 +679,21 @@ def get_hf_file_to_dict(file_name: str,
679
680
681 @cache
682 -def get_pooling_config(model: str, revision: Optional[str] = 'main'):
682 +def get_pooling_config(model: str,
683 + revision: Optional[str] = 'main') -> Optional[dict]:
684 """
685 This function gets the pooling and normalize
686 config from the model - only applies to
687 sentence-transformers models.
688
689 Args:
689 - model (str): The name of the Hugging Face model.
690 - revision (str, optional): The specific version
691 - of the model to use. Defaults to 'main'.
690 + model: The name of the Hugging Face model.
691 + revision: The specific version of the model to use.
692 + Defaults to 'main'.
693
694 Returns:
694 - dict: A dictionary containing the pooling
695 - type and whether normalization is used.
695 + A dictionary containing the pooling type and whether
696 + normalization is used, or None if no pooling configuration is found.
697 """
698
699 modules_file_name = "modules.json"
vllm/transformers_utils/configs/jais.py
+4 -4
@@ -74,10 +74,10 @@ class JAISConfig(PretrainedConfig):
74 use_cache (`bool`, *optional*, defaults to `True`):
75 Whether or not the model should return the last key/values
76 attentions (not used by all models).
77 - scale_attn_by_inverse_layer_idx (`bool`, *optional*,
78 - defaults to `False`):
79 - Whether to additionally scale attention weights by
80 - `1 / layer_idx + 1`.
77 + scale_attn_by_inverse_layer_idx
78 + (`bool`, *optional*, defaults to `False`):
79 + Whether to additionally scale attention weights
80 + by `1 / layer_idx + 1`.
81 reorder_and_upcast_attn (`bool`, *optional*, defaults to `False`):
82 Whether to scale keys (K) prior to computing attention
83 (dot-product)
vllm/transformers_utils/configs/ultravox.py
-4
@@ -37,10 +37,6 @@ class UltravoxConfig(transformers.PretrainedConfig):
37 The initialization value for the layer normalization.
38 projector_act (`str`, *optional*, defaults to `"swiglu"`):
39 The activation function used by the multimodal projector.
40 - text_model_lora_config (`LoraConfigSimplified`, *optional*):
41 - The LoRA configuration for finetuning the text model.
42 - audio_model_lora_config (`LoraConfigSimplified`, *optional*):
43 - The LoRA configuration for finetuning the audio model.
40 projector_ln_mid (`bool`, *optional*, defaults to `False`):
41 Whether to apply layer normalization at the middle of the
42 projector or at the end. Versions v0.4.1 and below
vllm/transformers_utils/processors/deepseek_vl2.py
+4 -5
@@ -25,6 +25,7 @@
25 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
27 import math
28 +from typing import Any
29
30 import torch
31 import torchvision.transforms as T
@@ -178,17 +179,15 @@ class DeepseekVLV2Processor(ProcessorMixin):
179 prompt: str,
180 images: list[Image.Image],
181 inference_mode: bool = True,
181 - **kwargs,
182 + **kwargs: Any,
183 ):
184 """
185
186 Args:
187 prompt (str): the formatted prompt;
187 - conversations (list[dict]): conversations with a list of messages;
188 images (list[ImageType]): the list of images;
189 inference_mode (bool): if True, then remove the last eos token;
190 - system_prompt (str): the system prompt;
191 - **kwargs:
190 + **kwargs: Additional keyword arguments.
191
192 Returns:
193 outputs (BaseProcessorOutput): the output of the processor,
@@ -259,7 +258,7 @@ class DeepseekVLV2Processor(ProcessorMixin):
258 text: str,
259 images: list[Image.Image],
260 inference_mode: bool = True,
262 - **kwargs,
261 + **kwargs: Any,
262 ):
263 """
264
vllm/transformers_utils/runai_utils.py
+1 -3
@@ -33,7 +33,6 @@ def list_safetensors(path: str = "") -> list[str]:
33
34 Args:
35 path: The object storage path to list from.
36 - allow_pattern: A list of patterns of which files to pull.
36
37 Returns:
38 list[str]: List of full object storage paths allowed by the pattern
@@ -54,8 +53,7 @@ class ObjectStorageModel:
53 dir: The temporary created directory.
54
55 Methods:
57 - pull_files(): Pull model from object storage to the temporary
58 - directory.
56 + pull_files(): Pull model from object storage to the temporary directory.
57 """
58
59 def __init__(self) -> None:
vllm/transformers_utils/s3_utils.py
+3 -3
@@ -2,7 +2,7 @@
2 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4 import fnmatch
5 -from typing import Optional
5 +from typing import Any, Optional
6
7 from vllm.utils import PlaceholderModule
8
@@ -26,7 +26,7 @@ def _filter_ignore(paths: list[str], patterns: list[str]) -> list[str]:
26 ]
27
28
29 -def glob(s3=None,
29 +def glob(s3: Optional[Any] = None,
30 path: str = "",
31 allow_pattern: Optional[list[str]] = None) -> list[str]:
32 """
@@ -51,7 +51,7 @@ def glob(s3=None,
51
52
53 def list_files(
54 - s3,
54 + s3: Any,
55 path: str,
56 allow_pattern: Optional[list[str]] = None,
57 ignore_pattern: Optional[list[str]] = None