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
This commit is contained in:
Henrik Levkowetz 2012-10-25 21:10:30 +00:00
parent 45585957ef
commit 4610381eb2

View file

@ -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)