Blame tests/run/bytesmethods.pyx

Packit 562c7a
cimport cython
Packit 562c7a
Packit 562c7a
b_a = b'a'
Packit 562c7a
b_b = b'b'
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PythonCapiCallNode")
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//SimpleCallNode")
Packit 562c7a
def bytes_startswith(bytes s, sub, start=None, stop=None):
Packit 562c7a
    """
Packit 562c7a
    >>> bytes_startswith(b_a, b_a)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_startswith(b_a+b_b, b_a)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_startswith(b_a, b_b)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_startswith(b_a+b_b, b_b)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_startswith(b_a, (b_a, b_b))
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_startswith(b_a, b_a, 1)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_startswith(b_a, b_a, 0, 0)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
Packit 562c7a
    if start is None:
Packit 562c7a
      return s.startswith(sub)
Packit 562c7a
    elif stop is None:
Packit 562c7a
      return s.startswith(sub, start)
Packit 562c7a
    else:
Packit 562c7a
      return s.startswith(sub, start, stop)
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PythonCapiCallNode")
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//SimpleCallNode")
Packit 562c7a
def bytes_endswith(bytes s, sub, start=None, stop=None):
Packit 562c7a
    """
Packit 562c7a
    >>> bytes_endswith(b_a, b_a)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_endswith(b_b+b_a, b_a)
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_endswith(b_a, b_b)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_endswith(b_b+b_a, b_b)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_endswith(b_a, (b_a, b_b))
Packit 562c7a
    True
Packit 562c7a
    >>> bytes_endswith(b_a, b_a, 1)
Packit 562c7a
    False
Packit 562c7a
    >>> bytes_endswith(b_a, b_a, 0, 0)
Packit 562c7a
    False
Packit 562c7a
    """
Packit 562c7a
Packit 562c7a
    if start is None:
Packit 562c7a
      return s.endswith(sub)
Packit 562c7a
    elif stop is None:
Packit 562c7a
      return s.endswith(sub, start)
Packit 562c7a
    else:
Packit 562c7a
      return s.endswith(sub, start, stop)
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PythonCapiCallNode")
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//SimpleCallNode")
Packit 562c7a
def bytes_decode(bytes s, start=None, stop=None):
Packit 562c7a
    """
Packit 562c7a
    >>> s = b_a+b_b+b_a+b_a+b_b
Packit 562c7a
    >>> print(bytes_decode(s))
Packit 562c7a
    abaab
Packit 562c7a
Packit 562c7a
    >>> print(bytes_decode(s, 2))
Packit 562c7a
    aab
Packit 562c7a
    >>> print(bytes_decode(s, -3))
Packit 562c7a
    aab
Packit 562c7a
Packit 562c7a
    >>> print(bytes_decode(s, None, 4))
Packit 562c7a
    abaa
Packit 562c7a
    >>> print(bytes_decode(s, None, 400))
Packit 562c7a
    abaab
Packit 562c7a
    >>> print(bytes_decode(s, None, -2))
Packit 562c7a
    aba
Packit 562c7a
    >>> print(bytes_decode(s, None, -4))
Packit 562c7a
    a
Packit 562c7a
    >>> print(bytes_decode(s, None, -5))
Packit 562c7a
    <BLANKLINE>
Packit 562c7a
    >>> print(bytes_decode(s, None, -200))
Packit 562c7a
    <BLANKLINE>
Packit 562c7a
Packit 562c7a
    >>> print(bytes_decode(s, 2, 5))
Packit 562c7a
    aab
Packit 562c7a
    >>> print(bytes_decode(s, 2, 500))
Packit 562c7a
    aab
Packit 562c7a
    >>> print(bytes_decode(s, 2, -1))
Packit 562c7a
    aa
Packit 562c7a
    >>> print(bytes_decode(s, 2, -3))
Packit 562c7a
    <BLANKLINE>
Packit 562c7a
    >>> print(bytes_decode(s, 2, -300))
Packit 562c7a
    <BLANKLINE>
Packit 562c7a
    >>> print(bytes_decode(s, -3, -1))
Packit 562c7a
    aa
Packit 562c7a
    >>> print(bytes_decode(s, -300, 300))
Packit 562c7a
    abaab
Packit 562c7a
    >>> print(bytes_decode(s, -300, -4))
Packit 562c7a
    a
Packit 562c7a
    >>> print(bytes_decode(s, -300, -5))
Packit 562c7a
    <BLANKLINE>
Packit 562c7a
    >>> print(bytes_decode(s, -300, -6))
Packit 562c7a
    <BLANKLINE>
Packit 562c7a
    >>> print(bytes_decode(s, -300, -500))
Packit 562c7a
    <BLANKLINE>
Packit 562c7a
Packit 562c7a
    >>> s[:'test']                       # doctest: +ELLIPSIS
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError:...
Packit 562c7a
    >>> print(bytes_decode(s, 'test'))   # doctest: +ELLIPSIS
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError:...
Packit 562c7a
    >>> print(bytes_decode(s, None, 'test'))    # doctest: +ELLIPSIS
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError:...
Packit 562c7a
    >>> print(bytes_decode(s, 'test', 'test'))  # doctest: +ELLIPSIS
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError:...
Packit 562c7a
Packit 562c7a
    >>> print(bytes_decode(None))
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    AttributeError: 'NoneType' object has no attribute 'decode'
Packit 562c7a
    >>> print(bytes_decode(None, 1))
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError: 'NoneType' object is not subscriptable
Packit 562c7a
    >>> print(bytes_decode(None, None, 1))
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError: 'NoneType' object is not subscriptable
Packit 562c7a
    >>> print(bytes_decode(None, 0, 1))
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError: 'NoneType' object is not subscriptable
Packit 562c7a
    """
Packit 562c7a
    if start is None:
Packit 562c7a
        if stop is None:
Packit 562c7a
            return s.decode('utf8')
Packit 562c7a
        else:
Packit 562c7a
            return s[:stop].decode('utf8')
Packit 562c7a
    elif stop is None:
Packit 562c7a
        return s[start:].decode('utf8')
Packit 562c7a
    else:
Packit 562c7a
        return s[start:stop].decode('utf8')
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PythonCapiCallNode")
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//SimpleCallNode")
Packit 562c7a
def bytes_decode_utf16(bytes s):
Packit 562c7a
    """
Packit 562c7a
    >>> s = 'abc'.encode('UTF-16')
Packit 562c7a
    >>> print(bytes_decode_utf16(s))
Packit 562c7a
    abc
Packit 562c7a
    """
Packit 562c7a
    return s.decode('utf16')
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PythonCapiCallNode")
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//SimpleCallNode")
Packit 562c7a
def bytes_decode_utf16_le(bytes s):
Packit 562c7a
    """
Packit 562c7a
    >>> s = 'abc'.encode('UTF-16LE')
Packit 562c7a
    >>> assert s != 'abc'.encode('UTF-16BE')
Packit 562c7a
    >>> print(bytes_decode_utf16_le(s))
Packit 562c7a
    abc
Packit 562c7a
    """
Packit 562c7a
    return s.decode('utf_16_le')
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PythonCapiCallNode")
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//SimpleCallNode")
Packit 562c7a
def bytes_decode_utf16_be(bytes s):
Packit 562c7a
    """
Packit 562c7a
    >>> s = 'abc'.encode('UTF-16BE')
Packit 562c7a
    >>> assert s != 'abc'.encode('UTF-16LE')
Packit 562c7a
    >>> print(bytes_decode_utf16_be(s))
Packit 562c7a
    abc
Packit 562c7a
    """
Packit 562c7a
    return s.decode('utf_16_be')
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//PythonCapiCallNode")
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//SimpleCallNode")
Packit 562c7a
def bytes_decode_unbound_method(bytes s, start=None, stop=None):
Packit 562c7a
    """
Packit 562c7a
    >>> s = b_a+b_b+b_a+b_a+b_b
Packit 562c7a
    >>> print(bytes_decode_unbound_method(s))
Packit 562c7a
    abaab
Packit 562c7a
    >>> print(bytes_decode_unbound_method(s, 1))
Packit 562c7a
    baab
Packit 562c7a
    >>> print(bytes_decode_unbound_method(s, None, 3))
Packit 562c7a
    aba
Packit 562c7a
    >>> print(bytes_decode_unbound_method(s, 1, 4))
Packit 562c7a
    baa
Packit 562c7a
Packit 562c7a
    >>> print(bytes_decode_unbound_method(None))
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError: descriptor 'decode' requires a 'bytes' object but received a 'NoneType'
Packit 562c7a
    >>> print(bytes_decode_unbound_method(None, 1))
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError: 'NoneType' object is not subscriptable
Packit 562c7a
    >>> print(bytes_decode_unbound_method(None, None, 1))
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError: 'NoneType' object is not subscriptable
Packit 562c7a
    >>> print(bytes_decode_unbound_method(None, 0, 1))
Packit 562c7a
    Traceback (most recent call last):
Packit 562c7a
    TypeError: 'NoneType' object is not subscriptable
Packit 562c7a
    """
Packit 562c7a
    if start is None:
Packit 562c7a
        if stop is None:
Packit 562c7a
            return bytes.decode(s, 'utf8')
Packit 562c7a
        else:
Packit 562c7a
            return bytes.decode(s[:stop], 'utf8')
Packit 562c7a
    elif stop is None:
Packit 562c7a
        return bytes.decode(s[start:], 'utf8')
Packit 562c7a
    else:
Packit 562c7a
        return bytes.decode(s[start:stop], 'utf8')
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//SimpleCallNode",
Packit 562c7a
    "//SimpleCallNode//NoneCheckNode",
Packit 562c7a
    "//SimpleCallNode//AttributeNode[@is_py_attr = false]")
Packit 562c7a
def bytes_join(bytes s, *args):
Packit 562c7a
    """
Packit 562c7a
    >>> print(bytes_join(b_a, b_b, b_b, b_b).decode('utf8'))
Packit 562c7a
    babab
Packit 562c7a
    """
Packit 562c7a
    result = s.join(args)
Packit 562c7a
    assert cython.typeof(result) == 'Python object', cython.typeof(result)
Packit 562c7a
    return result
Packit 562c7a
Packit 562c7a
Packit 562c7a
@cython.test_fail_if_path_exists(
Packit 562c7a
    "//SimpleCallNode//NoneCheckNode",
Packit 562c7a
)
Packit 562c7a
@cython.test_assert_path_exists(
Packit 562c7a
    "//SimpleCallNode",
Packit 562c7a
    "//SimpleCallNode//AttributeNode[@is_py_attr = false]")
Packit 562c7a
def literal_join(*args):
Packit 562c7a
    """
Packit 562c7a
    >>> print(literal_join(b_b, b_b, b_b, b_b).decode('utf8'))
Packit 562c7a
    b|b|b|b
Packit 562c7a
    """
Packit 562c7a
    result = b'|'.join(args)
Packit 562c7a
    assert cython.typeof(result) == 'Python object', cython.typeof(result)
Packit 562c7a
    return result