code: def _name_from_project_path(path, project, template):
      
      if isinstance(template, str):
          template = re.compile(template)
  
      match = template.match(path)
  
      if not match:
          raise ValueError(
              'path "%s" did not match expected pattern "%s"' % (path, template.pattern)
          )
  
      if project is not None:
          found_project = match.group("project")
          if found_project != project:
              raise ValueError(
                  "Project from client (%s) should agree with "
                  "project from resource(%s)." % (project, found_project)
              )
  
      return match.group("name")
docs: Validate a URI path and get the leaf object's name.
  
      :type path: str
      :param path: URI path containing the name.
  
      :type project: str
      :param project: (Optional) The project associated with the request. It is
                      included for validation purposes.  If passed as None,
                      disables validation.
  
      :type template: str
      :param template: Template regex describing the expected form of the path.
                       The regex must have two named groups, 'project' and
                       'name'.
  
      :rtype: str
      :returns: Name parsed from ``path``.
      :raises ValueError: if the ``path`` is ill-formed or if the project from
                          the ``path`` does not agree with the ``project``
                          passed in.