





'''simple docstring'''


from typing import TYPE_CHECKING

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


_SCREAMING_SNAKE_CASE     :   Tuple	 =							{'''configuration_fnet''': ['''FNET_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''FNetConfig''']}

try:
       if not is_sentencepiece_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _SCREAMING_SNAKE_CASE     :   Tuple	 =							['''FNetTokenizer''']

try:
       if not is_tokenizers_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _SCREAMING_SNAKE_CASE     :   str	 =							['''FNetTokenizerFast''']

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _SCREAMING_SNAKE_CASE     :   Any	 =							[
           '''FNET_PRETRAINED_MODEL_ARCHIVE_LIST''',
           '''FNetForMaskedLM''',
           '''FNetForMultipleChoice''',
           '''FNetForNextSentencePrediction''',
           '''FNetForPreTraining''',
           '''FNetForQuestionAnswering''',
           '''FNetForSequenceClassification''',
           '''FNetForTokenClassification''',
           '''FNetLayer''',
           '''FNetModel''',
           '''FNetPreTrainedModel''',
       ]


if TYPE_CHECKING:
       from .configuration_fnet import FNET_PRETRAINED_CONFIG_ARCHIVE_MAP, FNetConfig

       try:
              if not is_sentencepiece_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_fnet import FNetTokenizer

       try:
              if not is_tokenizers_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_fnet_fast import FNetTokenizerFast

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_fnet import (
                  FNET_PRETRAINED_MODEL_ARCHIVE_LIST,
                  FNetForMaskedLM,
                  FNetForMultipleChoice,
                  FNetForNextSentencePrediction,
                  FNetForPreTraining,
                  FNetForQuestionAnswering,
                  FNetForSequenceClassification,
                  FNetForTokenClassification,
                  FNetLayer,
                  FNetModel,
                  FNetPreTrainedModel,
              )


else:
       import sys

       _SCREAMING_SNAKE_CASE     :   Union[str, Any]	 =							_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)









'''simple docstring'''


def 	__a(SCREAMING_SNAKE_CASE_  :					str		,       SCREAMING_SNAKE_CASE_  :					bool = False    ):



    '''simple docstring'''





    if not isinstance(SCREAMING_SNAKE_CASE_		,       SCREAMING_SNAKE_CASE_    ):
        _lowerCAmelCase				=      F'''Expected string as input, found {type(SCREAMING_SNAKE_CASE_    )}'''
        raise ValueError(SCREAMING_SNAKE_CASE_    )
    if not isinstance(SCREAMING_SNAKE_CASE_		,       SCREAMING_SNAKE_CASE_    ):
        _lowerCAmelCase				=      F'''Expected boolean as use_pascal parameter, found {type(SCREAMING_SNAKE_CASE_    )}'''
        raise ValueError(SCREAMING_SNAKE_CASE_    )

    _lowerCAmelCase				=      input_str.split("_"    )

    _lowerCAmelCase				=      0 if use_pascal else 1

    _lowerCAmelCase				=      words[start_index:]

    _lowerCAmelCase				=      [word[0].upper() + word[1:] for word in words_to_capitalize]

    _lowerCAmelCase				=      "" if use_pascal else words[0]

    return "".join([initial_word, *capitalized_words]    )


if __name__ == "__main__":
       from doctest import testmod

       testmod()


