105 |
Si el texto contiene un par de corchetes, el id es lo que hay entre ellos |
Si el texto contiene un par de corchetes, el id es lo que hay entre ellos |
106 |
(por ejemplo, 'un simple [paseante]'). Si no, el id es la primera palabra |
(por ejemplo, 'un simple [paseante]'). Si no, el id es la primera palabra |
107 |
que no sea un artículo (el, la, los, las, un, uno, una, unos, unas). |
que no sea un artículo (el, la, los, las, un, uno, una, unos, unas). |
108 |
|
|
109 |
|
El id se devuelve normalizado a traves de normalizar_id(). |
110 |
""" |
""" |
111 |
if len(string) == 0: |
if len(string) == 0: |
112 |
return "" |
return "" |
114 |
ind_abrir = string.find("[") |
ind_abrir = string.find("[") |
115 |
ind_cerrar = string.find("]") |
ind_cerrar = string.find("]") |
116 |
if ind_abrir != -1 and ind_cerrar != -1: |
if ind_abrir != -1 and ind_cerrar != -1: |
117 |
return string[ind_abrir+1 : ind_cerrar] |
return normalizar_id(string[ind_abrir+1 : ind_cerrar]) |
118 |
else: |
else: |
119 |
for palabra in string.split(): |
for palabra in string.split(): |
120 |
if not palabra.lower() in ["el", "la", "los", "las", "un", "uno", "una", "unos", "unas"]: |
if not palabra.lower() in ["el", "la", "los", "las", "un", "uno", "una", |
121 |
return palabra |
"unos", "unas", "El", "La", "Los", "Las", "Un", |
122 |
|
"Uno", "Una", "Unos", "Unas"]: |
123 |
|
return normalizar_id(palabra) |
124 |
return "no tiene id" |
return "no tiene id" |
125 |
|
|
126 |
|
|
127 |
|
def normalizar_id(id): |
128 |
|
"""Coloca un id en forma 'canónica' para poder hacer comparaciones. |
129 |
|
|
130 |
|
La forma canónica es todo minúsculas, eliminando acentos y eñes. |
131 |
|
""" |
132 |
|
#de momento, solo minusculas. Ya ire poniendo mas cosas. |
133 |
|
return id.lower() |
134 |
|
|
135 |
|
|
136 |
def escribir_excepcion(): |
def escribir_excepcion(): |
137 |
"""Muestra por pantalla y por el fichero de log la información de la |
"""Muestra por pantalla y por el fichero de log la información de la |
138 |
excepción en curso. Llamar sólo desde dentro de un 'excep:' |
excepción en curso. Llamar sólo desde dentro de un 'excep:' |