




'''simple docstring'''




def    _UpperCamelCase      (				SCREAMING_SNAKE_CASE__			:      int       ):
 '''simple docstring'''





 if not isinstance(SCREAMING_SNAKE_CASE__       ,						SCREAMING_SNAKE_CASE__       ):
  raise ValueError("""double_factorial() only accepts integral values"""       )
 if num < 0:
  raise ValueError("""double_factorial() not defined for negative values"""       )
 UpperCAmelCase__										=    1
 for i in range(SCREAMING_SNAKE_CASE__       ,						0       ,						-2       ):
  value *= i
 return value


if __name__ == "__main__":
    import doctest

    doctest.testmod()






'''simple docstring'''




import argparse

from transformers import TaConfig, TaForConditionalGeneration, load_tf_weights_in_ta
from transformers.utils import logging


logging.set_verbosity_info()

def    _UpperCamelCase      (				SCREAMING_SNAKE_CASE__			:      List[str]       ,						SCREAMING_SNAKE_CASE__			:      str       ,						SCREAMING_SNAKE_CASE__			:      Tuple       ):
 '''simple docstring'''





 UpperCAmelCase__										=    TaConfig.from_json_file(SCREAMING_SNAKE_CASE__       )
 print(F'''Building PyTorch model from configuration: {config}'''       )
 UpperCAmelCase__										=    TaForConditionalGeneration(SCREAMING_SNAKE_CASE__       )

 # Load weights from tf checkpoint
 load_tf_weights_in_ta(SCREAMING_SNAKE_CASE__       ,						SCREAMING_SNAKE_CASE__       ,						SCREAMING_SNAKE_CASE__       )

 # Save pytorch-model
 print(F'''Save PyTorch model to {pytorch_dump_path}'''       )
 model.save_pretrained(SCREAMING_SNAKE_CASE__       )


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(
        '--config_file',
        default=None,
        type=str,
        required=True,
        help=(
            'The config json file corresponding to the pre-trained T5 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.'
    )
    UpperCAmelCase_       				=      parser.parse_args()
    convert_tf_checkpoint_to_pytorch(args.tf_checkpoint_path, args.config_file, args.pytorch_dump_path)
