IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Pyreverse : Apprendre la génération automatique de diagrammes UML à partir de code Python
Un tutoriel de Alexandre Galode

Le , par deusyss

55PARTAGES

7  0 
Bonjour à tous,

Je vous propose un petit article visant à présenter l'outil Pyreverse. Cet outil permet de générer des diagrammes UML à partir du code Python.

Bonne lecture à tous.

Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation Python
Retrouvez les meilleurs cours et tutoriels pour apprendre l'UML

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de tyrtamos
Expert éminent https://www.developpez.com
Le 02/11/2016 à 10:26
Bonjour deusyss,

Présentation limpide!

Pyreverse est livré avec Pylint, mais l'absence d'une doc correcte ne facilitait pas son utilisation. Autant dire que la tienne est la bienvenue!

Merci!
2  0 
Avatar de deusyss
Expert éminent https://www.developpez.com
Le 03/11/2016 à 7:08
Citation Envoyé par tyrtamos Voir le message
Bonjour deusyss,

Présentation limpide!

Pyreverse est livré avec Pylint, mais l'absence d'une doc correcte ne facilitait pas son utilisation. Autant dire que la tienne est la bienvenue!

Merci!
Merci de ce retour.

La doc était faite à l'origine pour moi (oui la doc officielle... je préfère rien en dire), mais si ça peut servir à la communauté... autant partager
1  0 
Avatar de J-Paul
Candidat au Club https://www.developpez.com
Le 18/12/2016 à 22:56
Bonsoir deusyss,

Merci pour cette réponse. Je suis bien en Python3 et un pip install --upgrade pylint a résolu mon problème.
Il ne me reste plus qu'à installer Graphviz pour afficher les diagrammes.
merci.
1  0 
Avatar de J-Paul
Candidat au Club https://www.developpez.com
Le 18/12/2016 à 11:44
Bonjour deusyss,

Tes explications semblent claires, pourtant je bloque dès le début:
si je tape "pyreverse -o png main.py" j'obtiens le message d'erreur "'pyreverse' is not recognized as an internal or external command, operable program or batch file."
J'ai installé le package Python Anaconda qui contient le module PyLint (1.5.4) qui lui-même fonctionne parfaitement.
Y a-t-il quelque chose de plus à installer pour utiliser PyReverse?
0  0 
Avatar de deusyss
Expert éminent https://www.developpez.com
Le 18/12/2016 à 14:41
Bonjour J-Paul,

J'avoue que je me méfie énormément des distributions toute faite du type Anaconda, Winpython & Co. En effet, on ne sait jamais vraiment a 100% comment elle sont créées, et j'ai souvent vu des petites différences de comportement entre une installation standard fait main et une de ces distributions.

Cependant, on va essayer de te dépanner.

Pour commencer, le tuto tourne sous Python3. Est-ce bien le cas de ton Anaconda?

Deuxiemement, As tu a tout hasard essayer de réinstaller Pylint? (via un pip install --upgrade)
0  0 
Avatar de deusyss
Expert éminent https://www.developpez.com
Le 19/12/2016 à 8:29
0  0 
Avatar de dedalios
Membre habitué https://www.developpez.com
Le 05/11/2017 à 12:44
bonjour ,

J'ai donc installer pylint :
  • pip install pylint
  • la version Graphviz2.38


Via powershell -windows 10: sur le répertoire du code je lancer la commande
Pyreverse -o png citroen_DS.py

Malheureusement il me retourne ceci
The output format 'png' is currently not available.
Please install 'Graphviz' to have other output formats than 'dot' or 'vcg'

J'ai vérifier que le path avait bien Graphviz2.38\bin , j'ai même refait l'installation

mais visiblement la conversion ver png le ne fait pas

Autre point sur citroen_ds.py
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class CitroenDs(Voiture, Citroen):
    def __init__(self):
        Voiture.__init__(self)
        Citroen.__init__(self)
        self.modele = "DS moderne (>2000)"
        self._option_payante_ds_01 = False
        self._option_payante_ds_02 = False
        self._option_payante_ds_03 = False
        self.__option_calculateur_ds_01 = False
        self.__option_calculateur_ds_02 = False
        self.__option_calculateur_ds_03 = False
        self.start_options()
        self.cb = CB()

    def __del__(self):
        print("Suppression de la voiture")

    def start_options(self):
        if _option_payante_ds_01:
            print("GPS activé")
        if _option_payante_ds_02:
            print("Anti dépassement lignes blanches activé")
        if _option_payante_ds_03:
            print("Freinage urgence activé")

        if __option_calculateur_ds_01:
            print("Puissance moteur: 120 cv")
        elif __option_calculateur_ds_02:
            print("Puissance moteur: 150 cv")
        elif __option_calculateur_ds_03:
            print("Puissance moteur: 180 cv")


if __name__ == "__main__":
    ma_ds = CitroenDs()
    print(ma_ds.marque)
    print(ma_ds.modele)
    print(ma_ds.type_suspension)
    print(ma_ds.statut_moteur())
    ma_ds.start_moteur()
    print(ma_ds.statut_moteur())
sur def start_options(self): ici en rouge

éclipse semble frustré
_option_payante_ds_01 ... tous ces variable sont indéfinies

ce qui semble logique en soit ne faudrait il pas avoir self._option_payante_ds_01 ......

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    def start_options(self):
        if self._option_payante_ds_01:
            print("GPS activé")
        if self._option_payante_ds_02:
            print("Anti dépassement lignes blanches activé")
        if self._option_payante_ds_03:
            print("Freinage urgence activé")

        if self.__option_calculateur_ds_01:
            print("Puissance moteur: 120 cv")
        elif self.__option_calculateur_ds_02:
            print("Puissance moteur: 150 cv")
        elif self.__option_calculateur_ds_03:
            print("Puissance moteur: 180 cv")
0  0 
Avatar de Bayard
Membre éclairé https://www.developpez.com
Le 15/12/2019 à 18:09
Bonsoir

Où est-ce que l'on poste les bugs/questions à propos de cet outil ?
Il semble que l'issue tracker n'est pas de possiblité de rentrer de nouveaux tickets https://www.logilab.org/project/pyreverse ?

Cordialement
0  0 
Avatar de dedalios
Membre habitué https://www.developpez.com
Le 15/12/2019 à 21:01
Citation Envoyé par Bayard Voir le message
Bonsoir

Où est-ce que l'on poste les bugs/questions à propos de cet outil ?
Il semble que l'issue tracker n'est pas de possiblité de rentrer de nouveaux tickets https://www.logilab.org/project/pyreverse ?

Cordialement
J'avoue de pas savoir.
0  0 
Avatar de VinsS
Expert éminent https://www.developpez.com
Le 16/12/2019 à 7:35
Citation Envoyé par Bayard Voir le message
Bonsoir

Où est-ce que l'on poste les bugs/questions à propos de cet outil ?
Il semble que l'issue tracker n'est pas de possiblité de rentrer de nouveaux tickets https://www.logilab.org/project/pyreverse ?

Cordialement
Salut, probablement qu'il faut s'enregistrer. En haut à droite de la page.

Edit: Après coup j'ai vu les dates des divers éléments sur cette page, plus rien ne semble avoir bougé depuis une dizaine d'années. La version disponible sur PyPI date de 2005.
Si c'est abandonné tu ne pourras sans doute plus poster de bug.
0  0