本文整理汇总了Python中six.moves.urllib.parse.urlunsplit方法的典型用法代码示例。如果您正苦于以下问题:Python parse.urlunsplit方法的具体用法?Python parse.urlunsplit怎么用?Python parse.urlunsplit使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类six.moves.urllib.parse
的用法示例。
在下文中一共展示了parse.urlunsplit方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_current_ver
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def get_current_ver(cls, election_url):
election_url_parts = parse.urlsplit(cls._url_ensure_trailing_slash(election_url))
if 'Web02' in election_url:
cls.parsed_url = election_url_parts._replace(path="/".join(election_url_parts.path.split('/')[:3]) + "/current_ver.txt", fragment='')
election_url_parts = cls.parsed_url
else:
election_url_parts = election_url_parts._replace(path=election_url_parts.path + "current_ver.txt")
current_ver_url = parse.urlunsplit(election_url_parts)
current_ver_response = requests.get(current_ver_url)
try:
current_ver_response.raise_for_status()
except requests.exceptions.HTTPError:
return None
return current_ver_response.text
示例2: _get_subjurisdictions_url
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def _get_subjurisdictions_url(self):
"""
Returns a URL for the county detail page, which lists URLs for
each of the counties in a state. If original jurisdiction is
not a state, returns None.
"""
if self.level != 'state':
return None
elif 'Web01/' in self.url:
return None
else:
newpath = '/'.join(self.parsed_url.path.split('/')[:-1]) + '/select-county.html'
parts = (
self.parsed_url.scheme,
self.parsed_url.netloc,
newpath,
self.parsed_url.query,
self.parsed_url.fragment,
)
return parse.urlunsplit(parts)
示例3: _add_query_parameters
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def _add_query_parameters(base_url, name_value_pairs):
"""Add one query parameter to a base URL.
:type base_url: string
:param base_url: Base URL (may already contain query parameters)
:type name_value_pairs: list of (string, string) tuples.
:param name_value_pairs: Names and values of the query parameters to add
:rtype: string
:returns: URL with additional query strings appended.
"""
if len(name_value_pairs) == 0:
return base_url
scheme, netloc, path, query, frag = urlsplit(base_url)
query = parse_qsl(query)
query.extend(name_value_pairs)
return urlunsplit((scheme, netloc, path, urlencode(query), frag))
示例4: remove_trailing_version_from_href
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def remove_trailing_version_from_href(href):
"""Removes the api version from the href.
Given: 'http://www.masakari.com/ha/v1.1'
Returns: 'http://www.masakari.com/ha'
Given: 'http://www.masakari.com/v1.1'
Returns: 'http://www.masakari.com'
"""
parsed_url = urlparse.urlsplit(href)
url_parts = parsed_url.path.rsplit('/', 1)
# NOTE: this should match vX.X or vX
expression = re.compile(r'^v([0-9]+|[0-9]+\.[0-9]+)(/.*|$)')
if not expression.match(url_parts.pop()):
LOG.debug('href %s does not contain version', href)
raise ValueError(_('href %s does not contain version') % href)
new_path = url_join(*url_parts)
parsed_url = list(parsed_url)
parsed_url[2] = new_path
return urlparse.urlunsplit(parsed_url)
示例5: _build_url
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def _build_url(self, url):
"""Build a complete URL from a path by substituting in session parameters."""
components = urlsplit(url)
domain = components.netloc or self._settings['domain']
# Add port if a non-standard port was specified
if self._settings['port'] is not None and ':' not in domain:
domain = '{}:{}'.format(domain, self._settings['port'])
return urlunsplit([
components.scheme or self._settings['protocol'],
domain,
components.path,
components.query,
components.fragment
])
示例6: update_query_parameters
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def update_query_parameters(url, query_parameters):
"""
Return url with updated query parameters.
Arguments:
url (str): Original url whose query parameters need to be updated.
query_parameters (dict): A dictionary containing query parameters to be added to course selection url.
Returns:
(slug): slug identifier for the identity provider that can be used for identity verification of
users associated the enterprise customer of the given user.
"""
scheme, netloc, path, query_string, fragment = urlsplit(url)
url_params = parse_qs(query_string)
# Update url query parameters
url_params.update(query_parameters)
return urlunsplit(
(scheme, netloc, path, urlencode(sorted(url_params.items()), doseq=True), fragment),
)
示例7: get_root_uri
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def get_root_uri(uri):
"""Return root URI - strip query and fragment."""
chunks = urlsplit(uri)
return urlunsplit((chunks.scheme, chunks.netloc, chunks.path, '', ''))
示例8: replace_query_param
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def replace_query_param(url, key, val):
(scheme, netloc, path, query, fragment) = parse.urlsplit(six.text_type(url))
query_dict = parse.parse_qs(query, keep_blank_values=True)
query_dict[six.text_type(key)] = [six.text_type(val)]
query = parse.urlencode(sorted(list(query_dict.items())), doseq=True)
return parse.urlunsplit((scheme, netloc, path, query, fragment))
示例9: remove_query_param
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def remove_query_param(url, key):
(scheme, netloc, path, query, fragment) = parse.urlsplit(six.text_type(url))
query_dict = parse.parse_qs(query, keep_blank_values=True)
query_dict.pop(key, None)
query = parse.urlencode(sorted(list(query_dict.items())), doseq=True)
return parse.urlunsplit((scheme, netloc, path, query, fragment))
示例10: __attrs_post_init__
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def __attrs_post_init__(self):
# type: () -> None
if not self.uri:
if self.path:
self.uri = pip_shims.shims.path_to_url(self.path)
if self.uri is not None:
split = urllib_parse.urlsplit(self.uri)
scheme, rest = split[0], split[1:]
vcs_type = ""
if "+" in scheme:
vcs_type, scheme = scheme.split("+", 1)
vcs_type = "{0}+".format(vcs_type)
new_uri = urllib_parse.urlunsplit((scheme,) + rest[:-1] + ("",))
new_uri = "{0}{1}".format(vcs_type, new_uri)
self.uri = new_uri
示例11: _url_ensure_trailing_slash
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def _url_ensure_trailing_slash(cls, url):
url_parts = parse.urlsplit(url)
# Ensure the incoming URL ends in a slash.
if not url_parts.path.endswith("/"):
url_parts = url_parts._replace(path=url_parts.path + "/")
return parse.urlunsplit(url_parts)
示例12: get_latest_summary_url
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def get_latest_summary_url(cls, election_url):
election_url = cls._url_ensure_trailing_slash(election_url)
current_ver = cls.get_current_ver(election_url)
# If we don't have current_ver, we can't determine a summary URL.
if current_ver is None:
return None
if 'Web02' in election_url:
election_url_parts = parse.urlsplit(election_url)
election_url_parts = election_url_parts._replace(path="/".join(election_url_parts.path.split('/')[:3]), fragment='')
else:
election_url_parts = parse.urlsplit(election_url)
new_paths = [
election_url_parts.path + '/' + current_ver + "/json/en/summary.json",
election_url_parts.path + current_ver + "/Web01/en/summary.html",
election_url_parts.path + current_ver + "/en/summary.html",
]
for new_path in new_paths:
latest_summary_url_parts = election_url_parts._replace(path=new_path)
latest_summary_url = parse.urlunsplit(latest_summary_url_parts)
latest_summary_url_response = requests.get(latest_summary_url)
try:
latest_summary_url_response.raise_for_status()
except requests.exceptions.HTTPError:
continue
return latest_summary_url
# If none of the expected paths succeed, return None.
return None
示例13: remove_version_from_href
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def remove_version_from_href(href):
"""Removes the first api version from the href.
Given: 'http://manila.example.com/v1.1/123'
Returns: 'http://manila.example.com/123'
Given: 'http://www.manila.com/v1.1'
Returns: 'http://www.manila.com'
Given: 'http://manila.example.com/share/v1.1/123'
Returns: 'http://manila.example.com/share/123'
"""
parsed_url = parse.urlsplit(href)
url_parts = parsed_url.path.split('/')
# NOTE: this should match vX.X or vX
expression = re.compile(r'^v([0-9]+|[0-9]+\.[0-9]+)(/.*|$)')
for x in range(len(url_parts)):
if expression.match(url_parts[x]):
del url_parts[x]
break
new_path = '/'.join(url_parts)
if new_path == parsed_url.path:
msg = 'href %s does not contain version' % href
LOG.debug(msg)
raise ValueError(msg)
parsed_url = list(parsed_url)
parsed_url[2] = new_path
return parse.urlunsplit(parsed_url)
示例14: _update_link_prefix
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def _update_link_prefix(self, orig_url, prefix):
if not prefix:
return orig_url
url_parts = list(parse.urlsplit(orig_url))
prefix_parts = list(parse.urlsplit(prefix))
url_parts[0:2] = prefix_parts[0:2]
return parse.urlunsplit(url_parts)
示例15: _update_link_prefix
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import urlunsplit [as 别名]
def _update_link_prefix(self, orig_url, prefix):
if not prefix:
return orig_url
url_parts = list(urlparse.urlsplit(orig_url))
prefix_parts = list(urlparse.urlsplit(prefix))
url_parts[0:2] = prefix_parts[0:2]
url_parts[2] = prefix_parts[2] + url_parts[2]
return urlparse.urlunsplit(url_parts).rstrip('/')