1 # -*- coding: utf-8 -*-
5 le module ici propose la fonction ICI pour afficher
6 le fichier courant et le numéro de la ligne courante.
10 from developpeur import DEVELOPPEUR
14 def NULL( *l_args, **d_args ) : pass
19 developpeur.sortie.write( "import de "+__name__+" : $Id: ici.py,v 1.3.8.1 2006/03/10 15:09:54 eficas Exp $" )
20 developpeur.sortie.write( "\n" )
29 La fonction ICI affiche sur la stderr, le nom du fichier qui l'appelle,
30 le numéro de la ligne ou elle est appelée et retourne ces deux informations.
37 N.B. : la fonction ICI n'est opérante que pour les développeurs
45 ###f=sys.exc_info()[2].tb_frame.f_back
48 ###filename=code.co_filename
51 trace=traceback.extract_stack()
53 indice = len(trace)-(2+offset)
54 if indice<0 : indice=0
57 assert( indice<len(trace) ),"valeur de offset INVALIDE : "+str(offset)+" taille de la table "+len(trace)
58 file_name, lineno, func_name, dummytxt = trace[ indice ]
60 assert( (indice>0) or (func_name=="?") )
61 if func_name=="?" : func_name = "main"
65 developpeur.sortie.write( file_name+':'+str(lineno)+': ('+str(funcname.FUNCNAME(func_name,file_name,lineno))+') : ' )
66 developpeur.sortie.flush()
68 return file_name,lineno