code: def names(self, filename, modulename):
      if modulename in self._ignore:
          return self._ignore[modulename]
  
      # haven't seen this one before, so see if the module name is
      # on the ignore list.
      if modulename in self._mods:  # Identical names, so ignore
          self._ignore[modulename] = 1
          return 1
  
      # check if the module is a proper submodule of something on
      # the ignore list
      for mod in self._mods:
          # Need to take some care since ignoring
          # "cmp" mustn't mean ignoring "cmpcache" but ignoring
          # "Spam" must also mean ignoring "Spam.Eggs".
          if modulename.startswith(mod + "."):
              self._ignore[modulename] = 1
              return 1
  
      # Now check that filename isn't in one of the directories
      if filename is None:
          # must be a built-in, so we must ignore
          self._ignore[modulename] = 1
          return 1
  
      # Ignore a file when it contains one of the ignorable paths
      for d in self._dirs:
          # The '+ os.sep' is to ensure that d is a parent directory,
          # as compared to cases like:
          #  d = "/usr/local"
          #  filename = "/usr/local.py"
          # or
          #  d = "/usr/local.py"
          #  filename = "/usr/local.py"
          if filename.startswith(d + os.sep):
              self._ignore[modulename] = 1
              return 1
  
      # Tried the different ways, so we don't ignore this module
      self._ignore[modulename] = 0
      return 0
  
imports: import io
  import linecache
  import os
  import sys
  import sysconfig
  import token
  import tokenize
  import inspect
  import gc
  import dis
  import pickle
  from time import monotonic
  import threading
label_desc: Use image node_id 2 for calling the _Ignore obj's underlying member method code with example usage: obj.names(filename, modulename) and returns: int, self, int, int, int, int