code: def find_roots( disconnected, index, shared ):
      
      log.warn( '%s disconnected objects in %s total objects', len(disconnected), len(index))
      natural_roots = [x for x in disconnected if x.get('refs') and not x.get('parents')]
      log.warn( '%s objects with no parents at all' ,len(natural_roots))
      for natural_root in natural_roots:
          recurse_module(
              natural_root, index, shared
          )
          yield natural_root
      rest = [x for x in disconnected if x.get( 'totsize' ) is None]
      un_found = {
          'type': 'module',
          'name': '<disconnected objects>',
          'children': rest,
          'parents': [ ],
          'size': 0,
          'totsize': sum([x['size'] for x in rest],0),
          'address': new_address( index ),
      }
      index[un_found['address']] = un_found
      yield un_found
docs: Find appropriate "root" objects from which to recurse the hierarchies
      
      Will generate a synthetic root for anything which doesn't have any parents...