


"""simple docstring"""
import argparse

import torch

from transformers import FunnelBaseModel, FunnelConfig, FunnelModel, load_tf_weights_in_funnel
from transformers.utils import logging


logging.set_verbosity_info()







def   _A			( _SCREAMING_SNAKE_CASE			,	_SCREAMING_SNAKE_CASE			,	_SCREAMING_SNAKE_CASE			,	_SCREAMING_SNAKE_CASE			)      ->			Dict:
							snake_case_          =						FunnelConfig.from_json_file(lowercase__			)
							print(f"""Building PyTorch model from configuration: {config}"""			)
							snake_case_          =						FunnelBaseModel(lowercase__			) if base_model else FunnelModel(lowercase__			)

							# Load weights from tf checkpoint
							load_tf_weights_in_funnel(lowercase__			,	lowercase__			,	lowercase__			)

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


if __name__ == "__main__":
				__SCREAMING_SNAKE_CASE							:      Any						=      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(
				    '--config_file',
				    default=None,
				    type=str,
				    required=True,
				    help='The config json file corresponding to the pre-trained model. \nThis 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(
				    '--base_model', action='store_true', help='Whether you want just the base model (no decoder) or not.'
				)
				__SCREAMING_SNAKE_CASE							:      List[Any]						=      parser.parse_args()
				convert_tf_checkpoint_to_pytorch(
				    args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path, args.base_model
				)







"""simple docstring"""
def   _a			( _SCREAMING_SNAKE_CASE			,	_SCREAMING_SNAKE_CASE = 0			)      ->			list:
							snake_case_          =						length or len(_SCREAMING_SNAKE_CASE			)
							snake_case_          =						False
							for i in range(length - 1			):
														if list_data[i] > list_data[i + 1]:
																					snake_case_    ,  snake_case_          =						list_data[i + 1], list_data[i]
																					snake_case_          =						True

							return list_data if not swapped else bubble_sort(_SCREAMING_SNAKE_CASE			,	length - 1			)


if __name__ == "__main__":
				import doctest

				doctest.testmod()



