public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] gdb: add pyproject.toml
@ 2021-05-17 16:11 Simon Marchi
  2021-05-17 18:17 ` Tom Tromey
  0 siblings, 1 reply; 3+ messages in thread
From: Simon Marchi @ 2021-05-17 16:11 UTC (permalink / raw)
  To: gdb-patches

When running black to format Python files, files with extension .py.in
are ignored, because they don't end in .py.  Add a pyproject.toml file
to instruct black to pick up these files too.

gdb/ChangeLog:

	* py-project.toml: New.
	* gdb-gdb.py.in: Re-format.

gdb/testsuite/ChangeLog:

	* gdb.python/py-framefilter-gdb.py.in: Re-format.
	* gdb.python/py-framefilter-invalidarg-gdb.py.in: Re-format.

Change-Id: I9b88faec3360ea24788f44c8b89fe0b2a5f4eb97
---
 gdb/gdb-gdb.py.in                             | 160 +++++++++---------
 gdb/pyproject.toml                            |   2 +
 .../gdb.python/py-framefilter-gdb.py.in       |  22 +--
 .../py-framefilter-invalidarg-gdb.py.in       |  22 +--
 4 files changed, 107 insertions(+), 99 deletions(-)
 create mode 100644 gdb/pyproject.toml

diff --git a/gdb/gdb-gdb.py.in b/gdb/gdb-gdb.py.in
index f58b3073d5c8..af9fcfedc2f3 100644
--- a/gdb/gdb-gdb.py.in
+++ b/gdb/gdb-gdb.py.in
@@ -39,7 +39,7 @@ class TypeFlag:
     def __init__(self, name, value):
         self.name = name
         self.value = value
-        self.short_name = name.replace("TYPE_INSTANCE_FLAG_", '')
+        self.short_name = name.replace("TYPE_INSTANCE_FLAG_", "")
 
     def __lt__(self, other):
         """Sort by value order."""
@@ -73,8 +73,9 @@ class TypeFlagsPrinter:
         if not self.val:
             return "0"
         if TYPE_FLAGS:
-            flag_list = [flag.short_name for flag in TYPE_FLAGS
-                         if self.val & flag.value]
+            flag_list = [
+                flag.short_name for flag in TYPE_FLAGS if self.val & flag.value
+            ]
         else:
             flag_list = ["???"]
         return "0x%x [%s]" % (self.val, "|".join(flag_list))
@@ -96,8 +97,7 @@ class TypeFlagsPrinter:
             print("Warning: Cannot find enum type_instance_flag_value type.")
             print("         `struct type' pretty-printer will be degraded")
             return
-        TYPE_FLAGS = [TypeFlag(field.name, field.enumval)
-                      for field in iflags.fields()]
+        TYPE_FLAGS = [TypeFlag(field.name, field.enumval) for field in iflags.fields()]
         TYPE_FLAGS.sort()
 
 
@@ -109,13 +109,14 @@ class StructTypePrettyPrinter:
 
     def to_string(self):
         fields = []
-        fields.append("pointer_type = %s" % self.val['pointer_type'])
-        fields.append("reference_type = %s" % self.val['reference_type'])
-        fields.append("chain = %s" % self.val['reference_type'])
-        fields.append("instance_flags = %s"
-                      % TypeFlagsPrinter(self.val['m_instance_flags']))
-        fields.append("length = %d" % self.val['length'])
-        fields.append("main_type = %s" % self.val['main_type'])
+        fields.append("pointer_type = %s" % self.val["pointer_type"])
+        fields.append("reference_type = %s" % self.val["reference_type"])
+        fields.append("chain = %s" % self.val["reference_type"])
+        fields.append(
+            "instance_flags = %s" % TypeFlagsPrinter(self.val["m_instance_flags"])
+        )
+        fields.append("length = %d" % self.val["length"])
+        fields.append("main_type = %s" % self.val["main_type"])
         return "\n{" + ",\n ".join(fields) + "}"
 
 
@@ -134,78 +135,77 @@ class StructMainTypePrettyPrinter:
         flag_unsigned and flag_static are the only components set to 1,
         this function will return "unsigned|static".
         """
-        fields = [field.name.replace("flag_", "")
-                  for field in self.val.type.fields()
-                  if field.name.startswith("flag_") and self.val[field.name]]
+        fields = [
+            field.name.replace("flag_", "")
+            for field in self.val.type.fields()
+            if field.name.startswith("flag_") and self.val[field.name]
+        ]
         return "|".join(fields)
 
     def owner_to_string(self):
-        """Return an image of component "owner".
-        """
-        if self.val['m_flag_objfile_owned'] != 0:
-            return "%s (objfile)" % self.val['m_owner']['objfile']
+        """Return an image of component "owner"."""
+        if self.val["m_flag_objfile_owned"] != 0:
+            return "%s (objfile)" % self.val["m_owner"]["objfile"]
         else:
-            return "%s (gdbarch)" % self.val['m_owner']['gdbarch']
+            return "%s (gdbarch)" % self.val["m_owner"]["gdbarch"]
 
     def struct_field_location_img(self, field_val):
         """Return an image of the loc component inside the given field
         gdb.Value.
         """
-        loc_val = field_val['loc']
-        loc_kind = str(field_val['loc_kind'])
+        loc_val = field_val["loc"]
+        loc_kind = str(field_val["loc_kind"])
         if loc_kind == "FIELD_LOC_KIND_BITPOS":
-            return 'bitpos = %d' % loc_val['bitpos']
+            return "bitpos = %d" % loc_val["bitpos"]
         elif loc_kind == "FIELD_LOC_KIND_ENUMVAL":
-            return 'enumval = %d' % loc_val['enumval']
+            return "enumval = %d" % loc_val["enumval"]
         elif loc_kind == "FIELD_LOC_KIND_PHYSADDR":
-            return 'physaddr = 0x%x' % loc_val['physaddr']
+            return "physaddr = 0x%x" % loc_val["physaddr"]
         elif loc_kind == "FIELD_LOC_KIND_PHYSNAME":
-            return 'physname = %s' % loc_val['physname']
+            return "physname = %s" % loc_val["physname"]
         elif loc_kind == "FIELD_LOC_KIND_DWARF_BLOCK":
-            return 'dwarf_block = %s' % loc_val['dwarf_block']
+            return "dwarf_block = %s" % loc_val["dwarf_block"]
         else:
-            return 'loc = ??? (unsupported loc_kind value)'
+            return "loc = ??? (unsupported loc_kind value)"
 
     def struct_field_img(self, fieldno):
-        """Return an image of the main_type field number FIELDNO.
-        """
-        f = self.val['flds_bnds']['fields'][fieldno]
+        """Return an image of the main_type field number FIELDNO."""
+        f = self.val["flds_bnds"]["fields"][fieldno]
         label = "flds_bnds.fields[%d]:" % fieldno
-        if f['artificial']:
+        if f["artificial"]:
             label += " (artificial)"
         fields = []
-        fields.append("name = %s" % f['name'])
-        fields.append("type = %s" % f['m_type'])
-        fields.append("loc_kind = %s" % f['loc_kind'])
-        fields.append("bitsize = %d" % f['bitsize'])
+        fields.append("name = %s" % f["name"])
+        fields.append("type = %s" % f["m_type"])
+        fields.append("loc_kind = %s" % f["loc_kind"])
+        fields.append("bitsize = %d" % f["bitsize"])
         fields.append(self.struct_field_location_img(f))
         return label + "\n" + "  {" + ",\n   ".join(fields) + "}"
 
     def bound_img(self, bound_name):
         """Return an image of the given main_type's bound."""
-        bounds = self.val['flds_bnds']['bounds'].dereference()
+        bounds = self.val["flds_bnds"]["bounds"].dereference()
         b = bounds[bound_name]
-        bnd_kind = str(b['m_kind'])
-        if bnd_kind == 'PROP_CONST':
-            return str(b['m_data']['const_val'])
-        elif bnd_kind == 'PROP_UNDEFINED':
-            return '(undefined)'
+        bnd_kind = str(b["m_kind"])
+        if bnd_kind == "PROP_CONST":
+            return str(b["m_data"]["const_val"])
+        elif bnd_kind == "PROP_UNDEFINED":
+            return "(undefined)"
         else:
             info = [bnd_kind]
-            if bound_name == 'high' and bounds['flag_upper_bound_is_count']:
-                info.append('upper_bound_is_count')
-            return '{} ({})'.format(str(b['m_data']['baton']), ','.join(info))
+            if bound_name == "high" and bounds["flag_upper_bound_is_count"]:
+                info.append("upper_bound_is_count")
+            return "{} ({})".format(str(b["m_data"]["baton"]), ",".join(info))
 
     def bounds_img(self):
-        """Return an image of the main_type bounds.
-        """
-        b = self.val['flds_bnds']['bounds'].dereference()
-        low = self.bound_img('low')
-        high = self.bound_img('high')
+        """Return an image of the main_type bounds."""
+        b = self.val["flds_bnds"]["bounds"].dereference()
+        low = self.bound_img("low")
+        high = self.bound_img("high")
 
         img = "flds_bnds.bounds = {%s, %s}" % (low, high)
-        if b['flag_bound_evaluated']:
-            img += ' [evaluated]'
+        if b["flag_bound_evaluated"]:
+            img += " [evaluated]"
         return img
 
     def type_specific_img(self):
@@ -213,46 +213,53 @@ class StructMainTypePrettyPrinter:
         Only the relevant component of that union is printed (based on
         the value of the type_specific_kind field.
         """
-        type_specific_kind = str(self.val['type_specific_field'])
-        type_specific = self.val['type_specific']
+        type_specific_kind = str(self.val["type_specific_field"])
+        type_specific = self.val["type_specific"]
         if type_specific_kind == "TYPE_SPECIFIC_NONE":
-            img = 'type_specific_field = %s' % type_specific_kind
+            img = "type_specific_field = %s" % type_specific_kind
         elif type_specific_kind == "TYPE_SPECIFIC_CPLUS_STUFF":
-            img = "cplus_stuff = %s" % type_specific['cplus_stuff']
+            img = "cplus_stuff = %s" % type_specific["cplus_stuff"]
         elif type_specific_kind == "TYPE_SPECIFIC_GNAT_STUFF":
-            img = ("gnat_stuff = {descriptive_type = %s}"
-                   % type_specific['gnat_stuff']['descriptive_type'])
+            img = (
+                "gnat_stuff = {descriptive_type = %s}"
+                % type_specific["gnat_stuff"]["descriptive_type"]
+            )
         elif type_specific_kind == "TYPE_SPECIFIC_FLOATFORMAT":
-            img = "floatformat[0..1] = %s" % type_specific['floatformat']
+            img = "floatformat[0..1] = %s" % type_specific["floatformat"]
         elif type_specific_kind == "TYPE_SPECIFIC_FUNC":
-            img = ("calling_convention = %d"
-                   % type_specific['func_stuff']['calling_convention'])
+            img = (
+                "calling_convention = %d"
+                % type_specific["func_stuff"]["calling_convention"]
+            )
             # tail_call_list is not printed.
         elif type_specific_kind == "TYPE_SPECIFIC_SELF_TYPE":
-            img = "self_type = %s" % type_specific['self_type']
+            img = "self_type = %s" % type_specific["self_type"]
         elif type_specific_kind == "TYPE_SPECIFIC_FIXED_POINT":
             # The scaling factor is an opaque structure, so we cannot
             # decode its value from Python (not without insider knowledge).
-            img = ('scaling_factor: <opaque> (call __gmpz_dump with '
-                   ' _mp_num and _mp_den fields if needed)')
+            img = (
+                "scaling_factor: <opaque> (call __gmpz_dump with "
+                " _mp_num and _mp_den fields if needed)"
+            )
         else:
-            img = ("type_specific = ??? (unknown type_secific_kind: %s)"
-                   % type_specific_kind)
+            img = (
+                "type_specific = ??? (unknown type_secific_kind: %s)"
+                % type_specific_kind
+            )
         return img
 
     def to_string(self):
-        """Return a pretty-printed image of our main_type.
-        """
+        """Return a pretty-printed image of our main_type."""
         fields = []
-        fields.append("name = %s" % self.val['name'])
-        fields.append("code = %s" % self.val['code'])
+        fields.append("name = %s" % self.val["name"])
+        fields.append("code = %s" % self.val["code"])
         fields.append("flags = [%s]" % self.flags_to_string())
         fields.append("owner = %s" % self.owner_to_string())
-        fields.append("target_type = %s" % self.val['target_type'])
-        if self.val['nfields'] > 0:
-            for fieldno in range(self.val['nfields']):
+        fields.append("target_type = %s" % self.val["target_type"])
+        if self.val["nfields"] > 0:
+            for fieldno in range(self.val["nfields"]):
                 fields.append(self.struct_field_img(fieldno))
-        if self.val['code'] == gdb.TYPE_CODE_RANGE:
+        if self.val["code"] == gdb.TYPE_CODE_RANGE:
             fields.append(self.bounds_img())
         fields.append(self.type_specific_img())
 
@@ -277,14 +284,13 @@ def type_lookup_function(val):
         return StructTypePrettyPrinter(val)
     elif val.type.tag == "main_type":
         return StructMainTypePrettyPrinter(val)
-    elif val.type.name == 'CORE_ADDR':
+    elif val.type.name == "CORE_ADDR":
         return CoreAddrPrettyPrinter(val)
     return None
 
 
 def register_pretty_printer(objfile):
-    """A routine to register a pretty-printer against the given OBJFILE.
-    """
+    """A routine to register a pretty-printer against the given OBJFILE."""
     objfile.pretty_printers.append(type_lookup_function)
 
 
diff --git a/gdb/pyproject.toml b/gdb/pyproject.toml
new file mode 100644
index 000000000000..58ed2f9d5564
--- /dev/null
+++ b/gdb/pyproject.toml
@@ -0,0 +1,2 @@
+[tool.black]
+include = "\\.py(\\.in)?$"
diff --git a/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in b/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in
index c9256343b148..d2205f41e20a 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in
+++ b/gdb/testsuite/gdb.python/py-framefilter-gdb.py.in
@@ -20,29 +20,29 @@ import itertools
 from gdb.FrameDecorator import FrameDecorator
 
 
-class FrameObjFile ():
-
-    def __init__ (self):
+class FrameObjFile:
+    def __init__(self):
         self.name = "Filter1"
         self.priority = 1
         self.enabled = False
-        gdb.current_progspace().frame_filters ["Progspace" + self.name] = self
-        gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self
+        gdb.current_progspace().frame_filters["Progspace" + self.name] = self
+        gdb.current_objfile().frame_filters["ObjectFile" + self.name] = self
 
-    def filter (self, frame_iter):
+    def filter(self, frame_iter):
         return frame_iter
 
-class FrameObjFile2 ():
 
-    def __init__ (self):
+class FrameObjFile2:
+    def __init__(self):
         self.name = "Filter2"
         self.priority = 100
         self.enabled = True
-        gdb.current_progspace().frame_filters ["Progspace" + self.name] = self
-        gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self
+        gdb.current_progspace().frame_filters["Progspace" + self.name] = self
+        gdb.current_objfile().frame_filters["ObjectFile" + self.name] = self
 
-    def filter (self, frame_iter):
+    def filter(self, frame_iter):
         return frame_iter
 
+
 FrameObjFile()
 FrameObjFile2()
diff --git a/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in b/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
index 7b4950535c2f..e27b89859442 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
+++ b/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
@@ -20,29 +20,29 @@ import itertools
 from gdb.FrameDecorator import FrameDecorator
 
 
-class FrameObjFile ():
-
-    def __init__ (self):
+class FrameObjFile:
+    def __init__(self):
         self.name = "Filter1"
         self.priority = 1
         self.enabled = False
-        gdb.current_progspace().frame_filters ["Progspace" + self.name] = self
-        gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self
+        gdb.current_progspace().frame_filters["Progspace" + self.name] = self
+        gdb.current_objfile().frame_filters["ObjectFile" + self.name] = self
 
-    def filter (self, frame_iter):
+    def filter(self, frame_iter):
         return frame_iter
 
-class FrameObjFile2 ():
 
-    def __init__ (self):
+class FrameObjFile2:
+    def __init__(self):
         self.name = "Filter2"
         self.priority = 100
         self.enabled = True
-        gdb.current_progspace().frame_filters ["Progspace" + self.name] = self
-        gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self
+        gdb.current_progspace().frame_filters["Progspace" + self.name] = self
+        gdb.current_objfile().frame_filters["ObjectFile" + self.name] = self
 
-    def filter (self, frame_iter):
+    def filter(self, frame_iter):
         return frame_iter
 
+
 FrameObjFile()
 FrameObjFile2()
-- 
2.31.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] gdb: add pyproject.toml
  2021-05-17 16:11 [PATCH] gdb: add pyproject.toml Simon Marchi
@ 2021-05-17 18:17 ` Tom Tromey
  2021-05-17 18:31   ` Simon Marchi
  0 siblings, 1 reply; 3+ messages in thread
From: Tom Tromey @ 2021-05-17 18:17 UTC (permalink / raw)
  To: Simon Marchi via Gdb-patches

>>>>> "Simon" == Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> writes:

Simon> When running black to format Python files, files with extension .py.in
Simon> are ignored, because they don't end in .py.  Add a pyproject.toml file
Simon> to instruct black to pick up these files too.

Simon> gdb/ChangeLog:

Simon> 	* py-project.toml: New.
Simon> 	* gdb-gdb.py.in: Re-format.

Seems like a good idea to me.  Thank you.

Tom

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] gdb: add pyproject.toml
  2021-05-17 18:17 ` Tom Tromey
@ 2021-05-17 18:31   ` Simon Marchi
  0 siblings, 0 replies; 3+ messages in thread
From: Simon Marchi @ 2021-05-17 18:31 UTC (permalink / raw)
  To: Tom Tromey, Simon Marchi via Gdb-patches



On 2021-05-17 2:17 p.m., Tom Tromey wrote:
>>>>>> "Simon" == Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> writes:
> 
> Simon> When running black to format Python files, files with extension .py.in
> Simon> are ignored, because they don't end in .py.  Add a pyproject.toml file
> Simon> to instruct black to pick up these files too.
> 
> Simon> gdb/ChangeLog:
> 
> Simon> 	* py-project.toml: New.
> Simon> 	* gdb-gdb.py.in: Re-format.
> 
> Seems like a good idea to me.  Thank you.
> 
> Tom
> 

Pushed, thanks.

Simon

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-05-17 18:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-17 16:11 [PATCH] gdb: add pyproject.toml Simon Marchi
2021-05-17 18:17 ` Tom Tromey
2021-05-17 18:31   ` Simon Marchi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).