@@ -66,6 +66,7 @@ def addFeatures(self, features, layer_name='',
6666 self .val_idx = 0
6767 self .seen_keys_idx = {}
6868 self .seen_values_idx = {}
69+ self .seen_values_bool_idx = {}
6970
7071 for feature in features :
7172
@@ -206,10 +207,10 @@ def _load_geometry(self, geometry_spec):
206207
207208 try :
208209 return load_wkb (geometry_spec )
209- except :
210+ except Exception :
210211 try :
211212 return load_wkt (geometry_spec )
212- except :
213+ except Exception :
213214 return None
214215
215216 def addFeature (self , feature , shape , y_coord_down ):
@@ -284,8 +285,13 @@ def _handle_attr(self, layer, feature, props):
284285
285286 feature .tags .append (self .seen_keys_idx [k ])
286287
287- if v not in self .seen_values_idx :
288- self .seen_values_idx [v ] = self .val_idx
288+ if isinstance (v , bool ):
289+ values_idx = self .seen_values_bool_idx
290+ else :
291+ values_idx = self .seen_values_idx
292+
293+ if v not in values_idx :
294+ values_idx [v ] = self .val_idx
289295 self .val_idx += 1
290296
291297 val = layer .values .add ()
@@ -303,4 +309,4 @@ def _handle_attr(self, layer, feature, props):
303309 elif isinstance (v , float ):
304310 val .double_value = v
305311
306- feature .tags .append (self . seen_values_idx [v ])
312+ feature .tags .append (values_idx [v ])
0 commit comments