docs: def generate_random_person(self, n):
          # type: (int) -> Iterable[Tuple[str, str, str, str]]
          """
          Generator that yields details on a person with plausible name, sex and age.
  
          :yields: Generated data for one person
              tuple - (id: int, name: str('First Last'), birthdate: str('DD/MM/YYYY'), sex: str('M' | 'F') )
          """
          assert self.all_male_first_names is not None
          assert self.all_female_first_names is not None
          assert self.all_last_names is not None
          for i in range(n):
              sex = 'M' if random.random() > 0.5 else 'F'
              dob = random_date(self.earliest_birthday, self.latest_birthday).strftime("%Y/%m/%d")
              first_name = random.choice(self.all_male_first_names) if sex == 'M' else random.choice(
                  self.all_female_first_names)
              last_name = random.choice(self.all_last_names)
  
              yield (
                  str(i),
                  first_name + ' ' + last_name,
                  dob,
                  sex
              )