text: """Contains the logic for all of the default options for Flake8."""
  from flake8 import defaults
  from flake8.main import debug
  from flake8.main import vcs
  
  
  def register_default_options(option_manager):
      """Register the default options on our OptionManager.
  
      The default options include:
  
      - ``-v``/``--verbose``
      - ``-q``/``--quiet``
      - ``--count``
      - ``--diff``
      - ``--exclude``
      - ``--filename``
      - ``--format``
      - ``--hang-closing``
      - ``--ignore``
      - ``--extend-ignore``
      - ``--per-file-ignores``
      - ``--max-line-length``
      - ``--max-doc-length``
      - ``--select``
      - ``--disable-noqa``
      - ``--show-source``
      - ``--statistics``
      - ``--enable-extensions``
      - ``--exit-zero``
      - ``-j``/``--jobs``
      - ``--output-file``
      - ``--tee``
      - ``--append-config``
      - ``--config``
      - ``--isolated``
      - ``--benchmark``
      - ``--bug-report``
      """
      add_option = option_manager.add_option
  
      # pep8 options
      add_option(
          "-v",
          "--verbose",
          default=0,
          action="count",
          parse_from_config=True,
          help="Print more information about what is happening in flake8."
          " This option is repeatable and will increase verbosity each "
          "time it is repeated.",
      )
      add_option(
          "-q",
          "--quiet",
          default=0,
          action="count",
          parse_from_config=True,
          help="Report only file names, or nothing. This option is repeatable.",
      )
  
      add_option(
          "--count",
          action="store_true",
          parse_from_config=True,
          help="Print total number of errors and warnings to standard error and"
          " set the exit code to 1 if total is not empty.",
      )
  
      add_option(
          "--diff",
          action="store_true",
          help="Report changes only within line number ranges in the unified "
          "diff provided on standard in by the user.",
      )
  
      add_option(
          "--exclude",
          metavar="patterns",
          default=",".join(defaults.EXCLUDE),
          comma_separated_list=True,
          parse_from_config=True,
          normalize_paths=True,
          help="Comma-separated list of files or directories to exclude."
          " (Default: %default)",
      )
  
      add_option(
          "--filename",
          metavar="patterns",
          default="*.py",
          parse_from_config=True,
          comma_separated_list=True,
          help="Only check for filenames matching the patterns in this comma-"
          "separated list. (Default: %default)",
      )
  
      add_option(
          "--stdin-display-name",
          default="stdin",
          help="The name used when reporting errors from code passed via stdin."
          " This is useful for editors piping the file contents to flake8."
          " (Default: %default)",
      )
  
      # TODO(sigmavirus24): Figure out --first/--repeat
  
      # NOTE(sigmavirus24): We can't use choices for this option since users can
      # freely provide a format string and that will break if we restrict their
      # choices.
      add_option(
          "--format",
          metavar="format",
          default="default",
          parse_from_config=True,
          help="Format errors according to the chosen formatter.",
      )
  
      add_option(
          "--hang-closing",
          action="store_true",
          parse_from_config=True,
          help="Hang closing bracket instead of matching indentation of opening"
          " bracket's line.",
      )
  
      add_option(
          "--ignore",
          metavar="errors",
          default=",".join(defaults.IGNORE),
          parse_from_config=True,
          comma_separated_list=True,
          help="Comma-separated list of errors and warnings to ignore (or skip)."
          " For example, ``--ignore=E4,E51,W234``. (Default: %default)",
      )
  
      add_option(
          "--extend-ignore",
          metavar="errors",
          default="",
          parse_from_config=True,
          comma_separated_list=True,
          help="Comma-separated list of errors and warnings to add to the list"
          " of ignored ones. For example, ``--extend-ignore=E4,E51,W234``.",
      )
  
      add_option(
          "--per-file-ignores",
          default="",
          parse_from_config=True,
          help="A pairing of filenames and violation codes that defines which "
          "violations to ignore in a particular file. The filenames can be "
          "specified in a manner similar to the ``--exclude`` option and the "
          "violations work similarly to the ``--ignore`` and ``--select`` "
          "options.",
      )
  
      add_option(
          "--max-line-length",
          type="int",
          metavar="n",
          default=defaults.MAX_LINE_LENGTH,
          parse_from_config=True,
          help="Maximum allowed line length for the entirety of this run. "
          "(Default: %default)",
      )
  
      add_option(
          "--max-doc-length",
          type="int",
          metavar="n",
          default=None,
          parse_from_config=True,
          help="Maximum allowed doc line length for the entirety of this run. "
          "(Default: %default)",
      )
  
      add_option(
          "--select",
          metavar="errors",
          default=",".join(defaults.SELECT),
          parse_from_config=True,
          comma_separated_list=True,
          help="Comma-separated list of errors and warnings to enable."
          " For example, ``--select=E4,E51,W234``. (Default: %default)",
      )
  
      add_option(
          "--disable-noqa",
          default=False,
          parse_from_config=True,
          action="store_true",
          help='Disable the effect of "# noqa". This will report errors on '
          'lines with "# noqa" at the end.',
      )
  
      # TODO(sigmavirus24): Decide what to do about --show-pep8
  
      add_option(
          "--show-source",
          action="store_true",
          parse_from_config=True,
          help="Show the source generate each error or warning.",
      )
  
      add_option(
          "--statistics",
          action="store_true",
          parse_from_config=True,
          help="Count errors and warnings.",
      )
  
      # Flake8 options
      add_option(
          "--enable-extensions",
          default="",
          parse_from_config=True,
          comma_separated_list=True,
          type="string",
          help="Enable plugins and extensions that are otherwise disabled "
          "by default",
      )
  
      add_option(
          "--exit-zero",
          action="store_true",
          help='Exit with status code "0" even if there are errors.',
      )
  
      add_option(
          "--install-hook",
          action="callback",
          type="choice",
          choices=vcs.choices(),
          callback=vcs.install,
          help="Install a hook that is run prior to a commit for the supported "
          "version control system.",
      )
  
      add_option(
          "-j",
          "--jobs",
          type="string",
          default="auto",
          parse_from_config=True,
          help="Number of subprocesses to use to run checks in parallel. "
          'This is ignored on Windows. The default, "auto", will '
          "auto-detect the number of processors available to use."
          " (Default: %default)",
      )
  
      add_option(
          "--output-file",
          default=None,
          type="string",
          parse_from_config=True,
          # callback=callbacks.redirect_stdout,
          help="Redirect report to a file.",
      )
  
      add_option(
          "--tee",
          default=False,
          parse_from_config=True,
          action="store_true",
          help="Write to stdout and output-file.",
      )
  
      # Config file options
  
      add_option(
          "--append-config",
          action="append",
          help="Provide extra config files to parse in addition to the files "
          "found by Flake8 by default. These files are the last ones read "
          "and so they take the highest precedence when multiple files "
          "provide the same option.",
      )
  
      add_option(
          "--config",
          default=None,
          help="Path to the config file that will be the authoritative config "
          "source. This will cause Flake8 to ignore all other "
          "configuration files.",
      )
  
      add_option(
          "--isolated",
          default=False,
          action="store_true",
          help="Ignore all configuration files.",
      )
  
      # Benchmarking
  
      add_option(
          "--benchmark",
          default=False,
          action="store_true",
          help="Print benchmark information about this run of Flake8",
      )
  
      # Debugging
  
      add_option(
          "--bug-report",
          action="callback",
          callback=debug.print_information,
          callback_kwargs={"option_manager": option_manager},
          help="Print information necessary when preparing a bug report",
      )
  