diff options
author | Julien Campergue <julien.campergue@parrot.com> | 2013-10-09 14:38:46 +0200 |
---|---|---|
committer | Julien Campergue <julien.campergue@parrot.com> | 2013-10-10 18:14:27 +0200 |
commit | 7487992bd33d5cbf314d234c13a085c56200b33e (patch) | |
tree | 51cace1031fb93f10ae6fe2c7dc0bc4e897539ab | |
parent | e76efdd7b342577c40aa271fa5ded9d66a783a9b (diff) | |
download | git-repo-7487992bd33d5cbf314d234c13a085c56200b33e.tar.gz |
Better handling of duplicate default
Currently, an error is raised if more than one default is defined.
When including another manifest, it is likely that a default has
been defined in both manifests.
Don't raise an error if all the defaults defined have the same
attributes.
Change-Id: I2603020687e2ba04c2c62c3268ee375279b34a08
Signed-off-by: Julien Campergue <julien.campergue@parrot.com>
-rw-r--r-- | manifest_xml.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index e40e6fac..eb4908da 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
@@ -51,6 +51,12 @@ class _Default(object): | |||
51 | sync_c = False | 51 | sync_c = False |
52 | sync_s = False | 52 | sync_s = False |
53 | 53 | ||
54 | def __eq__(self, other): | ||
55 | return self.__dict__ == other.__dict__ | ||
56 | |||
57 | def __ne__(self, other): | ||
58 | return self.__dict__ != other.__dict__ | ||
59 | |||
54 | class _XmlRemote(object): | 60 | class _XmlRemote(object): |
55 | def __init__(self, | 61 | def __init__(self, |
56 | name, | 62 | name, |
@@ -422,11 +428,14 @@ class XmlManifest(object): | |||
422 | 428 | ||
423 | for node in itertools.chain(*node_list): | 429 | for node in itertools.chain(*node_list): |
424 | if node.nodeName == 'default': | 430 | if node.nodeName == 'default': |
425 | if self._default is not None: | 431 | new_default = self._ParseDefault(node) |
426 | raise ManifestParseError( | 432 | if self._default is None: |
427 | 'duplicate default in %s' % | 433 | self._default = new_default |
428 | (self.manifestFile)) | 434 | elif new_default != self._default: |
429 | self._default = self._ParseDefault(node) | 435 | raise ManifestParseError( |
436 | 'duplicate default in %s' % | ||
437 | (self.manifestFile)) | ||
438 | |||
430 | if self._default is None: | 439 | if self._default is None: |
431 | self._default = _Default() | 440 | self._default = _Default() |
432 | 441 | ||