Какова правильная строка документации для параметра Unicode / Str в Python 2 и 3 - PullRequest
0 голосов
/ 25 октября 2018

У меня есть метод, который принимает параметр unicode в Python 2, но в Python 3 он принимает str.
Мне интересно, как мне написать строку документации sphinx для этой функции:
:param unicode text: или :param str text: или отдельная документация для Python 2 и Python 3?

Пример:

def myfunction(text):
    """Do something with text
    :param unicode text: Must be unicode
    :rtype: unicode
    :raises TypeError: If text is not a unicode
    """
    if PY2 and not isinstance(text, unicode):
        raise TypeError("Argument 'text' must be unicode")
    ...
    return text

1 Ответ

0 голосов
/ 25 октября 2018

Я не верю, что есть какой-то более простой способ, чем six.text_type.

Но кое-что из этого: - пожалуйста, проверьте еще раз, если вам действительно нужно unicode а не basestring, это выглядит непитоническим - если вы находитесь в процессе перехода на PY3 и это совместимо - просто перейдите к str и документу для PY3 - напишите тип для PY3 и уточните разницу в описании,Docstrings на 100% для людей, просто подумайте, легче ли читать одну заметку в редком случае или странный тип совместимости дешифра каждый раз

...