




import importlib.metadata
import sys

from transformers.testing_utils import TestCasePlus
from transformers.utils.versions import require_version, require_version_core


lowercase__   :    List[str] 					=      importlib.metadata.version("numpy")
lowercase__   :    Tuple 					=      ".".join([str(x) for x in sys.version_info[:3]])




class     a__ (      UpperCamelCase__   ):







     def     lowerCAmelCase_       (			self				)						->					Optional[int]:



          '''simple docstring'''



          require_version_core("numpy<1000.4.5"				)
          require_version_core("numpy<1000.4"				)
          require_version_core("numpy<1000"				)

          # le
          require_version_core("numpy<=1000.4.5"				)
          require_version_core(F'''numpy<={numpy_ver}'''				)

          # eq
          require_version_core(F'''numpy=={numpy_ver}'''				)

          # ne
          require_version_core("numpy!=1000.4.5"				)

          # ge
          require_version_core("numpy>=1.0"				)
          require_version_core("numpy>=1.0.0"				)
          require_version_core(F'''numpy>={numpy_ver}'''				)

          # gt
          require_version_core("numpy>1.0.0"				)

          # mix
          require_version_core("numpy>1.0.0,<1000"				)

          # requirement w/o version
          require_version_core("numpy"				)

          # unmet requirements due to version conflict
          for req in ["numpy==1.0.0", "numpy>=1000.0.0", F'''numpy<{numpy_ver}''']:
               try:
                    require_version_core(A				)
               except ImportError as e:
                    self.assertIn(F'''{req} is required'''						,	str(A				)				)
                    self.assertIn("but found"						,	str(A				)				)

        # unmet requirements due to missing module
          for req in ["numpipypie>1", "numpipypie2"]:
               try:
                    require_version_core(A				)
               except importlib.metadata.PackageNotFoundError as e:
                    self.assertIn(F'''The \'{req}\' distribution was not found and is required by this application'''						,	str(A				)				)
                    self.assertIn("Try: pip install transformers -U"						,	str(A				)				)

        # bogus requirements formats:
        # 1. whole thing
          for req in ["numpy??1.0.0", "numpy1.0.0"]:
               try:
                    require_version_core(A				)
               except ValueError as e:
                    self.assertIn("requirement needs to be in the pip package format"						,	str(A				)				)
        # 2. only operators
          for req in ["numpy=1.0.0", "numpy == 1.00", "numpy<>1.0.0", "numpy><1.00", "numpy>>1.0.0"]:
               try:
                    require_version_core(A				)
               except ValueError as e:
                    self.assertIn("need one of "						,	str(A				)				)







     def     lowerCAmelCase_       (			self				)						->					Tuple:



          '''simple docstring'''



          require_version("python>=3.6.0"				)

          # not matching requirements
          for req in ["python>9.9.9", "python<3.0.0"]:
               try:
                    require_version_core(A				)
               except ImportError as e:
                    self.assertIn(F'''{req} is required'''						,	str(A				)				)
                    self.assertIn(F'''but found python=={python_ver}'''						,	str(A				)				)







from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowercase__   :    Union[str, Any] 					=      {"configuration_visual_bert": ["VISUAL_BERT_PRETRAINED_CONFIG_ARCHIVE_MAP", "VisualBertConfig"]}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   lowercase__   :    List[Any] 					=      [
       "VISUAL_BERT_PRETRAINED_MODEL_ARCHIVE_LIST",
       "VisualBertForMultipleChoice",
       "VisualBertForPreTraining",
       "VisualBertForQuestionAnswering",
       "VisualBertForRegionToPhraseAlignment",
       "VisualBertForVisualReasoning",
       "VisualBertLayer",
       "VisualBertModel",
       "VisualBertPreTrainedModel",
   ]


if TYPE_CHECKING:
   from .configuration_visual_bert import VISUAL_BERT_PRETRAINED_CONFIG_ARCHIVE_MAP, VisualBertConfig

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_visual_bert import (
          VISUAL_BERT_PRETRAINED_MODEL_ARCHIVE_LIST,
          VisualBertForMultipleChoice,
          VisualBertForPreTraining,
          VisualBertForQuestionAnswering,
          VisualBertForRegionToPhraseAlignment,
          VisualBertForVisualReasoning,
          VisualBertLayer,
          VisualBertModel,
          VisualBertPreTrainedModel,
      )


else:
   import sys

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

