Python equivt of __FILE__ and __LINE__

thebjorn BjornSteinarFjeldPettersen at gmail.com
Mon Feb 11 14:25:07 EST 2008


On Feb 11, 4:55 pm, Gary Herron <gher... at islandtraining.com> wrote:
> Bill Davy wrote:
> > Writing a quick and dirty assembler and want to give the user the location
> > of an error.  The "assembly language" is Python.  If the user wants to
> > generat some object code they write something  like:
>
> > Label(LoopLable)
> >     Load(R4)
> >     Dec()
> >     JNZ(LoopLabel)
>
> > I can use Python to do all the expression evalutaion, conversion from Python
> > FP to target FP, include files, macros (done as function definitions).  The
> > functions like Load() generate the approproyte object code.
>
> > So, for example, when a label is defined or referenced, I save the File,Line
> > so if there is not exactly one defintion or no references, I can report the
> > file location(s) to be considered.  In the example, I would want to report
> > that LoopLable is not referenced, and LoopLabel is not defined.
>
> > TIA,
> >     Bill
>
> > PSwww.SynectixLtd.comis not relevant
>
> You *can* get at that kind of information: The traceback module has a
> function called "extract_stack" which can give you a pointer to the
> whole execution stack.  From that can be generated all the usual stuff
> you see in a traceback -- including file and line information.  *How*
> you extract that stuff, I'll leave as an exercises for the reader.
> (Meaning I haven't a clue.)
>
> Gary Herron

I think the inspect module might be more useful... the getfile() and
getsourcelines() look promising.

-- bjorn



More information about the Python-list mailing list