Skip to content

Commit ea5ca81

Browse files
committed
[Siglip] protect from imports if sentencepiece not installed (#28737)
[Siglip] protect from imports if sentencepiece not installed
1 parent 711bed1 commit ea5ca81

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

src/transformers/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,6 @@
772772
"SiglipConfig",
773773
"SiglipProcessor",
774774
"SiglipTextConfig",
775-
"SiglipTokenizer",
776775
"SiglipVisionConfig",
777776
],
778777
"models.speech_encoder_decoder": ["SpeechEncoderDecoderConfig"],
@@ -1124,6 +1123,7 @@
11241123
_import_structure["models.reformer"].append("ReformerTokenizer")
11251124
_import_structure["models.rembert"].append("RemBertTokenizer")
11261125
_import_structure["models.seamless_m4t"].append("SeamlessM4TTokenizer")
1126+
_import_structure["models.siglip"].append("SiglipTokenizer")
11271127
_import_structure["models.speech_to_text"].append("Speech2TextTokenizer")
11281128
_import_structure["models.speecht5"].append("SpeechT5Tokenizer")
11291129
_import_structure["models.t5"].append("T5Tokenizer")
@@ -5494,7 +5494,6 @@
54945494
SiglipConfig,
54955495
SiglipProcessor,
54965496
SiglipTextConfig,
5497-
SiglipTokenizer,
54985497
SiglipVisionConfig,
54995498
)
55005499
from .models.speech_encoder_decoder import SpeechEncoderDecoderConfig
@@ -5843,6 +5842,7 @@
58435842
from .models.reformer import ReformerTokenizer
58445843
from .models.rembert import RemBertTokenizer
58455844
from .models.seamless_m4t import SeamlessM4TTokenizer
5845+
from .models.siglip import SiglipTokenizer
58465846
from .models.speech_to_text import Speech2TextTokenizer
58475847
from .models.speecht5 import SpeechT5Tokenizer
58485848
from .models.t5 import T5Tokenizer

src/transformers/models/siglip/__init__.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from ...utils import (
1717
OptionalDependencyNotAvailable,
1818
_LazyModule,
19+
is_sentencepiece_available,
1920
is_torch_available,
2021
is_vision_available,
2122
)
@@ -29,9 +30,17 @@
2930
"SiglipVisionConfig",
3031
],
3132
"processing_siglip": ["SiglipProcessor"],
32-
"tokenization_siglip": ["SiglipTokenizer"],
3333
}
3434

35+
try:
36+
if not is_sentencepiece_available():
37+
raise OptionalDependencyNotAvailable()
38+
except OptionalDependencyNotAvailable:
39+
pass
40+
else:
41+
_import_structure["tokenization_siglip"] = ["SiglipTokenizer"]
42+
43+
3544
try:
3645
if not is_vision_available():
3746
raise OptionalDependencyNotAvailable()
@@ -63,7 +72,14 @@
6372
SiglipVisionConfig,
6473
)
6574
from .processing_siglip import SiglipProcessor
66-
from .tokenization_siglip import SiglipTokenizer
75+
76+
try:
77+
if not is_sentencepiece_available():
78+
raise OptionalDependencyNotAvailable()
79+
except OptionalDependencyNotAvailable:
80+
pass
81+
else:
82+
from .tokenization_siglip import SiglipTokenizer
6783

6884
try:
6985
if not is_vision_available():

src/transformers/utils/dummy_sentencepiece_objects.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,13 @@ def __init__(self, *args, **kwargs):
184184
requires_backends(self, ["sentencepiece"])
185185

186186

187+
class SiglipTokenizer(metaclass=DummyObject):
188+
_backends = ["sentencepiece"]
189+
190+
def __init__(self, *args, **kwargs):
191+
requires_backends(self, ["sentencepiece"])
192+
193+
187194
class Speech2TextTokenizer(metaclass=DummyObject):
188195
_backends = ["sentencepiece"]
189196

0 commit comments

Comments
 (0)