Beispiel #1
0
class Spain():
    db = None
    
    def __init__(self):
        self.db = Database()

    def provinces(self):
        dom_provinces = self.db.get_provinces()
        list_provs = []
        for node in dom_provinces:
            list_provs.append(node.getAttribute('name'))

        return list_provs

    def localities(self, province=None):
        if province != None:
            dom_localities = self.db.get_localities(province.decode('utf-8'))
        else:
            dom_localities = self.db.get_all_localities()

        list_localities = []
        if dom_localities != None:
            for node in dom_localities:
                if node.firstChild != None and node.firstChild.nodeType == node.TEXT_NODE:
                    list_localities.append(node.firstChild.nodeValue)

        return list_localities

    def as_hash(self):
        """
        Returns two dictionaries, an example:
        dict_provs = {0: 'province1', 1: 'province2', ...}
        dict_locs = {0: ['locality1', 'locality2'], 1: [...], ... }

        """

        dom_provinces = self.db.get_provinces()
        dict_provs = {}
        dict_locs = {}
        for index, node in enumerate(dom_provinces):
            dict_provs[index] = node.getAttribute('name')
            dom_localities = self.db.get_localities(node.getAttribute('name'))
            list_localities = []
            for loc in dom_localities:
                if loc.firstChild != None and loc.firstChild.nodeType == loc.TEXT_NODE:
                    list_localities.append(loc.firstChild.nodeValue)
            dict_locs[index] = list_localities

        return dict_provs, dict_locs

    def as_hash_with_names(self):
        """
        Returns two dictionaries, an example:
        dict_provs = {0: 'province1', 1: 'province2', ...}
        dict_locs = {0: ['locality1', 'locality2'], 1: [...], ... }

        """

        dom_provinces = self.db.get_provinces()
        dict_provs = {}
        dict_locs = {}
        for index, node in enumerate(dom_provinces):
            dict_provs[node.getAttribute('name')] = node.getAttribute('name')
            dom_localities = self.db.get_localities(node.getAttribute('name'))
            list_localities = []
            for loc in dom_localities:
                if loc.firstChild != None and loc.firstChild.nodeType == loc.TEXT_NODE:
                    list_localities.append(loc.firstChild.nodeValue)
            dict_locs[node.getAttribute('name')] = list_localities

        return dict_provs, dict_locs