@@ -144,16 +144,33 @@ def write_file(self, filename):
144
144
outname = os .path .basename (fname )
145
145
item = item .replace ("{{ name }}" , name )
146
146
self .input_files .append (fname )
147
- with open (fname , "w" ) as f :
148
- f .write (item )
147
+ for try_encoding in [None , "utf-8" , "utf-16" ]:
148
+ try :
149
+ with open (fname , "w" , encoding = try_encoding ) as f :
150
+ f .write (item )
151
+ break
152
+ except UnicodeEncodeError as e :
153
+ continue
154
+ else :
155
+ with open (fname , "w" , errors = "replace" ) as f :
156
+ f .write (contents )
157
+
149
158
else :
150
159
outname = os .path .basename (filename )
151
160
name , ext = os .path .splitext (outname )
152
161
contents = contents .replace ("{{ name }}" , name )
153
162
self .input_files .append (filename )
154
- with open (filename , "w" ) as f :
155
- f .write (contents )
156
-
163
+ for try_encoding in [None , "utf-8" , "utf-16" ]:
164
+ try :
165
+ with open (fname , "w" , encoding = try_encoding ) as f :
166
+ f .write (contents )
167
+ break
168
+ except UnicodeEncodeError as e :
169
+ continue
170
+ else :
171
+ with open (fname , "w" , errors = "replace" ) as f :
172
+ f .write (contents )
173
+
157
174
def get_json (self ):
158
175
from AaronTools .geometry import Geometry
159
176
@@ -1097,16 +1114,33 @@ def write_file(self, filename, **kwargs):
1097
1114
outname = os .path .basename (fname )
1098
1115
item = item .replace ("{{ name }}" , name )
1099
1116
self .input_files .append (fname )
1100
- with open (fname , "w" ) as f :
1101
- f .write (item )
1117
+ for try_encoding in [None , "utf-8" , "utf-16" ]:
1118
+ try :
1119
+ with open (fname , "w" , encoding = try_encoding ) as f :
1120
+ f .write (item )
1121
+ break
1122
+ except UnicodeEncodeError as e :
1123
+ continue
1124
+ else :
1125
+ with open (fname , "w" , errors = "replace" ) as f :
1126
+ f .write (contents )
1127
+
1102
1128
else :
1103
1129
outname = os .path .basename (filename )
1104
1130
name , ext = os .path .splitext (outname )
1105
1131
contents = contents .replace ("{{ name }}" , name )
1106
1132
self .input_files .append (filename )
1107
- with open (filename , "w" ) as f :
1108
- f .write (contents )
1109
-
1133
+ for try_encoding in [None , "utf-8" , "utf-16" ]:
1134
+ try :
1135
+ with open (fname , "w" , encoding = try_encoding ) as f :
1136
+ f .write (contents )
1137
+ break
1138
+ except UnicodeEncodeError as e :
1139
+ continue
1140
+ else :
1141
+ with open (fname , "w" , errors = "replace" ) as f :
1142
+ f .write (contents )
1143
+
1110
1144
def get_json (self ):
1111
1145
d = super ().get_json ()
1112
1146
d .pop ("geometry" )
@@ -1206,15 +1240,32 @@ def write_file(self, filename, **kwargs):
1206
1240
outname = os .path .basename (fname )
1207
1241
item = item .replace ("{{ name }}" , name )
1208
1242
self .input_files .append (fname )
1209
- with open (fname , "w" ) as f :
1210
- f .write (item )
1243
+ for try_encoding in [None , "utf-8" , "utf-16" ]:
1244
+ try :
1245
+ with open (fname , "w" , encoding = try_encoding ) as f :
1246
+ f .write (item )
1247
+ break
1248
+ except UnicodeEncodeError as e :
1249
+ continue
1250
+ else :
1251
+ with open (fname , "w" , errors = "replace" ) as f :
1252
+ f .write (contents )
1253
+
1211
1254
else :
1212
1255
outname = os .path .basename (filename )
1213
1256
name , ext = os .path .splitext (outname )
1214
1257
contents = contents .replace ("{{ name }}" , name )
1215
1258
self .input_files .append (filename )
1216
- with open (filename , "w" ) as f :
1217
- f .write (contents )
1259
+ for try_encoding in [None , "utf-8" , "utf-16" ]:
1260
+ try :
1261
+ with open (fname , "w" , encoding = try_encoding ) as f :
1262
+ f .write (contents )
1263
+ break
1264
+ except UnicodeEncodeError as e :
1265
+ continue
1266
+ else :
1267
+ with open (fname , "w" , errors = "replace" ) as f :
1268
+ f .write (contents )
1218
1269
1219
1270
def get_json (self ):
1220
1271
d = super ().get_json ()
0 commit comments