


'''simple docstring'''







from typing import TYPE_CHECKING

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


A__:    Tuple					    =       {
    '''configuration_mobilebert''': [
        '''MOBILEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''MobileBertConfig''',
        '''MobileBertOnnxConfig''',
    ],
    '''tokenization_mobilebert''': ['''MobileBertTokenizer'''],
}

try:
   if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   A__:    int					    =       ['''MobileBertTokenizerFast''']

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   A__:    int					    =       [
       '''MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''MobileBertForMaskedLM''',
       '''MobileBertForMultipleChoice''',
       '''MobileBertForNextSentencePrediction''',
       '''MobileBertForPreTraining''',
       '''MobileBertForQuestionAnswering''',
       '''MobileBertForSequenceClassification''',
       '''MobileBertForTokenClassification''',
       '''MobileBertLayer''',
       '''MobileBertModel''',
       '''MobileBertPreTrainedModel''',
       '''load_tf_weights_in_mobilebert''',
   ]

try:
   if not is_tf_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   A__:    Optional[int]					    =       [
       '''TF_MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
       '''TFMobileBertForMaskedLM''',
       '''TFMobileBertForMultipleChoice''',
       '''TFMobileBertForNextSentencePrediction''',
       '''TFMobileBertForPreTraining''',
       '''TFMobileBertForQuestionAnswering''',
       '''TFMobileBertForSequenceClassification''',
       '''TFMobileBertForTokenClassification''',
       '''TFMobileBertMainLayer''',
       '''TFMobileBertModel''',
       '''TFMobileBertPreTrainedModel''',
   ]


if TYPE_CHECKING:
   from .configuration_mobilebert import (
       MOBILEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP,
       MobileBertConfig,
       MobileBertOnnxConfig,
   )
   from .tokenization_mobilebert import MobileBertTokenizer

   try:
      if not is_tokenizers_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .tokenization_mobilebert_fast import MobileBertTokenizerFast

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_mobilebert import (
          MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
          MobileBertForMaskedLM,
          MobileBertForMultipleChoice,
          MobileBertForNextSentencePrediction,
          MobileBertForPreTraining,
          MobileBertForQuestionAnswering,
          MobileBertForSequenceClassification,
          MobileBertForTokenClassification,
          MobileBertLayer,
          MobileBertModel,
          MobileBertPreTrainedModel,
          load_tf_weights_in_mobilebert,
      )

   try:
      if not is_tf_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_tf_mobilebert import (
          TF_MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
          TFMobileBertForMaskedLM,
          TFMobileBertForMultipleChoice,
          TFMobileBertForNextSentencePrediction,
          TFMobileBertForPreTraining,
          TFMobileBertForQuestionAnswering,
          TFMobileBertForSequenceClassification,
          TFMobileBertForTokenClassification,
          TFMobileBertMainLayer,
          TFMobileBertModel,
          TFMobileBertPreTrainedModel,
      )

else:
   import sys

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






'''simple docstring'''
from typing import Callable, Optional

from .. import Features
from ..packaged_modules.generator.generator import Generator
from .abc import AbstractDatasetInputStream
class    lowercase	(							A__					):

		"""simple docstring"""

		def __init__(		self    ,   UpperCamelCase_    ,   UpperCamelCase_ = None    ,   UpperCamelCase_ = None    ,   UpperCamelCase_ = False    ,   UpperCamelCase_ = False    ,   UpperCamelCase_ = None    ,   UpperCamelCase_ = None    ,   **UpperCamelCase_    ,   ):

							'''simple docstring'''


							super().__init__(
							    features=UpperCamelCase_    ,   cache_dir=UpperCamelCase_    ,   keep_in_memory=UpperCamelCase_    ,   streaming=UpperCamelCase_    ,   num_proc=UpperCamelCase_    ,   **UpperCamelCase_    ,   )
							UpperCamelCase__   :Any												= Generator(
							    cache_dir=UpperCamelCase_    ,   features=UpperCamelCase_    ,   generator=UpperCamelCase_    ,   gen_kwargs=UpperCamelCase_    ,   **UpperCamelCase_    ,   )




		def     lowerCAmelCase__				(		self							):

							'''simple docstring'''


							if self.streaming:
												UpperCamelCase__   :Optional[Any]												= self.builder.as_streaming_dataset(split='''train'''							)
							# Build regular (map-style) dataset
							else:
												UpperCamelCase__   :Optional[int]												= None
												UpperCamelCase__   :int												= None
												UpperCamelCase__   :Any												= None
												UpperCamelCase__   :Any												= None

												self.builder.download_and_prepare(
												    download_config=UpperCamelCase_    ,   download_mode=UpperCamelCase_    ,   verification_mode=UpperCamelCase_    ,   base_path=UpperCamelCase_    ,   num_proc=self.num_proc    ,   )
												UpperCamelCase__   :List[Any]												= self.builder.as_dataset(
												    split='''train'''    ,   verification_mode=UpperCamelCase_    ,   in_memory=self.keep_in_memory							)
							return dataset