class_docstr: To normalize the repo.
  
  Args:
      uri (`str`):
          The uri of the repo.
class_docstr_tok: ["To","normalize","the","repo",".","Args",":","uri","(","`","str","`",")",":","The","uri","of","the","repo","."]
docstr: Parse the uri.
  
  Returns:
      (`NamedTuple[str, str, str, str, str, str, str, str, str, str, dict]`)
          Return the `full_uri` and its components: `author`, `repo`, `ref`, `repo_type`, `norm_repo`, `module_name`,
          `class_name`, `scheme`, `netloc`, `query`.
docstr_tok: ["Parse","the","uri",".","Returns",":","(","`","NamedTuple","[","str",",","str",",","str",",","str",",","str",",","str",",","str",",","str",",","str",",","str",",","dict","]","`",")","Return","the","`","full_uri","`","and","its","components",":","`","author","`",",","`","repo","`",",","`","ref","`",",","`","repo_type","`",",","`","norm_repo","`",",","`","module_name","`",",","`","class_name","`",",","`","scheme","`",",","`","netloc","`",",","`","query","`","."]
code: def parse_uri(
      self,
  ) -> NamedTuple(
      "ParseResult",
      [
          ("full_uri", str),
          ("author", str),
          ("repo", str),
          ("ref", str),
          ("repo_type", str),
          ("norm_repo", str),
          ("module_name", str),
          ("class_name", str),
          ("scheme", str),
          ("netloc", str),
          ("query", dict),
      ],
  ):
      """
      Parse the uri.
  
      Returns:
          (`NamedTuple[str, str, str, str, str, str, str, str, str, str, dict]`)
              Return the `full_uri` and its components: `author`, `repo`, `ref`, `repo_type`, `norm_repo`, `module_name`,
              `class_name`, `scheme`, `netloc`, `query`.
      """
      full_uri = self.get_full_uri()
      result = urlparse(full_uri)
      author, repo = result.path.split("/")[1:]
      query = dict(parse_qsl(result.query))
      ref = query.pop("ref")
      norm_repo, module_name, class_name = self.get_name(repo)
      ParseResult = NamedTuple(
          "ParseResult",
          [
              ("full_uri", str),
              ("author", str),
              ("repo", str),
              ("ref", str),
              ("repo_type", str),
              ("norm_repo", str),
              ("module_name", str),
              ("class_name", str),
              ("scheme", str),
              ("netloc", str),
              ("query", dict),
              ("has_ns", bool),
          ],
      )
      return ParseResult(
          full_uri,
          author,
          repo,
          ref,
          result.fragment,
          norm_repo,
          module_name,
          class_name,
          result.scheme,
          result.netloc,
          query,
          self.has_ns,
      )
  
file_path: towhee/towhee/utils/repo_normalize.py
imports: import re
  from urllib.parse import urlparse, parse_qsl, urlsplit
  from typing import NamedTuple
label_desc: Use image node_id 2 for calling the RepoNormalize obj's underlying member method code with example usage: obj.parse_uri() and returns: ParseResult