summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib.py b/lib.py
index 18e57e4..adfdf9c 100644
--- a/lib.py
+++ b/lib.py
@@ -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