Commit Message
Some rewritings on python code, that make it shorter
Comments
On 2019-01-03 08:00, Дилян Палаузов wrote:
> Some rewritings on python code, that make it shorter
Hi Dilyan,
Thanks for the patch. I am fine with these changes, which use more
idiomatic Python constructs. Did you hunt these occurrences by hand, or
did you use a static analysis tool/linter (if so, which one)?
In the commit log can you make a summary of the classes of changes you
do? For example:
- Change "len(string) < 1" to "not string"
- Change
if string:
return False
return True
to
return not string
- ...
Finally, please include a corresponding ChangeLog entry, see [1] for
reference. If it's not totally clear how to write it, do what you can
and I'll help you fix it after.
Simon
[1]
https://sourceware.org/gdb/wiki/ContributionChecklist#Properly_Formatted_GNU_ChangeLog
> Hi Dilyan,
>
> Thanks for the patch. I am fine with these changes, which use more
> idiomatic Python constructs. Did you hunt these occurrences by hand, or did
> you use a static analysis tool/linter (if so, which one)?
>
> In the commit log can you make a summary of the classes of changes you do?
> For example:
>
> - Change "len(string) < 1" to "not string"
> - Change
>
> if string:
> return False
> return True
>
> to
>
> return not string
> - ...
>
>
> Finally, please include a corresponding ChangeLog entry, see [1] for
> reference. If it's not totally clear how to write it, do what you can and
> I'll help you fix it after.
Also, Dilyan, do you have a copyright assignment on file?
I checked the FSF's records, and couldn't find any.
For a small one-off contribution, we are allowed to avoid the paperwork,
but when the contributions grow in size or number, we need to make sure
the copyright of those changes is assigned to the FSF. Attached is the
form to get you started on the process. It needs to be signed by
whoever owns the copyright (e.g an employer if that employer has
a claim on your changes, or yourself if you are making these changes
on your own time and equipment).
@@ -162,9 +162,7 @@ class GenericFilter:
if filename in self.fossilised_files:
return True
# Only touch current current ChangeLogs.
- if filename != 'ChangeLog' and filename.find ('ChangeLog') >= 0:
- return True
- return False
+ return filename != 'ChangeLog' and filename.find ('ChangeLog') >= 0:
def by_package_author (self, dir, filename):
return filename in self.own_files
@@ -34,9 +34,7 @@ def is_cleanup_type(return_type):
return False
if not isinstance(return_type.dereference, gcc.RecordType):
return False
- if str(return_type.dereference.name) == 'cleanup':
- return True
- return False
+ return str(return_type.dereference.name) == 'cleanup'
def is_constructor(decl):
"Return True if the function DECL is a cleanup constructor; False otherwise"
@@ -130,7 +128,7 @@ class MasterCleanup(object):
return True
# If SELF is empty but OTHER has some cleanups, then consider
# that a change as well.
- if len(self.cleanups) == 0 and len(other.cleanups) > 0:
+ if not self.cleanups and other.cleanups:
log('merging non-empty other', 4)
self.cleanups = other.cleanups[:]
return True
@@ -183,7 +181,7 @@ class MasterCleanup(object):
# Check whether SELF is empty.
def isempty(self):
log('isempty: len = %d' % len(self.cleanups), 4)
- return len(self.cleanups) == 0
+ return not self.cleanups
# Emit informational warnings about the cleanup stack.
def inform(self):
@@ -240,12 +238,11 @@ class CleanupChecker:
if not master_cleanup.verify(curloc, stmt.retval):
gcc.permerror(curloc,
'constructor does not return master cleanup')
- elif not self.is_special_constructor:
- if not master_cleanup.isempty():
- if curloc not in self.bad_returns:
- gcc.permerror(curloc, 'cleanup stack is not empty at return')
- self.bad_returns.add(curloc)
- master_cleanup.inform()
+ elif not self.is_special_constructor and not master_cleanup.isempty():
+ if curloc not in self.bad_returns:
+ gcc.permerror(curloc, 'cleanup stack is not empty at return')
+ self.bad_returns.add(curloc)
+ master_cleanup.inform()
# Traverse a basic block, updating the master cleanup information
# and propagating to other blocks.
@@ -64,7 +64,7 @@ def get_pub_info(filename, readelf_option):
and fields[1].strip() == 'Name'):
in_list = True
# Either a blank-line or a new Length field terminates the current section.
- elif (len(fields) == 0 or fields[0] == 'Length:'):
+ elif not fields or fields[0] == 'Length:':
in_list = False;
elif (in_list):
pubnames.append(fields[1].strip())
@@ -95,11 +95,11 @@ def get_gdb_index(filename):
def CheckSets(list0, list1, name0, name1):
"""Report any setwise differences between the two lists"""
- if len(list0) == 0 or len(list1) == 0:
+ if not list0 or not list1:
return False
difference0 = set(list0) - set(list1)
- if len(difference0) != 0:
+ if difference0:
print "Elements in " + name0 + " but not " + name1 + ": (",
print len(difference0),
print ")"
@@ -107,14 +107,14 @@ def CheckSets(list0, list1, name0, name1):
print " " + element
difference1 = set(list1) - set(list0)
- if len(difference1) != 0:
+ if difference1:
print "Elements in " + name1 + " but not " + name0 + ": (",
print len(difference1),
print ")"
for element in difference1:
print " " + element
- if (len(difference0) != 0 or len(difference1) != 0):
+ if not difference0 or not difference1:
return True
print name0 + " and " + name1 + " are identical."
@@ -182,15 +182,15 @@ def main(argv):
pubs_list.sort()
# Find the differences between the various indices.
- if len(gold_index) == 0:
+ if not gold_index:
print "Gold index is empty"
failed |= True
- if len(gdb_index) == 0:
+ if not gdb_index:
print "Gdb index is empty"
failed |= True
- if len(pubs_list) == 0:
+ if not pubs_list:
print "Pubs list is empty"
failed |= True
@@ -66,13 +66,9 @@ class FrameDecorator(object):
limited."""
sal = frame.find_sal()
- if (not sal.symtab or not sal.symtab.filename
+ return (not sal.symtab or not sal.symtab.filename
or frame.type() == gdb.DUMMY_FRAME
- or frame.type() == gdb.SIGTRAMP_FRAME):
-
- return True
-
- return False
+ or frame.type() == gdb.SIGTRAMP_FRAME)
def elided(self):
"""Return any elided frames that this class might be
@@ -521,7 +521,7 @@ class CompoundExplorer(object):
CompoundExplorer._print_fields(print_list)
print ("")
- if len(choice_to_compound_field_map) > 0:
+ if choice_to_compound_field_map:
choice = raw_input("Enter the field number of choice: ")
if choice in choice_to_compound_field_map:
if is_child:
@@ -598,10 +598,9 @@ class ExploreUtils(object):
Raises:
gdb.GdbError if adequate arguments are not passed.
"""
- if len(arg_str) < 1:
+ if not arg_str:
raise gdb.GdbError("ERROR: '%s' requires an argument."
% name)
- return False
else:
return True
@@ -60,7 +60,7 @@ Usage: info frame-filters"""
key=lambda i: gdb.frames.get_priority(i[1]),
reverse=True)
- if len(sorted_frame_filters) == 0:
+ if not sorted_frame_filters:
return 0
print(title)
@@ -75,10 +75,7 @@ def parse_printer_regexps(arg):
def printer_enabled_p(printer):
"""Internal utility to see if printer (or subprinter) is enabled."""
- if hasattr(printer, "enabled"):
- return printer.enabled
- else:
- return True
+ return getattr(printer, "enabled", True)
class InfoPrettyPrinter(gdb.Command):
@@ -179,7 +179,7 @@ def execute_frame_filters(frame, frame_low, frame_high):
# Check to see if there are any frame-filters. If not, just
# return None and let default backtrace printing occur.
- if len(sorted_list) == 0:
+ if not sorted_list:
return None
frame_iterator = FrameIterator(frame)
@@ -83,7 +83,7 @@ def elinos_init():
solib_dirs += ["%s/%s"
% (dir, "xenomai-build/usr/realtime/lib")]
- if len(solib_dirs) != 0:
+ if solib_dirs:
gdb.execute("set solib-search-path %s" % ":".join(solib_dirs))
@@ -72,8 +72,7 @@ dictionary referenced by DIC."""
# Remove tail parentheses. These are likely to be '(timeout)'
# and other extra information that will only confuse us.
test_name = re.sub ('(\s+)?\(.*$', '', test_name)
- if result not in dic.keys ():
- dic[result] = set ()
+ dic.setdefault(result, set ())
if test_name in dic[result]:
# If the line is already present in the dictionary, then
# we include a unique identifier in the end of it, in the
@@ -62,7 +62,7 @@ class TextReporter(Reporter):
self.txt_log = None
def report(self, test_name, measurement_name, data_points):
- if len(data_points) == 0:
+ if not data_points:
self.txt_sum.write("%s %s *no data recorded*\n" % (
test_name, measurement_name))
return