code: def make_banner(
      text: typing.Optional[str] = None,
      context: typing.Optional[Context] = None,
      banner_template: typing.Optional[str] = None,
      context_format: ContextFormat = "full",
  ) -> str:
      
      banner_text = text or speak()
      banner_template = banner_template or BANNER_TEMPLATE
      ctx = format_context(context or {}, formatter=context_format)
      out = banner_template.format(version=sys.version, text=banner_text, context=ctx)
      return out
docs: Generates a full banner with version info, the given text, and a
      formatted list of context variables.