code: def register_project(self, path, ensure_uniqueness=False):
          
  
          if ensure_uniqueness:
              if self.get_project_nodes(path):
                  raise foundations.exceptions.ProgrammingError("{0} | '{1}' project is already registered!".format(
                      self.__class__.__name__, path))
  
          LOGGER.debug("> Registering '{0}' project.".format(path))
  
          row = self.root_node.children_count()
          self.beginInsertRows(self.get_node_index(self.root_node, ), row, row)
          project_node = ProjectNode(name=os.path.basename(path),
                                     path=path,
                                     parent=self.root_node)
          self.endInsertRows()
  
          self.project_registered.emit(project_node)
  
          return project_node
docs: Registers given path in the Model as a project.
  
          :param path: Project path to register.
          :type path: unicode
          :param ensure_uniqueness: Ensure registrar uniqueness.
          :type ensure_uniqueness: bool
          :return: ProjectNode.
          :rtype: ProjectNode