LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
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

def __init__ (self, prog, *args, **kwargs)
 
def parse_args (self, args, values=None)
 
def exit (self, status=0, msg="")
 
def getEigenMatrixDimensions (val)
 
def getEigenValue (var, x, y=0)
 
def register (obj=None)
 
def build_boost_dictionary ()
 
def build_eigen_dictionary ()
 
def build_afw_dictionary ()
 
def 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__()

def 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  """
32 Like 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()

def 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()

def 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()

def 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()

def 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()

def 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 
65 try:

◆ getEigenMatrixDimensions()

def 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()

def 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()

def 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()

def 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 
def register(*args, exception=e, **kwargs)
Definition: printers.py:37

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: