Bonjour à tous
Alors voici un problème sur lequel je me casse la tête depuis le début de l'après midi. Je souhaite faire un diagramme de classe de mon code. J'utilise pour cela l'outil Pyreverse (inclut dans pylint, j'ai la version 2.4.4).
La commande que j'utilise pour générer un fichier classes.gv (dont je me dépatouille après) est :
Jusque là tout fonctionnait bien. Jusqu'à ce que je refasse tourner la chose tout à l'heure, et que j'obtienne une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Pyreverse -o gv -A -my -S test.py
J'ai réussi à trouver un exemple minimal, à coup de commentage de gros bloc de code par dichotomie. Voici un code que Pyreverse digère bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 parsing test.py... Traceback (most recent call last): File "C:\ProgramData\Anaconda3\Scripts\pyreverse-script.py", line 10, in <module> sys.exit(run_pyreverse()) File "C:\ProgramData\Anaconda3\lib\site-packages\pylint\__init__.py", line 37, in run_pyreverse PyreverseRun(sys.argv[1:]) File "C:\ProgramData\Anaconda3\lib\site-packages\pylint\pyreverse\main.py", line 184, in __init__ sys.exit(self.run(args)) File "C:\ProgramData\Anaconda3\lib\site-packages\pylint\pyreverse\main.py", line 209, in run writer.DotWriter(self.config).write(diadefs) File "C:\ProgramData\Anaconda3\lib\site-packages\pylint\pyreverse\writer.py", line 38, in write self.write_classes(diagram) File "C:\ProgramData\Anaconda3\lib\site-packages\pylint\pyreverse\writer.py", line 59, in write_classes self.printer.emit_node(i, **self.get_values(obj)) File "C:\ProgramData\Anaconda3\lib\site-packages\pylint\pyreverse\writer.py", line 134, in get_values args = [arg.name for arg in func.args.args if arg.name != "self"] TypeError: 'NoneType' object is not iterable
et un autre qui produit l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 import random class randompick(): def __init__(self): self.rrand = None
Donc manifestement il y a qqch qui se passe pas bien avec la lib random. Mais alors quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 import random class randompick(): def __init__(self): self.rrand = random.Random()
Que puis je faire de plus de mon côté ? Je viens de détecter un bug pylint non ? Car avant ce truc fonctionnait, et j'ai du mettre à jour entre temps...
Partager