

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 _UpperCamelCase							(							__A   ):
   '''simple docstring'''







   def __init__(			self							: List[Any]      ,      a							: Optional[NestedDataStructureLike[PathLike]] = None      ,      a							: Optional[NamedSplit] = None      ,      a							: Optional[Features] = None      ,      a							: str = None      ,      a							: bool = False      ,      a							: bool = False      ,      a							: Optional[int] = None      ,      **a							: Union[str, Any]      ,      )							->       Any:

    """simple docstring"""

    SCREAMING_SNAKE_CASE   :      int				     =       path_or_paths
    SCREAMING_SNAKE_CASE   :      Optional[Any]				     =       split if split or isinstance(a      ,      a	) else "train"
    SCREAMING_SNAKE_CASE   :      int				     =       features
    SCREAMING_SNAKE_CASE   :      int				     =       cache_dir
    SCREAMING_SNAKE_CASE   :      Optional[Any]				     =       keep_in_memory
    SCREAMING_SNAKE_CASE   :      Any				     =       streaming
    SCREAMING_SNAKE_CASE   :      Any				     =       num_proc
    SCREAMING_SNAKE_CASE   :      Union[str, Any]				     =       kwargs






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

    """simple docstring"""

    pass






class _UpperCamelCase							(							__A   ):
   '''simple docstring'''







   def __init__(			self							: int      ,      a							: Optional[Features] = None      ,      a							: str = None      ,      a							: bool = False      ,      a							: bool = False      ,      a							: Optional[int] = None      ,      **a							: str      ,      )							->       List[Any]:

    """simple docstring"""

    SCREAMING_SNAKE_CASE   :      List[str]				     =       features
    SCREAMING_SNAKE_CASE   :      Tuple				     =       cache_dir
    SCREAMING_SNAKE_CASE   :      Dict				     =       keep_in_memory
    SCREAMING_SNAKE_CASE   :      List[Any]				     =       streaming
    SCREAMING_SNAKE_CASE   :      int				     =       num_proc
    SCREAMING_SNAKE_CASE   :      Any				     =       kwargs






   @abstractmethod
   def 							__UpperCamelCase (			self							: List[Any]	)							->       Union[Dataset, IterableDataset]:

    """simple docstring"""

    pass


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


a_						     =    {
    'configuration_bridgetower': [
        'BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'BridgeTowerConfig',
        'BridgeTowerTextConfig',
        'BridgeTowerVisionConfig',
    ],
    'processing_bridgetower': ['BridgeTowerProcessor'],
}

try:
			if not is_vision_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			a_						     =    ['BridgeTowerImageProcessor']

try:
			if not is_torch_available():
						raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
			pass
else:
			a_						     =    [
			    'BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST',
			    'BridgeTowerForContrastiveLearning',
			    'BridgeTowerForImageAndTextRetrieval',
			    'BridgeTowerForMaskedLM',
			    'BridgeTowerModel',
			    'BridgeTowerPreTrainedModel',
			]


if TYPE_CHECKING:
			from .configuration_bridgetower import (
			    BRIDGETOWER_PRETRAINED_CONFIG_ARCHIVE_MAP,
			    BridgeTowerConfig,
			    BridgeTowerTextConfig,
			    BridgeTowerVisionConfig,
			)
			from .processing_bridgetower import BridgeTowerProcessor

			try:
						if not is_vision_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .image_processing_bridgetower import BridgeTowerImageProcessor

			try:
						if not is_torch_available():
									raise OptionalDependencyNotAvailable()
			except OptionalDependencyNotAvailable:
						pass
			else:
						from .modeling_bridgetower import (
						    BRIDGETOWER_PRETRAINED_MODEL_ARCHIVE_LIST,
						    BridgeTowerForContrastiveLearning,
						    BridgeTowerForImageAndTextRetrieval,
						    BridgeTowerForMaskedLM,
						    BridgeTowerModel,
						    BridgeTowerPreTrainedModel,
						)


else:
			import sys

			a_						     =    _LazyModule(__name__, globals()['__file__'], _import_structure)