From b046f21e0de3ddd9d933e143606a1cbda188a57d Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Sat, 27 Jun 2020 12:46:04 +0300 Subject: [PATCH] Fix "RuntimeError: dictionary keys changed during iteration" when parsing "library.json" dependencies --- platformio/package/manifest/parser.py | 2 -- tests/package/test_manifest.py | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/platformio/package/manifest/parser.py b/platformio/package/manifest/parser.py index 720d4ea3..193fbde1 100644 --- a/platformio/package/manifest/parser.py +++ b/platformio/package/manifest/parser.py @@ -384,8 +384,6 @@ class LibraryJsonManifestParser(BaseManifestParser): for k, v in dependency.items(): if k not in ("platforms", "frameworks", "authors"): continue - if "*" in v: - del raw[i][k] raw[i][k] = util.items_to_list(v) else: raw[i] = {"name": dependency} diff --git a/tests/package/test_manifest.py b/tests/package/test_manifest.py index cef5900d..332cb7b5 100644 --- a/tests/package/test_manifest.py +++ b/tests/package/test_manifest.py @@ -83,7 +83,7 @@ def test_library_json_parser(): }, "dependencies": [ {"name": "deps1", "version": "1.0.0"}, - {"name": "@owner/deps2", "version": "1.0.0", "platforms": "atmelavr, espressif32", "frameworks": "arduino, espidf"}, + {"name": "@owner/deps2", "version": "1.0.0", "platforms": "*", "frameworks": "arduino, espidf"}, {"name": "deps3", "version": "1.0.0", "platforms": ["ststm32", "sifive"]} ] } @@ -101,7 +101,7 @@ def test_library_json_parser(): { "name": "@owner/deps2", "version": "1.0.0", - "platforms": ["atmelavr", "espressif32"], + "platforms": ["*"], "frameworks": ["arduino", "espidf"], }, {"name": "deps1", "version": "1.0.0"},