Salome HOME
PN :pour notation scientifique
[tools/eficas.git] / Utilites / appels.py
1 # -*- coding: utf-8 -*-
2 """
3 Module appels
4 -------------
5     le module appels ...
6 """
7
8 try :
9         from developpeur import DEVELOPPEUR
10 except :
11         DEVELOPPEUR=None
12
13 def NULL( *l_args, **d_args  ) : pass
14
15 if DEVELOPPEUR :
16
17     import developpeur
18     developpeur.sortie.write( "import de "+__name__+" : $Id: appels.py,v 1.2 2003/03/06 14:36:11 eficas Exp $" )
19     developpeur.sortie.write( "\n" )
20
21     import sys
22     import re
23     import ici
24     import funcname
25     
26     
27     def Alonge( chaine , longueur ) :
28         return chaine+' ' # provisoirement on ne complete pas la chaine
29         k=len(chaine)
30         while( k<longueur ) :
31             chaine = chaine + ' '
32             k+=1
33         return chaine
34     
35     def APPELS( dec="" ) :
36     
37         """
38         Fonction APPELS
39         ---------------
40         La fonction APPELS ...
41         ..
42     
43     
44         Usage :
45             from appels import APPELS
46             APPELS()
47         """
48     
49     ### try :
50     ###     1/0
51     ### except :
52     ###     import traceback
53     ###     trace=traceback.extract_stack()
54     ###     print trace
55     
56         nombre_de_blancs=None
57     
58         import traceback
59         trace=traceback.extract_stack()
60     
61         trace.reverse()
62     
63         decalage=dec
64         sys.stderr.flush()
65         sys.stdout.flush()
66     
67         developpeur.sortie.write( 3*'\n' )
68         developpeur.sortie.write( decalage )
69         developpeur.sortie.write( "LISTE des appels" )
70         developpeur.sortie.write( '\n' )
71         developpeur.sortie.flush()
72         if len(trace)>2 :
73             decalage += '\t'
74     
75             # Recherche du plus long nom de fichier pour la mise en forme
76             lmax=0
77             for e in trace[2:-1] :
78                 fic,numero,fonc,inst = e
79                 position=fic+":"+str(numero)+":"
80             if len(position)>lmax : lmax=len(position)
81             lmax += 1 # Pour eloigner les informations du nom du fichier
82     
83             for e in trace[1:-1] :
84                 fic,numero,fonc,inst = e
85                 position = chaine=fic+":"+str(numero)+":"
86                 position = Alonge( chaine=position , longueur=lmax )
87                 developpeur.sortie.write( decalage+position)
88                 developpeur.sortie.flush()
89                 fname=funcname.FUNCNAME(fic,numero)
90                 developpeur.sortie.write( str(fname) )
91                 developpeur.sortie.write( ' : ' )
92                 developpeur.sortie.write( inst )
93                 developpeur.sortie.write( '\n' )
94                 developpeur.sortie.flush()
95                 decalage += ""
96     
97         fic,numero,fonc,inst = trace[-1]
98         position = chaine=fic+":"+str(numero)+":"
99         position = Alonge( chaine=position , longueur=lmax )
100         developpeur.sortie.write( decalage+position)
101         developpeur.sortie.flush()
102         fname="__main__"
103         developpeur.sortie.write( str(fname) )
104         developpeur.sortie.write( ' : ' )
105         developpeur.sortie.write( inst )
106         developpeur.sortie.write( 3*'\n' )
107         developpeur.sortie.flush()
108     
109     
110         return
111
112 else :
113         APPELS = NULL
114
115
116
117 if __name__ == "__main__" :
118     TOTO=NULL
119     TOTO(  dec="" )