content: from nnunetv2.model_sharing.model_download import download_and_install_from_url
  from nnunetv2.model_sharing.model_export import export_pretrained_model
  from nnunetv2.model_sharing.model_import import install_model_from_zip_file
  
  
  def print_license_warning():
      print('')
      print('######################################################')
      print('!!!!!!!!!!!!!!!!!!!!!!!!WARNING!!!!!!!!!!!!!!!!!!!!!!!')
      print('######################################################')
      print("Using the pretrained model weights is subject to the license of the dataset they were trained on. Some "
            "allow commercial use, others don't. It is your responsibility to make sure you use them appropriately! Use "
            "nnUNet_print_pretrained_model_info(task_name) to see a summary of the dataset and where to find its license!")
      print('######################################################')
      print('')
  
  
  def download_by_url():
      import argparse
      parser = argparse.ArgumentParser(
          description="Use this to download pretrained models. This script is intended to download models via url only. "
                      "CAREFUL: This script will overwrite "
                      "existing models (if they share the same trainer class and plans as "
                      "the pretrained model.")
      parser.add_argument("url", type=str, help='URL of the pretrained model')
      args = parser.parse_args()
      url = args.url
      download_and_install_from_url(url)
  
  
  def install_from_zip_entry_point():
      import argparse
      parser = argparse.ArgumentParser(
          description="Use this to install a zip file containing a pretrained model.")
      parser.add_argument("zip", type=str, help='zip file')
      args = parser.parse_args()
      zip = args.zip
      install_model_from_zip_file(zip)
  
  
  def export_pretrained_model_entry():
      import argparse
      parser = argparse.ArgumentParser(
          description="Use this to export a trained model as a zip file.")
      parser.add_argument('-d', type=str, required=True, help='Dataset name or id')
      parser.add_argument('-o', type=str, required=True, help='Output file name')
      parser.add_argument('-c', nargs='+', type=str, required=False,
                          default=('3d_lowres', '3d_fullres', '2d', '3d_cascade_fullres'),
                          help="List of configuration names")
      parser.add_argument('-tr', required=False, type=str, default='nnUNetTrainer', help='Trainer class')
      parser.add_argument('-p', required=False, type=str, default='nnUNetPlans', help='plans identifier')
      parser.add_argument('-f', required=False, nargs='+', type=str, default=(0, 1, 2, 3, 4), help='list of fold ids')
      parser.add_argument('-chk', required=False, nargs='+', type=str, default=('checkpoint_final.pth', ),
                          help='Lis tof checkpoint names to export. Default: checkpoint_final.pth')
      parser.add_argument('--not_strict', action='store_false', default=False, required=False, help='Set this to allow missing folds and/or configurations')
      parser.add_argument('--exp_cv_preds', action='store_true', required=False, help='Set this to export the cross-validation predictions as well')
      args = parser.parse_args()
  
      export_pretrained_model(dataset_name_or_id=args.d, output_file=args.o, configurations=args.c, trainer=args.tr,
                              plans_identifier=args.p, folds=args.f, strict=not args.not_strict, save_checkpoints=args.chk,
                              export_crossval_predictions=args.exp_cv_preds)
  