code: def case_name_parts(self):
          
          if not self.is_mixed_case():
              self.honorific = self.honorific.title() if self.honorific else None
              self.nick = self.nick.title() if self.nick else None
  
              if self.first:
                  self.first = self.first.title()
                  self.first = self.capitalize_and_punctuate_initials(self.first)
  
              if self.last:
                  self.last = self.last.title()
                  self.last = self.uppercase_the_scots(self.last)
  
              self.middle = self.middle.title() if self.middle else None
  
              if self.suffix:
                  # Title case Jr/Sr, but uppercase roman numerals
                  if re.match(r'(?i).*[js]r', self.suffix):
                      self.suffix = self.suffix.title()
                  else:
                      self.suffix = self.suffix.upper()
  
          return self
docs: Convert all the parts of the name to the proper case... carefully!