





"""simple docstring"""




def 	a_    (							_lowercase       ):
						if not numbers:
												return 0

						if not isinstance(_lowercase	,						(list, tuple)       ) or not all(
						    isinstance(_lowercase	,						_lowercase       ) for number in numbers       ):
												raise ValueError('''numbers must be an iterable of integers'''       )

						_UpperCamelCase      : Union[str, Any]         =   numbers[0]

						for i in range(1	,						len(_lowercase       )       ):
												# update the maximum and minimum subarray products
												_UpperCamelCase      : Dict         =   numbers[i]
												if number < 0:
																		_UpperCamelCase       ,							_UpperCamelCase      : str         =   min_till_now, max_till_now
												_UpperCamelCase      : str         =   max(_lowercase	,						max_till_now * number       )
												_UpperCamelCase      : Tuple         =   min(_lowercase	,						min_till_now * number       )

												# update the maximum product found till now
												_UpperCamelCase      : str         =   max(_lowercase	,						_lowercase       )

						return max_prod










"""simple docstring"""




import argparse

import torch

from transformers import MobileBertConfig, MobileBertForPreTraining, load_tf_weights_in_mobilebert
from transformers.utils import logging


logging.set_verbosity_info()





def 	a_    (							_lowercase	,						_lowercase	,						_lowercase       ):
						# Initialise PyTorch model
						_UpperCamelCase      : List[Any]         =   MobileBertConfig.from_json_file(_lowercase       )
						print(F"""Building PyTorch model from configuration: {config}"""       )
						_UpperCamelCase      : List[str]         =   MobileBertForPreTraining(_lowercase       )
						# Load weights from tf checkpoint
						_UpperCamelCase      : Union[str, Any]         =   load_tf_weights_in_mobilebert(_lowercase	,						_lowercase	,						_lowercase       )
						# Save pytorch-model
						print(F"""Save PyTorch model to {pytorch_dump_path}"""       )
						torch.save(model.state_dict()	,						_lowercase       )


if __name__ == "__main__":
						UpperCamelCase_									=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(
						    """--mobilebert_config_file""",
						    default=None,
						    type=str,
						    required=True,
						    help=(
						        """The config json file corresponding to the pre-trained MobileBERT 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_									=parser.parse_args()
						convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.mobilebert_config_file, args.pytorch_dump_path)



