code: def _url_collapse_path(path):
      
      # Similar to os.path.split(os.path.normpath(path)) but specific to URL
      # path semantics rather than local operating system semantics.
      path_parts = path.split('/')
      head_parts = []
      for part in path_parts[:-1]:
          if part == '..':
              head_parts.pop() # IndexError if more '..' than prior parts
          elif part and part != '.':
              head_parts.append( part )
      if path_parts:
          tail_part = path_parts.pop()
          if tail_part:
              if tail_part == '..':
                  head_parts.pop()
                  tail_part = ''
              elif tail_part == '.':
                  tail_part = ''
      else:
          tail_part = ''
  
      splitpath = ('/' + '/'.join(head_parts), tail_part)
      collapsed_path = "/".join(splitpath)
  
      return collapsed_path
docs: Given a URL path, remove extra '/'s and '.' path elements and collapse
      any '..' references and returns a colllapsed path.
  
      Implements something akin to RFC-2396 5.2 step 6 to parse relative paths.
      The utility of this function is limited to is_cgi method and helps
      preventing some security attacks.
  
      Returns: A tuple of (head, tail) where tail is everything after the final /
      and head is everything before it.  Head will always start with a '/' and,
      if it contains anything else, never have a trailing '/'.
  
      Raises: IndexError if too many '..' occur within the path.