Je suis en train d'écrire la documentation de mon paquet python en utilisant Sphinx et le plugin autodoc. Pour une valeur de retour de fonction, je peux par ex. écrire :returns: int: count
qui indique au sphinx qu'il existe une valeur de retour de type int, dénommé count.Comment spécifier différents types de retour dans docstring python
maintenant je suis une fonction qui me fait prédécesseurs d'articles dans ma base de données:
def get_previous_release(release_id):
""" Holt Vorgängeritem eines Items mit der ID release_id
:param release_id: ID des items für das Release
:type release_id: int
"""
if not isinstance(release_id, int):
raise ValueError('get_previous_release expects an Integer value for the parameter release_id')
try:
release = my_queries.core.get_by_id(release_id)
except IndexError:
raise LookupError('The item with id {} could no be found'.format(release_id))
if 'Alpha-Release' in release.name:
release = AlphaRelease(release.key, release.name, release.state)
elif 'Beta-Release' in release.name:
release = BetaRelease(release.key, release.name, release.state)
elif '-Release' in release.name:
release = VRelease(release.key, release.name, release.state)
else:
raise TypeError('The item with the id {} does not contain \'-Release\' in the Summary ' + \
'and is therefore not considered a Release')
previous_release = release.get_predecessor()
if not previous_release:
raise LookupError('Could not find a predecessor for item with id {}'.format(release_id))
return previous_release
Comme vous pouvez le voir, il récupère l'élément d'origine et renvoie soit une instance de fonction de la classe AlphaRelease
, BetaRelease
ou VRelease
le contenu du champ name
des articles.
Quelle est la meilleure pratique pour définir une valeur de retour avec différents types possibles dans la docstring?
Je connais la directive rtype. Mais ma question est, comment bien documenter les différents types de retour. Est-ce que je fais 'rtype: AlphaRelease, BetaRelease, VRelease' ou est-ce que je définis 3 directives rtype pour chacun des types de retour séparés? – Igle
Ajout de commentaires et pointeur sur le nouveau module 'typing' et son vocabulaire. Bien qu'il reste un animal en évolution, c'est la nouvelle norme. C'est là que je chercherais des formalismes pour compléter la génération de Sphinx plus faible et plus ancienne. –