class_docstr: The CLI runner provides functionality to invoke a Click command line
  script for unittesting purposes in a isolated environment.  This only
  works in single-threaded systems without any concurrency as it changes the
  global interpreter state.
  
  :param charset: the character set for the input and output data.
  :param env: a dictionary with environment variables for overriding.
  :param echo_stdin: if this is set to `True`, then reading from stdin writes
                     to stdout.  This is useful for showing examples in
                     some circumstances.  Note that regular prompts
                     will automatically echo the input.
  :param mix_stderr: if this is set to `False`, then stdout and stderr are
                     preserved as independent streams.  This is useful for
                     Unix-philosophy apps that have predictable stdout and
                     noisy stderr, such that each may be measured
                     independently
class_docstr_tok: ["The","CLI","runner","provides","functionality","to","invoke","a","Click","command","line","script","for","unittesting","purposes","in","a","isolated","environment",".","This","only","works","in","single-threaded","systems","without","any","concurrency","as","it","changes","the","global","interpreter","state",".",":","param","charset",":","the","character","set","for","the","input","and","output","data",".",":","param","env",":","a","dictionary","with","environment","variables","for","overriding",".",":","param","echo_stdin",":","if","this","is","set","to","`","True","`",",","then","reading","from","stdin","writes","to","stdout",".","This","is","useful","for","showing","examples","in","some","circumstances",".","Note","that","regular","prompts","will","automatically","echo","the","input",".",":","param","mix_stderr",":","if","this","is","set","to","`","False","`",",","then","stdout","and","stderr","are","preserved","as","independent","streams",".","This","is","useful","for","Unix-philosophy","apps","that","have","predictable","stdout","and","noisy","stderr",",","such","that","each","may","be","measured","independently"]
docstr: Given a command object it will return the default program name
  for it.  The default is the `name` attribute or ``"root"`` if not
  set.
code: def get_default_prog_name(self, cli: "BaseCommand") -> str:
      """Given a command object it will return the default program name
      for it.  The default is the `name` attribute or ``"root"`` if not
      set.
      """
      return cli.name or "root"
  
imports: import contextlib
  import io
  import os
  import shlex
  import shutil
  import sys
  import tempfile
  import typing
  from types import TracebackType
  from .None import formatting
  from .None import termui
  from .None import utils
  from ._compat import _find_binary_reader
label_desc: Use image node_id 2 for calling the CliRunner obj's underlying member method code with example usage: obj.get_default_prog_name(cli) and returns: unknown