From 2459e85c1dc9a1ecfe632c611594c6c302c8af6b Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 17 Aug 2020 12:13:25 +0300 Subject: [PATCH] Fix a bug with the custom platform packages // Resolve #3628 --- platformio/platform/base.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/platformio/platform/base.py b/platformio/platform/base.py index 38602950..a5f3dd01 100644 --- a/platformio/platform/base.py +++ b/platformio/platform/base.py @@ -89,17 +89,20 @@ class PlatformBase( # pylint: disable=too-many-instance-attributes,too-many-pub @property def packages(self): packages = self._manifest.get("packages", {}) - for spec in self._custom_packages or []: - spec = self.pm.ensure_spec(spec) - if spec.external: - version = spec.url - else: - version = str(spec.requirements) or "*" + for item in self._custom_packages or []: + name = item + version = "*" + if "@" in item: + name, version = item.split("@", 2) + spec = self.pm.ensure_spec(name) + options = {"version": version.strip(), "optional": False} + if spec.owner: + options["owner"] = spec.owner if spec.name not in packages: packages[spec.name] = {} - packages[spec.name].update( - {"owner": spec.owner, "version": version, "optional": False} - ) + packages[spec.name].update(**options) + + print(13, packages) return packages @property