Skip to content

Commit 6e74cf5

Browse files
committed
Merge pull request #2003 from UV-CDAT/fix_broken_dv3d
Fixes failing DV3D tests and VCS behavior
2 parents 475e3b1 + 850cf60 commit 6e74cf5

File tree

3 files changed

+30
-13
lines changed

3 files changed

+30
-13
lines changed

Packages/DV3D/ConfigurationFunctions.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ def __init__( self, **args ):
245245
if ( self.parent <> None ):
246246
for parm_address in self.parent.parameters.keys():
247247
basename = get_parameter_name( parm_address )
248-
self.parameters[basename] = self.getParameter( basename )
248+
self.parameters[basename] = ConfigParameter(basename, parent=self.parent.getParameter(basename))
249249
self.initialized = False
250250

251251
def clear( self, cell ):
@@ -264,7 +264,6 @@ def getParameter( self, param_name, **args ):
264264
if self.parent is None:
265265
cparm = ConfigParameter( param_name, **args )
266266
else:
267-
# print "Getting config param from parent: ", param_name
268267
cparm_parent = self.parent.getParameter( param_name, cell=self.cell_coordinates )
269268
cparm = ConfigParameter( param_name, parent=cparm_parent, **args )
270269
self.addParam( param_name, cparm )

Packages/vcs/vcs/dv3d.py

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -126,19 +126,38 @@ def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'):
126126
self.projection = 'default'
127127
self.provenanceHandler = None
128128

129+
vcs.elements[self.g_name][Gfdv3d_name] = self
130+
131+
self._axes = "xyz"
132+
133+
# Use parent config values if possible
134+
if isinstance(Gfdv3d_name_src, (unicode, str)):
135+
# Make sure we aren't inheriting from ourself
136+
if Gfdv3d_name_src != Gfdv3d_name:
137+
parent_cfg = vcs.elements[self.g_name][Gfdv3d_name_src].cfgManager
138+
self._axes = vcs.elements[self.g_name][Gfdv3d_name_src]._axes
139+
else:
140+
parent_cfg = None
141+
else:
142+
# Make sure we aren't inheriting from ourself
143+
if Gfdv3d_name_src.name != self.name:
144+
parent_cfg = Gfdv3d_name_src.cfgManager
145+
self._axes = Gfdv3d_name_src._axes
146+
else:
147+
parent_cfg = None
148+
149+
self.cfgManager = ConfigManager(cm=parent_cfg)
150+
129151
if Gfdv3d_name == "Hovmoller3D":
130152
self._axes = "xyt"
131-
else:
132-
self._axes = "xyz"
133153

134-
self.cfgManager = ConfigManager()
135154
self.ncores = multiprocessing.cpu_count()
155+
136156
self.addParameters()
137157

138-
vcs.elements[self.g_name][Gfdv3d_name] = self
139158
self.plot_attributes['name'] = self.g_name
140159
self.plot_attributes['template'] = Gfdv3d_name
141-
# print "Adding VCS element: %s %s " % ( self.g_name, Gfdv3d_name )
160+
142161

143162
def setProvenanceHandler(self, provenanceHandler):
144163
self.provenanceHandler = provenanceHandler
@@ -215,22 +234,22 @@ class Gf3Dvector(Gfdv3d):
215234

216235
def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'):
217236
self.g_name = '3d_vector'
218-
Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src='default')
237+
Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src=Gfdv3d_name_src)
219238

220239

221240
class Gf3Dscalar(Gfdv3d):
222241

223242
def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'):
224243
self.g_name = '3d_scalar'
225-
Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src='default')
244+
Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src=Gfdv3d_name_src)
226245
self.VectorDisplay = Gfdv3d_name
227246

228247

229248
class Gf3DDualScalar(Gfdv3d):
230249

231250
def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'):
232251
self.g_name = '3d_dual_scalar'
233-
Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src='default')
252+
Gfdv3d.__init__(self, Gfdv3d_name, Gfdv3d_name_src=Gfdv3d_name_src)
234253

235254
if __name__ == '__main__':
236255
dv3d = vcs.get3d_scalar()

testing/dv3d/TestManager.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,8 @@ def build(self):
106106

107107
plot_kwargs = { 'cdmsfile': self.file.id, 'window_size': (900,600) }
108108
self.canvas.setantialiasing(False)
109-
self.canvas.plot( *plot_args, **plot_kwargs )
110-
self.plot = self.canvas.backend.plotApps[ self.gm ]
111-
# self.applyActions()
109+
display = self.canvas.plot( *plot_args, **plot_kwargs )
110+
self.plot = self.canvas.backend.plotApps[ vcs.elements[display.g_type][display.g_name] ]
112111

113112
def applyActions(self):
114113
for action in self.actions:

0 commit comments

Comments
 (0)