code: def _morph(self):
          
  
          self.repositories = []
          self.srcdir = None
  
          self.entries = {}
          self.entries['.'] = self
          self.entries['..'] = self.dir
          self.cwd = self
          self.searched = 0
          self._sconsign = None
          self.variant_dirs = []
          self.changed_since_last_build = 3
          self._func_sconsign = 1
          self._func_exists = 2
          self._func_get_contents = 2
  
          # Don't just reset the executor, replace its action list,
          # because it might have some pre-or post-actions that need to
          # be preserved.
          #
          # But don't reset the executor if there is a non-null executor
          # attached already. The existing executor might have other
          # targets, in which case replacing the action list with a
          # Mkdir action is a big mistake.
          if not hasattr(self, 'executor'):
              self.builder = get_MkdirBuilder()
              self.get_executor().set_action_list(self.builder.action)
          else:
              # Prepend MkdirBuilder action to existing action list
              l = self.get_executor().action_list
              a = get_MkdirBuilder().action
              l.insert(0, a)
              self.get_executor().set_action_list(l)
docs: Turn a file system Node (either a freshly initialized directory
          object or a separate Entry object) into a proper directory object.
  
          Set up this directory's entries and hook it into the file
          system tree.  Specify that directories (this Node) don't use
          signatures for calculating whether they're current.