• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python compat.native_函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python compat.text_函数代码示例发布时间:2022-05-26
下一篇:
Python compat.bytes_函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap