diff --git a/prjxray/db.py b/prjxray/db.py index 2700b6be..56ea14f0 100644 --- a/prjxray/db.py +++ b/prjxray/db.py @@ -168,9 +168,19 @@ class Database(object): # Get a list of required features for all parts features = set() - if "all" in self.required_features: - features |= set(self.required_features["all"]) + if "always_required" in self.required_features: + features |= set(self.required_features["always_required"]) - # TODO: Add a support for required features for a specific part. + # Append / remove features for the specific part. If a feature string + # starts with "-" then the feature needs not to be present for that + # part. + if part is not None: + for f in self.required_features["per_part_required"][part]: + + if f.startswith("-"): + f = f[1:] + features -= set([f]) + else: + features |= set([f]) return features diff --git a/utils/fasm2frames.py b/utils/fasm2frames.py index 00270475..8776103d 100755 --- a/utils/fasm2frames.py +++ b/utils/fasm2frames.py @@ -120,7 +120,7 @@ def run( extra_features = fasm.parse_fasm_string( '\n'.join(roi_j['required_features'])) - # Get required features for the part + # Get required extra features for the part # TODO: Specify the part explicitly ? required_features = db.get_required_fasm_features(None) extra_features += fasm.parse_fasm_string('\n'.join(required_features))