Coverage for lino/modlib/contacts/utils.py : 85%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# -*- coding: UTF-8 -*- # Copyright 2010-2015 Luc Saffre # License: BSD (see file COPYING for details)
:mod:`lino.mixins.human`.
- :func:`street2kw` to separate house number and optional flat number from street
"""
""" Parse a string to extract the fields street, street_no and street_box.
Examples:
>>> street2kw(u"Limburger Weg") {'street': u'Limburger Weg'} >>> street2kw(u"Loten 3") {'street_box': u'', 'street': u'Loten', 'street_no': u'3'} >>> street2kw(u"Loten 3A") {'street_box': u'A', 'street': u'Loten', 'street_no': u'3'}
>>> street2kw(u"In den Loten 3A") {'street_box': u'A', 'street': u'In den Loten', 'street_no': u'3'}
>>> street2kw(u"Auf'm Bach") {'street': u"Auf'm Bach"} >>> street2kw(u"Auf'm Bach 3") {'street_box': u'', 'street': u"Auf'm Bach", 'street_no': u'3'} >>> street2kw(u"Auf'm Bach 3a") {'street_box': u'a', 'street': u"Auf'm Bach", 'street_no': u'3'} >>> street2kw(u"Auf'm Bach 3 A") {'street_box': u'A', 'street': u"Auf'm Bach", 'street_no': u'3'}
Some rather special cases:
>>> street2kw(u"rue des 600 Franchimontois 1") {'street_box': u'', 'street': u'rue des 600 Franchimontois', 'street_no': u'1'}
>>> street2kw(u"Eupener Strasse 321 /A") {'street_box': u'/A', 'street': u'Eupener Strasse', 'street_no': u'321'}
>>> street2kw(u"Neustr. 1 (Referenzadr.)") {'addr2': u'(Referenzadr.)', 'street': u'Neustr.', 'street_no': u'1'}
Edge cases:
>>> street2kw("") {}
""" #~ m = re.match(r"(\D+),?\s*(\d+)\s*(\w*)", s) else: else:
import doctest doctest.testmod()
_test() |