Merge lp:~sergio-incaser/openerp-spain/openerp-spain into lp:~openerp-spain-team/openerp-spain/7.0

Proposed by Sergio Teruel on 2014-06-13
Status: Merged
Merged at revision: 482
Proposed branch: lp:~sergio-incaser/openerp-spain/openerp-spain
Merge into: lp:~openerp-spain-team/openerp-spain/7.0
Diff against target: 38 lines (+14/-0)
1 file modified
l10n_es_toponyms/gen_src/gen_toponyms_geonames.py (+14/-0)
To merge this branch: bzr merge lp:~sergio-incaser/openerp-spain/openerp-spain
Reviewer Review Type Date Requested Status
Pedro Manuel Baeza code review 2014-06-13 Approve on 2014-06-16
Review via email: mp+223092@code.launchpad.net

Description of the change

[IMP] l10n_es_toponyms Nueva funcionalidad en gen_toponyms_geonames.py para añadir codigos INE en l10n_es_toponyms_zipcodes.xml

To post a comment you must log in.
Pedro Manuel Baeza (pedro.baeza) wrote :

Buenas, Sergio,

Muchas gracias por el parche. Aunque ahora estamos buscando un mejor método para extraer los topónimos (ya que GeoNames ha cambiado los términos de uso de su API, pero ha puesto a disposición pública unos archivos ZIP con la información compilada), pero sin duda se aprovechará esta función que incluyes para el nuevo método.

Por el momento, podemos incluir tal cual como referencia.

Un saludo.

review: Approve (code review)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'l10n_es_toponyms/gen_src/gen_toponyms_geonames.py'
2--- l10n_es_toponyms/gen_src/gen_toponyms_geonames.py 2013-07-12 17:20:35 +0000
3+++ l10n_es_toponyms/gen_src/gen_toponyms_geonames.py 2014-06-13 15:21:23 +0000
4@@ -71,6 +71,7 @@
5 # Parsear argumentos de la línea de comandos
6 argparser = argparse.ArgumentParser(description=u'Descarga los datos de CPs de GeoNames.')
7 argparser.add_argument('--start', dest='start', type=int, default=1000, help=u'CP de inicio de la consulta')
8+ argparser.add_argument('--ine_code', dest='ine_code', type=str, default='', help=u'Archivo codigos INE')
9 args = argparser.parse_args()
10 start = args.start
11 # Preparar archivo en el que escribir
12@@ -81,6 +82,18 @@
13 output.write(" <data noupdate='1'>\n")
14 else:
15 output = open("l10n_es_toponyms_zipcodes.xml", 'a')
16+
17+ # Descargamos el fichero desde la web del INE apartado "Callejero del censo electoral":
18+ # http://www.ine.es/ss/Satellite?L=es_ES&c=Page&cid=1254735624326&p=1254735624326&pagename=ProductosYServicios%2FPYSLayout
19+ # Descomprimimos el archivo y pasamos como parametro ine_code la ruta del archivo mas grande "TRAMOS-NAL.Fxxxxxx"
20+ ine_dic = {}
21+ if args.ine_code != '':
22+ if os.path.exists(args.ine_code):
23+ fCPs = open(args.ine_code, 'r')
24+ # Creamos un diccionario con clave Código postal y valor codigo INE de municipio
25+ for lineCP in fCPs:
26+ ine_dic[lineCP[42:47]] = lineCP[0:5]
27+
28 # Iterar por el rango de CPs
29 cont = 0
30 for cp in range (start, 53000):
31@@ -101,6 +114,7 @@
32 output.write(' <field name="name">%s</field>\n' %filterCity(city).encode('utf-8'))
33 output.write(' <field name="zip">%s</field>\n' %cp_str)
34 output.write(' <field name="country_id" ref="base.es"/>\n')
35+ output.write(' <field name="code">%s</field>\n' %ine_dic.get(cp,''))
36 output.write(' </record>\n')
37 else:
38 print "No se puede continuar la extracción de datos.\n%s\nContinúe después del tiempo indicado utilizando el parámetro --start con el número %s." %(handler.message.encode('utf-8'), cp)