class_docstr: Click option type for the ``--cert`` option. Allows either an
  existing file, the string ``'adhoc'``, or an import for a
  :class:`~ssl.SSLContext` object.
class_docstr_tok: ["Click","option","type","for","the","``","--","cert","``","option",".","Allows","either","an","existing","file",",","the","string","``","'adhoc","'","``",",","or","an","import","for","a",":","class",":","`","~ssl.SSLContext","`","object","."]
code: def convert(self, value, param, ctx):
      try:
          import ssl
      except ImportError:
          raise click.BadParameter(
              'Using "--cert" requires Python to be compiled with SSL support.',
              ctx,
              param,
          ) from None
  
      try:
          return self.path_type(value, param, ctx)
      except click.BadParameter:
          value = click.STRING(value, param, ctx).lower()
  
          if value == "adhoc":
              try:
                  import cryptography  # noqa: F401
              except ImportError:
                  raise click.BadParameter(
                      "Using ad-hoc certificates requires the cryptography library.",
                      ctx,
                      param,
                  ) from None
  
              return value
  
          obj = import_string(value, silent=True)
  
          if isinstance(obj, ssl.SSLContext):
              return obj
  
          raise
  
imports: from __future__ import annotations
  import ast
  import importlib.metadata
  import inspect
  import os
  import platform
  import re
  import sys
  import traceback
  import typing
  from functools import update_wrapper
  from operator import itemgetter
  import click
  from click.core import ParameterSource
  from werkzeug import run_simple
  from werkzeug.serving import is_running_from_reloader
  from werkzeug.utils import import_string
  from .globals import current_app
  from .helpers import get_debug_flag
  from .helpers import get_load_dotenv
label_desc: Use image node_id 2 for calling the CertParamType obj's underlying member method code with example usage: obj.convert(value, param, ctx) and returns: self, value, obj