


'''simple docstring'''



import os
import shutil
import unittest
from unittest.mock import patch

from transformers.testing_utils import CaptureStd, is_pt_tf_cross_test, require_torch



class       a							(						unittest.TestCase			):


     """simple docstring"""






     @patch('''sys.argv'''				,					['''fakeprogrampath''', '''env''']     )
     def 					lowerCamelCase__					(							self	:						Any     )		->				Any:
          # test transformers-cli env
          import transformers.commands.transformers_cli

          with CaptureStd() as cs:
               transformers.commands.transformers_cli.main()
          self.assertIn('''Python version'''				,					cs.out     )
          self.assertIn('''Platform'''				,					cs.out     )
          self.assertIn('''Using distributed or parallel set-up in script?'''				,					cs.out     )

     @is_pt_tf_cross_test
     @patch(
         '''sys.argv'''				,					['''fakeprogrampath''', '''pt-to-tf''', '''--model-name''', '''hf-internal-testing/tiny-random-gptj''', '''--no-pr''']     )
     def 					lowerCamelCase__					(							self	:						Optional[int]     )		->				Union[str, Any]:
          import transformers.commands.transformers_cli

          shutil.rmtree('''/tmp/hf-internal-testing/tiny-random-gptj'''				,					ignore_errors=snake_case     )  # cleans potential past runs
          transformers.commands.transformers_cli.main()

          # The original repo has no TF weights -- if they exist, they were created by the CLI
          self.assertTrue(os.path.exists('''/tmp/hf-internal-testing/tiny-random-gptj/tf_model.h5'''     )     )

     @require_torch
     @patch('''sys.argv'''				,					['''fakeprogrampath''', '''download''', '''hf-internal-testing/tiny-random-gptj''', '''--cache-dir''', '''/tmp''']     )
     def 					lowerCamelCase__					(							self	:						Optional[int]     )		->				str:
          import transformers.commands.transformers_cli

          # # remove any previously downloaded model to start clean
          shutil.rmtree('''/tmp/models--hf-internal-testing--tiny-random-gptj'''				,					ignore_errors=snake_case     )

          # run the command
          transformers.commands.transformers_cli.main()

          # check if the model files are downloaded correctly on /tmp/models--hf-internal-testing--tiny-random-gptj
          self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--tiny-random-gptj/blobs'''     )     )
          self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--tiny-random-gptj/refs'''     )     )
          self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--tiny-random-gptj/snapshots'''     )     )






     @require_torch
     @patch(
         '''sys.argv'''				,					[
             '''fakeprogrampath''',
             '''download''',
             '''hf-internal-testing/test_dynamic_model_with_tokenizer''',
             '''--trust-remote-code''',
             '''--cache-dir''',
             '''/tmp''',
         ]				,					)
     def 					lowerCamelCase__					(							self	:						Union[str, Any]     )		->				Dict:
          import transformers.commands.transformers_cli

          # # remove any previously downloaded model to start clean
          shutil.rmtree('''/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer'''				,					ignore_errors=snake_case     )

          # run the command
          transformers.commands.transformers_cli.main()

          # check if the model files are downloaded correctly on /tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer
          self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/blobs'''     )     )
          self.assertTrue(os.path.exists('''/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/refs'''     )     )
          self.assertTrue(
              os.path.exists('''/tmp/models--hf-internal-testing--test_dynamic_model_with_tokenizer/snapshots'''     )     )



'''simple docstring'''



from typing import TYPE_CHECKING

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


__UpperCAmelCase     :Union[str, Any]												=  {
    "configuration_mpnet": ["MPNET_PRETRAINED_CONFIG_ARCHIVE_MAP", "MPNetConfig"],
    "tokenization_mpnet": ["MPNetTokenizer"],
}

try:
      if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __UpperCAmelCase     :Optional[int]												=  ["MPNetTokenizerFast"]

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __UpperCAmelCase     :Union[str, Any]												=  [
          "MPNET_PRETRAINED_MODEL_ARCHIVE_LIST",
          "MPNetForMaskedLM",
          "MPNetForMultipleChoice",
          "MPNetForQuestionAnswering",
          "MPNetForSequenceClassification",
          "MPNetForTokenClassification",
          "MPNetLayer",
          "MPNetModel",
          "MPNetPreTrainedModel",
      ]

try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __UpperCAmelCase     :Any												=  [
          "TF_MPNET_PRETRAINED_MODEL_ARCHIVE_LIST",
          "TFMPNetEmbeddings",
          "TFMPNetForMaskedLM",
          "TFMPNetForMultipleChoice",
          "TFMPNetForQuestionAnswering",
          "TFMPNetForSequenceClassification",
          "TFMPNetForTokenClassification",
          "TFMPNetMainLayer",
          "TFMPNetModel",
          "TFMPNetPreTrainedModel",
      ]


if TYPE_CHECKING:
      from .configuration_mpnet import MPNET_PRETRAINED_CONFIG_ARCHIVE_MAP, MPNetConfig
      from .tokenization_mpnet import MPNetTokenizer

      try:
            if not is_tokenizers_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .tokenization_mpnet_fast import MPNetTokenizerFast

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_mpnet import (
                MPNET_PRETRAINED_MODEL_ARCHIVE_LIST,
                MPNetForMaskedLM,
                MPNetForMultipleChoice,
                MPNetForQuestionAnswering,
                MPNetForSequenceClassification,
                MPNetForTokenClassification,
                MPNetLayer,
                MPNetModel,
                MPNetPreTrainedModel,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_mpnet import (
                TF_MPNET_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFMPNetEmbeddings,
                TFMPNetForMaskedLM,
                TFMPNetForMultipleChoice,
                TFMPNetForQuestionAnswering,
                TFMPNetForSequenceClassification,
                TFMPNetForTokenClassification,
                TFMPNetMainLayer,
                TFMPNetModel,
                TFMPNetPreTrainedModel,
            )

else:
      import sys

      __UpperCAmelCase     :Optional[Any]												=  _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)