def processLine(line): if line == "ABORT\n" or line == "ABORT": sys.exit(0) match = re.findall(r"(?i)^(\s?)+((?![×Þß÷þø])[ \-\'a-zÀ-ÿ]+,)(\s?)+([\d]+)(\s?)+(impasse|quai|rue|square|allée|place|boulevard|rue|chemin|avenue)(\s?)+((?![×Þß÷þø])[ \-\'a-zÀ-ÿ]+)$", line) address = Address() if (match and len(match[0]) == 8): match = match[0] address.city = trimWhitesSpaces(match[1].replace(",", "")) address.number = match[3] address.streetType = match[5] address.streetName = match[7] address.value = address.city + ", " + address.number + " " + address.streetType + " " + address.streetName address.city = address.city.replace("'", "").replace("-", "").replace(",", "").lower() address.streetName = address.streetName.replace("'", "").replace("-", "").lower() else: address.isKnown = False address.value = line if not address.isKnown: utils.eprintbis(address.value) return address