Fix a bug with the custom platform packages // Resolve #3628

This commit is contained in:
Ivan Kravets
2020-08-17 12:13:25 +03:00
parent 74e27a2edc
commit 2459e85c1d

View File

@ -89,17 +89,20 @@ class PlatformBase( # pylint: disable=too-many-instance-attributes,too-many-pub
@property @property
def packages(self): def packages(self):
packages = self._manifest.get("packages", {}) packages = self._manifest.get("packages", {})
for spec in self._custom_packages or []: for item in self._custom_packages or []:
spec = self.pm.ensure_spec(spec) name = item
if spec.external: version = "*"
version = spec.url if "@" in item:
else: name, version = item.split("@", 2)
version = str(spec.requirements) or "*" 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: if spec.name not in packages:
packages[spec.name] = {} packages[spec.name] = {}
packages[spec.name].update( packages[spec.name].update(**options)
{"owner": spec.owner, "version": version, "optional": False}
) print(13, packages)
return packages return packages
@property @property