diff options
-rw-r--r-- | lib.py | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -43,6 +43,8 @@ def bl_map_nodes_edges(nodes, edges, prev_nnames=None): class LibMeta(type): + promote_url = False + def __new__(cls, name, bases, attrs): ret = super(LibMeta, cls).__new__(cls, name, bases, attrs) if REGISTRY.setdefault(name, ret) is not ret: @@ -66,7 +68,11 @@ class LibMeta(type): for akey, avalue in getattr(cls, 'defaults', {}).iteritems(): kwargs.setdefault(akey, avalue) - kwargs['URL'] = "class://" + self.__class__.__name__ + if type(self).promote_url: + if hasattr(self, 'web'): + kwargs['URL'] = getattr(self, 'web', None) + else: + kwargs['URL'] = "class://" + self.__class__.__name__ old_init(self, *args, **kwargs) super(cls, self).__init__(*args, **kwargs) @@ -316,6 +322,7 @@ def main(graph, argv, *args, **kws): if x: xdot_graph(graph, **kws) else: + LibMeta.promote_url = True ext = argv[1] if len(argv) > 1 else 'pdf' fmt = {'dot': 'raw'}.get(ext, ext) output += extsep + ext |