chiark / gitweb /
peerdb/tripe-newpeers.in (ConfigSection): Fix handling of `@inherits'.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 27 May 2018 13:00:02 +0000 (14:00 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 14 Jun 2018 11:50:38 +0000 (12:50 +0100)
  * Make `get' return it properly -- unexpanded (because that wouldn't
    make sense).

  * Make `items' mention it if applicable.

This doesn't affect the final output, since the CDB writing stage omits
keys whose name begins with `@'.

peerdb/tripe-newpeers.in

index fdb91708a42105a7aa6b01efc3bd189b322a5d7a..1213b904aad2877afe380846c8c06dea4139554e 100644 (file)
@@ -296,6 +296,9 @@ class ConfigSection (object):
     ## 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:
@@ -322,8 +325,7 @@ class ConfigSection (object):
         if p.name not in visiting:
           stack.append(p); visiting[p.name] = True
 
-      for key in sec._itemmap.iterkeys():
-        if key != '@inherit': seen[key] = None
+      for key in sec._itemmap.iterkeys(): seen[key] = None
 
     ## And we're done.
     return seen.iterkeys()