Skip to content

Commit f511089

Browse files
Edward Browndoutriaux1
Edward Brown
authored andcommitted
Fixes issue with '.py' extension in script() functions (#104)
* Fixes #2, Gfb.rename(). Re-wrote to change ._name and pop old name from elements if not 'default'. Preserves original objects. * Fixes script() functions for: * boxfill.py * meshfill.py * isofill.py * textcombined.py * texttable.py * vector.py Every function had a reference to color which was expected to be float(old color format), except vector, whose .line property had changed to .linetype, which was causing an error. * Added test for script() fix * Fixed all script functions to produce valid python scripts. Tested to ensure that scriptrun() on the output scripts creates objects identical to those on which script() was called. * Removed old, bad script test * Update boxfill.py * flake8
1 parent 5111311 commit f511089

14 files changed

+195
-383
lines changed

vcs/boxfill.py

+19-78
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,8 @@
1212
# Description: Python command wrapper for VCS's boxfill graphics method. #
1313
# Version: 5.0 #
1414
###############################################################################
15-
#
16-
#
17-
#
18-
###############################################################################
19-
# #
20-
# Import: VCS C extension module. #
21-
# #
22-
###############################################################################
15+
16+
2317
import vcs
2418
import cdtime
2519
import VCS_validation_functions
@@ -1066,104 +1060,51 @@ def script(self, script_filename, mode='a'):
10661060
fp.write("v=vcs.init()\n\n")
10671061

10681062
unique_name = '__Gfb__' + self.name
1069-
fp.write(
1070-
"#----------Boxfill (Gfb) member (attribute) listings ----------\n")
1063+
fp.write("#----------Boxfill (Gfb) member (attribute) listings ----------\n")
10711064
fp.write("gfb_list=v.listelements('boxfill')\n")
10721065
fp.write("if ('%s' in gfb_list):\n" % self.name)
10731066
fp.write(" %s = v.getboxfill('%s')\n" % (unique_name, self.name))
10741067
fp.write("else:\n")
1075-
fp.write(
1076-
" %s = v.createboxfill('%s')\n" %
1077-
(unique_name, self.name))
1068+
fp.write(" %s = v.createboxfill('%s')\n" % (unique_name, self.name))
10781069
# Common core graphics method attributes
10791070
fp.write("%s.projection = '%s'\n" % (unique_name, self.projection))
1080-
fp.write(
1081-
"%s.xticlabels1 = '%s'\n" %
1082-
(unique_name, self.xticlabels1))
1083-
fp.write(
1084-
"%s.xticlabels2 = '%s'\n" %
1085-
(unique_name, self.xticlabels2))
1071+
fp.write("%s.xticlabels1 = '%s'\n" % (unique_name, self.xticlabels1))
1072+
fp.write("%s.xticlabels2 = '%s'\n" % (unique_name, self.xticlabels2))
10861073
fp.write("%s.xmtics1 = '%s'\n" % (unique_name, self.xmtics1))
10871074
fp.write("%s.xmtics2 = '%s'\n" % (unique_name, self.xmtics2))
1088-
fp.write(
1089-
"%s.yticlabels1 = '%s'\n" %
1090-
(unique_name, self.yticlabels1))
1091-
fp.write(
1092-
"%s.yticlabels2 = '%s'\n" %
1093-
(unique_name, self.yticlabels2))
1075+
fp.write("%s.yticlabels1 = '%s'\n" % (unique_name, self.yticlabels1))
1076+
fp.write("%s.yticlabels2 = '%s'\n" % (unique_name, self.yticlabels2))
10941077
fp.write("%s.ymtics1 = '%s'\n" % (unique_name, self.ymtics1))
10951078
fp.write("%s.ymtics2 = '%s'\n" % (unique_name, self.ymtics2))
10961079
if isinstance(self.datawc_x1, (int, long, float)):
10971080
fp.write("%s.datawc_x1 = %g\n" % (unique_name, self.datawc_x1))
10981081
else:
1099-
fp.write(
1100-
"%s.datawc_x1 = '%s'\n" %
1101-
(unique_name, self.datawc_x1))
1082+
fp.write("%s.datawc_x1 = '%s'\n" % (unique_name, self.datawc_x1))
11021083
if isinstance(self.datawc_y1, (int, long, float)):
11031084
fp.write("%s.datawc_y1 = %g\n" % (unique_name, self.datawc_y1))
11041085
else:
1105-
fp.write(
1106-
"%s.datawc_y1 = '%s'\n" %
1107-
(unique_name, self.datawc_y1))
1086+
fp.write("%s.datawc_y1 = '%s'\n" % (unique_name, self.datawc_y1))
11081087
if isinstance(self.datawc_x2, (int, long, float)):
11091088
fp.write("%s.datawc_x2 = %g\n" % (unique_name, self.datawc_x2))
11101089
else:
1111-
fp.write(
1112-
"%s.datawc_x2 = '%s'\n" %
1113-
(unique_name, self.datawc_x2))
1090+
fp.write("%s.datawc_x2 = '%s'\n" % (unique_name, self.datawc_x2))
11141091
if isinstance(self.datawc_y2, (int, long, float)):
11151092
fp.write("%s.datawc_y2 = %g\n" % (unique_name, self.datawc_y2))
11161093
else:
1117-
fp.write(
1118-
"%s.datawc_y2 = '%s'\n" %
1119-
(unique_name, self.datawc_y2))
1120-
fp.write(
1121-
"%s.xaxisconvert = '%s'\n" %
1122-
(unique_name, self.xaxisconvert))
1123-
fp.write(
1124-
"%s.yaxisconvert = '%s'\n" %
1125-
(unique_name, self.yaxisconvert))
1094+
fp.write("%s.datawc_y2 = '%s'\n" % (unique_name, self.datawc_y2))
1095+
fp.write("%s.xaxisconvert = '%s'\n" % (unique_name, self.xaxisconvert))
1096+
fp.write("%s.yaxisconvert = '%s'\n" % (unique_name, self.yaxisconvert))
11261097
# Unique attribute for boxfill
1127-
fp.write(
1128-
"%s.boxfill_type = '%s'\n" %
1129-
(unique_name, self.boxfill_type))
1098+
fp.write("%s.boxfill_type = '%s'\n" % (unique_name, self.boxfill_type))
11301099
fp.write("%s.level_1 = %g\n" % (unique_name, self.level_1))
11311100
fp.write("%s.level_2 = %g\n" % (unique_name, self.level_2))
11321101
fp.write("%s.levels = %s\n" % (unique_name, self.levels))
11331102
fp.write("%s.color_1 = %g\n" % (unique_name, self.color_1))
11341103
fp.write("%s.color_2 = %g\n" % (unique_name, self.color_2))
1135-
fp.write(
1136-
"%s.fillareacolors = %s\n" %
1137-
(unique_name, self.fillareacolors))
1138-
fp.write(
1139-
"%s.fillareastyle = '%s'\n" %
1140-
(unique_name, self.fillareastyle))
1141-
fp.write(
1142-
"%s.fillareaindices = %s\n" %
1143-
(unique_name, self.fillareaindices))
1144-
fp.write(
1145-
"%s.fillareaopacity = %s\n" %
1146-
(unique_name, self.fillareaopacity))
1147-
fp.write(
1148-
"%s.fillareapixelspacing = %s\n" %
1149-
(unique_name, self._fillareapixelspacing))
1150-
fp.write(
1151-
"%s.fillareapixelscale = %s\n" %
1152-
(unique_name, self.fillareapixelscale))
1153-
fp.write("%s.legend = %s\n" % (unique_name, self.legend))
1154-
fp.write("%s.ext_1 = '%s'\n" % (unique_name, self.ext_1))
1155-
fp.write("%s.ext_2 = '%s'\n" % (unique_name, self.ext_2))
1156-
fp.write("%s.missing = %s\n" % (unique_name, repr(self.missing)))
1157-
fp.write(
1158-
"%s.datawc_calendar = %g\n" %
1159-
(unique_name, self.datawc_calendar))
1160-
fp.write(
1161-
"%s.datawc_timeunits = '%s'\n\n" %
1162-
(unique_name, self.datawc_timeunits))
1163-
fp.write(
1164-
"%s.colormap = '%s'\n\n" %
1165-
(unique_name, repr(
1166-
self.colormap)))
1104+
if self.colormap is not None:
1105+
fp.write("%s.colormap = %s\n\n" % (unique_name, repr(self.colormap)))
1106+
else:
1107+
fp.write("%s.colormap = %s\n\n" % (unique_name, self.colormap))
11671108
else:
11681109
# Json type
11691110
mode += "+"

vcs/dv3d.py

+2-17
Original file line numberDiff line numberDiff line change
@@ -114,24 +114,9 @@ def script(self, script_filename=None, mode=None):
114114

115115
gtype = 'xyt' if (self._axes == "Hovmoller3D") else 'default'
116116
unique_name = 'gm3d_%s' % str(time.time() % 1)[2:]
117-
if self.g_name == '3d_scalar':
118-
fp.write(
119-
'%s = vcs.get3d_scalar( %s )\n' %
120-
(unique_name, gtype))
121-
if self.g_name == '3d_vector':
122-
fp.write(
123-
'%s = vcs.get3d_vector( %s )\n' %
124-
(unique_name, gtype))
125-
if self.g_name == '3d_dual_scalar':
126-
fp.write(
127-
'%s = vcs.get3d_dual_scalar( %s )\n' %
128-
(unique_name, gtype))
117+
fp.write('%s = vcs.get%s("%s")\n' % (unique_name, self.g_name, gtype))
129118
for param_name in self.parameter_names:
130-
fp.write(
131-
'%s.%s = %s\n' %
132-
(unique_name,
133-
param_name,
134-
self.cfgManager.getParameterValue(param_name)))
119+
fp.write('%s.%s = %s\n' % (unique_name, param_name, self.cfgManager.getParameterValue(param_name)))
135120
else:
136121
# Json type
137122
mode += "+"

vcs/fillarea.py

+9-16
Original file line numberDiff line numberDiff line change
@@ -527,17 +527,12 @@ def script(self, script_filename=None, mode=None):
527527
fp.write("v=vcs.init()\n\n")
528528

529529
unique_name = '__Tf__' + self.name
530-
fp.write(
531-
"#----------Fillarea (Tf) member (attribute) listings ----------\n")
530+
fp.write("#----------Fillarea (Tf) member (attribute) listings ----------\n")
532531
fp.write("tf_list=v.listelements('fillarea')\n")
533532
fp.write("if ('%s' in tf_list):\n" % self.name)
534-
fp.write(
535-
" %s = v.getfillarea('%s')\n" %
536-
(unique_name, self.name))
533+
fp.write(" %s = v.getfillarea('%s')\n" % (unique_name, self.name))
537534
fp.write("else:\n")
538-
fp.write(
539-
" %s = v.createfillarea('%s')\n" %
540-
(unique_name, self.name))
535+
fp.write(" %s = v.createfillarea('%s')\n" % (unique_name, self.name))
541536
fp.write("%s.style = %s\n" % (unique_name, self.style))
542537
fp.write("%s.index = %s\n" % (unique_name, self.index))
543538
fp.write("%s.color = %s\n\n" % (unique_name, self.color))
@@ -546,16 +541,14 @@ def script(self, script_filename=None, mode=None):
546541
fp.write("%s.pixelscale = %s\n\n" % (unique_name, self.pixelscale))
547542
fp.write("%s.priority = %d\n" % (unique_name, self.priority))
548543
fp.write("%s.viewport = %s\n" % (unique_name, self.viewport))
549-
fp.write(
550-
"%s.worldcoordinate = %s\n" %
551-
(unique_name, self.worldcoordinate))
544+
fp.write("%s.worldcoordinate = %s\n" % (unique_name, self.worldcoordinate))
552545
fp.write("%s.x = %s\n" % (unique_name, self.x))
553546
fp.write("%s.y = %s\n\n" % (unique_name, self.y))
554-
fp.write("%s.projection = %s\n\n" % (unique_name, self.projection))
555-
fp.write(
556-
"%s.colormap = %s\n\n" %
557-
(unique_name, repr(
558-
self.colormap)))
547+
fp.write("%s.projection = '%s'\n\n" % (unique_name, self.projection))
548+
if self.colormap is not None:
549+
fp.write("%s.colormap = %s\n\n" % (unique_name, repr(self.colormap)))
550+
else:
551+
fp.write("%s.colormap = %s\n\n" % (unique_name, self.colormap))
559552
else:
560553
# Json type
561554
mode += "+"

vcs/isofill.py

+18-45
Original file line numberDiff line numberDiff line change
@@ -803,69 +803,42 @@ def script(self, script_filename, mode='a'):
803803
fp.write("v=vcs.init()\n\n")
804804

805805
unique_name = '__Gfi__' + self.name
806-
fp.write(
807-
"#----------Isofill (Gfi) member (attribute) listings ----------\n")
806+
fp.write("#----------Isofill (Gfi) member (attribute) listings ----------\n")
808807
fp.write("gfi_list=v.listelements('isofill')\n")
809808
fp.write("if ('%s' in gfi_list):\n" % self.name)
810809
fp.write(" %s = v.getisofill('%s')\n" % (unique_name, self.name))
811810
fp.write("else:\n")
812-
fp.write(
813-
" %s = v.createisofill('%s')\n" %
814-
(unique_name, self.name))
811+
fp.write(" %s = v.createisofill('%s')\n" % (unique_name, self.name))
815812
# Common core graphics method attributes
816813
fp.write("%s.projection = '%s'\n" % (unique_name, self.projection))
817-
fp.write(
818-
"%s.xticlabels1 = '%s'\n" %
819-
(unique_name, self.xticlabels1))
820-
fp.write(
821-
"%s.xticlabels2 = '%s'\n" %
822-
(unique_name, self.xticlabels2))
814+
fp.write("%s.xticlabels1 = '%s'\n" % (unique_name, self.xticlabels1))
815+
fp.write("%s.xticlabels2 = '%s'\n" % (unique_name, self.xticlabels2))
823816
fp.write("%s.xmtics1 = '%s'\n" % (unique_name, self.xmtics1))
824817
fp.write("%s.xmtics2 = '%s'\n" % (unique_name, self.xmtics2))
825-
fp.write(
826-
"%s.yticlabels1 = '%s'\n" %
827-
(unique_name, self.yticlabels1))
828-
fp.write(
829-
"%s.yticlabels2 = '%s'\n" %
830-
(unique_name, self.yticlabels2))
818+
fp.write("%s.yticlabels1 = '%s'\n" % (unique_name, self.yticlabels1))
819+
fp.write("%s.yticlabels2 = '%s'\n" % (unique_name, self.yticlabels2))
831820
fp.write("%s.ymtics1 = '%s'\n" % (unique_name, self.ymtics1))
832821
fp.write("%s.ymtics2 = '%s'\n" % (unique_name, self.ymtics2))
833822
if isinstance(self.datawc_x1, (int, long, float)):
834823
fp.write("%s.datawc_x1 = %g\n" % (unique_name, self.datawc_x1))
835824
else:
836-
fp.write(
837-
"%s.datawc_x1 = '%s'\n" %
838-
(unique_name, self.datawc_x1))
825+
fp.write("%s.datawc_x1 = '%s'\n" % (unique_name, self.datawc_x1))
839826
if isinstance(self.datawc_y1, (int, long, float)):
840827
fp.write("%s.datawc_y1 = %g\n" % (unique_name, self.datawc_y1))
841828
else:
842-
fp.write(
843-
"%s.datawc_y1 = '%s'\n" %
844-
(unique_name, self.datawc_y1))
829+
fp.write("%s.datawc_y1 = '%s'\n" % (unique_name, self.datawc_y1))
845830
if isinstance(self.datawc_x2, (int, long, float)):
846831
fp.write("%s.datawc_x2 = %g\n" % (unique_name, self.datawc_x2))
847832
else:
848-
fp.write(
849-
"%s.datawc_x2 = '%s'\n" %
850-
(unique_name, self.datawc_x2))
833+
fp.write("%s.datawc_x2 = '%s'\n" % (unique_name, self.datawc_x2))
851834
if isinstance(self.datawc_y2, (int, long, float)):
852835
fp.write("%s.datawc_y2 = %g\n" % (unique_name, self.datawc_y2))
853836
else:
854-
fp.write(
855-
"%s.datawc_y2 = '%s'\n" %
856-
(unique_name, self.datawc_y2))
857-
fp.write(
858-
"%s.datawc_calendar = %g\n" %
859-
(unique_name, self.datawc_calendar))
860-
fp.write(
861-
"%s.datawc_timeunits = '%s'\n\n" %
862-
(unique_name, self.datawc_timeunits))
863-
fp.write(
864-
"%s.xaxisconvert = '%s'\n" %
865-
(unique_name, self.xaxisconvert))
866-
fp.write(
867-
"%s.yaxisconvert = '%s'\n" %
868-
(unique_name, self.yaxisconvert))
837+
fp.write("%s.datawc_y2 = '%s'\n" % (unique_name, self.datawc_y2))
838+
fp.write("%s.datawc_calendar = %g\n" % (unique_name, self.datawc_calendar))
839+
fp.write("%s.datawc_timeunits = '%s'\n\n" % (unique_name, self.datawc_timeunits))
840+
fp.write("%s.xaxisconvert = '%s'\n" % (unique_name, self.xaxisconvert))
841+
fp.write("%s.yaxisconvert = '%s'\n" % (unique_name, self.yaxisconvert))
869842
# Unique attribute for isofill
870843
fp.write("%s.missing = %g\n" % (unique_name, self.missing))
871844
fp.write("%s.ext_1 = '%s'\n" % (unique_name, self.ext_1))
@@ -890,10 +863,10 @@ def script(self, script_filename, mode='a'):
890863
(unique_name, self.fillareapixelscale))
891864
fp.write("%s.levels = %s\n" % (unique_name, self.levels))
892865
fp.write("%s.legend = %s\n" % (unique_name, self.legend))
893-
fp.write(
894-
"%s.colormap = '%s'\n\n" %
895-
(unique_name, repr(
896-
self.colormap)))
866+
if self.colormap is not None:
867+
fp.write("%s.colormap = %s\n\n" % (unique_name, repr(self.colormap)))
868+
else:
869+
fp.write("%s.colormap = %s\n\n" % (unique_name, self.colormap))
897870
else:
898871
# Json type
899872
mode += "+"

0 commit comments

Comments
 (0)