LSSTApplications  20.0.0
LSSTDataManagementBasePackage
Using lsstDebug to control debugging output

The class can be used to turn on debugging output in a non-intrusive way. For example, the variable lsstDebug.Info"lsst.meas.astrom.astrom").debug is used to control debugging output from the lsst.meas.astrom.astrom module. It is always safe to interrogate lsstDebug for example lsstDebug.Info"Robert.Hugh.Lupton").isBadPerson will return False. The convention is that the name ("lsst.meas.astrom.astrom") is the __name__ of the module, so the source code will typically look something like: import lsstDebug print lsstDebug.Info(__name__).display which will print False unless lsstDebug.Info(__name__)display has somehow been set to True Why is this interesting? Because you can replace lsstDebug.Info with your own version, e.g if you put import lsstDebug def DebugInfo(name): di = lsstDebug.getInfo(name) # N.b. lsstDebug.Info(name) would call us recursively if name == "foo": di.display = True return di lsstDebug.Info = DebugInfo into a file debug.py and import lsstDebug print "display is", lsstDebug.Info(__name__).display into foo.py then $ python -c "import foo" display is False but $ python -c "import debug; import foo" display is True The lsst.pipe.base.cmdLineTask.CmdLineTask command line task interface supports a flag –debug to import debug.py from your PYTHONPATH