






"""simple docstring"""
from typing import TYPE_CHECKING

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


A_     :					int							=     {"configuration_vilt": ["VILT_PRETRAINED_CONFIG_ARCHIVE_MAP", "ViltConfig"]}

try:
      if not is_vision_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      A_     :					List[Any]							=     ["ViltFeatureExtractor"]
      A_     :					Any							=     ["ViltImageProcessor"]
      A_     :					Optional[int]							=     ["ViltProcessor"]

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      A_     :					int							=     [
          "VILT_PRETRAINED_MODEL_ARCHIVE_LIST",
          "ViltForImageAndTextRetrieval",
          "ViltForImagesAndTextClassification",
          "ViltForTokenClassification",
          "ViltForMaskedLM",
          "ViltForQuestionAnswering",
          "ViltLayer",
          "ViltModel",
          "ViltPreTrainedModel",
      ]


if TYPE_CHECKING:
      from .configuration_vilt import VILT_PRETRAINED_CONFIG_ARCHIVE_MAP, ViltConfig

      try:
            if not is_vision_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .feature_extraction_vilt import ViltFeatureExtractor
            from .image_processing_vilt import ViltImageProcessor
            from .processing_vilt import ViltProcessor

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_vilt import (
                VILT_PRETRAINED_MODEL_ARCHIVE_LIST,
                ViltForImageAndTextRetrieval,
                ViltForImagesAndTextClassification,
                ViltForMaskedLM,
                ViltForQuestionAnswering,
                ViltForTokenClassification,
                ViltLayer,
                ViltModel,
                ViltPreTrainedModel,
            )


else:
      import sys

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


"""simple docstring"""







from typing import TypeVar

from .arrow_dataset import Dataset, _split_by_node_map_style_dataset
from .iterable_dataset import IterableDataset, _split_by_node_iterable_dataset


_a	:	List[Any]=					TypeVar("DatasetType", Dataset, IterableDataset)
def     __UpperCAmelCase							(       UpperCAmelCase_       :							DatasetType     ,				UpperCAmelCase_       :							int     ,				UpperCAmelCase_       :							int    )				->     DatasetType:

	'''simple docstring'''





	if isinstance(UpperCAmelCase_     ,				UpperCAmelCase_    ):
		return _split_by_node_map_style_dataset(UpperCAmelCase_     ,				rank=UpperCAmelCase_     ,				world_size=UpperCAmelCase_    )
	else:
		return _split_by_node_iterable_dataset(UpperCAmelCase_     ,				rank=UpperCAmelCase_     ,				world_size=UpperCAmelCase_    )





