Refact: Novo carregar_estado
[cascardo/irpf-gui.git] / src / municipios.py
1 #
2 #   Copyright 2013 Thadeu Lima de Souza Cascardo <cascardo@cascardo.info>
3 #
4 #   This program is free software: you can redistribute it and/or modify
5 #   it under the terms of the GNU General Public License as published by
6 #   the Free Software Foundation, either version 3 of the License, or
7 #   (at your option) any later version.
8 #
9 #   This program is distributed in the hope that it will be useful,
10 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
11 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 #   GNU General Public License for more details.
13 #
14 #   You should have received a copy of the GNU General Public License
15 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 # -*- mode: python; encoding: utf-8; -*-
17 import xml.dom.minidom
18
19 class Municipios:
20     def __init__(self):
21         self.l = []
22
23     def _list(self):
24         for i in self.xml.childNodes[0].childNodes:
25             if "COL3" in i.attributes.keys():
26                 self.l.append((i.attributes["COL1"].nodeValue, \
27                         i.attributes["COL2"].nodeValue, \
28                         i.attributes["COL3"].nodeValue))
29                 def list(self):
30                     return self.l
31
32     def get_municipio(self, code):
33         for i in self.l:
34             if i[0] == code:
35                 return i
36         return None
37
38     def carregar_estado(self, UF):
39         self.l = []
40         self.xml = xml.dom.minidom.parse("res/%s.xml" % (UF,))
41         self._list()
42
43     def verify_cep(self, m, cep):
44         l = m[2][0:7]
45         h = m[2][9:16]
46         if cep >= l and cep <= h:
47             return True
48         return False
49
50 if __name__ == '__main__':
51     municipios = Municipios()
52
53     municipios.carregar_estado('MG')
54     m = municipios.get_municipio('4877')
55     print m[1]
56     print municipios.verify_cep(m, '36880000')
57     print municipios.verify_cep(m, '05020000')
58
59     municipios.carregar_estado('SP')
60     m = municipios.get_municipio('7107')
61     print m[1]
62     print municipios.verify_cep(m, '05020000')
63     print municipios.verify_cep(m, '36880000')
64
65 # vim:tabstop=4:expandtab:smartindent