From 16e2fbd6cbe5c1f946755aff5cef2741b0939bea Mon Sep 17 00:00:00 2001 From: James Hensman Date: Wed, 26 Feb 2014 15:54:43 +0000 Subject: [PATCH] pydot graphing half done --- GPy/core/parameterization/param.py | 9 +++++++++ GPy/core/parameterization/parameterized.py | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/GPy/core/parameterization/param.py b/GPy/core/parameterization/param.py index 53b2260e..b48bec0d 100644 --- a/GPy/core/parameterization/param.py +++ b/GPy/core/parameterization/param.py @@ -60,6 +60,15 @@ class Param(Constrainable, ObservableArray, Gradcheckable): def __init__(self, name, input_array, default_constraint=None, *a, **kw): super(Param, self).__init__(name=name, default_constraint=default_constraint, *a, **kw) + def build_pydot(self,G): + import pydot + node = pydot.Node(id(self), shape='record', label=self.name) + G.add_node(node) + for o in self._observer_callables_.keys(): + print o, self.hirarchy_name() + + return node + def __array_finalize__(self, obj): # see InfoArray.__array_finalize__ for comments if obj is None: return diff --git a/GPy/core/parameterization/parameterized.py b/GPy/core/parameterization/parameterized.py index 16ae43a7..83a62161 100644 --- a/GPy/core/parameterization/parameterized.py +++ b/GPy/core/parameterization/parameterized.py @@ -64,6 +64,26 @@ class Parameterized(Parameterizable, Pickleable, Gradcheckable): self._connect_parameters() del self._in_init_ + def build_pydot(self, G=None): + import pydot + iamroot = False + if G is None: + G = pydot.Dot(graph_type='digraph') + iamroot=True + node = pydot.Node(id(self), shape='record', label=self.name) + G.add_node(node) + for child in self._parameters_: + child_node = child.build_pydot(G) + G.add_edge(pydot.Edge(node, child_node)) + + for o in self._observer_callables_.keys(): + print id(o), self.hirarchy_name() + + if iamroot: + return G + return node + + def add_parameter(self, param, index=None): """ :param parameters: the parameters to add