docs: def parse_args():
      """
      Parse the command line arguments
      """
      parser = argparse.ArgumentParser(description="Decrypt YubiKey OTPs using YubiHSM",
                                       add_help=True,
                                       formatter_class=argparse.ArgumentDefaultsHelpFormatter
                                       )
      parser.add_argument('-D', '--device',
                          dest='device',
                          default=default_device,
                          required=False,
                          help='YubiHSM device'
                          )
      parser.add_argument('-B', '--aead-dir',
                          dest='aead_dir',
                          default=default_dir,
                          required=False,
                          help='AEAD directory - base directory of your AEADs',
                          metavar='DIR',
                          )
      parser.add_argument('-U', '--serve-url',
                          dest='serve_url',
                          default=default_serve_url,
                          required=False,
                          help='Base URL for decrypt web service',
                          metavar='URL',
                          )
      parser.add_argument('-S', '--stats-url',
                          dest='stats_url',
                          required=False,
                          help='URL where statistics can be retrieved',
                          metavar='URL',
                          )
      parser.add_argument('-v', '--verbose',
                          dest='verbose',
                          action='store_true', default=False,
                          help='Enable verbose operation'
                          )
      parser.add_argument('-d', '--daemon',
                          dest='daemon',
                          action='store_true', default=False,
                          help='Run as daemon'
                          )
      parser.add_argument('--debug',
                          dest='debug',
                          action='store_true', default=False,
                          help='Enable debug operation'
                          )
      parser.add_argument('--port',
                          dest='listen_port',
                          type=int, default=default_port,
                          required=False,
                          help='Port to listen on',
                          metavar='PORT',
                          )
      parser.add_argument('--addr',
                          dest='listen_addr',
                          default=default_listen_addr,
                          required=False,
                          help='Address to bind to',
                          metavar='ADDR',
                          )
      parser.add_argument('--reqtimeout',
                          dest='reqtimeout',
                          type=int, default=default_reqtimeout,
                          required=False,
                          help='Request timeout in seconds',
                          metavar='SECONDS',
                          )
      parser.add_argument('--key-handle', '--key-handles',
                          dest='key_handles',
                          nargs='+',
                          required=True,
                          help='Key handle(s) to use to decrypt AEADs on the YHSM.',
                          metavar='HANDLE',
                          )
      parser.add_argument('--pid-file',
                          dest='pid_file',
                          default=default_pid_file,
                          required=False,
                          help='PID file',
                          metavar='FILENAME',
                          )
      parser.add_argument('--db-url',
                          dest='db_url',
                          default=default_db_url,
                          required=False,
                          help='The database url to read the AEADs from, you can '
                          'also use env:YOURENVVAR to instead read the URL from '
                          'the YOURENVVAR environment variable.',
                          metavar='DBURL',
                          )
      parser.add_argument('--proxy', '--proxies',
                          dest='proxies',
                          nargs='+',
                          required=False,
                          default=[],
                          help='IP addresses of proxies where the IP in '
                          'X-Forwarded-For should be used for logging purposes.',
                          metavar='IP',
                          )
  
      return parser.parse_args()