@@ -42,8 +42,8 @@ class Base_Monitor(Component):
42
42
43
43
default_window_length: The default window length.
44
44
"""
45
+ auto_resolve = False
45
46
46
- _singleton = None # Only one Monitor
47
47
48
48
@staticmethod
49
49
def build_advance (compartments ):
@@ -62,14 +62,19 @@ def build_advance(compartments):
62
62
"ngclearn.components.lava (If using lava)" )
63
63
64
64
@staticmethod
65
- def build_reset (compartments ):
65
+ def build_reset (component ):
66
66
"""
67
67
A method to build the method to reset the stored values.
68
68
Args:
69
- compartments: A list of compartments to reset
69
+ component: The component to resolve
70
70
71
- Returns: The method to reset the stored values.
71
+ Returns: the reset resolver
72
72
"""
73
+ output_compartments = []
74
+ compartments = []
75
+ for comp in component .compartments :
76
+ output_compartments .append (comp .split ("/" )[- 1 ] + "*store" )
77
+ compartments .append (comp .split ("/" )[- 1 ])
73
78
74
79
@staticmethod
75
80
def _reset (** kwargs ):
@@ -79,13 +84,22 @@ def _reset(**kwargs):
79
84
return_vals .append (np .zeros (current_store .shape ))
80
85
return return_vals if len (compartments ) > 1 else return_vals [0 ]
81
86
82
- return _reset
87
+ # pure func, output compartments, args, params, input compartments
88
+ return _reset , output_compartments , [], [], output_compartments
89
+
90
+ @staticmethod
91
+ def build_advance_state (component ):
92
+ output_compartments = []
93
+ compartments = []
94
+ for comp in component .compartments :
95
+ output_compartments .append (comp .split ("/" )[- 1 ] + "*store" )
96
+ compartments .append (comp .split ("/" )[- 1 ])
97
+
98
+ _advance = component .build_advance (compartments )
99
+
100
+ return _advance , output_compartments , [], [], compartments + output_compartments
83
101
84
102
def __init__ (self , name , default_window_length = 100 , ** kwargs ):
85
- if Base_Monitor ._singleton is not None :
86
- critical ("Only one monitor can be built" )
87
- else :
88
- Base_Monitor ._singleton = True
89
103
super ().__init__ (name , ** kwargs )
90
104
self .store = {}
91
105
self .compartments = []
@@ -127,7 +141,7 @@ def watch(self, compartment, window_length):
127
141
setattr (self , store_comp_key , new_comp_store )
128
142
self .compartments .append (new_comp .path )
129
143
self ._sources .append (compartment )
130
- self ._update_resolver ()
144
+ # self._update_resolver()
131
145
132
146
def halt (self , compartment ):
133
147
"""
@@ -157,29 +171,29 @@ def halt_all(self):
157
171
for compartment in self ._sources :
158
172
self .halt (compartment )
159
173
160
- def _update_resolver (self ):
161
- output_compartments = []
162
- compartments = []
163
- for comp in self .compartments :
164
- output_compartments .append (comp .split ("/" )[- 1 ] + "*store" )
165
- compartments .append (comp .split ("/" )[- 1 ])
166
-
167
- args = []
168
- parameters = []
169
-
170
- add_component_resolver (self .__class__ .__name__ , "advance_state" ,
171
- (self .build_advance (compartments ),
172
- output_compartments ))
173
- add_resolver_meta (self .__class__ .__name__ , "advance_state" ,
174
- (args , parameters ,
175
- compartments + [o for o in output_compartments ],
176
- False ))
177
-
178
- add_component_resolver (self .__class__ .__name__ , "reset" , (
179
- self .build_reset (compartments ), output_compartments ))
180
- add_resolver_meta (self .__class__ .__name__ , "reset" ,
181
- (args , parameters , [o for o in output_compartments ],
182
- False ))
174
+ # def _update_resolver(self):
175
+ # output_compartments = []
176
+ # compartments = []
177
+ # for comp in self.compartments:
178
+ # output_compartments.append(comp.split("/")[-1] + "*store")
179
+ # compartments.append(comp.split("/")[-1])
180
+ #
181
+ # args = []
182
+ # parameters = []
183
+ #
184
+ # add_component_resolver(self.__class__.__name__, "advance_state",
185
+ # (self.build_advance(compartments),
186
+ # output_compartments))
187
+ # add_resolver_meta(self.__class__.__name__, "advance_state",
188
+ # (args, parameters,
189
+ # compartments + [o for o in output_compartments],
190
+ # False))
191
+
192
+ # add_component_resolver(self.__class__.__name__, "reset", (
193
+ # self.build_reset(compartments), output_compartments))
194
+ # add_resolver_meta(self.__class__.__name__, "reset",
195
+ # (args, parameters, [o for o in output_compartments],
196
+ # False))
183
197
184
198
def _add_path (self , path ):
185
199
_path = path .split ("/" )[1 :]
0 commit comments