Skip to content

Commit a0a3dd6

Browse files
author
Cruz Monrreal
authored
Merge pull request #8288 from theotherjimmy/incomplete-targets-notsupported
tools: Raise NotSupported when target definition is incomplete
2 parents c9adf3c + 9c3307a commit a0a3dd6

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

tools/targets/__init__.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@
2525
from copy import copy
2626
from inspect import getmro
2727
from collections import namedtuple, Mapping
28+
from future.utils import raise_from
2829
from tools.resources import FileType
2930
from tools.targets.LPC import patch
3031
from tools.paths import TOOLS_BOOTLOADERS
31-
from tools.utils import json_file_to_dict
32+
from tools.utils import json_file_to_dict, NotSupportedException
3233

3334
__all__ = ["target", "TARGETS", "TARGET_MAP", "TARGET_NAMES", "CORE_LABELS",
3435
"CORE_ARCH", "HookError", "generate_py_target", "Target",
@@ -116,7 +117,12 @@ def get_resolution_order(json_data, target_name, order, level=0):
116117

117118
def target(name, json_data):
118119
"""Construct a target object"""
119-
resolution_order = get_resolution_order(json_data, name, [])
120+
try:
121+
resolution_order = get_resolution_order(json_data, name, [])
122+
except KeyError as exc:
123+
raise_from(NotSupportedException(
124+
"target {} has an incomplete target definition".format(name)
125+
), exc)
120126
resolution_order_names = [tgt for tgt, _ in resolution_order]
121127
return Target(name=name,
122128
json_data={key: value for key, value in json_data.items()

0 commit comments

Comments
 (0)