def case_name_parts(self):
if not self.is_mixed_case():<EOL><INDENT>self.honorific = self.honorific.title() if self.honorific else None<EOL>self.nick = self.nick.title() if self.nick else None<EOL>if self.first:<EOL><INDENT>self.first = self.first.title()<EOL>self.first = self.capitalize_and_punctuate_initials(self.first)<EOL><DEDENT>if self.last:<EOL><INDENT>self.last = self.last.title()<EOL>self.last = self.uppercase_the_scots(self.last)<EOL><DEDENT>self.middle = self.middle.title() if self.middle else None<EOL>if self.suffix:<EOL><INDENT>if re.match(r'<STR_LIT>', self.suffix):<EOL><INDENT>self.suffix = self.suffix.title()<EOL><DEDENT>else:<EOL><INDENT>self.suffix = self.suffix.upper()<EOL><DEDENT><DEDENT><DEDENT>return self<EOL>
Convert all the parts of the name to the proper case... carefully!