code: def prepare_dependencies(self):
          
          attrs = [
              ('bsources', 'bsourcesigs'),
              ('bdepends', 'bdependsigs'),
              ('bimplicit', 'bimplicitsigs'),
          ]
          for (nattr, sattr) in attrs:
              try:
                  strings = getattr(self, nattr)
                  nodeinfos = getattr(self, sattr)
              except AttributeError:
                  continue
              if strings is None or nodeinfos is None:
                  continue
              nodes = []
              for s, ni in zip(strings, nodeinfos):
                  if not isinstance(s, SCons.Node.Node):
                      s = ni.str_to_node(s)
                  nodes.append(s)
              setattr(self, nattr, nodes)
docs: Prepares a FileBuildInfo object for explaining what changed
  
          The bsources, bdepends and bimplicit lists have all been
          stored on disk as paths relative to the top-level SConstruct
          directory.  Convert the strings to actual Nodes (for use by the
          --debug=explain code and --implicit-cache).