1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-06 05:12:21 +01:00
* Add black

Update pre commit

Update pre commit

add empty line

* Format with black
This commit is contained in:
Guillermo Ruffino
2021-03-07 16:03:16 -03:00
committed by GitHub
parent 2b60b0f1fa
commit 69879920eb
398 changed files with 21624 additions and 12644 deletions

View File

@@ -24,6 +24,7 @@ def patch_structhash():
def patched_clean_build_dir(build_dir, *args):
from platformio import fs
from platformio.project.helpers import get_project_dir
platformio_ini = join(get_project_dir(), "platformio.ini")
# if project's config is modified
@@ -38,54 +39,59 @@ def patch_structhash():
command.clean_build_dir = patched_clean_build_dir
IGNORE_LIB_WARNINGS = r'(?:' + '|'.join(['Hash', 'Update']) + r')'
IGNORE_LIB_WARNINGS = r"(?:" + "|".join(["Hash", "Update"]) + r")"
FILTER_PLATFORMIO_LINES = [
r'Verbose mode can be enabled via `-v, --verbose` option.*',
r'CONFIGURATION: https://docs.platformio.org/.*',
r'PLATFORM: .*',
r'DEBUG: Current.*',
r'PACKAGES: .*',
r'LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf.*',
r'LDF Modes: Finder ~ chain, Compatibility ~ soft.*',
r'Looking for ' + IGNORE_LIB_WARNINGS + r' library in registry',
r"Warning! Library `.*'" + IGNORE_LIB_WARNINGS +
r".*` has not been found in PlatformIO Registry.",
r"You can ignore this message, if `.*" + IGNORE_LIB_WARNINGS + r".*` is a built-in library.*",
r'Scanning dependencies...',
r"Verbose mode can be enabled via `-v, --verbose` option.*",
r"CONFIGURATION: https://docs.platformio.org/.*",
r"PLATFORM: .*",
r"DEBUG: Current.*",
r"PACKAGES: .*",
r"LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf.*",
r"LDF Modes: Finder ~ chain, Compatibility ~ soft.*",
r"Looking for " + IGNORE_LIB_WARNINGS + r" library in registry",
r"Warning! Library `.*'"
+ IGNORE_LIB_WARNINGS
+ r".*` has not been found in PlatformIO Registry.",
r"You can ignore this message, if `.*"
+ IGNORE_LIB_WARNINGS
+ r".*` is a built-in library.*",
r"Scanning dependencies...",
r"Found \d+ compatible libraries",
r'Memory Usage -> http://bit.ly/pio-memory-usage',
r'esptool.py v.*',
r"Memory Usage -> http://bit.ly/pio-memory-usage",
r"esptool.py v.*",
r"Found: https://platformio.org/lib/show/.*",
r"Using cache: .*",
r'Installing dependencies',
r'.* @ .* is already installed',
r'Building in .* mode',
r'Advanced Memory Usage is available via .*',
r"Installing dependencies",
r".* @ .* is already installed",
r"Building in .* mode",
r"Advanced Memory Usage is available via .*",
]
def run_platformio_cli(*args, **kwargs) -> Union[str, int]:
os.environ["PLATFORMIO_FORCE_COLOR"] = "true"
os.environ["PLATFORMIO_BUILD_DIR"] = os.path.abspath(CORE.relative_pioenvs_path())
os.environ["PLATFORMIO_LIBDEPS_DIR"] = os.path.abspath(CORE.relative_piolibdeps_path())
cmd = ['platformio'] + list(args)
os.environ["PLATFORMIO_LIBDEPS_DIR"] = os.path.abspath(
CORE.relative_piolibdeps_path()
)
cmd = ["platformio"] + list(args)
if not CORE.verbose:
kwargs['filter_lines'] = FILTER_PLATFORMIO_LINES
kwargs["filter_lines"] = FILTER_PLATFORMIO_LINES
if os.environ.get('ESPHOME_USE_SUBPROCESS') is not None:
if os.environ.get("ESPHOME_USE_SUBPROCESS") is not None:
return run_external_process(*cmd, **kwargs)
import platformio.__main__
patch_structhash()
return run_external_command(platformio.__main__.main,
*cmd, **kwargs)
return run_external_command(platformio.__main__.main, *cmd, **kwargs)
def run_platformio_cli_run(config, verbose, *args, **kwargs) -> Union[str, int]:
command = ['run', '-d', CORE.build_path]
command = ["run", "-d", CORE.build_path]
if verbose:
command += ['-v']
command += ["-v"]
command += list(args)
return run_platformio_cli(*command, **kwargs)
@@ -95,11 +101,13 @@ def run_compile(config, verbose):
def run_upload(config, verbose, port):
return run_platformio_cli_run(config, verbose, '-t', 'upload', '--upload-port', port)
return run_platformio_cli_run(
config, verbose, "-t", "upload", "--upload-port", port
)
def run_idedata(config):
args = ['-t', 'idedata']
args = ["-t", "idedata"]
stdout = run_platformio_cli_run(config, False, *args, capture_stdout=True)
match = re.search(r'{\s*".*}', stdout)
if match is None:
@@ -129,10 +137,10 @@ ESP8266_EXCEPTION_CODES = {
0: "Illegal instruction (Is the flash damaged?)",
1: "SYSCALL instruction",
2: "InstructionFetchError: Processor internal physical address or data error during "
"instruction fetch",
"instruction fetch",
3: "LoadStoreError: Processor internal physical address or data error during load or store",
4: "Level1Interrupt: Level-1 interrupt as indicated by set level-1 bits in the INTERRUPT "
"register",
"register",
5: "Alloca: MOVSP instruction, if caller's registers are not in the register file",
6: "Integer Divide By Zero",
7: "reserved",
@@ -147,17 +155,17 @@ ESP8266_EXCEPTION_CODES = {
16: "InstTLBMiss: Error during Instruction TLB refill",
17: "InstTLBMultiHit: Multiple instruction TLB entries matched",
18: "InstFetchPrivilege: An instruction fetch referenced a virtual address at a ring level "
"less than CRING",
"less than CRING",
19: "reserved",
20: "InstFetchProhibited: An instruction fetch referenced a page mapped with an attribute "
"that does not permit instruction fetch",
"that does not permit instruction fetch",
21: "reserved",
22: "reserved",
23: "reserved",
24: "LoadStoreTLBMiss: Error during TLB refill for a load or store",
25: "LoadStoreTLBMultiHit: Multiple TLB entries matched for a load or store",
26: "LoadStorePrivilege: A load or store referenced a virtual address at a ring level less "
"than ",
"than ",
27: "reserved",
28: "Access to invalid address: LOAD (wild pointer?)",
29: "Access to invalid address: STORE (wild pointer?)",
@@ -169,7 +177,7 @@ def _decode_pc(config, addr):
if not idedata.addr2line_path or not idedata.firmware_elf_path:
_LOGGER.debug("decode_pc no addr2line")
return
command = [idedata.addr2line_path, '-pfiaC', '-e', idedata.firmware_elf_path, addr]
command = [idedata.addr2line_path, "-pfiaC", "-e", idedata.firmware_elf_path, addr]
try:
translation = subprocess.check_output(command).decode().strip()
except Exception: # pylint: disable=broad-except
@@ -179,7 +187,7 @@ def _decode_pc(config, addr):
if "?? ??:0" in translation:
# Nothing useful
return
translation = translation.replace(' at ??:?', '').replace(':?', '')
translation = translation.replace(" at ??:?", "").replace(":?", "")
_LOGGER.warning("Decoded %s", translation)
@@ -189,15 +197,19 @@ def _parse_register(config, regex, line):
_decode_pc(config, match.group(1))
STACKTRACE_ESP8266_EXCEPTION_TYPE_RE = re.compile(r'[eE]xception \((\d+)\):')
STACKTRACE_ESP8266_PC_RE = re.compile(r'epc1=0x(4[0-9a-fA-F]{7})')
STACKTRACE_ESP8266_EXCVADDR_RE = re.compile(r'excvaddr=0x(4[0-9a-fA-F]{7})')
STACKTRACE_ESP32_PC_RE = re.compile(r'PC\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})')
STACKTRACE_ESP32_EXCVADDR_RE = re.compile(r'EXCVADDR\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})')
STACKTRACE_BAD_ALLOC_RE = re.compile(r'^last failed alloc call: (4[0-9a-fA-F]{7})\((\d+)\)$')
STACKTRACE_ESP32_BACKTRACE_RE = re.compile(r'Backtrace:(?:\s+0x[0-9a-fA-F]{8}:0x[0-9a-fA-F]{8})+')
STACKTRACE_ESP32_BACKTRACE_PC_RE = re.compile(r'4[0-9a-f]{7}')
STACKTRACE_ESP8266_BACKTRACE_PC_RE = re.compile(r'4[0-9a-f]{7}')
STACKTRACE_ESP8266_EXCEPTION_TYPE_RE = re.compile(r"[eE]xception \((\d+)\):")
STACKTRACE_ESP8266_PC_RE = re.compile(r"epc1=0x(4[0-9a-fA-F]{7})")
STACKTRACE_ESP8266_EXCVADDR_RE = re.compile(r"excvaddr=0x(4[0-9a-fA-F]{7})")
STACKTRACE_ESP32_PC_RE = re.compile(r"PC\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})")
STACKTRACE_ESP32_EXCVADDR_RE = re.compile(r"EXCVADDR\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})")
STACKTRACE_BAD_ALLOC_RE = re.compile(
r"^last failed alloc call: (4[0-9a-fA-F]{7})\((\d+)\)$"
)
STACKTRACE_ESP32_BACKTRACE_RE = re.compile(
r"Backtrace:(?:\s+0x[0-9a-fA-F]{8}:0x[0-9a-fA-F]{8})+"
)
STACKTRACE_ESP32_BACKTRACE_PC_RE = re.compile(r"4[0-9a-f]{7}")
STACKTRACE_ESP8266_BACKTRACE_PC_RE = re.compile(r"4[0-9a-f]{7}")
def process_stacktrace(config, line, backtrace_state):
@@ -206,7 +218,9 @@ def process_stacktrace(config, line, backtrace_state):
match = re.match(STACKTRACE_ESP8266_EXCEPTION_TYPE_RE, line)
if match is not None:
code = int(match.group(1))
_LOGGER.warning("Exception type: %s", ESP8266_EXCEPTION_CODES.get(code, 'unknown'))
_LOGGER.warning(
"Exception type: %s", ESP8266_EXCEPTION_CODES.get(code, "unknown")
)
# ESP8266 PC/EXCVADDR
_parse_register(config, STACKTRACE_ESP8266_PC_RE, line)
@@ -218,8 +232,9 @@ def process_stacktrace(config, line, backtrace_state):
# bad alloc
match = re.match(STACKTRACE_BAD_ALLOC_RE, line)
if match is not None:
_LOGGER.warning("Memory allocation of %s bytes failed at %s",
match.group(2), match.group(1))
_LOGGER.warning(
"Memory allocation of %s bytes failed at %s", match.group(2), match.group(1)
)
_decode_pc(config, match.group(1))
# ESP32 single-line backtrace
@@ -230,11 +245,11 @@ def process_stacktrace(config, line, backtrace_state):
_decode_pc(config, addr.group())
# ESP8266 multi-line backtrace
if '>>>stack>>>' in line:
if ">>>stack>>>" in line:
# Start of backtrace
backtrace_state = True
_LOGGER.warning("Found stack trace! Trying to decode it")
elif '<<<stack<<<' in line:
elif "<<<stack<<<" in line:
# End of backtrace
backtrace_state = False
@@ -259,7 +274,7 @@ class IDEData:
@property
def flash_extra_images(self):
return [
(x['path'], x['offset']) for x in self.raw.get("flash_extra_images", [])
(x["path"], x["offset"]) for x in self.raw.get("flash_extra_images", [])
]
@property
@@ -275,7 +290,7 @@ class IDEData:
# replace gcc at end with addr2line
# Windows
if cc_path.endswith('.exe'):
return cc_path[:-7] + 'addr2line.exe'
if cc_path.endswith(".exe"):
return cc_path[:-7] + "addr2line.exe"
return cc_path[:-3] + 'addr2line'
return cc_path[:-3] + "addr2line"