'''simple docstring'''
from __future__ import annotations

import unittest

from transformers import is_tf_available, is_torch_available
from transformers.testing_utils import DUMMY_UNKNOWN_IDENTIFIER, SMALL_MODEL_IDENTIFIER, is_pt_tf_cross_test, slow


if is_tf_available():
      from transformers import (
          AutoConfig,
          BertConfig,
          GPTaConfig,
          TaConfig,
          TFAutoModel,
          TFAutoModelForCausalLM,
          TFAutoModelForMaskedLM,
          TFAutoModelForPreTraining,
          TFAutoModelForQuestionAnswering,
          TFAutoModelForSeqaSeqLM,
          TFAutoModelForSequenceClassification,
          TFAutoModelWithLMHead,
          TFBertForMaskedLM,
          TFBertForPreTraining,
          TFBertForQuestionAnswering,
          TFBertForSequenceClassification,
          TFBertModel,
          TFGPTaLMHeadModel,
          TFRobertaForMaskedLM,
          TFTaForConditionalGeneration,
      )
      from transformers.models.bert.modeling_tf_bert import TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST
      from transformers.models.gpta.modeling_tf_gpta import TF_GPT2_PRETRAINED_MODEL_ARCHIVE_LIST
      from transformers.models.ta.modeling_tf_ta import TF_T5_PRETRAINED_MODEL_ARCHIVE_LIST

if is_torch_available():
      from transformers import (
          AutoModel,
          AutoModelForCausalLM,
          AutoModelForMaskedLM,
          AutoModelForPreTraining,
          AutoModelForQuestionAnswering,
          AutoModelForSeqaSeqLM,
          AutoModelForSequenceClassification,
          AutoModelWithLMHead,
          BertForMaskedLM,
          BertForPreTraining,
          BertForQuestionAnswering,
          BertForSequenceClassification,
          BertModel,
          GPTaLMHeadModel,
          RobertaForMaskedLM,
          TaForConditionalGeneration,
      )







@is_pt_tf_cross_test
class lowerCamelCase							(	unittest.TestCase					):




  '''simple docstring'''



  @slow
  def  lowerCAmelCase__ (      self			:       Any  )				->Optional[int]:
        # for model_name in TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
        for model_name in ["bert-base-uncased"]:
              UpperCAmelCase_            =  AutoConfig.from_pretrained(UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  TFAutoModel.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  AutoModel.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )






  @slow
  def  lowerCAmelCase__ (      self			:       List[str]  )				->Tuple:
        # for model_name in TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
        for model_name in ["bert-base-uncased"]:
              UpperCAmelCase_            =  AutoConfig.from_pretrained(UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  TFAutoModelForPreTraining.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  AutoModelForPreTraining.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )






  @slow
  def  lowerCAmelCase__ (      self			:       Dict  )				->Union[str, Any]:
        for model_name in TF_GPT2_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
              UpperCAmelCase_            =  AutoConfig.from_pretrained(UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  TFAutoModelForCausalLM.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              UpperCAmelCase_      ,		UpperCAmelCase_            =  TFAutoModelForCausalLM.from_pretrained(
                  UpperCAmelCase__  ,							output_loading_info=UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  AutoModelForCausalLM.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              UpperCAmelCase_      ,		UpperCAmelCase_            =  AutoModelForCausalLM.from_pretrained(
                  UpperCAmelCase__  ,							output_loading_info=UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )






  @slow
  def  lowerCAmelCase__ (      self			:       Union[str, Any]  )				->Optional[int]:
        for model_name in TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
              UpperCAmelCase_            =  AutoConfig.from_pretrained(UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  TFAutoModelWithLMHead.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  AutoModelWithLMHead.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )






  @slow
  def  lowerCAmelCase__ (      self			:       List[str]  )				->Union[str, Any]:
        for model_name in TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
              UpperCAmelCase_            =  AutoConfig.from_pretrained(UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  TFAutoModelForMaskedLM.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              UpperCAmelCase_      ,		UpperCAmelCase_            =  TFAutoModelForMaskedLM.from_pretrained(
                  UpperCAmelCase__  ,							output_loading_info=UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  AutoModelForMaskedLM.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              UpperCAmelCase_      ,		UpperCAmelCase_            =  AutoModelForMaskedLM.from_pretrained(
                  UpperCAmelCase__  ,							output_loading_info=UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )






  @slow
  def  lowerCAmelCase__ (      self			:       Any  )				->List[str]:
        for model_name in TF_T5_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
              UpperCAmelCase_            =  AutoConfig.from_pretrained(UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  TFAutoModelForSeqaSeqLM.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              UpperCAmelCase_      ,		UpperCAmelCase_            =  TFAutoModelForSeqaSeqLM.from_pretrained(
                  UpperCAmelCase__  ,							output_loading_info=UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  AutoModelForSeqaSeqLM.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              UpperCAmelCase_      ,		UpperCAmelCase_            =  AutoModelForSeqaSeqLM.from_pretrained(
                  UpperCAmelCase__  ,							output_loading_info=UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )






  @slow
  def  lowerCAmelCase__ (      self			:       Dict  )				->List[Any]:
        # for model_name in TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
        for model_name in ["bert-base-uncased"]:
              UpperCAmelCase_            =  AutoConfig.from_pretrained(UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  TFAutoModelForSequenceClassification.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  AutoModelForSequenceClassification.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )






  @slow
  def  lowerCAmelCase__ (      self			:       List[str]  )				->Optional[int]:
        # for model_name in TF_BERT_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
        for model_name in ["bert-base-uncased"]:
              UpperCAmelCase_            =  AutoConfig.from_pretrained(UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  TFAutoModelForQuestionAnswering.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )

              UpperCAmelCase_            =  AutoModelForQuestionAnswering.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
              self.assertIsNotNone(UpperCAmelCase__  )
              self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )






  def  lowerCAmelCase__ (      self			:       int  )				->Any:
        UpperCAmelCase_            =  TFAutoModelWithLMHead.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
        self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )
        self.assertEqual(model.num_parameters()  ,							1_4410  )
        self.assertEqual(model.num_parameters(only_trainable=UpperCAmelCase__  )  ,							1_4410  )

        UpperCAmelCase_            =  AutoModelWithLMHead.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
        self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )
        self.assertEqual(model.num_parameters()  ,							1_4410  )
        self.assertEqual(model.num_parameters(only_trainable=UpperCAmelCase__  )  ,							1_4410  )






  def  lowerCAmelCase__ (      self			:       Any  )				->Optional[Any]:
        UpperCAmelCase_            =  TFAutoModelWithLMHead.from_pretrained(UpperCAmelCase__  ,							from_pt=UpperCAmelCase__  )
        self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )
        self.assertEqual(model.num_parameters()  ,							1_4410  )
        self.assertEqual(model.num_parameters(only_trainable=UpperCAmelCase__  )  ,							1_4410  )

        UpperCAmelCase_            =  AutoModelWithLMHead.from_pretrained(UpperCAmelCase__  ,							from_tf=UpperCAmelCase__  )
        self.assertIsInstance(UpperCAmelCase__  ,							UpperCAmelCase__  )
        self.assertEqual(model.num_parameters()  ,							1_4410  )
        self.assertEqual(model.num_parameters(only_trainable=UpperCAmelCase__  )  ,							1_4410  )






'''simple docstring'''
import os

import pytest

from datasets import (
    get_dataset_config_info,
    get_dataset_config_names,
    get_dataset_infos,
    get_dataset_split_names,
    inspect_dataset,
    inspect_metric,
)


lowercase__  :      Tuple        =					pytest.mark.integration



@pytest.mark.parametrize('''path'''							,    ['''paws''', '''csv''']					)
def  __lowerCamelCase       (      _UpperCamelCase  :  Optional[Any]							,    _UpperCamelCase  :  int					):


      '''simple docstring'''


      inspect_dataset(_UpperCamelCase							,    _UpperCamelCase					)
      UpperCAmelCase_            =  path + '''.py'''
      assert script_name in os.listdir(_UpperCamelCase					)
      assert "__pycache__" not in os.listdir(_UpperCamelCase					)



@pytest.mark.filterwarnings('''ignore:inspect_metric is deprecated:FutureWarning'''					)
@pytest.mark.filterwarnings('''ignore:metric_module_factory is deprecated:FutureWarning'''					)
@pytest.mark.parametrize('''path'''							,    ['''accuracy''']					)
def  __lowerCamelCase       (      _UpperCamelCase  :  Tuple							,    _UpperCamelCase  :  Optional[Any]					):


      '''simple docstring'''


      inspect_metric(_UpperCamelCase							,    _UpperCamelCase					)
      UpperCAmelCase_            =  path + '''.py'''
      assert script_name in os.listdir(_UpperCamelCase					)
      assert "__pycache__" not in os.listdir(_UpperCamelCase					)



@pytest.mark.parametrize(
    '''path, config_name, expected_splits'''							,    [
        ('''squad''', '''plain_text''', ['''train''', '''validation''']),
        ('''dalle-mini/wit''', '''dalle-mini--wit''', ['''train''']),
        ('''paws''', '''labeled_final''', ['''train''', '''test''', '''validation''']),
    ]							,    )
def  __lowerCamelCase       (      _UpperCamelCase  :  Optional[Any]							,    _UpperCamelCase  :  Any							,    _UpperCamelCase  :  int					):


      '''simple docstring'''


      UpperCAmelCase_            =  get_dataset_config_info(_UpperCamelCase							,    config_name=_UpperCamelCase					)
      assert info.config_name == config_name
      assert list(info.splits.keys()					) == expected_splits



@pytest.mark.parametrize(
    '''path, config_name, expected_exception'''							,    [
        ('''paws''', None, ValueError),
    ]							,    )
def  __lowerCamelCase       (      _UpperCamelCase  :  Any							,    _UpperCamelCase  :  List[str]							,    _UpperCamelCase  :  Union[str, Any]					):


      '''simple docstring'''


      with pytest.raises(_UpperCamelCase					):
            get_dataset_config_info(_UpperCamelCase							,    config_name=_UpperCamelCase					)



@pytest.mark.parametrize(
    '''path, expected'''							,    [
        ('''squad''', '''plain_text'''),
        ('''acronym_identification''', '''default'''),
        ('''lhoestq/squad''', '''plain_text'''),
        ('''lhoestq/test''', '''default'''),
        ('''lhoestq/demo1''', '''lhoestq--demo1'''),
        ('''dalle-mini/wit''', '''dalle-mini--wit'''),
    ]							,    )
def  __lowerCamelCase       (      _UpperCamelCase  :  Any							,    _UpperCamelCase  :  Optional[Any]					):


      '''simple docstring'''


      UpperCAmelCase_            =  get_dataset_config_names(_UpperCamelCase					)
      assert expected in config_names



@pytest.mark.parametrize(
    '''path, expected_configs, expected_splits_in_first_config'''							,    [
        ('''squad''', ['''plain_text'''], ['''train''', '''validation''']),
        ('''dalle-mini/wit''', ['''dalle-mini--wit'''], ['''train''']),
        ('''paws''', ['''labeled_final''', '''labeled_swap''', '''unlabeled_final'''], ['''train''', '''test''', '''validation''']),
    ]							,    )
def  __lowerCamelCase       (      _UpperCamelCase  :  str							,    _UpperCamelCase  :  Optional[int]							,    _UpperCamelCase  :  int					):


      '''simple docstring'''


      UpperCAmelCase_            =  get_dataset_infos(_UpperCamelCase					)
      assert list(infos.keys()					) == expected_configs
      UpperCAmelCase_            =  expected_configs[0]
      assert expected_config in infos
      UpperCAmelCase_            =  infos[expected_config]
      assert info.config_name == expected_config
      assert list(info.splits.keys()					) == expected_splits_in_first_config



@pytest.mark.parametrize(
    '''path, expected_config, expected_splits'''							,    [
        ('''squad''', '''plain_text''', ['''train''', '''validation''']),
        ('''dalle-mini/wit''', '''dalle-mini--wit''', ['''train''']),
        ('''paws''', '''labeled_final''', ['''train''', '''test''', '''validation''']),
    ]							,    )
def  __lowerCamelCase       (      _UpperCamelCase  :  str							,    _UpperCamelCase  :  int							,    _UpperCamelCase  :  str					):


      '''simple docstring'''


      UpperCAmelCase_            =  get_dataset_infos(_UpperCamelCase					)
      assert expected_config in infos
      UpperCAmelCase_            =  infos[expected_config]
      assert info.config_name == expected_config
      assert list(info.splits.keys()					) == expected_splits





@pytest.mark.parametrize(
    '''path, config_name, expected_exception'''							,    [
        ('''paws''', None, ValueError),
    ]							,    )
def  __lowerCamelCase       (      _UpperCamelCase  :  Any							,    _UpperCamelCase  :  Optional[int]							,    _UpperCamelCase  :  Optional[int]					):


      '''simple docstring'''


      with pytest.raises(_UpperCamelCase					):
            get_dataset_split_names(_UpperCamelCase							,    config_name=_UpperCamelCase					)





