StackFrame

class lsst.pex.config.callStack.StackFrame(filename, lineno, function, content=None)

Bases: object

A single element of the stack trace.

This differs slightly from the standard system mechanisms for getting a stack trace by the fact that it does not look up the source code until it is absolutely necessary, reducing the I/O.

Parameters:
filename : str

Name of file containing the code being executed.

lineno : int

Line number of file being executed.

function : str

Function name being executed.

content : str, optional

The actual content being executed. If not provided, it will be loaded from the file.

See also

getStackFrame

Notes

This differs slightly from the standard system mechanisms for getting a stack trace by the fact that it does not look up the source code until it is absolutely necessary, reducing the I/O.

Attributes Summary

content Content being executed (loaded on demand) (str).

Methods Summary

format([full]) Format for printing.
fromFrame(frame) Construct from a Frame object.

Attributes Documentation

content

Content being executed (loaded on demand) (str).

Methods Documentation

format(full=False)

Format for printing.

Parameters:
full : bool, optional

If True, output includes the conentent (StackFrame.content) being executed. Default is False.

Returns:
result : str

Formatted string.

classmethod fromFrame(frame)

Construct from a Frame object.

Parameters:
frame : Frame

Frame object to interpret, such as from inspect.currentframe.

Returns:
stackFrame : StackFrame

A StackFrame instance.

Examples

inspect.currentframe provides a Frame object. This is a convenience constructor to interpret that Frame object:

>>> import inspect
>>> stackFrame = StackFrame.fromFrame(inspect.currentframe())