code: def parse(url):
      
      result = urlparse.urlparse(nstr(url))
  
      path = result.scheme + '://' + result.netloc
      if result.path:
          path += result.path
  
      query = {}
  
      # extract the python information from the query
      if result.query:
          url_query = urlparse.parse_qs(result.query)
          for key, value in url_query.items():
              if type(value) == list and len(value) == 1:
                  value = value[0]
  
              query[key] = value
  
      return path, query, result.fragment
docs: Parses out the information for this url, returning its components
      expanded out to Python objects.
      
      :param      url | <str>
      
      :return     (<str> path, <dict> query, <str> fragment)