Quand je charge mon code dans epydoc
et il suffit de charger le module haut, il échoue avec:Comment puis-je obtenir des stacktraces depuis epydoc quand il charge mon code?
Error: TypeError: 'NoneType' object is not callable (line 10)
Lorsque le NoneType
l'qu'il fait référence est un sous-module que j'ai essayé de charger la ligne 9. Comment puis-je obtenir epydoc pour expliquer pourquoi il ne pouvait pas charger le module sur la ligne 9 au lieu de simplement labourer devant et de frapper une erreur?
Pour la demande de nosko. Voici exemple similaire, où aucune trace de la pile est donnée:
# foo.py
import bar
bar.baz()
# bar.py
def baz():
print 'baz'
import os
os.environ['DOES_NOT_EXIST']
Run avec:
python2.6 epydoc --html foo.py
produit le moins utile:
+-------------------------------------- | In /home/ross/foo.py: | Import failed (but source code parsing was successful). | Error: KeyError: 'DOES_NOT_EXIST' (line 1)Je veux epydoc me dire que l'échec est en ligne 6 de
bar.py
. Je ne veux pas qu'il se plaint de l'importation
foo.py
de
bar.py
. Je ne peux pas reproduire mon problème
spécifique dans un petit exemple, mais ma requête fondamentale est que lorsque epydoc échoue, je veux qu'il imprime une trace de pile pour pointer vers le problème. Que ce soit le chargement d'un sous-module ou l'appel ne trouvant pas de clé dans un dictionnaire.
REMARQUE: La racine de ce problème est que le code que j'essaie de documenter est une entrée de SCons qui présente des problèmes d'installation d'environnement différents. C'est pourquoi quand je cours dans epydoc
cela ne fonctionne pas, mais le script fonctionne quand il fonctionne avec scons -f SConstruct.py
. J'essaie aussi de générer de la documentation avec sphinx
. Quand je cours avec sphinx
il montre réellement la trace de pile. Peut-être que je vais y aller avec sphinx
...
fournir le code ou au moins un extrait qui reproduit le problème – nosklo
Si je pouvais isoler le problème, alors je n'aurais pas besoin d'une trace de pile pour diagnostiquer le problème :-). Je vais essayer de cuisiner un exemple factice. Mais l'objectif final est une stacktrace de 'epydoc'. Je veux juste que epydoc échoue violemment quand il ne peut pas importer un module.Ne pas le couvrir et continuer jusqu'à ce qu'il échoue d'une manière nouvelle et étrange (ce comportement ressemble beaucoup à perl ... * shudder *) –