本文整理汇总了Python中webob.compat.native_函数的典型用法代码示例。如果您正苦于以下问题:Python native_函数的具体用法?Python native_怎么用?Python native_使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了native_函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: from_file
def from_file(cls, fp):
"""Reads a response from a file-like object (it must implement
``.read(size)`` and ``.readline()``).
It will read up to the end of the response, not the end of the
file.
This reads the response as represented by ``str(resp)``; it
may not read every valid HTTP response properly. Responses
must have a ``Content-Length``"""
headerlist = []
status = fp.readline().strip()
is_text = isinstance(status, text_type)
if is_text:
_colon = ':'
_http = 'HTTP/'
else:
_colon = b':'
_http = b'HTTP/'
if status.startswith(_http):
(http_ver, status_num, status_text) = status.split(None, 2)
status = '%s %s' % (native_(status_num), native_(status_text))
while 1:
line = fp.readline().strip()
if not line:
# end of headers
break
try:
header_name, value = line.split(_colon, 1)
except ValueError:
raise ValueError('Bad header line: %r' % line)
value = value.strip()
headerlist.append((
native_(header_name, 'latin-1'),
native_(value, 'latin-1')
))
r = cls(
status=status,
headerlist=headerlist,
app_iter=(),
)
body = fp.read(r.content_length or 0)
if is_text:
r.text = body
else:
r.body = body
return r
开发者ID:rylz,项目名称:webob,代码行数:50,代码来源:response.py
示例2: serialize
def serialize(self, full=True):
result = []
add = result.append
add(self.name + b"=" + _value_quote(self.value))
if full:
for k in _c_valkeys:
v = self[k]
if v:
info = _c_renames[k]
name = info["name"]
quoter = info["quoter"]
add(name + b"=" + quoter(v))
expires = self[b"expires"]
if expires:
add(b"expires=" + expires)
if self.secure:
add(b"secure")
if self.httponly:
add(b"HttpOnly")
if self.samesite:
add(b"SameSite=" + self.samesite)
return native_(b"; ".join(result), "ascii")
开发者ID:Pylons,项目名称:webob,代码行数:29,代码来源:cookies.py
示例3: test__setitem__success_append
def test__setitem__success_append(self):
value = native_(b'La Pe\xc3\xb1a', 'utf-8')
environ = {'HTTP_COOKIE':'a=1; b=2'}
inst = self._makeOne(environ)
inst['c'] = value
self.assertEqual(
environ['HTTP_COOKIE'], 'a=1; b=2; c="La Pe\\303\\261a"')
开发者ID:nkunal,项目名称:webob,代码行数:7,代码来源:test_cookies.py
示例4: test_fget_nonascii
def test_fget_nonascii(self):
desc = self._callFUT("HTTP_X_AKEY", encattr="url_encoding")
req = self._makeRequest()
if PY3:
req.environ["HTTP_X_AKEY"] = b"\xc3\xab".decode("latin-1")
else:
req.environ["HTTP_X_AKEY"] = b"\xc3\xab"
result = desc.fget(req)
self.assertEqual(result, native_(b"\xc3\xab", "latin-1"))
开发者ID:sigmavirus24,项目名称:webob,代码行数:9,代码来源:test_descriptors.py
示例5: test_fget_nonascii
def test_fget_nonascii(self):
desc = self._callFUT('HTTP_X_AKEY', encattr='url_encoding')
req = self._makeRequest()
if PY3:
req.environ['HTTP_X_AKEY'] = b'\xc3\xab'.decode('latin-1')
else:
req.environ['HTTP_X_AKEY'] = b'\xc3\xab'
result = desc.fget(req)
assert result == native_(b'\xc3\xab', 'latin-1')
开发者ID:invisibleroads,项目名称:webob,代码行数:9,代码来源:test_descriptors.py
示例6: serialize_date
def serialize_date(dt):
if isinstance(dt, (bytes, text_type)):
return native_(dt)
if isinstance(dt, timedelta):
dt = _now() + dt
if isinstance(dt, (datetime, date)):
dt = dt.timetuple()
if isinstance(dt, (tuple, time.struct_time)):
dt = calendar.timegm(dt)
if not (isinstance(dt, float) or isinstance(dt, integer_types)):
raise ValueError(
"You must pass in a datetime, date, time tuple, or integer object, "
"not %r" % dt)
return formatdate(dt, usegmt=True)
开发者ID:EdCornejo,项目名称:cp4pc,代码行数:14,代码来源:datetime_utils.py
示例7: parse_date
def parse_date(value):
if not value:
return None
try:
value = native_(value)
except:
return None
t = parsedate_tz(value)
if t is None:
# Could not parse
return None
if t[-1] is None:
# No timezone given. None would mean local time, but we'll force UTC
t = t[:9] + (0,)
t = mktime_tz(t)
return datetime.fromtimestamp(t, UTC)
开发者ID:EdCornejo,项目名称:cp4pc,代码行数:16,代码来源:datetime_utils.py
示例8: serialize
def serialize(self, full=True):
result = []
add = result.append
add(self.name + b'=' + _quote(self.value))
if full:
for k in _c_valkeys:
v = self[k]
if v:
add(_c_renames[k]+b'='+_quote(v))
expires = self[b'expires']
if expires:
add(b'expires=' + expires)
if self.secure:
add(b'secure')
if self.httponly:
add(b'HttpOnly')
return native_(b'; '.join(result), 'ascii')
开发者ID:03013405yujiangfeng,项目名称:XX-Net,代码行数:17,代码来源:cookies.py
示例9: md5_etag
def md5_etag(self, body=None, set_content_md5=False):
"""
Generate an etag for the response object using an MD5 hash of
the body (the body parameter, or ``self.body`` if not given)
Sets ``self.etag``
If ``set_content_md5`` is True sets ``self.content_md5`` as well
"""
if body is None:
body = self.body
md5_digest = md5(body).digest()
md5_digest = b64encode(md5_digest)
md5_digest = md5_digest.replace(b'\n', b'')
md5_digest = native_(md5_digest)
self.etag = md5_digest.strip('=')
if set_content_md5:
self.content_md5 = md5_digest
开发者ID:nkunal,项目名称:webob,代码行数:17,代码来源:response.py
示例10: _mutate_header
def _mutate_header(self, name, value):
header = self._environ.get("HTTP_COOKIE")
had_header = header is not None
header = header or ""
if not PY2:
header = header.encode("latin-1")
bytes_name = bytes_(name, "ascii")
if value is None:
replacement = None
else:
bytes_val = _value_quote(bytes_(value, "utf-8"))
replacement = bytes_name + b"=" + bytes_val
matches = _rx_cookie.finditer(header)
found = False
for match in matches:
start, end = match.span()
match_name = match.group(1)
if match_name == bytes_name:
found = True
if replacement is None: # remove value
header = header[:start].rstrip(b" ;") + header[end:]
else: # replace value
header = header[:start] + replacement + header[end:]
break
else:
if replacement is not None:
if header:
header += b"; " + replacement
else:
header = replacement
if header:
self._environ["HTTP_COOKIE"] = native_(header, "latin-1")
elif had_header:
self._environ["HTTP_COOKIE"] = ""
return found
开发者ID:Pylons,项目名称:webob,代码行数:43,代码来源:cookies.py
示例11: serialize
def serialize(self, full=True):
result = []
add = result.append
add(self.name + b'=' + _value_quote(self.value))
if full:
for k in _c_valkeys:
v = self[k]
if v:
info = _c_renames[k]
name = info['name']
quoter = info['quoter']
add(name + b'=' + quoter(v))
expires = self[b'expires']
if expires:
add(b'expires=' + expires)
if self.secure:
add(b'secure')
if self.httponly:
add(b'HttpOnly')
if self.samesite:
add(b'SameSite=' + self.samesite)
return native_(b'; '.join(result), 'ascii')
开发者ID:SmartTeleMax,项目名称:webob,代码行数:22,代码来源:cookies.py
示例12: _mutate_header
def _mutate_header(self, name, value):
header = self._environ.get('HTTP_COOKIE')
had_header = header is not None
header = header or ''
if PY3: # pragma: no cover
header = header.encode('latin-1')
bytes_name = bytes_(name, 'ascii')
if value is None:
replacement = None
else:
bytes_val = _value_quote(bytes_(value, 'utf-8'))
replacement = bytes_name + b'=' + bytes_val
matches = _rx_cookie.finditer(header)
found = False
for match in matches:
start, end = match.span()
match_name = match.group(1)
if match_name == bytes_name:
found = True
if replacement is None: # remove value
header = header[:start].rstrip(b' ;') + header[end:]
else: # replace value
header = header[:start] + replacement + header[end:]
break
else:
if replacement is not None:
if header:
header += b'; ' + replacement
else:
header = replacement
if header:
self._environ['HTTP_COOKIE'] = native_(header, 'latin-1')
elif had_header:
self._environ['HTTP_COOKIE'] = ''
return found
开发者ID:ViktorL,项目名称:webob,代码行数:37,代码来源:cookies.py
示例13: test___setitem__name_not_encodeable_to_ascii
def test___setitem__name_not_encodeable_to_ascii(self):
name = native_(b'La Pe\xc3\xb1a', 'utf-8')
inst = self._makeOne({})
with pytest.raises(TypeError):
inst.__setitem__(name, 'abc')
开发者ID:thaisvergani,项目名称:webob,代码行数:5,代码来源:test_cookies.py
示例14: create_response
def create_response(headers, body, status):
headerlist = [(native_(k), native_(v))
for k, v in headers.items()]
return Response(body=body, status=status, headerlist=headerlist,
charset='utf8')
开发者ID:lorenzogil,项目名称:yith-library-server,代码行数:5,代码来源:utils.py
示例15: test_fget_nonascii
def test_fget_nonascii(self):
desc = self._callFUT('HTTP_X_AKEY', encattr='url_encoding')
req = self._makeRequest()
req.environ['HTTP_X_AKEY'] = native_(b'\xc3\xab')
result = desc.fget(req)
assert result == text_(b'\xc3\xab', 'utf-8')
开发者ID:SmartTeleMax,项目名称:webob,代码行数:6,代码来源:test_descriptors.py
示例16: test__setitem__success_no_existing_headers
def test__setitem__success_no_existing_headers(self):
value = native_(b'test_cookie', 'utf-8')
environ = {}
inst = self._makeOne(environ)
inst['a'] = value
self.assertEqual(environ['HTTP_COOKIE'], 'a=test_cookie')
开发者ID:dairiki,项目名称:webob,代码行数:6,代码来源:test_cookies.py
示例17: response_from_file
def response_from_file(cls, fp, block_size=1 << 16): # 64KB
"""Reads a response from a file-like object (it must implement
``.read(size)`` and ``.readline()``).
It will read up to the end of the response, not the end of the
file.
This reads the response as represented by ``str(resp)``; it
may not read every valid HTTP response properly. Responses
must have a ``Content-Length``"""
headerlist = []
status_line = fp.readline().strip()
if not status_line:
return None
is_text = isinstance(status_line, text_type)
if is_text:
_colon = ':'
else:
_colon = b':'
if not status_line.startswith(b'HTTP/1.1 '):
raise ValueError("malformed status line, expected: 'HTTP/1.1 ', got: %r" % status_line)
http_version, status = status_line.split(None, 1)
chunked = False
keep_alive = True
while 1:
line = fp.readline()
if not line:
raise ValueError('missing CRLF terminating headers')
line = line.strip()
if not line:
# end of headers
break
try:
header_name, value = line.split(_colon, 1)
except ValueError:
raise ValueError('bad header line: %r' % (line))
value = value.strip()
if not is_text:
header_name = native_(header_name, 'utf-8')
value = native_(value, 'utf-8')
header_name_lower = header_name.lower()
if header_name_lower == 'transfer-encoding':
value = value.lower()
if value == 'chunked':
chunked = True
elif value == 'identity':
pass
else:
raise ValueError('unsupported Transfer-Encoding: %s' % value)
elif header_name_lower == 'connection':
value = value.lower()
if value == 'close':
keep_alive = False
elif value == 'keep-alive':
pass
else:
raise ValueError('unsupported Connection: %s' % value)
else:
headerlist.append((header_name, value))
r = cls(
status=status,
headerlist=headerlist,
app_iter=[],
)
if chunked:
end_chunk = False
while not end_chunk:
line = fp.readline()
if not line:
break # EOF
try:
chunk_size = int(line, 16)
except ValueError:
raise ValueError('invalid chunk header')
if chunk_size == 0:
end_chunk = True
remaining = chunk_size
chunk = fp.read(min(remaining, block_size))
while chunk:
r.app_iter.append(chunk)
remaining -= len(chunk)
chunk = fp.read(min(remaining, block_size))
if remaining:
raise ValueError('EOF while reading chunk')
line = fp.readline()
#.........这里部分代码省略.........
开发者ID:lrowe,项目名称:subprocess_middleware,代码行数:101,代码来源:response.py
示例18: test_transcode_non_form
def test_transcode_non_form():
req = Request.blank('/?a', POST='%EF%F0%E8=%E2%E5%F2')
req._content_type_raw = 'application/x-foo'
req2 = req.decode('cp1251')
assert native_(req2.body) == '%EF%F0%E8=%E2%E5%F2'
开发者ID:SmartTeleMax,项目名称:webob,代码行数:5,代码来源:test_transcode.py
示例19: test_transcode_non_multipart
def test_transcode_non_multipart():
req = Request.blank('/?a', POST='%EF%F0%E8=%E2%E5%F2')
req._content_type_raw = 'application/x-www-form-urlencoded'
req2 = req.decode('cp1251')
assert native_(req2.body) == '%D0%BF%D1%80%D0%B8=%D0%B2%D0%B5%D1%82'
开发者ID:SmartTeleMax,项目名称:webob,代码行数:5,代码来源:test_transcode.py
示例20: test_fset_nonascii
def test_fset_nonascii(self):
desc = self._callFUT("HTTP_X_AKEY", encattr="url_encoding")
req = self._makeRequest()
desc.fset(req, text_(b"\xc3\xab", "utf-8"))
assert req.environ["HTTP_X_AKEY"] == native_(b"\xc3\xab", "latin-1")
开发者ID:Pylons,项目名称:webob,代码行数:5,代码来源:test_descriptors.py
注:本文中的webob.compat.native_函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论