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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Pyreverse -o gv -A -my -S test.py
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
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
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
import random
 
class randompick():    
    def __init__(self):
        self.rrand = None
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 = random.Random()
Donc manifestement il y a qqch qui se passe pas bien avec la lib random. Mais alors quoi ?
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...