
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    lowerCamelCase__				(				__lowerCAmelCase  :  List[str]    ,							__lowerCAmelCase  :  Optional[Any]    ,							__lowerCAmelCase  :  Optional[Any]    ,							__lowerCAmelCase  :  Any				):




			"""simple docstring"""


			lowerCAmelCase_						=	FunnelConfig.from_json_file(__lowerCAmelCase				)
			print(F"""Building PyTorch model from configuration: {config}"""				)
			lowerCAmelCase_						=	FunnelBaseModel(__lowerCAmelCase				) if base_model else FunnelModel(__lowerCAmelCase				)

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

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


if __name__ == "__main__":
			_A   =     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."
			)
			_A   =     parser.parse_args()
			convert_tf_checkpoint_to_pytorch(
			    args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path, args.base_model
			)





import math






def    lowerCamelCase__				(				__lowerCAmelCase  :  int				):




			"""simple docstring"""


			lowerCAmelCase_						=	0
			lowerCAmelCase_						=	0
			while num > 0:
						lowerCAmelCase_						=	num % 8
						lowerCAmelCase_						=	octal + (remainder * math.floor(math.pow(10    ,							__lowerCAmelCase				)				))
						counter += 1
						lowerCAmelCase_						=	math.floor(num / 8				)  # basically /= 8 without remainder if any
						# This formatting removes trailing '.0' from `octal`.
			return F"""0o{int(__lowerCAmelCase				)}"""






def    lowerCamelCase__				(				):




			"""simple docstring"""


			print("\n2 in octal is:"				)
			print(decimal_to_octal(2				)				)  # = 2
			print("\n8 in octal is:"				)
			print(decimal_to_octal(8				)				)  # = 10
			print("\n65 in octal is:"				)
			print(decimal_to_octal(65				)				)  # = 101
			print("\n216 in octal is:"				)
			print(decimal_to_octal(216				)				)  # = 330
			print("\n512 in octal is:"				)
			print(decimal_to_octal(512				)				)  # = 1000
			print("\n"				)


if __name__ == "__main__":
			main()



