code: def get_url(self):
          # type: () -> STRING_TYPE
          
  
          line = self.line
          try:
              parsed = URI.parse(line)
              line = parsed.to_string(escape_password=False, direct=False, strip_ref=True)
          except ValueError:
              pass
          else:
              self._parsed_url = parsed
              return line
          if self.vcs is not None and self.line.startswith("{0}+".format(self.vcs)):
              _, _, _parseable = self.line.partition("+")
              parsed = urllib_parse.urlparse(add_ssh_scheme_to_git_uri(_parseable))
              line, _ = split_ref_from_uri(line)
          else:
              parsed = urllib_parse.urlparse(add_ssh_scheme_to_git_uri(line))
          if "@" in self.line and parsed.scheme == "":
              name, _, url = self.line.partition("@")
              if self._name is None:
                  url = url.strip()
                  self._name = name.strip()
                  if is_valid_url(url):
                      self.is_direct_url = True
              line = url.strip()
              parsed = urllib_parse.urlparse(line)
              url_path = parsed.path
              if "@" in url_path:
                  url_path, _, _ = url_path.rpartition("@")
              parsed = parsed._replace(path=url_path)
          self._parsed_url = parsed
          return line
docs: Sets ``self.name`` if given a **PEP-508** style URL