~mdw
/
tripe
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
peerdb/tripe-newpeers.in (ConfigSection.items): Report `name'.
[tripe]
/
peerdb
/
tripe-newpeers.in
diff --git
a/peerdb/tripe-newpeers.in
b/peerdb/tripe-newpeers.in
index
4b9fe1f
..
00361d4
100644
(file)
--- a/
peerdb/tripe-newpeers.in
+++ b/
peerdb/tripe-newpeers.in
@@
-296,6
+296,9
@@
class ConfigSection (object):
## Special handling for the `name' key.
if key == 'name':
value = me._itemmap.get('name', me.name)
## Special handling for the `name' key.
if key == 'name':
value = me._itemmap.get('name', me.name)
+ elif key == '@inherits':
+ try: return me._itemmap['@inherits']
+ except KeyError: raise MissingKeyException(me.name, key)
else:
value, _ = me._get(key)
if value is None:
else:
value, _ = me._get(key)
if value is None:
@@
-310,23
+313,22
@@
class ConfigSection (object):
"""
## Initialize for a depth-first walk of the inheritance graph.
"""
## Initialize for a depth-first walk of the inheritance graph.
-
d = {
}
- visit
ed = {
}
+
seen = { 'name': True
}
+ visit
ing = { me.name: True
}
stack = [me]
## Visit nodes, collecting their keys. Don't believe the values:
## resolving inheritance is too hard to do like this.
while stack:
sec = stack.pop()
stack = [me]
## Visit nodes, collecting their keys. Don't believe the values:
## resolving inheritance is too hard to do like this.
while stack:
sec = stack.pop()
- if sec.name in visited: continue
- visited[sec.name] = True
- stack += sec._parents()
+ for p in sec._parents():
+ if p.name not in visiting:
+ stack.append(p); visiting[p.name] = True
- for key in sec._itemmap.iterkeys():
- if key != '@inherit': d[key] = None
+ for key in sec._itemmap.iterkeys(): seen[key] = None
## And we're done.
## And we're done.
- return
d
.iterkeys()
+ return
seen
.iterkeys()
class MyConfigParser (object):
"""
class MyConfigParser (object):
"""