



import os
import tempfile
import unittest

from transformers.models.marian.convert_marian_tatoeba_to_pytorch import DEFAULT_REPO, TatoebaConverter
from transformers.testing_utils import slow
from transformers.utils import cached_property

@unittest.skipUnless(os.path.exists(__UpperCAmelCase    )      ,'''Tatoeba directory does not exist.'''    )
class     _A       (	unittest.TestCase    ):



       @cached_property
       def 		_lowerCamelCase			(		self							:     str):


           '''simple docstring'''

           __a						       =				tempfile.mkdtemp()
           return TatoebaConverter(save_dir=__SCREAMING_SNAKE_CASE)



       @slow
       def 		_lowerCamelCase			(		self							:     Dict):


           '''simple docstring'''

           self.resolver.convert_models(['''heb-eng'''])





       @slow
       def 		_lowerCamelCase			(		self							:     List[str]):


           '''simple docstring'''

           __a       ,   __a						       =				self.resolver.write_model_card('''opus-mt-he-en'''     ,		dry_run=__SCREAMING_SNAKE_CASE)
           assert mmeta["long_pair"] == "heb-eng"










import argparse

from transformers import BigBirdConfig, BigBirdForPreTraining, BigBirdForQuestionAnswering, load_tf_weights_in_big_bird
from transformers.utils import logging


logging.set_verbosity_info()





def      __snake_case	(			_UpperCAmelCase   , _UpperCAmelCase   , _UpperCAmelCase   , _UpperCAmelCase				):
    # Initialise PyTorch model
    __a						       =				BigBirdConfig.from_json_file(_UpperCAmelCase				)
    print(f'Building PyTorch model from configuration: {config}'				)

    if is_trivia_qa:
        __a						       =				BigBirdForQuestionAnswering(_UpperCAmelCase				)
    else:
        __a						       =				BigBirdForPreTraining(_UpperCAmelCase				)

    # Load weights from tf checkpoint
    load_tf_weights_in_big_bird(_UpperCAmelCase   , _UpperCAmelCase   , is_trivia_qa=_UpperCAmelCase				)

    # Save pytorch-model
    print(f'Save PyTorch model to {pytorch_dump_path}'				)
    model.save_pretrained(_UpperCAmelCase				)


if __name__ == "__main__":
 __snake_case						:Tuple      		=     argparse.ArgumentParser()
 # Required parameters
 parser.add_argument(
     '''--tf_checkpoint_path''', default=None, type=str, required=True, help='''Path to the TensorFlow checkpoint path.'''
 )
 parser.add_argument(
     '''--big_bird_config_file''',
     default=None,
     type=str,
     required=True,
     help=(
         '''The config json file corresponding to the pre-trained BERT model. \n'''
         '''This specifies the model architecture.'''
     ),
 )
 parser.add_argument(
     '''--pytorch_dump_path''', default=None, type=str, required=True, help='''Path to the output PyTorch model.'''
 )
 parser.add_argument(
     '''--is_trivia_qa''', action='''store_true''', help='''Whether to convert a model with a trivia_qa head.'''
 )
 __snake_case						:Any      		=     parser.parse_args()
 convert_tf_checkpoint_to_pytorch(
     args.tf_checkpoint_path, args.big_bird_config_file, args.pytorch_dump_path, args.is_trivia_qa
 )





