
'''simple docstring'''







from __future__ import annotations
def 					snake_case_		(				__SCREAMING_SNAKE_CASE					: float      ,      __SCREAMING_SNAKE_CASE					: float      ,      __SCREAMING_SNAKE_CASE					: float      ,      ):



						"""simple docstring"""





						if (electron_conc, hole_conc, intrinsic_conc).count(0							) != 1:
												raise ValueError('''You cannot supply more or less than 2 values'''							)
						elif electron_conc < 0:
												raise ValueError('''Electron concentration cannot be negative in a semiconductor'''							)
						elif hole_conc < 0:
												raise ValueError('''Hole concentration cannot be negative in a semiconductor'''							)
						elif intrinsic_conc < 0:
												raise ValueError(
												    '''Intrinsic concentration cannot be negative in a semiconductor'''							)
						elif electron_conc == 0:
												return (
												    "electron_conc",
												    intrinsic_conc**2 / hole_conc,
												)
						elif hole_conc == 0:
												return (
												    "hole_conc",
												    intrinsic_conc**2 / electron_conc,
												)
						elif intrinsic_conc == 0:
												return (
												    "intrinsic_conc",
												    (electron_conc * hole_conc) ** 0.5,
												)
						else:
												return (-1, -1)


if __name__ == "__main__":
							import doctest

							doctest.testmod()








'''simple docstring'''






import argparse

import torch

from transformers import RemBertConfig, RemBertModel, load_tf_weights_in_rembert
from transformers.utils import logging


logging.set_verbosity_info()




def     snake_case_					(     lowerCAmelCase_       ,   lowerCAmelCase_       ,   lowerCAmelCase_		)->		Union[str, Any]:





       '''simple docstring'''


       _UpperCAmelCase  :						int			     = RemBertConfig.from_json_file(lowerCAmelCase_		)
       print("""Building PyTorch model from configuration: {}""".format(str(lowerCAmelCase_		)		)		)
       _UpperCAmelCase  :						Any			     = RemBertModel(lowerCAmelCase_		)

       # Load weights from tf checkpoint
       load_tf_weights_in_rembert(lowerCAmelCase_       ,   lowerCAmelCase_       ,   lowerCAmelCase_		)

       # Save pytorch-model
       print("""Save PyTorch model to {}""".format(lowerCAmelCase_		)		)
       torch.save(model.state_dict()       ,   lowerCAmelCase_		)


if __name__ == "__main__":
   A_							: Optional[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(
       """--rembert_config_file""",
       default=None,
       type=str,
       required=True,
       help=(
           """The config json file corresponding to the pre-trained RemBERT 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."""
   )
   A_							: Any						 =	parser.parse_args()
   convert_rembert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.rembert_config_file, args.pytorch_dump_path)



