Skip to content

Commit f6c63a6

Browse files
ArthurZuckervasqu
andcommitted
protect imports (#44437)
* protect imports * docstring * nit * Update src/transformers/models/auto/processing_auto.py Co-authored-by: Anton Vlasjuk <73884904+vasqu@users.noreply.github.com> --------- Co-authored-by: Anton Vlasjuk <73884904+vasqu@users.noreply.github.com>
1 parent fd6bc38 commit f6c63a6

5 files changed

Lines changed: 150 additions & 134 deletions

File tree

src/transformers/models/auto/processing_auto.py

Lines changed: 139 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import inspect
1818
import json
1919
from collections import OrderedDict
20+
from typing import TYPE_CHECKING
2021

2122
# Build the list of all feature extractors
2223
from ...configuration_utils import PreTrainedConfig
@@ -41,140 +42,144 @@
4142

4243

4344
logger = logging.get_logger(__name__)
44-
45-
PROCESSOR_MAPPING_NAMES = OrderedDict(
46-
[
47-
("aimv2", "CLIPProcessor"),
48-
("align", "AlignProcessor"),
49-
("altclip", "AltCLIPProcessor"),
50-
("aria", "AriaProcessor"),
51-
("audioflamingo3", "AudioFlamingo3Processor"),
52-
("aya_vision", "AyaVisionProcessor"),
53-
("bark", "BarkProcessor"),
54-
("blip", "BlipProcessor"),
55-
("blip-2", "Blip2Processor"),
56-
("bridgetower", "BridgeTowerProcessor"),
57-
("chameleon", "ChameleonProcessor"),
58-
("chinese_clip", "ChineseCLIPProcessor"),
59-
("clap", "ClapProcessor"),
60-
("clip", "CLIPProcessor"),
61-
("clipseg", "CLIPSegProcessor"),
62-
("clvp", "ClvpProcessor"),
63-
("cohere2_vision", "Cohere2VisionProcessor"),
64-
("colmodernvbert", "ColModernVBertProcessor"),
65-
("colpali", "ColPaliProcessor"),
66-
("colqwen2", "ColQwen2Processor"),
67-
("deepseek_vl", "DeepseekVLProcessor"),
68-
("deepseek_vl_hybrid", "DeepseekVLHybridProcessor"),
69-
("dia", "DiaProcessor"),
70-
("edgetam", "Sam2Processor"),
71-
("emu3", "Emu3Processor"),
72-
("ernie4_5_vl_moe", "Ernie4_5_VLMoeProcessor"),
73-
("evolla", "EvollaProcessor"),
74-
("flava", "FlavaProcessor"),
75-
("florence2", "Florence2Processor"),
76-
("fuyu", "FuyuProcessor"),
77-
("gemma3", "Gemma3Processor"),
78-
("gemma3n", "Gemma3nProcessor"),
79-
("git", "GitProcessor"),
80-
("glm46v", "Glm46VProcessor"),
81-
("glm4v", "Glm4vProcessor"),
82-
("glm4v_moe", "Glm4vProcessor"),
83-
("glm_image", "Glm4vProcessor"),
84-
("glmasr", "GlmAsrProcessor"),
85-
("got_ocr2", "GotOcr2Processor"),
86-
("granite_speech", "GraniteSpeechProcessor"),
87-
("grounding-dino", "GroundingDinoProcessor"),
88-
("groupvit", "CLIPProcessor"),
89-
("higgs_audio_v2", "HiggsAudioV2Processor"),
90-
("hubert", "Wav2Vec2Processor"),
91-
("idefics", "IdeficsProcessor"),
92-
("idefics2", "Idefics2Processor"),
93-
("idefics3", "Idefics3Processor"),
94-
("instructblip", "InstructBlipProcessor"),
95-
("instructblipvideo", "InstructBlipVideoProcessor"),
96-
("internvl", "InternVLProcessor"),
97-
("janus", "JanusProcessor"),
98-
("kosmos-2", "Kosmos2Processor"),
99-
("kosmos-2.5", "Kosmos2_5Processor"),
100-
("kyutai_speech_to_text", "KyutaiSpeechToTextProcessor"),
101-
("lasr_ctc", "LasrProcessor"),
102-
("lasr_encoder", "LasrProcessor"),
103-
("layoutlmv2", "LayoutLMv2Processor"),
104-
("layoutlmv3", "LayoutLMv3Processor"),
105-
("layoutxlm", "LayoutXLMProcessor"),
106-
("lfm2_vl", "Lfm2VlProcessor"),
107-
("lighton_ocr", "LightOnOcrProcessor"),
108-
("llama4", "Llama4Processor"),
109-
("llava", "LlavaProcessor"),
110-
("llava_next", "LlavaNextProcessor"),
111-
("llava_next_video", "LlavaNextVideoProcessor"),
112-
("llava_onevision", "LlavaOnevisionProcessor"),
113-
("markuplm", "MarkupLMProcessor"),
114-
("metaclip_2", "CLIPProcessor"),
115-
("mgp-str", "MgpstrProcessor"),
116-
("mistral3", "PixtralProcessor"),
117-
("mllama", "MllamaProcessor"),
118-
("mm-grounding-dino", "GroundingDinoProcessor"),
119-
("modernvbert", "Idefics3Processor"),
120-
("moonshine", "Wav2Vec2Processor"),
121-
("moonshine_streaming", "MoonshineStreamingProcessor"),
122-
("omdet-turbo", "OmDetTurboProcessor"),
123-
("oneformer", "OneFormerProcessor"),
124-
("ovis2", "Ovis2Processor"),
125-
("owlv2", "Owlv2Processor"),
126-
("owlvit", "OwlViTProcessor"),
127-
("paddleocr_vl", "PaddleOCRVLProcessor"),
128-
("paligemma", "PaliGemmaProcessor"),
129-
("perception_lm", "PerceptionLMProcessor"),
130-
("phi4_multimodal", "Phi4MultimodalProcessor"),
131-
("pix2struct", "Pix2StructProcessor"),
132-
("pixtral", "PixtralProcessor"),
133-
("pop2piano", "Pop2PianoProcessor"),
134-
("qwen2_5_omni", "Qwen2_5OmniProcessor"),
135-
("qwen2_5_vl", "Qwen2_5_VLProcessor"),
136-
("qwen2_audio", "Qwen2AudioProcessor"),
137-
("qwen2_vl", "Qwen2VLProcessor"),
138-
("qwen3_5", "Qwen3VLProcessor"),
139-
("qwen3_5_moe", "Qwen3VLProcessor"),
140-
("qwen3_omni_moe", "Qwen3OmniMoeProcessor"),
141-
("qwen3_vl", "Qwen3VLProcessor"),
142-
("qwen3_vl_moe", "Qwen3VLProcessor"),
143-
("sam", "SamProcessor"),
144-
("sam2", "Sam2Processor"),
145-
("sam3", "Sam3Processor"),
146-
("sam_hq", "SamHQProcessor"),
147-
("seamless_m4t", "SeamlessM4TProcessor"),
148-
("sew", "Wav2Vec2Processor"),
149-
("sew-d", "Wav2Vec2Processor"),
150-
("shieldgemma2", "ShieldGemma2Processor"),
151-
("siglip", "SiglipProcessor"),
152-
("siglip2", "Siglip2Processor"),
153-
("smolvlm", "SmolVLMProcessor"),
154-
("speech_to_text", "Speech2TextProcessor"),
155-
("speecht5", "SpeechT5Processor"),
156-
("t5gemma2", "Gemma3Processor"),
157-
("t5gemma2_encoder", "Gemma3Processor"),
158-
("trocr", "TrOCRProcessor"),
159-
("tvp", "TvpProcessor"),
160-
("udop", "UdopProcessor"),
161-
("unispeech", "Wav2Vec2Processor"),
162-
("unispeech-sat", "Wav2Vec2Processor"),
163-
("vibevoice_asr", "VibeVoiceAsrProcessor"),
164-
("video_llava", "VideoLlavaProcessor"),
165-
("vilt", "ViltProcessor"),
166-
("vipllava", "LlavaProcessor"),
167-
("vision-text-dual-encoder", "VisionTextDualEncoderProcessor"),
168-
("voxtral", "VoxtralProcessor"),
169-
("voxtral_realtime", "VoxtralRealtimeProcessor"),
170-
("wav2vec2", "Wav2Vec2Processor"),
171-
("wav2vec2-bert", "Wav2Vec2Processor"),
172-
("wav2vec2-conformer", "Wav2Vec2Processor"),
173-
("wavlm", "Wav2Vec2Processor"),
174-
("whisper", "WhisperProcessor"),
175-
("xclip", "XCLIPProcessor"),
176-
]
177-
)
45+
if TYPE_CHECKING:
46+
# This significantly improves completion suggestion performance when
47+
# the transformers package is used with Microsoft's Pylance language server.
48+
PROCESSOR_MAPPING_NAMES: OrderedDict[str, str | None] = OrderedDict()
49+
else:
50+
PROCESSOR_MAPPING_NAMES = OrderedDict(
51+
[
52+
("aimv2", "CLIPProcessor"),
53+
("align", "AlignProcessor"),
54+
("altclip", "AltCLIPProcessor"),
55+
("aria", "AriaProcessor"),
56+
("audioflamingo3", "AudioFlamingo3Processor"),
57+
("aya_vision", "AyaVisionProcessor"),
58+
("bark", "BarkProcessor"),
59+
("blip", "BlipProcessor"),
60+
("blip-2", "Blip2Processor"),
61+
("bridgetower", "BridgeTowerProcessor"),
62+
("chameleon", "ChameleonProcessor"),
63+
("chinese_clip", "ChineseCLIPProcessor"),
64+
("clap", "ClapProcessor"),
65+
("clip", "CLIPProcessor"),
66+
("clipseg", "CLIPSegProcessor"),
67+
("clvp", "ClvpProcessor"),
68+
("cohere2_vision", "Cohere2VisionProcessor"),
69+
("colmodernvbert", "ColModernVBertProcessor"),
70+
("colpali", "ColPaliProcessor"),
71+
("colqwen2", "ColQwen2Processor"),
72+
("deepseek_vl", "DeepseekVLProcessor"),
73+
("deepseek_vl_hybrid", "DeepseekVLHybridProcessor"),
74+
("dia", "DiaProcessor"),
75+
("edgetam", "Sam2Processor"),
76+
("emu3", "Emu3Processor"),
77+
("ernie4_5_vl_moe", "Ernie4_5_VLMoeProcessor"),
78+
("evolla", "EvollaProcessor"),
79+
("flava", "FlavaProcessor"),
80+
("florence2", "Florence2Processor"),
81+
("fuyu", "FuyuProcessor"),
82+
("gemma3", "Gemma3Processor"),
83+
("gemma3n", "Gemma3nProcessor"),
84+
("git", "GitProcessor"),
85+
("glm46v", "Glm46VProcessor"),
86+
("glm4v", "Glm4vProcessor"),
87+
("glm4v_moe", "Glm4vProcessor"),
88+
("glm_image", "Glm4vProcessor"),
89+
("glmasr", "GlmAsrProcessor"),
90+
("got_ocr2", "GotOcr2Processor"),
91+
("granite_speech", "GraniteSpeechProcessor"),
92+
("grounding-dino", "GroundingDinoProcessor"),
93+
("groupvit", "CLIPProcessor"),
94+
("higgs_audio_v2", "HiggsAudioV2Processor"),
95+
("hubert", "Wav2Vec2Processor"),
96+
("idefics", "IdeficsProcessor"),
97+
("idefics2", "Idefics2Processor"),
98+
("idefics3", "Idefics3Processor"),
99+
("instructblip", "InstructBlipProcessor"),
100+
("instructblipvideo", "InstructBlipVideoProcessor"),
101+
("internvl", "InternVLProcessor"),
102+
("janus", "JanusProcessor"),
103+
("kosmos-2", "Kosmos2Processor"),
104+
("kosmos-2.5", "Kosmos2_5Processor"),
105+
("kyutai_speech_to_text", "KyutaiSpeechToTextProcessor"),
106+
("lasr_ctc", "LasrProcessor"),
107+
("lasr_encoder", "LasrProcessor"),
108+
("layoutlmv2", "LayoutLMv2Processor"),
109+
("layoutlmv3", "LayoutLMv3Processor"),
110+
("layoutxlm", "LayoutXLMProcessor"),
111+
("lfm2_vl", "Lfm2VlProcessor"),
112+
("lighton_ocr", "LightOnOcrProcessor"),
113+
("llama4", "Llama4Processor"),
114+
("llava", "LlavaProcessor"),
115+
("llava_next", "LlavaNextProcessor"),
116+
("llava_next_video", "LlavaNextVideoProcessor"),
117+
("llava_onevision", "LlavaOnevisionProcessor"),
118+
("markuplm", "MarkupLMProcessor"),
119+
("metaclip_2", "CLIPProcessor"),
120+
("mgp-str", "MgpstrProcessor"),
121+
("mistral3", "PixtralProcessor"),
122+
("mllama", "MllamaProcessor"),
123+
("mm-grounding-dino", "GroundingDinoProcessor"),
124+
("modernvbert", "Idefics3Processor"),
125+
("moonshine", "Wav2Vec2Processor"),
126+
("moonshine_streaming", "MoonshineStreamingProcessor"),
127+
("omdet-turbo", "OmDetTurboProcessor"),
128+
("oneformer", "OneFormerProcessor"),
129+
("ovis2", "Ovis2Processor"),
130+
("owlv2", "Owlv2Processor"),
131+
("owlvit", "OwlViTProcessor"),
132+
("paddleocr_vl", "PaddleOCRVLProcessor"),
133+
("paligemma", "PaliGemmaProcessor"),
134+
("perception_lm", "PerceptionLMProcessor"),
135+
("phi4_multimodal", "Phi4MultimodalProcessor"),
136+
("pix2struct", "Pix2StructProcessor"),
137+
("pixtral", "PixtralProcessor"),
138+
("pop2piano", "Pop2PianoProcessor"),
139+
("qwen2_5_omni", "Qwen2_5OmniProcessor"),
140+
("qwen2_5_vl", "Qwen2_5_VLProcessor"),
141+
("qwen2_audio", "Qwen2AudioProcessor"),
142+
("qwen2_vl", "Qwen2VLProcessor"),
143+
("qwen3_5", "Qwen3VLProcessor"),
144+
("qwen3_5_moe", "Qwen3VLProcessor"),
145+
("qwen3_omni_moe", "Qwen3OmniMoeProcessor"),
146+
("qwen3_vl", "Qwen3VLProcessor"),
147+
("qwen3_vl_moe", "Qwen3VLProcessor"),
148+
("sam", "SamProcessor"),
149+
("sam2", "Sam2Processor"),
150+
("sam3", "Sam3Processor"),
151+
("sam_hq", "SamHQProcessor"),
152+
("seamless_m4t", "SeamlessM4TProcessor"),
153+
("sew", "Wav2Vec2Processor"),
154+
("sew-d", "Wav2Vec2Processor"),
155+
("shieldgemma2", "ShieldGemma2Processor"),
156+
("siglip", "SiglipProcessor"),
157+
("siglip2", "Siglip2Processor"),
158+
("smolvlm", "SmolVLMProcessor"),
159+
("speech_to_text", "Speech2TextProcessor"),
160+
("speecht5", "SpeechT5Processor"),
161+
("t5gemma2", "Gemma3Processor"),
162+
("t5gemma2_encoder", "Gemma3Processor"),
163+
("trocr", "TrOCRProcessor"),
164+
("tvp", "TvpProcessor"),
165+
("udop", "UdopProcessor"),
166+
("unispeech", "Wav2Vec2Processor"),
167+
("unispeech-sat", "Wav2Vec2Processor"),
168+
("vibevoice_asr", "VibeVoiceAsrProcessor"),
169+
("video_llava", "VideoLlavaProcessor"),
170+
("vilt", "ViltProcessor"),
171+
("vipllava", "LlavaProcessor"),
172+
("vision-text-dual-encoder", "VisionTextDualEncoderProcessor"),
173+
("voxtral", "VoxtralProcessor"),
174+
("voxtral_realtime", "VoxtralRealtimeProcessor"),
175+
("wav2vec2", "Wav2Vec2Processor"),
176+
("wav2vec2-bert", "Wav2Vec2Processor"),
177+
("wav2vec2-conformer", "Wav2Vec2Processor"),
178+
("wavlm", "Wav2Vec2Processor"),
179+
("whisper", "WhisperProcessor"),
180+
("xclip", "XCLIPProcessor"),
181+
]
182+
)
178183

179184
PROCESSOR_MAPPING = _LazyAutoMapping(CONFIG_MAPPING_NAMES, PROCESSOR_MAPPING_NAMES)
180185

src/transformers/models/colmodernvbert/modular_colmodernvbert.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from ...tokenization_utils_base import TextInput
2626
from ...utils import ModelOutput, TransformersKwargs, auto_docstring, logging
2727
from ...utils.generic import can_return_tuple
28+
from ...utils.import_utils import requires
2829
from ..auto import CONFIG_MAPPING
2930
from ..auto.modeling_auto import AutoModel
3031
from ..colpali.modeling_colpali import ColPaliForRetrieval, ColPaliPreTrainedModel
@@ -114,6 +115,8 @@ class ColModernVBertProcessorKwargs(Idefics3ProcessorKwargs, total=False):
114115
}
115116

116117

118+
@requires(backends=("torch",))
119+
@auto_docstring
117120
class ColModernVBertProcessor(Idefics3Processor):
118121
r"""
119122
Constructs a ColModernVBert processor which wraps a ModernVBertProcessor and special methods to process images and queries, as

src/transformers/models/colmodernvbert/processing_colmodernvbert.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from ...processing_utils import MultiModalData, ProcessingKwargs, ProcessorMixin, Unpack
3131
from ...tokenization_utils_base import AddedToken, BatchEncoding, TextInput
3232
from ...utils import auto_docstring
33+
from ...utils.import_utils import requires
3334

3435

3536
if TYPE_CHECKING:
@@ -102,6 +103,7 @@ def get_image_prompt_string(
102103
)
103104

104105

106+
@requires(backends=("torch",))
105107
@auto_docstring
106108
class ColModernVBertProcessor(ProcessorMixin):
107109
r"""

src/transformers/models/higgs_audio_v2_tokenizer/modeling_higgs_audio_v2_tokenizer.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from ...audio_utils import conv1d_output_length
3232
from ...modeling_utils import PreTrainedAudioTokenizerBase
3333
from ...utils import ModelOutput, auto_docstring
34+
from ...utils.import_utils import requires
3435
from ..auto import AutoModel
3536
from .configuration_higgs_audio_v2_tokenizer import HiggsAudioV2TokenizerConfig
3637

@@ -447,6 +448,7 @@ def decode(self, codes: torch.Tensor) -> torch.Tensor:
447448
return quantized_out
448449

449450

451+
@requires(backends=("torchaudio",))
450452
@auto_docstring(custom_intro="""The HiggsAudioV2Tokenizer neural audio codec model.""")
451453
class HiggsAudioV2TokenizerModel(HiggsAudioV2TokenizerPreTrainedModel):
452454
def __init__(self, config):

src/transformers/models/higgs_audio_v2_tokenizer/modular_higgs_audio_v2_tokenizer.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import torch.nn.functional as F
1818
import torchaudio
1919

20+
from ...utils import auto_docstring
21+
from ...utils.import_utils import requires
2022
from ..xcodec.configuration_xcodec import XcodecConfig
2123
from ..xcodec.modeling_xcodec import XcodecEuclideanCodebook, XcodecModel, XcodecPreTrainedModel
2224

@@ -150,6 +152,8 @@ def decode(self, embed_ind):
150152
return quantize
151153

152154

155+
@requires(backends=("torchaudio",))
156+
@auto_docstring(custom_intro="""The HiggsAudioV2Tokenizer neural audio codec model.""")
153157
class HiggsAudioV2TokenizerModel(XcodecModel):
154158
def _extract_semantic_features(self, input_values: torch.FloatTensor) -> torch.FloatTensor:
155159
if self.config.sample_rate != self.config.semantic_sample_rate:

0 commit comments

Comments
 (0)