J'utilise PyCharm IDE qui aide à créer des docstrings conformes à PEP0257. Il fournit deux attributs dont je ne comprends pas entièrement la distinction/utilisation entre:
:raise Exception: exception explanation here
:raises Exception: exception explanation here
Quand utiliserais-je raise
comme opposé à raises
dans ma docstring? Plus précisément, si une classe nécessite un argument qui n'a pas été fourni et déclenche un TypeError
, qui devrait être utilisé pour documenter cela?
TL; DR
raises
est utilisé pour décrire les éventuelles exceptions levées. raise
est reconnu par Sphinx lors de l'exécution de l'autodoc et est identique à raises
.
Explication complète
PyCharm aide à utiliser différents styles de commentaires de docstring.
J'en utilise souvent trois:
Dans tous ceux-ci, il existe une section spéciale pour Raises
que vous pouvez voir dans une ancienne version des tests de code PyCharm:
L'implémentation de SphinxDocString
nous pouvons voir ici il existe de nombreux mots clés qui peuvent être reconnus. Ces balises renvoient ensuite à la liste des RAISES_TAGS
qui peut être trouvé ici .
J'espère que cette information est utile.