



import argparse

import torch

from transformers import RoFormerConfig, RoFormerForMaskedLM, load_tf_weights_in_roformer
from transformers.utils import logging


logging.set_verbosity_info()



def  _lowerCAmelCase     (_lowerCAmelCase ,						_lowerCAmelCase ,						_lowerCAmelCase):
					# Initialise PyTorch model
					UpperCamelCase_			= RoFormerConfig.from_json_file(_lowerCAmelCase)
					print(f"""Building PyTorch model from configuration: {config}""")
					UpperCamelCase_			= RoFormerForMaskedLM(_lowerCAmelCase)

					# Load weights from tf checkpoint
					load_tf_weights_in_roformer(_lowerCAmelCase ,						_lowerCAmelCase ,						_lowerCAmelCase)

					# Save pytorch-model
					print(f"""Save PyTorch model to {pytorch_dump_path}""")
					torch.save(model.state_dict() ,						_lowerCAmelCase ,						_use_new_zipfile_serialization=_lowerCAmelCase)


if __name__ == "__main__":
	UpperCAmelCase :				Optional[int]							=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(
	    """--bert_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."""
	)
	UpperCAmelCase :				List[str]							=parser.parse_args()
	convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.bert_config_file, args.pytorch_dump_path)


from __future__ import annotations


def  A			(   lowercase       ,			lowercase					)  ->    int:
		'''simple docstring'''

		UpperCamelCase      ,    UpperCamelCase            =	0, len(lowercase					) - 1
		while start_ind <= end_ind:
				if array[start_ind] == search_item:
						return start_ind
				elif array[end_ind] == search_item:
						return end_ind
				else:
						start_ind += 1
						end_ind -= 1
    # returns -1 if search_item is not found in array
		return -1


if __name__ == "__main__":
					print(double_linear_search(list(range(100)), 40))
