Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Amaury Forgeot d'Arc
Bonjour,
Bonjour !
J'ai lu que certains déclarent utiliser le module "ast.py", pour analyser les dépendances inter-modules.
Mais, bien que ce module soit intégré à Python, en standard, je n'ai rien trouvé sur la façon de l'utiliser. Ni doc, ni commentaires, ni exemples.
Si quelqu'un a des infos...
Je pense qu'il s'agit du module compiler.ast : http://docs.python.org/lib/node885.html Il y a même quelques exemples.
C'est un moyen d'avoir une représentation pratique du code python. Pratique, et exploitable: c'est assez facile d'explorer tous les recoins du code pour détecter certains schémas, et en faire une analyse fine sur tel ou tel aspect précis. "ast" = arbre syntaxique abstrait, chaque élément du code est un noeud dans un arbre. Par exemple, un noeud "While" a un attribut nommé 'test' (l'expression du while), un attribut nommé 'body' (le corps de la boucle), et un autre nommé 'else_' (et qui vaut souvent None)
<publicité remarque="les tags XML peuvent contenir des accents">
Un bel exemple d'utilisation des ast: pylint, par logilab (c'est un outil français !) qui détecte les erreurs les plus courantes dans le code, par une analyse purement statique des modules. Il utilise un ast "amélioré" (astng), et c'est impressionnant.
</publicité>
-- Amaury Forgeot d'Arc
Bonjour,
Bonjour !
J'ai lu que certains déclarent utiliser le module "ast.py", pour
analyser les dépendances inter-modules.
Mais, bien que ce module soit intégré à Python, en standard, je n'ai
rien trouvé sur la façon de l'utiliser. Ni doc, ni commentaires, ni
exemples.
Si quelqu'un a des infos...
Je pense qu'il s'agit du module compiler.ast :
http://docs.python.org/lib/node885.html
Il y a même quelques exemples.
C'est un moyen d'avoir une représentation pratique du code python.
Pratique, et exploitable: c'est assez facile d'explorer tous les recoins
du code pour détecter certains schémas, et en faire une analyse fine sur
tel ou tel aspect précis.
"ast" = arbre syntaxique abstrait, chaque élément du code est un noeud
dans un arbre. Par exemple, un noeud "While" a un attribut nommé 'test'
(l'expression du while), un attribut nommé 'body' (le corps de la
boucle), et un autre nommé 'else_' (et qui vaut souvent None)
<publicité remarque="les tags XML peuvent contenir des accents">
Un bel exemple d'utilisation des ast: pylint, par logilab (c'est un
outil français !) qui détecte les erreurs les plus courantes dans le
code, par une analyse purement statique des modules.
Il utilise un ast "amélioré" (astng), et c'est impressionnant.
J'ai lu que certains déclarent utiliser le module "ast.py", pour analyser les dépendances inter-modules.
Mais, bien que ce module soit intégré à Python, en standard, je n'ai rien trouvé sur la façon de l'utiliser. Ni doc, ni commentaires, ni exemples.
Si quelqu'un a des infos...
Je pense qu'il s'agit du module compiler.ast : http://docs.python.org/lib/node885.html Il y a même quelques exemples.
C'est un moyen d'avoir une représentation pratique du code python. Pratique, et exploitable: c'est assez facile d'explorer tous les recoins du code pour détecter certains schémas, et en faire une analyse fine sur tel ou tel aspect précis. "ast" = arbre syntaxique abstrait, chaque élément du code est un noeud dans un arbre. Par exemple, un noeud "While" a un attribut nommé 'test' (l'expression du while), un attribut nommé 'body' (le corps de la boucle), et un autre nommé 'else_' (et qui vaut souvent None)
<publicité remarque="les tags XML peuvent contenir des accents">
Un bel exemple d'utilisation des ast: pylint, par logilab (c'est un outil français !) qui détecte les erreurs les plus courantes dans le code, par une analyse purement statique des modules. Il utilise un ast "amélioré" (astng), et c'est impressionnant.