@@ -99,14 +99,20 @@ def get_struct_entry(self, indent=4):
99
99
100
100
ostr = ""
101
101
102
+ val = self .default_format (debug = self .debug_default )
103
+
104
+ # we can use an empty initialization list {} for empty strings
105
+ if self .dtype == "string" and val .strip () == '""' :
106
+ val = ""
107
+
102
108
if not self .debug_default is None :
103
109
ostr += "#ifdef AMREX_DEBUG\n "
104
- ostr += f"{ ' ' * indent } { self .get_cxx_decl ()} { self .cpp_var_name } {{{ self . default_format ( lang = 'C++' , debug = True ) } }};\n "
110
+ ostr += f"{ ' ' * indent } { self .get_cxx_decl ()} { self .cpp_var_name } {{{ val } }};\n "
105
111
ostr += "#else\n "
106
- ostr += f"{ ' ' * indent } { self .get_cxx_decl ()} { self .cpp_var_name } {{{ self . default_format ( lang = 'C++' ) } }};\n "
112
+ ostr += f"{ ' ' * indent } { self .get_cxx_decl ()} { self .cpp_var_name } {{{ val } }};\n "
107
113
ostr += "#endif\n "
108
114
else :
109
- ostr += f"{ ' ' * indent } { self .get_cxx_decl ()} { self .cpp_var_name } {{{ self . default_format ( lang = 'C++' ) } }};\n "
115
+ ostr += f"{ ' ' * indent } { self .get_cxx_decl ()} { self .cpp_var_name } {{{ val } }};\n "
110
116
111
117
return ostr
112
118
@@ -118,12 +124,12 @@ def get_default_string(self):
118
124
119
125
if not self .debug_default is None :
120
126
ostr += "#ifdef AMREX_DEBUG\n "
121
- ostr += f"{ self .nm_pre } { self .cpp_var_name } = { self .default_format (lang = 'C++' , debug = True )} ;\n "
127
+ ostr += f"{ self .nm_pre } { self .cpp_var_name } = { self .default_format (debug = True )} ;\n "
122
128
ostr += "#else\n "
123
- ostr += f"{ self .nm_pre } { self .cpp_var_name } = { self .default_format (lang = 'C++' )} ;\n "
129
+ ostr += f"{ self .nm_pre } { self .cpp_var_name } = { self .default_format ()} ;\n "
124
130
ostr += "#endif\n "
125
131
else :
126
- ostr += f"{ self .nm_pre } { self .cpp_var_name } = { self .default_format (lang = 'C++' )} ;\n "
132
+ ostr += f"{ self .nm_pre } { self .cpp_var_name } = { self .default_format ()} ;\n "
127
133
128
134
return ostr
129
135
@@ -137,7 +143,7 @@ def get_query_string(self):
137
143
# we need to create an amrex::Vector to read and then
138
144
# copy into our managed array
139
145
ostr += "\n "
140
- ostr += f" amrex::Vector<{ self .get_cxx_decl ()} > { self .name } _tmp({ self .size } , { self .default_format (lang = 'C++' )} );\n "
146
+ ostr += f" amrex::Vector<{ self .get_cxx_decl ()} > { self .name } _tmp({ self .size } , { self .default_format ()} );\n "
141
147
ostr += f" if (pp.queryarr(\" { self .name } \" , { self .name } _tmp, 0, { self .size } )) {{\n "
142
148
ostr += f" for (int n = 0; n < { self .size } ; n++) {{\n "
143
149
ostr += f" { self .nm_pre } { self .cpp_var_name } [n] = { self .name } _tmp[n];\n "
@@ -164,7 +170,7 @@ def get_query_struct_string(self, struct_name="params", class_name=None):
164
170
# we need to create an amrex::Vector to read and then
165
171
# copy into our managed array
166
172
ostr += "\n "
167
- ostr += f" amrex::Vector<{ self .get_cxx_decl ()} > { self .name } _tmp({ self .size } , { self .default_format (lang = 'C++' )} );\n "
173
+ ostr += f" amrex::Vector<{ self .get_cxx_decl ()} > { self .name } _tmp({ self .size } , { self .default_format ()} );\n "
168
174
ostr += f" if (pp.queryarr(\" { self .name } \" , { self .name } _tmp, 0, { self .size } )) {{\n "
169
175
ostr += f" for (int n = 0; n < { self .size } ; n++) {{\n "
170
176
ostr += f" { cname } { struct_name } .{ self .namespace } { self .namespace_suffix } .{ self .cpp_var_name } [n] = { self .name } _tmp[n];\n "
@@ -175,24 +181,29 @@ def get_query_struct_string(self, struct_name="params", class_name=None):
175
181
176
182
return ostr
177
183
178
- def default_format (self , lang = "C++" , debug = False ):
184
+ def default_format (self , * , lang = "C++" , debug = False ):
179
185
"""return the value of the parameter in a format that it can be
180
186
recognized in C++ code--in particular, preserve the quotes for
181
187
strings
182
188
183
189
"""
190
+
191
+ # note: lang is no longer used and will be removed once application
192
+ # codes have synced
193
+
184
194
if debug :
185
195
val = self .debug_default
186
196
else :
187
197
val = self .default
188
198
189
199
if self .dtype == "string" :
190
200
return f'{ val } '
191
- if self .dtype in ["bool" , "logical" ] and lang == "C++" :
201
+ if self .dtype in ["bool" , "logical" ]:
202
+ # this is deprecated -- we should just use int
192
203
if val .lower () in [".true." , "true" ]:
193
204
return 1
194
205
return 0
195
- if self .dtype == "real" and lang == "C++" :
206
+ if self .dtype == "real" :
196
207
if "d" in val :
197
208
val = val .replace ("d" , "e" )
198
209
if not val .endswith ("_rt" ):
@@ -202,7 +213,7 @@ def default_format(self, lang="C++", debug=False):
202
213
def get_job_info_test (self ):
203
214
"""this is the output in C++ in the job_info writing"""
204
215
205
- value = self .default_format (lang = "C++" )
216
+ value = self .default_format ()
206
217
if self .dtype == "string" and value .strip () == '\" \" ' :
207
218
test = f"{ self .nm_pre } { self .cpp_var_name } .empty()"
208
219
else :
0 commit comments