docs: def parse_url(url):
      """ Parse the given url and update it with environment value if required.
  
      :param basestring url:
      :rtype: basestring
      :raise: KeyError if environment variable is needed but not found.
      """
      # the url has to be a unicode by pystache's design, but the unicode concept has been rewamped in py3
      # we use a try except to make the code compatible with py2 and py3
      try:
          url = unicode(url)
      except NameError:
          url = url
  
      parsed = pystache.parse(url)
      # pylint: disable=protected-access
      variables = (element.key for element in parsed._parse_tree if isinstance(element, _EscapeNode))
      return pystache.render(url, {variable: os.environ[variable] for variable in variables})