





from abc import ABC, abstractmethod
from typing import Optional, Union

from .. import Dataset, DatasetDict, Features, IterableDataset, IterableDatasetDict, NamedSplit
from ..utils.typing import NestedDataStructureLike, PathLike






class 							__lowercase    ( lowerCAmelCase__  ):







	'''simple docstring'''

	def __init__(self       ,_lowerCamelCase = None       ,_lowerCamelCase = None       ,_lowerCamelCase = None       ,_lowerCamelCase = None       ,_lowerCamelCase = False       ,_lowerCamelCase = False       ,_lowerCamelCase = None       ,**_lowerCamelCase       ,)							->							Optional[int]:







				'''simple docstring'''





				__lowercase			  =							path_or_paths
				__lowercase			  =							split if split or isinstance(_lowerCamelCase       ,_lowerCamelCase	) else '''train'''
				__lowercase			  =							features
				__lowercase			  =							cache_dir
				__lowercase			  =							keep_in_memory
				__lowercase			  =							streaming
				__lowercase			  =							num_proc
				__lowercase			  =							kwargs


	@abstractmethod
	def   _UpperCAmelCase       (self	)							->							Union[Dataset, DatasetDict, IterableDataset, IterableDatasetDict]:







				'''simple docstring'''





				pass






class 							__lowercase    ( lowerCAmelCase__  ):







	'''simple docstring'''

	def __init__(self       ,_lowerCamelCase = None       ,_lowerCamelCase = None       ,_lowerCamelCase = False       ,_lowerCamelCase = False       ,_lowerCamelCase = None       ,**_lowerCamelCase       ,)							->							List[Any]:







				'''simple docstring'''





				__lowercase			  =							features
				__lowercase			  =							cache_dir
				__lowercase			  =							keep_in_memory
				__lowercase			  =							streaming
				__lowercase			  =							num_proc
				__lowercase			  =							kwargs


	@abstractmethod
	def   _UpperCAmelCase       (self	)							->							Union[Dataset, IterableDataset]:







				'''simple docstring'''





				pass












'''simple docstring'''



from typing import TYPE_CHECKING

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


_SCREAMING_SNAKE_CASE   =      {
    '''configuration_blenderbot''': [
        '''BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BlenderbotConfig''',
        '''BlenderbotOnnxConfig''',
    ],
    '''tokenization_blenderbot''': ['''BlenderbotTokenizer'''],
}

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

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_SCREAMING_SNAKE_CASE   =      [
	    '''BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''BlenderbotForCausalLM''',
	    '''BlenderbotForConditionalGeneration''',
	    '''BlenderbotModel''',
	    '''BlenderbotPreTrainedModel''',
	]


try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_SCREAMING_SNAKE_CASE   =      [
	    '''TFBlenderbotForConditionalGeneration''',
	    '''TFBlenderbotModel''',
	    '''TFBlenderbotPreTrainedModel''',
	]


try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_SCREAMING_SNAKE_CASE   =      [
	    '''FlaxBlenderbotForConditionalGeneration''',
	    '''FlaxBlenderbotModel''',
	    '''FlaxBlenderbotPreTrainedModel''',
	]


if TYPE_CHECKING:
	from .configuration_blenderbot import (
	    BLENDERBOT_PRETRAINED_CONFIG_ARCHIVE_MAP,
	    BlenderbotConfig,
	    BlenderbotOnnxConfig,
	)
	from .tokenization_blenderbot import BlenderbotTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_blenderbot_fast import BlenderbotTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_blenderbot import (
		    BLENDERBOT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    BlenderbotForCausalLM,
		    BlenderbotForConditionalGeneration,
		    BlenderbotModel,
		    BlenderbotPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_blenderbot import (
		    TFBlenderbotForConditionalGeneration,
		    TFBlenderbotModel,
		    TFBlenderbotPreTrainedModel,
		)

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_blenderbot import (
		    FlaxBlenderbotForConditionalGeneration,
		    FlaxBlenderbotModel,
		    FlaxBlenderbotPreTrainedModel,
		)

else:
	import sys

	_SCREAMING_SNAKE_CASE   =      _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)





