cython

Форк
0
21 строка · 766.0 Байт
1
from cython.cimports.cpython.version import PY_MAJOR_VERSION
2

3
@cython.cfunc
4
def _text(s) -> str:
5
    if type(s) is str:
6
        # Fast path for most common case(s).
7
        return cython.cast(str, s)
8

9
    elif PY_MAJOR_VERSION < 3 and isinstance(s, bytes):
10
        # Only accept byte strings as text input in Python 2.x, not in Py3.
11
        return cython.cast(bytes, s).decode('ascii')
12

13
    elif isinstance(s, str):
14
        # We know from the fast path above that 's' can only be a subtype here.
15
        # An evil cast to <str> might still work in some(!) cases,
16
        # depending on what the further processing does.  To be safe,
17
        # we can always create a copy instead.
18
        return str(s)
19

20
    else:
21
        raise TypeError("Could not convert to str.")
22

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.