本文整理汇总了Python中six.moves.urllib.parse.unquote方法的典型用法代码示例。如果您正苦于以下问题:Python parse.unquote方法的具体用法?Python parse.unquote怎么用?Python parse.unquote使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类six.moves.urllib.parse
的用法示例。
在下文中一共展示了parse.unquote方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: post_account
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def post_account(self, headers, query_string=None, data=None,
response_dict=None):
if query_string == 'bulk-delete':
resp = {'Response Status': '200 OK',
'Response Body': '',
'Number Deleted': 0,
'Number Not Found': 0}
if response_dict is not None:
response_dict['status'] = 200
if data:
for path in data.splitlines():
try:
__, container, obj = (unquote(path.decode('utf8'))
.split('/', 2))
del self.kvs[container][obj]
resp['Number Deleted'] += 1
except KeyError:
resp['Number Not Found'] += 1
return {}, json.dumps(resp).encode('utf-8')
if response_dict is not None:
response_dict['status'] = 204
return {}, None
示例2: deurlquote
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def deurlquote(d, plus=False):
"""
Decode a percent encoded string.
Args:
d(str): The percent encoded value to decode.
plus(bool): Parse a plus symbol as a space.
Returns:
str: The decoded version of the percent encoded of ``d``.
Example:
>>> from pwny import *
>>> deurlquote('Foo+Bar/Baz')
'Foo Bar/Baz'
"""
return unquote_plus(d) if plus else unquote(d)
示例3: decode
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def decode(data_url):
"""
Decode DataURL data
"""
metadata, data = data_url.rsplit(',', 1)
_, metadata = metadata.split('data:', 1)
parts = metadata.split(';')
if parts[-1] == 'base64':
data = b64decode(data)
else:
data = unquote(data)
for part in parts:
if part.startswith("charset="):
data = data.decode(part[8:])
return data
示例4: test_default
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def test_default(self):
target = TestTableauServerResultTarget(test_config.get_tmp_path('result.job'))
target.datasource = 'test-datasource'
url = urlparse(target.get_result_url())
params = parse_qs(url.query)
eq_(url.scheme, 'tableau')
eq_(url.hostname, 'tableau.example.com')
eq_(url.path, '/' + target.datasource)
eq_(url_unquote(url.username), TestTableauServerResultTarget.username)
eq_(url_unquote(url.password), TestTableauServerResultTarget.password)
eq_(params.get('ssl'), ['true'])
eq_(params.get('ssl_verify'), ['true'])
eq_(params.get('server_version'), None)
eq_(params.get('site'), None)
eq_(params.get('project'), None)
eq_(params.get('mode'), ['replace'])
示例5: get
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def get(self, bucket, object_name):
object_name = parse.unquote(object_name)
path = self._object_path(bucket, object_name)
if (not path.startswith(self.application.directory) or
not os.path.isfile(path)):
self.set_404()
return
info = os.stat(path)
self.set_header("Content-Type", "application/unknown")
self.set_header("Last-Modified", datetime.datetime.utcfromtimestamp(
info.st_mtime))
object_file = open(path, "rb")
try:
self.finish(object_file.read())
finally:
object_file.close()
示例6: put
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def put(self, bucket, object_name):
object_name = parse.unquote(object_name)
bucket_dir = os.path.abspath(os.path.join(
self.application.directory, bucket))
if (not bucket_dir.startswith(self.application.directory) or
not os.path.isdir(bucket_dir)):
self.set_404()
return
path = self._object_path(bucket, object_name)
if not path.startswith(bucket_dir) or os.path.isdir(path):
self.set_status(403)
return
directory = os.path.dirname(path)
fileutils.ensure_tree(directory)
object_file = open(path, "wb")
object_file.write(self.request.body)
object_file.close()
self.set_header('ETag',
'"%s"' % utils.get_hash_str(self.request.body))
self.finish()
示例7: _parse_dav_element
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def _parse_dav_element(self, dav_response):
"""Parses a single DAV element
:param dav_response: DAV response
:returns :class:`FileInfo`
"""
href = parse.unquote(
self._strip_dav_path(dav_response.find('{DAV:}href').text)
)
if six.PY2:
href = href.decode('utf-8')
file_type = 'file'
if href[-1] == '/':
file_type = 'dir'
file_attrs = {}
attrs = dav_response.find('{DAV:}propstat')
attrs = attrs.find('{DAV:}prop')
for attr in attrs:
file_attrs[attr.tag] = attr.text
return FileInfo(href, file_type, file_attrs)
示例8: line_part
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def line_part(self):
# type: () -> STRING_TYPE
link_url = None # type: Optional[STRING_TYPE]
seed = None # type: Optional[STRING_TYPE]
if self.link is not None:
link_url = unquote(self.link.url_without_fragment)
is_vcs = getattr(self.link, "is_vcs", not self.link.is_artifact)
if self._uri_scheme and self._uri_scheme == "path":
# We may need any one of these for passing to pip
seed = self.path or link_url or self.uri
elif (self._uri_scheme and self._uri_scheme == "file") or (
(self.link.is_wheel or not is_vcs) and self.link.url
):
seed = link_url or self.uri
# add egg fragments to remote artifacts (valid urls only)
if not self._has_hashed_name and self.is_remote_artifact and seed is not None:
seed += "#egg={0}".format(self.name)
editable = "-e " if self.editable else ""
if seed is None:
raise ValueError("Could not calculate url for {0!r}".format(self))
return "{0}{1}".format(editable, seed)
示例9: _get_parsed_url
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def _get_parsed_url(url):
# type: (S) -> Url
"""This is a stand-in function for `urllib3.util.parse_url`
The orignal function doesn't handle special characters very well, this simply splits
out the authentication section, creates the parsed url, then puts the authentication
section back in, bypassing validation.
:return: The new, parsed URL object
:rtype: :class:`~urllib3.util.url.Url`
"""
try:
parsed = urllib3_parse(url)
except ValueError:
scheme, _, url = url.partition("://")
auth, _, url = url.rpartition("@")
url = "{scheme}://{url}".format(scheme=scheme, url=url)
parsed = urllib3_parse(url)._replace(auth=auth)
if parsed.auth:
return parsed._replace(auth=url_unquote(parsed.auth))
return parsed
示例10: parse_frame
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def parse_frame(frame):
parsed = unquote(frame)
chunk = {}
last_key = 'Body'
for line in parsed.strip().splitlines():
if not line:
last_key = 'Body'
continue
key, sep, value = line.partition(': ')
if sep and key and key[0] is not '+': # 'key: value' header
last_key = key
chunk[key] = value
else:
# no sep - 2 cases: multi-line value or body content
chunk[last_key] = chunk.setdefault(
last_key, '') + line + '\n'
return chunk
示例11: translate_path
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def translate_path(self, path):
"""Translate a /-separated PATH to the local filename syntax.
Components that mean special things to the local file system
(e.g. drive or directory names) are ignored. (XXX They should
probably be diagnosed.)
"""
# abandon query parameters
path = path.split('?', 1)[0]
path = path.split('#', 1)[0]
path = posixpath.normpath(unquote(path))
words = path.split('/')
words = filter(None, words)
path = os.getcwd()
for word in words:
drive, word = os.path.splitdrive(word)
head, word = os.path.split(word)
if word in (os.curdir, os.pardir): continue
path = os.path.join(path, word)
return path
示例12: _header_to_id
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def _header_to_id(self, header):
"""Convert a Content-ID header value to an id.
Presumes the Content-ID header conforms to the format that _id_to_header()
returns.
Args:
header: string, Content-ID header value.
Returns:
The extracted id value.
Raises:
BatchError if the header is not in the expected format.
"""
if header[0] != '<' or header[-1] != '>':
raise BatchError("Invalid value for Content-ID: %s" % header)
if '+' not in header:
raise BatchError("Invalid value for Content-ID: %s" % header)
base, id_ = header[1:-1].split(' + ', 1)
return unquote(id_)
示例13: _header_to_id
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def _header_to_id(self, header):
"""Convert a Content-ID header value to an id.
Presumes the Content-ID header conforms to the format that _id_to_header()
returns.
Args:
header: string, Content-ID header value.
Returns:
The extracted id value.
Raises:
BatchError if the header is not in the expected format.
"""
if header[0] != '<' or header[-1] != '>':
raise BatchError("Invalid value for Content-ID: %s" % header)
if '+' not in header:
raise BatchError("Invalid value for Content-ID: %s" % header)
base, id_ = header[1:-1].rsplit('+', 1)
return unquote(id_)
示例14: sign_request
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def sign_request(self, request):
"""
Generator signature for request.
:param request: request object
:return: none
"""
url = request.path_url
url_components = urlparse(unquote(url))
canonical_str = self._build_canonical_str(url_components, request)
logger.debug('canonical string: ' + canonical_str)
sign = to_str(hmac_sha1(self._access_key, canonical_str))
auth_str = 'DATAHUB %s:%s' % (self._access_id, sign)
request.headers[Headers.AUTHORIZATION] = auth_str
示例15: handle_url
# 需要导入模块: from six.moves.urllib import parse [as 别名]
# 或者: from six.moves.urllib.parse import unquote [as 别名]
def handle_url(self, url):
# alarm_url = 'http://host:port/v1.0/vnfs/vnf-uuid/mon-policy-name/action-name/8ef785' # noqa
parts = parse.urlparse(url)
p = parts.path.split('/')
if len(p) != 7:
return None
if any((p[0] != '', p[2] != 'vnfs')):
return None
# decode action name: respawn%25log
p[5] = parse.unquote(p[5])
qs = parse.parse_qs(parts.query)
params = dict((k, v[0]) for k, v in qs.items())
prefix_url = '/%(collec)s/%(vnf_uuid)s/' % {'collec': p[2],
'vnf_uuid': p[3]}
return prefix_url, p, params