diff options
Diffstat (limited to 'morphlib/morphloader.py')
-rw-r--r-- | morphlib/morphloader.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/morphlib/morphloader.py b/morphlib/morphloader.py index 9601784c..8c20d9ed 100644 --- a/morphlib/morphloader.py +++ b/morphlib/morphloader.py @@ -54,11 +54,12 @@ class InvalidFieldError(morphlib.Error): self.msg = ( 'Field %s not allowed in morphology %s' % (field, morphology)) -class ObsoleteFieldError(morphlib.Error): +class ObsoleteFieldsError(morphlib.Error): - def __init__(self, field, morphology): - self.msg = ( - 'Field %s is now obsolete but present in %s' % (field, morphology)) + def __init__(self, fields, morphology): + self.msg = ( + 'Morphology %s uses obsolete fields: %s' % + (morphology, ' '.join(fields))) class UnknownArchitectureError(morphlib.Error): @@ -307,9 +308,9 @@ class MorphologyLoader(object): self._require_field(field, morphology) def _deny_obsolete_fields(self, fields, morphology): - for field in morphology: - if field in fields: - raise ObsoleteFieldError(field, morphology.filename) + obsolete_ones = [x for x in morphology if x in fields] + if obsolete_ones: + raise ObsoleteFieldsError(obsolete_ones, morphology.filename) def _deny_unknown_fields(self, allowed, morphology): for field in morphology: |