pw_build: Prepare for Pylint update
- Fix various style issues raised by Pylint 2.9.3.
- Disable consider-using-with checks because they're overly broad.
Change-Id: I7d0c205bbff972718aa5d52238ef34e5f4fd0930
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/52860
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Anthony DiGirolamo <tonymd@google.com>
diff --git a/.pylintrc b/.pylintrc
index 172a524..a8878c8 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -64,6 +64,7 @@
# no Warning level messages displayed, use "--disable=all --enable=classes
# --disable=W".
disable=bad-continuation, # Rely on yapf for formatting
+ consider-using-with,
fixme,
subprocess-run-check,
raise-missing-from,
diff --git a/pw_arduino_build/py/pw_arduino_build/builder.py b/pw_arduino_build/py/pw_arduino_build/builder.py
index b19946e..2a9dcc3 100755
--- a/pw_arduino_build/py/pw_arduino_build/builder.py
+++ b/pw_arduino_build/py/pw_arduino_build/builder.py
@@ -274,43 +274,36 @@
# TODO(tonymd): Make sure these variables are replaced in recipe lines
# even if they are None: build_path, project_path, project_source_path,
# build_project_name
- for current_board_name in self.board.keys():
+ for current_board in self.board.values():
if self.build_path:
- self.board[current_board_name]["build.path"] = self.build_path
+ current_board["build.path"] = self.build_path
if self.build_project_name:
- self.board[current_board_name][
- "build.project_name"] = self.build_project_name
+ current_board["build.project_name"] = self.build_project_name
# {archive_file} is the final *.elf
archive_file = "{}.elf".format(self.build_project_name)
- self.board[current_board_name]["archive_file"] = archive_file
+ current_board["archive_file"] = archive_file
# {archive_file_path} is the final core.a archive
if self.build_path:
- self.board[current_board_name][
- "archive_file_path"] = os.path.join(
- self.build_path, "core.a")
+ current_board["archive_file_path"] = os.path.join(
+ self.build_path, "core.a")
if self.project_source_path:
- self.board[current_board_name][
- "build.source.path"] = self.project_source_path
+ current_board["build.source.path"] = self.project_source_path
- self.board[current_board_name]["extra.time.local"] = str(
- int(time.time()))
- self.board[current_board_name]["runtime.ide.version"] = "10812"
- self.board[current_board_name][
- "runtime.hardware.path"] = self.hardware_path
+ current_board["extra.time.local"] = str(int(time.time()))
+ current_board["runtime.ide.version"] = "10812"
+ current_board["runtime.hardware.path"] = self.hardware_path
# Copy {runtime.tools.TOOL_NAME.path} vars
- self._set_tools_variables(self.board[current_board_name])
+ self._set_tools_variables(current_board)
- self.board[current_board_name][
- "runtime.platform.path"] = self.package_path
+ current_board["runtime.platform.path"] = self.package_path
if self.platform["name"] == "Teensyduino":
# Teensyduino is installed into the arduino IDE folder
# rather than ~/.arduino15/packages/
- self.board[current_board_name][
- "runtime.hardware.path"] = os.path.join(
- self.hardware_path, "teensy")
+ current_board["runtime.hardware.path"] = os.path.join(
+ self.hardware_path, "teensy")
- self.board[current_board_name]["build.system.path"] = os.path.join(
+ current_board["build.system.path"] = os.path.join(
self.package_path, "system")
# Set the {build.core.path} variable that pointing to a sub-core
@@ -319,16 +312,15 @@
# it's typically just the 'arduino' folder. For example:
# 'arduino-samd/hardware/samd/1.8.8/cores/arduino'
core_path = Path(self.package_path) / "cores"
- core_path /= self.board[current_board_name].get(
- "build.core", self.sub_core_folders[0])
- self.board[current_board_name][
- "build.core.path"] = core_path.as_posix()
+ core_path /= current_board.get("build.core",
+ self.sub_core_folders[0])
+ current_board["build.core.path"] = core_path.as_posix()
- self.board[current_board_name]["build.arch"] = self.build_arch
+ current_board["build.arch"] = self.build_arch
- for name, var in self.board[current_board_name].items():
- self.board[current_board_name][name] = var.replace(
- "{build.core.path}", core_path.as_posix())
+ for name, var in current_board.items():
+ current_board[name] = var.replace("{build.core.path}",
+ core_path.as_posix())
def load_board_definitions(self):
"""Loads Arduino boards.txt and platform.txt files into dictionaries.
@@ -363,7 +355,7 @@
b_match["name"]] = OrderedDict()
# Get all board variables, e.g. teensy40.*
- for current_board_name in self.board.keys():
+ for current_board_name, current_board in self.board.items():
board_line_matches = re.finditer(
fr"^\s*{current_board_name}\."
fr"(?P<key>[^#=]+)=(?P<value>.*)$", board_file,
@@ -375,8 +367,7 @@
ArduinoBuilder.save_default_menu_option(
current_board_name, b_match["key"], b_match["value"],
self.menu_options)
- self.board[current_board_name][
- b_match["key"]] = b_match["value"].strip()
+ current_board[b_match["key"]] = b_match["value"].strip()
self._set_global_arduino_variables()
diff --git a/pw_arduino_build/py/pw_arduino_build/core_installer.py b/pw_arduino_build/py/pw_arduino_build/core_installer.py
index bcee8fe..662f90e 100644
--- a/pw_arduino_build/py/pw_arduino_build/core_installer.py
+++ b/pw_arduino_build/py/pw_arduino_build/core_installer.py
@@ -27,7 +27,7 @@
from pathlib import Path
from typing import Dict, List
-import pw_arduino_build.file_operations as file_operations
+from pw_arduino_build import file_operations
_LOG = logging.getLogger(__name__)
diff --git a/pw_cli/py/envparse_test.py b/pw_cli/py/envparse_test.py
index 0a6f180..dfa3c59 100644
--- a/pw_cli/py/envparse_test.py
+++ b/pw_cli/py/envparse_test.py
@@ -16,7 +16,7 @@
import math
import unittest
-import pw_cli.envparse as envparse
+from pw_cli import envparse
# pylint: disable=no-member
diff --git a/pw_package/py/pw_package/packages/boringssl.py b/pw_package/py/pw_package/packages/boringssl.py
index f85c4d1..f791ef0 100644
--- a/pw_package/py/pw_package/packages/boringssl.py
+++ b/pw_package/py/pw_package/packages/boringssl.py
@@ -43,7 +43,7 @@
# Check that necessary build files are generated.
build_files = ['BUILD.generated.gni', 'err_data.c']
- return all([os.path.exists(path / file) for file in build_files])
+ return all(os.path.exists(path / file) for file in build_files)
def install(self, path: pathlib.Path) -> None:
# Checkout the library
diff --git a/pw_protobuf/py/pw_protobuf/codegen_pwpb.py b/pw_protobuf/py/pw_protobuf/codegen_pwpb.py
index d103018..4e46ab6 100644
--- a/pw_protobuf/py/pw_protobuf/codegen_pwpb.py
+++ b/pw_protobuf/py/pw_protobuf/codegen_pwpb.py
@@ -21,7 +21,7 @@
from typing import Dict, Iterable, List, Tuple
from typing import cast
-import google.protobuf.descriptor_pb2 as descriptor_pb2
+from google.protobuf import descriptor_pb2
from pw_protobuf.output_file import OutputFile
from pw_protobuf.proto_tree import ProtoEnum, ProtoMessage, ProtoMessageField
diff --git a/pw_protobuf/py/pw_protobuf/plugin.py b/pw_protobuf/py/pw_protobuf/plugin.py
index 058a29d..c584a9a 100755
--- a/pw_protobuf/py/pw_protobuf/plugin.py
+++ b/pw_protobuf/py/pw_protobuf/plugin.py
@@ -20,9 +20,9 @@
import sys
-import google.protobuf.compiler.plugin_pb2 as plugin_pb2
+from google.protobuf.compiler import plugin_pb2
-import pw_protobuf.codegen_pwpb as codegen_pwpb
+from pw_protobuf import codegen_pwpb
def process_proto_request(req: plugin_pb2.CodeGeneratorRequest,
diff --git a/pw_protobuf/py/pw_protobuf/proto_tree.py b/pw_protobuf/py/pw_protobuf/proto_tree.py
index 6dedf82..676096a 100644
--- a/pw_protobuf/py/pw_protobuf/proto_tree.py
+++ b/pw_protobuf/py/pw_protobuf/proto_tree.py
@@ -20,7 +20,7 @@
from typing import Callable, Dict, Iterator, List, Optional, Tuple, TypeVar
from typing import cast
-import google.protobuf.descriptor_pb2 as descriptor_pb2
+from google.protobuf import descriptor_pb2
T = TypeVar('T') # pylint: disable=invalid-name
diff --git a/pw_rpc/py/pw_rpc/plugin.py b/pw_rpc/py/pw_rpc/plugin.py
index 44337d9..30d6160 100644
--- a/pw_rpc/py/pw_rpc/plugin.py
+++ b/pw_rpc/py/pw_rpc/plugin.py
@@ -16,10 +16,10 @@
import enum
import sys
-import google.protobuf.compiler.plugin_pb2 as plugin_pb2
+from google.protobuf.compiler import plugin_pb2
-import pw_rpc.codegen_nanopb as codegen_nanopb
-import pw_rpc.codegen_raw as codegen_raw
+from pw_rpc import codegen_nanopb
+from pw_rpc import codegen_raw
class Codegen(enum.Enum):
diff --git a/pw_stm32cube_build/py/pw_stm32cube_build/find_files.py b/pw_stm32cube_build/py/pw_stm32cube_build/find_files.py
index b6aa016..903c05b 100644
--- a/pw_stm32cube_build/py/pw_stm32cube_build/find_files.py
+++ b/pw_stm32cube_build/py/pw_stm32cube_build/find_files.py
@@ -237,9 +237,8 @@
'template' not in f, files)
header_files = filter(
- lambda f: (any([f.startswith(dir)
- for dir in _INCLUDE_DIRS])) and f.endswith('.h'),
- files)
+ lambda f: (any(f.startswith(dir)
+ for dir in _INCLUDE_DIRS)) and f.endswith('.h'), files)
rebase_path = lambda f: str(stm32cube_path / f)
return list(map(rebase_path,
diff --git a/pw_trace/py/pw_trace/trace.py b/pw_trace/py/pw_trace/trace.py
index c63d931..03b00c2 100755
--- a/pw_trace/py/pw_trace/trace.py
+++ b/pw_trace/py/pw_trace/trace.py
@@ -31,16 +31,21 @@
class TraceType(Enum):
- Invalid = 0
- Instantaneous = 1
- InstantaneousGroup = 2
- AsyncStart = 3
- AsyncStep = 4
- AsyncEnd = 5
- DurationStart = 6
- DurationEnd = 7
- DurationGroupStart = 8
- DurationGroupEnd = 9
+ INVALID = 0
+ INSTANTANEOUS = 1
+ INSTANTANEOUS_GROUP = 2
+ ASYNC_START = 3
+ ASYNC_STEP = 4
+ ASYNC_END = 5
+ DURATION_START = 6
+ DURATION_END = 7
+ DURATION_GROUP_START = 8
+ DURATION_GROUP_END = 9
+
+ # TODO(hepler): Remove these aliases for the original style-incompliant
+ # names when users have migrated.
+ DurationStart = 6 # pylint: disable=invalid-name
+ DurationEnd = 7 # pylint: disable=invalid-name
class TraceEvent(NamedTuple):
@@ -78,40 +83,40 @@
"name": (event.label),
"ts": event.timestamp_us
}
- if event.event_type == TraceType.DurationStart:
+ if event.event_type == TraceType.DURATION_START:
line["ph"] = "B"
line["tid"] = event.label
- elif event.event_type == TraceType.DurationEnd:
+ elif event.event_type == TraceType.DURATION_END:
line["ph"] = "E"
line["tid"] = event.label
- elif event.event_type == TraceType.DurationGroupStart:
+ elif event.event_type == TraceType.DURATION_GROUP_START:
line["ph"] = "B"
line["tid"] = event.group
- elif event.event_type == TraceType.DurationGroupEnd:
+ elif event.event_type == TraceType.DURATION_GROUP_END:
line["ph"] = "E"
line["tid"] = event.group
- elif event.event_type == TraceType.Instantaneous:
+ elif event.event_type == TraceType.INSTANTANEOUS:
line["ph"] = "I"
line["s"] = "p"
- elif event.event_type == TraceType.InstantaneousGroup:
+ elif event.event_type == TraceType.INSTANTANEOUS_GROUP:
line["ph"] = "I"
line["s"] = "t"
line["tid"] = event.group
- elif event.event_type == TraceType.AsyncStart:
+ elif event.event_type == TraceType.ASYNC_START:
line["ph"] = "b"
line["scope"] = event.group
line["tid"] = event.group
line["cat"] = event.module
line["id"] = event.trace_id
line["args"] = {"id": line["id"]}
- elif event.event_type == TraceType.AsyncStep:
+ elif event.event_type == TraceType.ASYNC_STEP:
line["ph"] = "n"
line["scope"] = event.group
line["tid"] = event.group
line["cat"] = event.module
line["id"] = event.trace_id
line["args"] = {"id": line["id"]}
- elif event.event_type == TraceType.AsyncEnd:
+ elif event.event_type == TraceType.ASYNC_END:
line["ph"] = "e"
line["scope"] = event.group
line["tid"] = event.group
diff --git a/pw_trace/py/trace_test.py b/pw_trace/py/trace_test.py
index 889a4b1..6cd2bcc 100755
--- a/pw_trace/py/trace_test.py
+++ b/pw_trace/py/trace_test.py
@@ -21,15 +21,16 @@
from pw_trace import trace
test_events = [
- trace.TraceEvent(trace.TraceType.Instantaneous, "m1", "L1", 1),
- trace.TraceEvent(trace.TraceType.InstantaneousGroup, "m2", "L2", 2, "G2"),
- trace.TraceEvent(trace.TraceType.AsyncStep, "m3", "L3", 3, "G3", 103),
- trace.TraceEvent(trace.TraceType.DurationStart, "m4", "L4", 4),
- trace.TraceEvent(trace.TraceType.DurationGroupStart, "m5", "L5", 5, "G5"),
- trace.TraceEvent(trace.TraceType.AsyncStart, "m6", "L6", 6, "G6", 106),
- trace.TraceEvent(trace.TraceType.DurationEnd, "m7", "L7", 7),
- trace.TraceEvent(trace.TraceType.DurationGroupEnd, "m8", "L8", 8, "G8"),
- trace.TraceEvent(trace.TraceType.AsyncEnd, "m9", "L9", 9, "G9", 109)
+ trace.TraceEvent(trace.TraceType.INSTANTANEOUS, "m1", "L1", 1),
+ trace.TraceEvent(trace.TraceType.INSTANTANEOUS_GROUP, "m2", "L2", 2, "G2"),
+ trace.TraceEvent(trace.TraceType.ASYNC_STEP, "m3", "L3", 3, "G3", 103),
+ trace.TraceEvent(trace.TraceType.DURATION_START, "m4", "L4", 4),
+ trace.TraceEvent(trace.TraceType.DURATION_GROUP_START, "m5", "L5", 5,
+ "G5"),
+ trace.TraceEvent(trace.TraceType.ASYNC_START, "m6", "L6", 6, "G6", 106),
+ trace.TraceEvent(trace.TraceType.DURATION_END, "m7", "L7", 7),
+ trace.TraceEvent(trace.TraceType.DURATION_GROUP_END, "m8", "L8", 8, "G8"),
+ trace.TraceEvent(trace.TraceType.ASYNC_END, "m9", "L9", 9, "G9", 109)
]
test_json = [
@@ -51,7 +52,7 @@
class TestTraceGenerateJson(unittest.TestCase):
"""Tests generate json with various events."""
def test_generate_single_json_event(self):
- event = trace.TraceEvent(event_type=trace.TraceType.Instantaneous,
+ event = trace.TraceEvent(event_type=trace.TraceType.INSTANTANEOUS,
module="module",
label="label",
timestamp_us=10)
@@ -73,7 +74,7 @@
def test_generate_json_data_arg_label(self):
event = trace.TraceEvent(
- event_type=trace.TraceType.Instantaneous,
+ event_type=trace.TraceType.INSTANTANEOUS,
module="module",
label="", # Is replaced by data string
timestamp_us=10,
@@ -91,13 +92,14 @@
})
def test_generate_json_data_arg_group(self):
- event = trace.TraceEvent(event_type=trace.TraceType.InstantaneousGroup,
- module="module",
- label="label",
- timestamp_us=10,
- has_data=True,
- data_fmt="@pw_arg_group",
- data=bytes("arg", "utf-8"))
+ event = trace.TraceEvent(
+ event_type=trace.TraceType.INSTANTANEOUS_GROUP,
+ module="module",
+ label="label",
+ timestamp_us=10,
+ has_data=True,
+ data_fmt="@pw_arg_group",
+ data=bytes("arg", "utf-8"))
json_lines = trace.generate_trace_json([event])
self.assertEqual(1, len(json_lines))
self.assertEqual(
@@ -111,7 +113,7 @@
})
def test_generate_json_data_counter(self):
- event = trace.TraceEvent(event_type=trace.TraceType.Instantaneous,
+ event = trace.TraceEvent(event_type=trace.TraceType.INSTANTANEOUS,
module="module",
label="counter",
timestamp_us=10,
@@ -133,7 +135,7 @@
})
def test_generate_json_data_struct_fmt_single(self):
- event = trace.TraceEvent(event_type=trace.TraceType.Instantaneous,
+ event = trace.TraceEvent(event_type=trace.TraceType.INSTANTANEOUS,
module="module",
label="counter",
timestamp_us=10,
@@ -155,7 +157,7 @@
})
def test_generate_json_data_struct_fmt_multi(self):
- event = trace.TraceEvent(event_type=trace.TraceType.Instantaneous,
+ event = trace.TraceEvent(event_type=trace.TraceType.INSTANTANEOUS,
module="module",
label="counter",
timestamp_us=10,
diff --git a/pw_trace_tokenized/py/pw_trace_tokenized/trace_tokenized.py b/pw_trace_tokenized/py/pw_trace_tokenized/trace_tokenized.py
index fd16b3c..8b23617 100755
--- a/pw_trace_tokenized/py/pw_trace_tokenized/trace_tokenized.py
+++ b/pw_trace_tokenized/py/pw_trace_tokenized/trace_tokenized.py
@@ -48,60 +48,60 @@
return None
-# Token string: "event_type|flag|module|group|label|<optional data_fmt>"
+# Token string: "event_type|flag|module|group|label|<optional DATA_FMT>"
class TokenIdx(IntEnum):
- EventType = 0
- Flag = 1
- Module = 2
- Group = 3
- Label = 4
- data_fmt = 5 # optional
+ EVENT_TYPE = 0
+ FLAG = 1
+ MODULE = 2
+ GROUP = 3
+ LABEL = 4
+ DATA_FMT = 5 # optional
def get_trace_type(type_str):
if type_str == "PW_TRACE_EVENT_TYPE_INSTANT":
- return trace.TraceType.Instantaneous
+ return trace.TraceType.INSTANTANEOUS
if type_str == "PW_TRACE_EVENT_TYPE_INSTANT_GROUP":
- return trace.TraceType.InstantaneousGroup
+ return trace.TraceType.INSTANTANEOUS_GROUP
if type_str == "PW_TRACE_EVENT_TYPE_ASYNC_START":
- return trace.TraceType.AsyncStart
+ return trace.TraceType.ASYNC_START
if type_str == "PW_TRACE_EVENT_TYPE_ASYNC_STEP":
- return trace.TraceType.AsyncStep
+ return trace.TraceType.ASYNC_STEP
if type_str == "PW_TRACE_EVENT_TYPE_ASYNC_END":
- return trace.TraceType.AsyncEnd
+ return trace.TraceType.ASYNC_END
if type_str == "PW_TRACE_EVENT_TYPE_DURATION_START":
- return trace.TraceType.DurationStart
+ return trace.TraceType.DURATION_START
if type_str == "PW_TRACE_EVENT_TYPE_DURATION_END":
- return trace.TraceType.DurationEnd
+ return trace.TraceType.DURATION_END
if type_str == "PW_TRACE_EVENT_TYPE_DURATION_GROUP_START":
- return trace.TraceType.DurationGroupStart
+ return trace.TraceType.DURATION_GROUP_START
if type_str == "PW_TRACE_EVENT_TYPE_DURATION_GROUP_END":
- return trace.TraceType.DurationGroupEnd
- return trace.TraceType.Invalid
+ return trace.TraceType.DURATION_GROUP_END
+ return trace.TraceType.INVALID
def has_trace_id(token_string):
token_values = token_string.split("|")
- return trace.event_has_trace_id(token_values[TokenIdx.EventType])
+ return trace.event_has_trace_id(token_values[TokenIdx.EVENT_TYPE])
def has_data(token_string):
token_values = token_string.split("|")
- return len(token_values) > TokenIdx.data_fmt
+ return len(token_values) > TokenIdx.DATA_FMT
def create_trace_event(token_string, timestamp_us, trace_id, data):
token_values = token_string.split("|")
return trace.TraceEvent(event_type=get_trace_type(
- token_values[TokenIdx.EventType]),
- module=token_values[TokenIdx.Module],
- label=token_values[TokenIdx.Label],
+ token_values[TokenIdx.EVENT_TYPE]),
+ module=token_values[TokenIdx.MODULE],
+ label=token_values[TokenIdx.LABEL],
timestamp_us=timestamp_us,
- group=token_values[TokenIdx.Group],
+ group=token_values[TokenIdx.GROUP],
trace_id=trace_id,
- flags=token_values[TokenIdx.Flag],
+ flags=token_values[TokenIdx.FLAG],
has_data=has_data(token_string),
- data_fmt=(token_values[TokenIdx.data_fmt]
+ data_fmt=(token_values[TokenIdx.DATA_FMT]
if has_data(token_string) else ""),
data=data if has_data(token_string) else b'')