def _report_new_cert(config, cert_path, fullchain_path):
 expiry = crypto_util.notAfter(cert_path).date()
 reporter_util = zope.component.getUtility(interfaces.IReporter)
 if fullchain_path:
  and_chain = 'and chain have'
  path = fullchain_path
 else:
  and_chain = 'has '
  path = cert_path
 verbswitch = (' with the "certonly" option' if (config.verb == 'run') else '')
 msg = 'Congratulations! Your certificate {0} been saved at {1}. Your cert will expire on {2}. To obtain a new or tweaked version of this certificate in the future, simply run {3} again{4}. To non-interactively renew *all* of your certificates, run "{3} renew"'.format(and_chain, path, expiry, cli.cli_command, verbswitch)
 reporter_util.add_message(msg, reporter_util.MEDIUM_PRIORITY)

def _report_new_cert ( config , cert_path , fullchain_path ) : expiry = crypto_util . notAfter ( cert_path ) . date ( ) reporter_util = zope . component . getUtility ( interfaces . IReporter ) if fullchain_path : and_chain = 'and chain have' path = fullchain_path else : and_chain = 'has ' path = cert_path verbswitch = ( ' with the "certonly" option' if ( config . verb == 'run' ) else '' ) msg = 'Congratulations! Your certificate {0} been saved at {1}. Your cert will expire on {2}. To obtain a new or tweaked version of this certificate in the future, simply run {3} again{4}. To non-interactively renew *all* of your certificates, run "{3} renew"' . format ( and_chain , path , expiry , cli . cli_command , verbswitch ) reporter_util . add_message ( msg , reporter_util . MEDIUM_PRIORITY )
reports the creation of a new certificate to the user .