code: def do_setup() -> int:
      """Do main VCS-independent setup function for installing Versioneer."""
      root = get_root()
      try:
          cfg = get_config_from_root(root)
      except (
          OSError,
          configparser.NoSectionError,
          configparser.NoOptionError,
      ) as e:
          if isinstance(e, (OSError, configparser.NoSectionError)):
              print(
                  "Adding sample versioneer config to setup.cfg",
                  file=sys.stderr,
              )
              with open(os.path.join(root, "setup.cfg"), "a") as f:
                  f.write(SAMPLE_CONFIG)
          print(CONFIG_ERROR, file=sys.stderr)
          return 1
  
      print(" creating %s" % cfg.versionfile_source)
      with open(cfg.versionfile_source, "w") as f:
          LONG = LONG_VERSION_PY[cfg.VCS]
          f.write(
              LONG
              % {
                  "DOLLAR": "$",
                  "STYLE": cfg.style,
                  "TAG_PREFIX": cfg.tag_prefix,
                  "PARENTDIR_PREFIX": cfg.parentdir_prefix,
                  "VERSIONFILE_SOURCE": cfg.versionfile_source,
              }
          )
  
      ipy = os.path.join(
          os.path.dirname(cfg.versionfile_source), "__init__.py"
      )
      maybe_ipy: Optional[str] = ipy
      if os.path.exists(ipy):
          try:
              with open(ipy, "r") as f:
                  old = f.read()
          except OSError:
              old = ""
          module = os.path.splitext(
              os.path.basename(cfg.versionfile_source)
          )[0]
          snippet = INIT_PY_SNIPPET.format(module)
          if OLD_SNIPPET in old:
              print(" replacing boilerplate in %s" % ipy)
              with open(ipy, "w") as f:
                  f.write(old.replace(OLD_SNIPPET, snippet))
          elif snippet not in old:
              print(" appending to %s" % ipy)
              with open(ipy, "a") as f:
                  f.write(snippet)
          else:
              print(" %s unmodified" % ipy)
      else:
          print(" %s doesn't exist, ok" % ipy)
          maybe_ipy = None
  
      # Make VCS-specific changes. For git, this means creating/changing
      # .gitattributes to mark _version.py for export-subst keyword
      # substitution.
      do_vcs_install(cfg.versionfile_source, maybe_ipy)
      return 0
  
imports: import configparser
  import errno
  import json
  import os
  import re
  import subprocess
  import sys
  from pathlib import Path
  from typing import Any, Callable, cast, Dict, List, Optional, Tuple, Union
  from typing import NoReturn
  import functools
label_desc: Use image node_id 26 for calling a global function with example usage: do_setup() and returns: int, int