code: def scan_setup_py():
      """Validate the contents of setup.py against Versioneer's expectations."""
      found = set()
      setters = False
      errors = 0
      with open("setup.py", "r") as f:
          for line in f.readlines():
              if "import versioneer" in line:
                  found.add("import")
              if "versioneer.get_cmdclass()" in line:
                  found.add("cmdclass")
              if "versioneer.get_version()" in line:
                  found.add("get_version")
              if "versioneer.VCS" in line:
                  setters = True
              if "versioneer.versionfile_source" in line:
                  setters = True
      if len(found) != 3:
          print("")
          print(
              "Your setup.py appears to be missing some important items"
          )
          print(
              "(but I might be wrong). Please make sure it has something"
          )
          print("roughly like the following:")
          print("")
          print(" import versioneer")
          print(" setup( version=versioneer.get_version(),")
          print("        cmdclass=versioneer.get_cmdclass(),  ...)")
          print("")
          errors += 1
      if setters:
          print("You should remove lines like 'versioneer.VCS = ' and")
          print(
              "'versioneer.versionfile_source = ' . This configuration"
          )
          print(
              "now lives in setup.cfg, and should be removed from setup.py"
          )
          print("")
          errors += 1
      return errors
  
imports: import configparser
  import errno
  import functools
  import json
  import os
  import re
  import subprocess
  import sys
  from typing import Callable, Dict
label_desc: Use image node_id 27 for calling a global function with example usage: scan_setup_py() and returns: errors