11
votes

Outils pour aider à la navigation / suivant (grand) Code source des projets Python

Un exemple spécifique: se familiariser avec le code source du projet de Django (noyau, contribuations, etc.). Exemple d'outil utile: CTAGS - Il vous permet de "sauter" dans l'emplacement du fichier + où une fonction / méthode est définie. S'interroger sur d'autres outils que les développeurs utilisent (Exemple: y a-t-il un outil qui compte une fonction x (), répertorie les fonctions qui appellent x () et qui sont appelées par x ()?). Merci.

edit : Ajout d'une réponse avec un agrégat d'outils mentionnés jusqu'à présent dans d'autres réponses


0 commentaires

9 Réponses :


1
votes

Vous pouvez peut-être essayer cscope! Wikipedia dit que

CSCOPE est souvent utilisé pour rechercher le contenu dans les fichiers C ou C ++, mais il peut être utilisé pour rechercher du contenu dans d'autres langues telles que Java, Python, PHP et Perl. [Citation requise]

Et vous pouvez également creuser dans Ce projet .


0 commentaires

1
votes

Je pense Komodo Modifier et PYDEV vous permet de sauter à la fonction Python defs.


0 commentaires

0
votes

Ceci est subjectif, je pense que cela devrait probablement être un wiki communautaire. Cela dit, la meilleure chose que vous puissiez probablement faire pour parcourir de grands projets consiste à connaître les raccourritiques fournis dans votre IDE préféré. L'utilisation du clavier pour parcourir le code source grand est beaucoup plus facile que de faire défiler le texte manuellement, mettez en surbrillance le texte et de fumer à travers un IDE avec une souris.


0 commentaires

0
votes

Documentez-le comme vous allez. Quittez les sentiers, améliorez la structure et conservez des notes. Au moment où vous avez trouvé votre chemin autour de l'entrée CodeBase, vous aurez une bonne carte.


0 commentaires

0
votes

J'aime Eclipse et le Pydev Plugin. Cette combinaison m'a été très utile.


0 commentaires

1
votes

Beaucoup (ou même le plus, je devrais dire) l'IDE vous aident dans cela en vous permettant de vous rendre à des définitions de variables et de fonction, souvent par simplement CTRL + clic, ou vous affichez des aperçus de classe où vous pouvez voir toutes les méthodes et attributs A La classe a compris celles héritées et vous permettant d'aller à leur définition, etc., etc., je ne peux pas recommander suffisamment d'un tel outil, c'est très gain de temps pour le développement.

J'utilise personnellement Wingide, ce qui est excellent et contient toutes ces fonctionnalités, mais vous devriez également consulter Komodoedit et Eclipse + Pydev. Il y a peut-être plus que je ne connais pas, et il est pleinement possible que Vim et emacs ont une sorte de plugins pour cela.


0 commentaires

10
votes

Ce qui suit est un agrégat d'outils mentionnés dans d'autres réponses ...

CSCOPE

http://cscope.sourceforge.net/

Entrée Wikipedia: http://fr.wikipedia.org/wiki/cscope < / p>

CSCOPE est un mode console ou une interface graphique basée sur textuelle ... il est souvent utilisé sur de très grands projets pour trouver du code source, des fonctions, des déclarations, des définitions et des expressions régulières données à une chaîne de texte.

pycscope

http://pypi.pytthon.org/pypi/pycscope/

génère un indice CSCOPE des arbres de source Python

CTAGS et CTAG EXUBERANT

http://ctags.sourceforge.net/

http://ctagn.sourceforge.net/ctus.html

Entrée Wikipedia: http://fr.wikipedia.org/wiki/ctugs < / p>

CTAGS est un programme qui génère un fichier index (ou tag) de noms trouvés dans les fichiers source et d'en-tête de différentes langages de programmation. Selon la langue, les fonctions, les variables, les membres de la classe, les macros et ainsi de suite peuvent être indexés. Ces balises permettent aux définitions d'être rapidement et facilement situées par un éditeur de texte ou une autre utilité.

Eclipse:

http://www.eclipse.org/

Entrée Wikipedia: http://fr.wikipedia.org/wiki/eclipse_%% 28Software% 29

Eclipse est une plate-forme de développement logicielle multilingue comprenant un système IDE et un système de plug-in pour l'étendre. Il est écrit principalement en Java et peut être utilisé pour développer des applications en Java et, au moyen des divers plug-ins, dans d'autres langues, y compris C, C ++, Cobol, Python, Perl, PHP et autres.

PYDEV

http://pydev.sourceforge.net/

"Pydev est un plugin permettant aux utilisateurs d'utiliser Eclipse pour le développement Python et Jython - Faire de l'Eclipse une première classe Python IDE"

KOMODO EDIT

http://www.activestate.com/komodo_edit/

Entrée Wikipedia: http://fr.wikipedia.org/wiki/activestate_komodo < / p>

Komodo Edit est un éditeur de texte gratuit pour les langages de programmation dynamiques introduits en janvier 2007. Avec la version de la version 4.3, Komodo Modifier est construite en plus du projet Open Komodo.

Il a été développé pour les programmeurs qui ont besoin d'un éditeur multilingue avec une fonctionnalité large, mais pas des caractéristiques d'une IDE, telles que le débogage, la visionneuse DOM, les obus interactifs et l'intégration de la commande de code source.

L'outil de graphique d'appel de Prashanth (visualisation)

http://blog.prashanthellina.com/2007/11/14/generating-call-graphes-forerstanding-and-Factoringing-pyThon-code/

Je viens de penser que je partagerais un lien avec un petit script amusant intéressant que j'ai trouvé il y a longtemps, qui dessine un graphique des appels de fonction. Cela ne fonctionne que pour des cas simples, alors "tel quel" c'est plus amusant que utile.

corde / ropemacs

http://ropemacs.html

ROPEMACS est un plugin pour effectuer des refacteurs en python dans Emacs. Il utilise Rope Bibliothèque et Pymacs.

http: // www. énigmacurry.com/2008/05/09/emacs-as-a -powful-pyThon-ide/

IDE d'aile

http://www.wingware.com/

Wing IDE a une définition goto, trouvez des utilisations, un navigateur source, un refactoring et d'autres fonctionnalités de renseignement de code qui devraient aider. Un autre bon moyen de comprendre le code python inconnu est de définir un point d'arrêt, de s'y courir dans le débogueur, puis de monter et de descendre de la pile. Dans Wing Professionnel, vous pouvez également utiliser la sonde de débogage pour interagir et essayer des choses dans l'état d'exécution de débogage (c'est une coquille Python qui fonctionne dans le cadre du cadre de pile de débogage actuel).


0 commentaires

1
votes

existe un outil qui compte une fonction x (), répertorie les fonctions qui appellent x () et qui sont appelées par x ()?

Je pensais juste que je partageais un lien avec un petit script amusant intéressant que j'ai trouvé il y a longtemps, qui dessine un graphique des appels de fonction . Cela ne fonctionne que pour des cas simples, alors "tel quel" c'est plus amusant que utile.

Pour le développement normal Python Personnellement, j'utilise GNU emacs avec corde / ropemacs (trouvé un vidéo Afficher les fonctionnalités) et parfois Eclipse avec Pydev .


0 commentaires

0
votes

Vous devriez remarquer que CSCOPE ne cible que l'UNIX, Linux OSS.


0 commentaires