[fix] all_names returns a list not a set

This commit is contained in:
Al
2016-05-23 13:04:00 -04:00
parent 97d2bfb508
commit 694020ddf3

View File

@@ -270,15 +270,16 @@ class AddressComponents(object):
return key, raw_key return key, raw_key
def all_names(self, props, languages, keys=ALL_OSM_NAME_KEYS): def all_names(self, props, languages, keys=ALL_OSM_NAME_KEYS):
names = set() # Preserve uniqueness and order
names = OrderedDict()
for k, v in six.iteritems(props): for k, v in six.iteritems(props):
if k in keys: if k in keys:
names.add(v) names[v] = None
elif ':' in k: elif ':' in k:
k, qual = k.split(':', 1) k, qual = k.split(':', 1)
if k in self.ALL_OSM_NAME_KEYS and qual.split('_', 1)[0] in languages: if k in self.ALL_OSM_NAME_KEYS and qual.split('_', 1)[0] in languages:
names.add(v) names[v] = None
return names return names.keys()
def normalized_place_name(self, name, tag, osm_components, country=None, languages=None): def normalized_place_name(self, name, tag, osm_components, country=None, languages=None):
''' '''
@@ -292,7 +293,7 @@ class AddressComponents(object):
components = defaultdict(set) components = defaultdict(set)
for props in osm_components: for props in osm_components:
component_names = self.all_names(props, languages or set()) component_names = set(self.all_names(props, languages or []))
names |= component_names names |= component_names
is_state = False is_state = False