mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-02-23 08:13:56 -04:00
autotest: logger_metadata: flake8 cleanliness
This commit is contained in:
parent
92ebd9e85e
commit
5d0aa6ca86
@ -1,5 +1,9 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
'''
|
||||
AP_FLAKE8_CLEAN
|
||||
'''
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import argparse
|
||||
@ -10,6 +14,7 @@ import sys
|
||||
topdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../../../')
|
||||
topdir = os.path.realpath(topdir)
|
||||
|
||||
|
||||
class EnumDocco(object):
|
||||
|
||||
vehicle_map = {
|
||||
@ -35,35 +40,35 @@ class EnumDocco(object):
|
||||
# attempts to extract name, value and comment from line.
|
||||
|
||||
# Match: " FRED, // optional comment"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+)\s*,? *(?://[/>]* *(.*) *)?$", line)
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+)\s*,? *(?://[/>]* *(.*) *)?$", line)
|
||||
if m is not None:
|
||||
return (m.group(1), None, m.group(2))
|
||||
|
||||
# Match: " FRED, /* optional comment */"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+)\s*,? *(?:/[*] *(.*) *[*]/ *)?$", line)
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+)\s*,? *(?:/[*] *(.*) *[*]/ *)?$", line)
|
||||
if m is not None:
|
||||
return (m.group(1), None, m.group(2))
|
||||
|
||||
# Match: " FRED = 17, // optional comment"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+)\s*=\s*([-0-9]+)\s*,?(?:\s*//[/<]*\s*(.*) *)?$",
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+)\s*=\s*([-0-9]+)\s*,?(?:\s*//[/<]*\s*(.*) *)?$",
|
||||
line)
|
||||
if m is not None:
|
||||
return (m.group(1), m.group(2), m.group(3))
|
||||
|
||||
# Match: " FRED = 17, // optional comment"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+) *= *([-0-9]+) *,?(?: */* *(.*) *)? *[*]/ *$",
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+) *= *([-0-9]+) *,?(?: */* *(.*) *)? *[*]/ *$",
|
||||
line)
|
||||
if m is not None:
|
||||
return (m.group(1), m.group(2), m.group(3))
|
||||
|
||||
# Match: " FRED = 1U<<0, // optional comment"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+) *= *[(]?1U? *[<][<] *(\d+)(?:, *// *(.*) *)?",
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+) *= *[(]?1U? *[<][<] *(\d+)(?:, *// *(.*) *)?",
|
||||
line)
|
||||
if m is not None:
|
||||
return (m.group(1), 1 << int(m.group(2)), m.group(3))
|
||||
|
||||
# Match: " FRED = 0xabc, // optional comment"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+) *= *(?:0[xX]([0-9A-Fa-f]+))(?:, *// *(.*) *)?",
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+) *= *(?:0[xX]([0-9A-Fa-f]+))(?:, *// *(.*) *)?",
|
||||
line)
|
||||
if m is not None:
|
||||
return (m.group(1), int(m.group(2), 16), m.group(3))
|
||||
@ -71,19 +76,18 @@ class EnumDocco(object):
|
||||
'''start discarded matches - lines we understand but can't do anything
|
||||
with:'''
|
||||
# Match: " FRED = 17, // optional comment"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+) *= *(\w+) *,?(?: *// *(.*) *)?$",
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+) *= *(\w+) *,?(?: *// *(.*) *)?$",
|
||||
line)
|
||||
if m is not None:
|
||||
return (None, None, None)
|
||||
# Match: " FRED = FOO(17), // optional comment"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+) *= *(\w+) *\\( *(\w+) *\\) *,?(?: *// *(.*) *)?$",
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+) *= *(\w+) *\\( *(\w+) *\\) *,?(?: *// *(.*) *)?$",
|
||||
line)
|
||||
if m is not None:
|
||||
return (None, None, None)
|
||||
|
||||
|
||||
# Match: " FRED = 1U<<0, // optional comment"
|
||||
m = re.match("\s*([A-Z0-9_a-z]+) *= *[(]?3U? *[<][<] *(\d+)(?:, *// *(.*) *)?",
|
||||
m = re.match(r"\s*([A-Z0-9_a-z]+) *= *[(]?3U? *[<][<] *(\d+)(?:, *// *(.*) *)?",
|
||||
line)
|
||||
if m is not None:
|
||||
return (m.group(1), 1 << int(m.group(2)), m.group(3))
|
||||
@ -112,21 +116,21 @@ class EnumDocco(object):
|
||||
break
|
||||
line = line.rstrip()
|
||||
# print("state=%s line: %s" % (state, line))
|
||||
if re.match("\s*//.*", line):
|
||||
if re.match(r"\s*//.*", line):
|
||||
continue
|
||||
if state == "outside":
|
||||
if re.match("class .*;", line) is not None:
|
||||
# forward-declaration of a class
|
||||
continue
|
||||
m = re.match("class *([:\w]+)", line)
|
||||
m = re.match(r"class *([:\w]+)", line)
|
||||
if m is not None:
|
||||
in_class = m.group(1)
|
||||
continue
|
||||
m = re.match("namespace *(\w+)", line)
|
||||
m = re.match(r"namespace *(\w+)", line)
|
||||
if m is not None:
|
||||
in_class = m.group(1)
|
||||
continue
|
||||
m = re.match(".*enum\s*(class)? *([\w]+)\s*(?::.*_t)? *{(.*)};", line)
|
||||
m = re.match(r".*enum\s*(class)? *([\w]+)\s*(?::.*_t)? *{(.*)};", line)
|
||||
if m is not None:
|
||||
# all one one line! Thanks!
|
||||
enum_name = m.group(2)
|
||||
@ -142,7 +146,7 @@ class EnumDocco(object):
|
||||
enumerations.append(new_enumeration)
|
||||
continue
|
||||
|
||||
m = re.match(".*enum\s*(class)? *([\w]+)\s*(?::.*_t)? *{", line)
|
||||
m = re.match(r".*enum\s*(class)? *([\w]+)\s*(?::.*_t)? *{", line)
|
||||
if m is not None:
|
||||
enum_name = m.group(2)
|
||||
debug("%s: %s" % (source_file, enum_name))
|
||||
@ -152,15 +156,15 @@ class EnumDocco(object):
|
||||
skip_enumeration = False
|
||||
continue
|
||||
if state == "inside":
|
||||
if re.match("\s*$", line):
|
||||
if re.match(r"\s*$", line):
|
||||
continue
|
||||
if re.match("#if", line):
|
||||
if re.match(r"#if", line):
|
||||
continue
|
||||
if re.match("#endif", line):
|
||||
if re.match(r"#endif", line):
|
||||
continue
|
||||
if re.match("#else", line):
|
||||
if re.match(r"#else", line):
|
||||
continue
|
||||
if re.match(".*}\s*\w*(\s*=\s*[\w:]+)?;", line):
|
||||
if re.match(r".*}\s*\w*(\s*=\s*[\w:]+)?;", line):
|
||||
# potential end of enumeration
|
||||
if not skip_enumeration:
|
||||
if enum_name is None:
|
||||
@ -253,4 +257,3 @@ if __name__ == '__main__':
|
||||
sys.exit(1)
|
||||
|
||||
s.run()
|
||||
# print("Enumerations: %s" % s.enumerations)
|
||||
|
@ -1,5 +1,9 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
'''
|
||||
AP_FLAKE8_CLEAN
|
||||
'''
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import argparse
|
||||
@ -33,7 +37,11 @@ re_vehicles = re.compile(r"\s*//\s*@Vehicles\s*:\s*(.*)")
|
||||
# Regular expressions for finding message definitions in structure format
|
||||
re_start_messagedef = re.compile(r"^\s*{?\s*LOG_[A-Z0-9_]+_[MSGTA]+[A-Z0-9_]*\s*,")
|
||||
re_deffield = r'[\s\\]*"?([\w\-#?%]+)"?\s*'
|
||||
re_full_messagedef = re.compile(r'\s*LOG_\w+\s*,\s*\w+\([^)]+\)[\s\\]*,' + f'{re_deffield},{re_deffield},' + r'[\s\\]*"?([\w,]+)"?[\s\\]*,' + f'{re_deffield},{re_deffield}' , re.MULTILINE)
|
||||
re_full_messagedef = re.compile(r'\s*LOG_\w+\s*,\s*\w+\([^)]+\)[\s\\]*,' +
|
||||
f'{re_deffield},{re_deffield},' +
|
||||
r'[\s\\]*"?([\w,]+)"?[\s\\]*,' +
|
||||
f'{re_deffield},{re_deffield}',
|
||||
re.MULTILINE)
|
||||
re_fmt_define = re.compile(r'#define\s+(\w+_FMT)\s+"([\w\-#?%]+)"')
|
||||
re_units_define = re.compile(r'#define\s+(\w+_UNITS)\s+"([\w\-#?%]+)"')
|
||||
re_mults_define = re.compile(r'#define\s+(\w+_MULTS)\s+"([\w\-#?%]+)"')
|
||||
@ -41,7 +49,9 @@ re_mults_define = re.compile(r'#define\s+(\w+_MULTS)\s+"([\w\-#?%]+)"')
|
||||
# Regular expressions for finding message definitions in Write calls
|
||||
re_start_writecall = re.compile(r"\s*[AP:]*logger[\(\)]*.Write[StreamingCrcl]*\(")
|
||||
re_writefield = r'\s*"([\w\-#?%,]+)"\s*'
|
||||
re_full_writecall = re.compile(r'\s*[AP:]*logger[\(\)]*.Write[StreamingCrcl]*\(' + f'{re_writefield},{re_writefield},{re_writefield},({re_writefield},{re_writefield})?' , re.MULTILINE)
|
||||
re_full_writecall = re.compile(r'\s*[AP:]*logger[\(\)]*.Write[StreamingCrcl]*\(' +
|
||||
f'{re_writefield},{re_writefield},{re_writefield},({re_writefield},{re_writefield})?',
|
||||
re.MULTILINE)
|
||||
|
||||
# Regular expression for extracting unit and multipliers from structure
|
||||
re_units_mults_struct = re.compile(r"^\s*{\s*'([\w\-#?%!/])',"+r'\s*"?([\w\-#?%./]*)"?\s*}')
|
||||
@ -64,6 +74,7 @@ mult_prefix_lookup = {
|
||||
1e-9: "n" # nano-
|
||||
}
|
||||
|
||||
|
||||
class LoggerDocco(object):
|
||||
|
||||
vehicle_map = {
|
||||
@ -186,7 +197,7 @@ class LoggerDocco(object):
|
||||
return
|
||||
# Make sure lengths match up
|
||||
if len(units) != len(self.fields_order) or len(units) != len(mults):
|
||||
print(f"Number of units/mults/fields don't match: msg={self.name} units={units} mults={mults} num_fields={len(self.fields_order)}")
|
||||
print(f"Number of units/mults/fields don't match: msg={self.name} units={units} mults={mults} num_fields={len(self.fields_order)}") # noqa:E501
|
||||
return
|
||||
# Loop through the list
|
||||
for idx in range(0, len(units)):
|
||||
@ -328,6 +339,7 @@ class LoggerDocco(object):
|
||||
# print("Opened (%s)" % filepath)
|
||||
lines = f.readlines()
|
||||
f.close()
|
||||
|
||||
def debug(x):
|
||||
pass
|
||||
# if filepath == "/home/pbarker/rc/ardupilot/libraries/AP_HAL/AnalogIn.h":
|
||||
|
Loading…
Reference in New Issue
Block a user