[Telepathy-commits] [telepathy-spec/master] Initial attempt at tp:dbus-ref
Davyd Madeley
davyd at madeley.id.au
Mon Mar 23 12:29:19 PDT 2009
---
tools/specparser.py | 30 ++++++++++++++++++++++++++++++
1 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/tools/specparser.py b/tools/specparser.py
index 926c9cd..3876b98 100644
--- a/tools/specparser.py
+++ b/tools/specparser.py
@@ -82,13 +82,43 @@ class base (object):
"Key `%s' not known in interface `%s'" % (
key, interface.name)
continue
+
n.tagName = 'a'
n.namespaceURI = None
n.setAttribute ('href', o.get_url ())
n.setAttribute ('title', o.name)
+ # rewrite <tp:dbus-ref>
+ spec = self.get_spec ()
+ for n in node.getElementsByTagNameNS (XMLNS_TP, 'dbus-ref'):
+ key = n.getAttribute ('namespace')
+ try:
+ interface = spec.interfaces[key]
+ except KeyError:
+ print >> sys.stderr, \
+ "Interface `%s' not known in spec (%s: %s)" % (
+ key, self.name, n.toxml ())
+ continue
+
+ key = getText (n)
+ try:
+ o = interface.get_ref (key)
+ except KeyError:
+ print >> sys.stderr, \
+ "Key `%s' not known in interface `%s'" % (
+ key, interface.name)
+ continue
+
+ n.tagName = 'a'
+ n.namespaceURI = None
+ n.setAttribute ('href', o.get_url ())
+ n.setAttribute ('title', o.get_title ())
+
return node.toxml ().encode ('ascii', 'xmlcharrefreplace')
+ def get_title (self):
+ return '%s %s' % (self.__class__.__name__, self.name)
+
def __repr__ (self):
return '%s(%s)' % (self.__class__.__name__, self.name)
--
1.5.6.5
More information about the telepathy-commits
mailing list