

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


A_						:     Any			  =				{
    'configuration_big_bird': ['BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP', 'BigBirdConfig', 'BigBirdOnnxConfig'],
}

try:
       if not is_sentencepiece_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       A_						:     List[str]			  =				['BigBirdTokenizer']

try:
       if not is_tokenizers_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       A_						:     List[Any]			  =				['BigBirdTokenizerFast']

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       A_						:     str			  =				[
           'BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST',
           'BigBirdForCausalLM',
           'BigBirdForMaskedLM',
           'BigBirdForMultipleChoice',
           'BigBirdForPreTraining',
           'BigBirdForQuestionAnswering',
           'BigBirdForSequenceClassification',
           'BigBirdForTokenClassification',
           'BigBirdLayer',
           'BigBirdModel',
           'BigBirdPreTrainedModel',
           'load_tf_weights_in_big_bird',
       ]

try:
       if not is_flax_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       A_						:     Optional[Any]			  =				[
           'FlaxBigBirdForCausalLM',
           'FlaxBigBirdForMaskedLM',
           'FlaxBigBirdForMultipleChoice',
           'FlaxBigBirdForPreTraining',
           'FlaxBigBirdForQuestionAnswering',
           'FlaxBigBirdForSequenceClassification',
           'FlaxBigBirdForTokenClassification',
           'FlaxBigBirdModel',
           'FlaxBigBirdPreTrainedModel',
       ]

if TYPE_CHECKING:
       from .configuration_big_bird import BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP, BigBirdConfig, BigBirdOnnxConfig

       try:
              if not is_sentencepiece_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_big_bird import BigBirdTokenizer

       try:
              if not is_tokenizers_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_big_bird_fast import BigBirdTokenizerFast

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_big_bird import (
                  BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST,
                  BigBirdForCausalLM,
                  BigBirdForMaskedLM,
                  BigBirdForMultipleChoice,
                  BigBirdForPreTraining,
                  BigBirdForQuestionAnswering,
                  BigBirdForSequenceClassification,
                  BigBirdForTokenClassification,
                  BigBirdLayer,
                  BigBirdModel,
                  BigBirdPreTrainedModel,
                  load_tf_weights_in_big_bird,
              )

       try:
              if not is_flax_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_flax_big_bird import (
                  FlaxBigBirdForCausalLM,
                  FlaxBigBirdForMaskedLM,
                  FlaxBigBirdForMultipleChoice,
                  FlaxBigBirdForPreTraining,
                  FlaxBigBirdForQuestionAnswering,
                  FlaxBigBirdForSequenceClassification,
                  FlaxBigBirdForTokenClassification,
                  FlaxBigBirdModel,
                  FlaxBigBirdPreTrainedModel,
              )

else:
       import sys

       A_						:     Dict			  =				_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)







# this script builds a small sample spm file tests/fixtures/test_sentencepiece_no_bos.model, with features needed by pegasus

# 1. pip install sentencepiece
#
# 2. wget https://raw.githubusercontent.com/google/sentencepiece/master/data/botchan.txt

# 3. build
import sentencepiece as spm

# pegasus:
# 1. no bos
# 2. eos_id is 1
# 3. unk_id is 2
# build a sample spm file accordingly
spm.SentencePieceTrainer.train(
    '--input=botchan.txt --model_prefix=test_sentencepiece_no_bos --bos_id=-1 --unk_id=2  --eos_id=1  --vocab_size=1000'
)

# 4. now update the fixture
# mv test_sentencepiece_no_bos.model ../../tests/fixtures/




