From 4610381eb2c4e7d8802cdbf4bad4c8b7f33656c0 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Thu, 25 Oct 2012 21:10:30 +0000 Subject: [PATCH] Add an name utility function to return a name's initials. Handle names with an uppercase surname to the left of the given name correctly. - Legacy-Id: 4951 --- ietf/person/name.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/ietf/person/name.py b/ietf/person/name.py index 61c142216..fe5824260 100644 --- a/ietf/person/name.py +++ b/ietf/person/name.py @@ -29,6 +29,9 @@ def name_parts(name): if len(parts) > 2: first = parts[0] last = parts[-1] + # Handle reverse-order names with uppercase surname correctly + if re.search("^[A-Z-]+$", first): + first, last = last, first middle = " ".join(parts[1:-1]) elif len(parts) == 2: first, last = parts @@ -36,8 +39,17 @@ def name_parts(name): last = parts[0] return prefix, first, middle, last, suffix +def initials(name): + prefix, first, middle, last, suffix = name_parts(name) + given = first + if middle: + given += " "+middle + initials = " ".join([ n[0]+'.' for n in given.split() ]) + return initials if __name__ == "__main__": import sys - - print name_parts(" ".join(sys.argv[1:])) + name = " ".join(sys.argv[1:]) + print name_parts(name) + print initials(name) + \ No newline at end of file