|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cimport cython
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
cdef bytes b12345 = b'12345'
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
def index_literal(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
Python 3 returns integer values on indexing, Py2 returns byte
|
|
Packit Service |
99d393 |
string literals...
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
>>> index_literal(0) in (ord('1'), '1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal(-5) in (ord('1'), '1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal(2) in (ord('3'), '3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal(4) in (ord('5'), '5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
return b"12345"[i]
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists("//PythonCapiCallNode")
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists("//IndexNode",
|
|
Packit Service |
99d393 |
"//CoerceFromPyTypeNode")
|
|
Packit Service |
99d393 |
def index_literal_char_cast(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> index_literal_char_cast(0) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_cast(-5) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_cast(2) == ord('3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_cast(4) == ord('5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_cast(6)
|
|
Packit Service |
99d393 |
Traceback (most recent call last):
|
|
Packit Service |
99d393 |
IndexError: string index out of range
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
return <char>(b"12345"[i])
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists("//PythonCapiCallNode")
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists("//IndexNode",
|
|
Packit Service |
99d393 |
"//CoerceFromPyTypeNode")
|
|
Packit Service |
99d393 |
def index_nonliteral_char_cast(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_cast(0) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_cast(-5) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_cast(2) == ord('3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_cast(4) == ord('5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_cast(6)
|
|
Packit Service |
99d393 |
Traceback (most recent call last):
|
|
Packit Service |
99d393 |
IndexError: string index out of range
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
return <char>(b12345[i])
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists("//PythonCapiCallNode")
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists("//IndexNode",
|
|
Packit Service |
99d393 |
"//CoerceFromPyTypeNode")
|
|
Packit Service |
99d393 |
def index_literal_uchar_cast(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> index_literal_uchar_cast(0) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_uchar_cast(-5) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_uchar_cast(2) == ord('3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_uchar_cast(4) == ord('5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_uchar_cast(6)
|
|
Packit Service |
99d393 |
Traceback (most recent call last):
|
|
Packit Service |
99d393 |
IndexError: string index out of range
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
return <unsigned char>(b"12345"[i])
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists("//PythonCapiCallNode")
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists("//IndexNode",
|
|
Packit Service |
99d393 |
"//CoerceFromPyTypeNode")
|
|
Packit Service |
99d393 |
def index_nonliteral_uchar_cast(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> index_nonliteral_uchar_cast(0) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_uchar_cast(-5) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_uchar_cast(2) == ord('3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_uchar_cast(4) == ord('5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_uchar_cast(6)
|
|
Packit Service |
99d393 |
Traceback (most recent call last):
|
|
Packit Service |
99d393 |
IndexError: string index out of range
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
return <unsigned char>(b12345[i])
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists("//PythonCapiCallNode")
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists("//IndexNode",
|
|
Packit Service |
99d393 |
"//CoerceFromPyTypeNode")
|
|
Packit Service |
99d393 |
def index_literal_char_coerce(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce(0) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce(-5) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce(2) == ord('3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce(4) == ord('5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce(6)
|
|
Packit Service |
99d393 |
Traceback (most recent call last):
|
|
Packit Service |
99d393 |
IndexError: string index out of range
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
cdef char result = b"12345"[i]
|
|
Packit Service |
99d393 |
return result
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists("//PythonCapiCallNode")
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists("//IndexNode",
|
|
Packit Service |
99d393 |
"//CoerceFromPyTypeNode")
|
|
Packit Service |
99d393 |
def index_nonliteral_char_coerce(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce(0) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce(-5) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce(2) == ord('3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce(4) == ord('5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce(6)
|
|
Packit Service |
99d393 |
Traceback (most recent call last):
|
|
Packit Service |
99d393 |
IndexError: string index out of range
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
cdef char result = b12345[i]
|
|
Packit Service |
99d393 |
return result
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists("//PythonCapiCallNode")
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists("//IndexNode",
|
|
Packit Service |
99d393 |
"//CoerceFromPyTypeNode")
|
|
Packit Service |
99d393 |
@cython.boundscheck(False)
|
|
Packit Service |
99d393 |
def index_literal_char_coerce_no_check(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce_no_check(0) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce_no_check(-5) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce_no_check(2) == ord('3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_literal_char_coerce_no_check(4) == ord('5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
cdef char result = b"12345"[i]
|
|
Packit Service |
99d393 |
return result
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
|
|
Packit Service |
99d393 |
@cython.test_assert_path_exists("//PythonCapiCallNode")
|
|
Packit Service |
99d393 |
@cython.test_fail_if_path_exists("//IndexNode",
|
|
Packit Service |
99d393 |
"//CoerceFromPyTypeNode")
|
|
Packit Service |
99d393 |
@cython.boundscheck(False)
|
|
Packit Service |
99d393 |
def index_nonliteral_char_coerce_no_check(int i):
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce_no_check(0) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce_no_check(-5) == ord('1')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce_no_check(2) == ord('3')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
>>> index_nonliteral_char_coerce_no_check(4) == ord('5')
|
|
Packit Service |
99d393 |
True
|
|
Packit Service |
99d393 |
"""
|
|
Packit Service |
99d393 |
cdef char result = b12345[i]
|
|
Packit Service |
99d393 |
return result
|