Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Présentation de l'outil Pyreverse [Tutoriel]


Sujet :

Python

  1. #1
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2010
    Messages : 1 659
    Points : 8 148
    Points
    8 148
    Par défaut Présentation de l'outil Pyreverse
    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
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 783
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 783
    Points : 7 353
    Points
    7 353
    Billets dans le blog
    6
    Par défaut
    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!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2010
    Messages : 1 659
    Points : 8 148
    Points
    8 148
    Par défaut
    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
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2013
    Messages : 2
    Points : 4
    Points
    4
    Par défaut question de débutant:
    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?

  5. #5
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2010
    Messages : 1 659
    Points : 8 148
    Points
    8 148
    Par défaut
    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)
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2013
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    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.

  7. #7
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2010
    Messages : 1 659
    Points : 8 148
    Points
    8 148
    Par défaut
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  8. #8
    Membre habitué Avatar de dedalios
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : février 2008
    Messages : 383
    Points : 126
    Points
    126
    Par défaut pyreverse
    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 - Visualiser dans une fenêtre à part
    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 - Visualiser dans une fenêtre à part
    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")

  9. #9
    Membre confirmé Avatar de Bayard
    Inscrit en
    juin 2002
    Messages
    727
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 727
    Points : 602
    Points
    602
    Par défaut
    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
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  10. #10
    Membre habitué Avatar de dedalios
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2008
    Messages
    383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : février 2008
    Messages : 383
    Points : 126
    Points
    126
    Par défaut
    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.

  11. #11
    Expert éminent

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    3 916
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 3 916
    Points : 6 150
    Points
    6 150
    Par défaut
    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.

  12. #12
    Membre confirmé Avatar de Bayard
    Inscrit en
    juin 2002
    Messages
    727
    Détails du profil
    Informations forums :
    Inscription : juin 2002
    Messages : 727
    Points : 602
    Points
    602
    Par défaut
    Je l'ai fait hier, mais il n'est pas possible de créer de ticket.
    Si tu ne vis pas ce que tu penses alors tu penses ce que tu vis.

  13. #13
    Expert éminent

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    3 916
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 3 916
    Points : 6 150
    Points
    6 150
    Par défaut
    Il semble que l'on passe par Pylint maintenant:

    https://github.com/PyCQA/pylint/issues

Discussions similaires

  1. [article] Présentation de l'outil SPHINX
    Par deusyss dans le forum Général Python
    Réponses: 9
    Dernier message: 24/11/2014, 08h21
  2. Réponses: 8
    Dernier message: 31/08/2006, 00h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo