LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+0dd8ce4237,g1470d8bcf6+3ea6592b6f,g2079a07aa2+86d27d4dc4,g2305ad1205+5ca4c0b359,g295015adf3+d10818ec9d,g2a9a014e59+6f9be1b9cd,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+703ba97ebf,g487adcacf7+4fa16da234,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ffa42b374e,g5a732f18d5+53520f316c,g64a986408d+0dd8ce4237,g858d7b2824+0dd8ce4237,g8a8a8dda67+585e252eca,g99cad8db69+d39438377f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+f1d96605c8,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e5339d463f,gc120e1dc64+da31e9920e,gc28159a63d+0e5473021a,gcf0d15dbbd+703ba97ebf,gdaeeff99f8+f9a426f77a,ge6526c86ff+889fc9d533,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+7268b93478,gff1a9f87cc+0dd8ce4237,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Attributes | List of all members
lsst.gdb.afw.printers.GdbOptionParser Class Reference
Inheritance diagram for lsst.gdb.afw.printers.GdbOptionParser:

Classes

class  AxesPrinter
 
class  BackgroundControlPrinter
 
class  BackgroundPrinter
 
class  BaseSourceAttributesPrinter
 
class  Box2Printer
 
class  CoordinateBasePrinter
 
class  DetectorPrinter
 
class  EigenMatrixPrinter
 
class  EigenVectorPrinter
 
class  ExposurePrinter
 
class  FootprintPrinter
 
class  FootprintSetPrinter
 
class  GilPixelPrinter
 
class  ImagePrinter
 
class  KernelPrinter
 
class  MaskedImagePrinter
 
class  PeakPrinter
 
class  PrintEigenCommand
 
class  PrintImageCommand
 
class  PsfPrinter
 
class  QuadrupolePrinter
 
class  SharedPtrPrinter
 
class  SourcePrinter
 
class  StatisticsControlPrinter
 
class  TablePrinter
 
class  TableSchemaPrinter
 

Public Member Functions

 __init__ (self, prog, *args, **kwargs)
 
 parse_args (self, args, values=None)
 
 exit (self, status=0, msg="")
 
 getEigenMatrixDimensions (val)
 
 getEigenValue (var, x, y=0)
 
 register (obj=None)
 
 build_boost_dictionary ()
 
 build_eigen_dictionary ()
 
 build_afw_dictionary ()
 
 build_daf_base_dictionary ()
 

Static Public Attributes

 printers
 

Detailed Description

A subclass of the standard optparse OptionParser for gdb

GdbOptionParser raises GdbError rather than exiting when asked for help, or
when given an illegal value. E.g.

parser = gdb.printing.GdbOptionParser("show image")
parser.add_option("-a", "--all", action="store_true",
              help="Display the whole image")
parser.add_option("-w", "--width", type="int", default=8,
              help="Field width for pixels")

opts, args =  parser.parse_args(args)

Definition at line 15 of file printers.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.gdb.afw.printers.GdbOptionParser.__init__ ( self,
prog,
* args,
** kwargs )
Like optparse.OptionParser's API, but with an initial command name argument

Definition at line 30 of file printers.py.

30 def __init__(self, prog, *args, **kwargs):
31 """
32Like optparse.OptionParser's API, but with an initial command name argument
33"""
34 # OptionParser is an old-style class, so no super
35 if not kwargs.get("prog"):
36 kwargs["prog"] = prog
37 optparse.OptionParser.__init__(self, *args, **kwargs)
38

Member Function Documentation

◆ build_afw_dictionary()

lsst.gdb.afw.printers.GdbOptionParser.build_afw_dictionary ( )

Definition at line 775 of file printers.py.

775 def build_afw_dictionary():
776 printer = gdb.printing.RegexpCollectionPrettyPrinter("afw")
777
778 printer.add_printer('lsst::afw::cameraGeom::Detector',
779 '^lsst::afw::cameraGeom::(Amp|Ccd|Detector|DetectorMosaic)$', DetectorPrinter)
780
781 printer.add_printer('lsst::afw::detection::Footprint',
782 '^lsst::afw::detection::Footprint$', FootprintPrinter)
783 printer.add_printer('lsst::afw::detection::FootprintSet',
784 '^lsst::afw::detection::FootprintSet', FootprintSetPrinter)
785 printer.add_printer('lsst::afw::detection::Peak',
786 '^lsst::afw::detection::Peak$', PeakPrinter)
787 printer.add_printer('lsst::afw::detection::Psf',
788 '^lsst::afw::detection::Psf$', PsfPrinter)
789 printer.add_printer('lsst::afw::detection::Source',
790 '^lsst::afw::detection::Source$', SourcePrinter)
791 printer.add_printer('lsst::afw::detection::BaseSourceAttributes',
792 '^lsst::afw::detection::BaseSourceAttributes$', BaseSourceAttributesPrinter)
793
794 printer.add_printer('lsst::afw::geom::Box',
795 '^lsst::afw::geom::Box', Box2Printer)
796 printer.add_printer('lsst::afw::geom::Extent',
797 '^lsst::afw::geom::Extent', CoordinateBasePrinter)
798 printer.add_printer('lsst::afw::geom::Point',
799 '^lsst::afw::geom::Point', CoordinateBasePrinter)
800
801 printer.add_printer('lsst::afw::geom::ellipses::Axes',
802 '^lsst::afw::geom::ellipses::Axes', AxesPrinter)
803 printer.add_printer('lsst::afw::geom::ellipses::Quadrupole',
804 '^lsst::afw::geom::ellipses::Quadrupole', QuadrupolePrinter)
805
806 printer.add_printer('lsst::afw::image::ImageBase',
807 'lsst::afw::image::ImageBase<[^>]+>$', ImagePrinter)
808 printer.add_printer('lsst::afw::image::Image',
809 'lsst::afw::image::Image<[^>]+>$', ImagePrinter)
810 printer.add_printer('lsst::afw::image::Mask',
811 '^lsst::afw::image::Mask<[^>]+>$', ImagePrinter)
812 printer.add_printer('lsst::afw::image::MaskedImage',
813 '^lsst::afw::image::MaskedImage<[^>]+>$', MaskedImagePrinter)
814 printer.add_printer('lsst::afw::image::Exposure',
815 '^lsst::afw::image::Exposure', ExposurePrinter)
816
817 printer.add_printer('lsst::afw::math::Background',
818 '^lsst::afw::math::Background$', BackgroundPrinter)
819 printer.add_printer('lsst::afw::math::BackgroundControl',
820 '^lsst::afw::math::BackgroundControl$', BackgroundControlPrinter)
821 printer.add_printer('lsst::afw::math::Kernel',
822 '^lsst::afw::math::.*Kernel', KernelPrinter)
823 printer.add_printer('lsst::afw::math::StatisticsControl',
824 '^lsst::afw::math::StatisticsControl', StatisticsControlPrinter)
825
826 printer.add_printer('lsst::afw::table::Table',
827 '^lsst::afw::table::.*Table$', TablePrinter)
828 printer.add_printer('lsst::afw::table::Schema',
829 '^lsst::afw::table::Schema$', TableSchemaPrinter)
830
831 return printer
832

◆ build_boost_dictionary()

lsst.gdb.afw.printers.GdbOptionParser.build_boost_dictionary ( )
Surely this must be somewhere standard?

Definition at line 747 of file printers.py.

747 def build_boost_dictionary():
748 """Surely this must be somewhere standard?"""
749
750 printer = gdb.printing.RegexpCollectionPrettyPrinter("rhl-boost")
751
752 printer.add_printer('boost::shared_ptr',
753 '^(boost|tr1|std)::shared_ptr', SharedPtrPrinter)
754 printer.add_printer('boost::gil::pixel',
755 'boost::gil::.*pixel_t', GilPixelPrinter)
756
757 return printer
758

◆ build_daf_base_dictionary()

lsst.gdb.afw.printers.GdbOptionParser.build_daf_base_dictionary ( )

Definition at line 835 of file printers.py.

835 def build_daf_base_dictionary():
836 printer = gdb.printing.RegexpCollectionPrettyPrinter("daf::base")
837
838 return printer
839

◆ build_eigen_dictionary()

lsst.gdb.afw.printers.GdbOptionParser.build_eigen_dictionary ( )
Surely this must be somewhere standard?

Definition at line 761 of file printers.py.

761 def build_eigen_dictionary():
762 """Surely this must be somewhere standard?"""
763
764 printer = gdb.printing.RegexpCollectionPrettyPrinter("rhl-eigen")
765
766 printer.add_printer('eigen::Matrix',
767 '^Eigen::Matrix', EigenMatrixPrinter)
768 printer.add_printer('eigen::Vector',
769 '^Eigen::Vector', EigenVectorPrinter)
770
771 return printer
772

◆ exit()

lsst.gdb.afw.printers.GdbOptionParser.exit ( self,
status = 0,
msg = "" )
Raise GdbError rather than exiting

Definition at line 56 of file printers.py.

56 def exit(self, status=0, msg=""):
57 """Raise GdbError rather than exiting"""
58 if status == 0:
59 if msg:
60 print(msg, file=sys.stderr)
61 else:
62 raise gdb.GdbError(msg)
63
64

◆ getEigenMatrixDimensions()

lsst.gdb.afw.printers.GdbOptionParser.getEigenMatrixDimensions ( val)

Definition at line 91 of file printers.py.

91 def getEigenMatrixDimensions(val):
92 m_storage = val["m_storage"]
93 try:
94 nx, ny = m_storage["m_cols"], m_storage["m_rows"]
95 except gdb.error: # only available for dynamic Matrices
96 try:
97 nx, ny = val.type.template_argument(1), \
98 val.type.template_argument(2)
99 except RuntimeError:
100 # should get dimens from template, but that's gdb bug #11060
101 size = m_storage["m_data"]["array"].type.sizeof
102 size0 = m_storage["m_data"]["array"].dereference().type.sizeof
103 # guess! Assume square
104 nx = int(math.sqrt(size/size0))
105 ny = size/(nx*size0)
106
107 return nx, ny
108

◆ getEigenValue()

lsst.gdb.afw.printers.GdbOptionParser.getEigenValue ( var,
x,
y = 0 )

Definition at line 109 of file printers.py.

109 def getEigenValue(var, x, y=0):
110 if re.search(r"Matrix", str(var.type)):
111 if False:
112 return var["operator()(int, int)"](x, y)
113
114 NX, NY = getEigenMatrixDimensions(var)
115
116 if x < 0 or x >= NX or y < 0 or y >= NY:
117 raise gdb.GdbError("Element (%d, %d) is out of range 0:%d, 0:%d" %
118 (x, y, NX - 1, NY - 1))
119
120 m_data = var["m_storage"]["m_data"]
121 if False:
122 # convert to a pointer to the start of the array
123 import pdb
124 pdb.set_trace()
125 m_data = m_data.address.cast(m_data.type)
126
127 try:
128 val = m_data[x + y*NX]
129 except Exception:
130 val = m_data["array"][x + y*NX]
131 else: # Vector
132 if False:
133 return var["operator()(int)"](x)
134
135 NX = getEigenMatrixDimensions(var)[0]
136
137 if x < 0 or x >= NX:
138 raise gdb.GdbError(
139 "Element (%d) is out of range 0:%d" % (x, NX - 1))
140
141 m_data = var["m_storage"]["m_data"]
142
143 if False:
144 # convert to a pointer to the start of the array
145 m_data = m_data.address.cast(m_data.type)
146
147 try:
148 val = m_data[x]
149 except Exception:
150 val = m_data["array"][x]
151
152 if val.type.code == gdb.TYPE_CODE_INT:
153 val = int(val)
154 elif val.type.code == gdb.TYPE_CODE_FLT:
155 val = float(val)
156
157 return val
158

◆ parse_args()

lsst.gdb.afw.printers.GdbOptionParser.parse_args ( self,
args,
values = None )
Call OptionParser.parse_args after running gdb.string_to_argv

Definition at line 39 of file printers.py.

39 def parse_args(self, args, values=None):
40 """Call OptionParser.parse_args after running gdb.string_to_argv"""
41 if args is None: # defaults to sys.argv
42 args = ""
43 try:
44 args = gdb.string_to_argv(args)
45 except TypeError:
46 pass
47
48 help = ("-h" in args or "--help" in args)
49 opts, args = optparse.OptionParser.parse_args(self, args, values)
50 opts.help = help
51 if help:
52 args = []
53
54 return opts, args
55

◆ register()

lsst.gdb.afw.printers.GdbOptionParser.register ( obj = None)

Definition at line 738 of file printers.py.

738 def register(obj=None):
739 "Register my pretty-printers with objfile Obj."
740
741 if obj is None:
742 obj = gdb
743
744 for p in printers:
745 gdb.printing.register_pretty_printer(obj, p, replace=True)
746

Member Data Documentation

◆ printers

lsst.gdb.afw.printers.GdbOptionParser.printers
static

Definition at line 736 of file printers.py.


The documentation for this class was generated from the following file: