@@ -420,6 +420,19 @@ def __handle_level0(self, line: str) -> None:
420
420
self .family = Family ()
421
421
self .family .set_identifier (line [1 :- 5 ])
422
422
423
+ def __handle_indi_name (self , line : str ) -> None :
424
+ # Expected style: 'first /last/ suffix', suffix is optional.
425
+ tokens = line .split ('/' )
426
+ assert self .individual
427
+ self .individual .set_forename (tokens [0 ].strip ())
428
+ if len (tokens ) > 1 :
429
+ self .individual .set_surname (tokens [1 ].strip ())
430
+ if len (tokens ) > 2 and tokens [2 ]:
431
+ # We have suffix, append that to the surname.
432
+ surname = self .individual .get_surname ()
433
+ suffix = tokens [2 ].strip ()
434
+ self .individual .set_surname (f"{ surname } { suffix } " )
435
+
423
436
def __handle_level1 (self , line : str ) -> None :
424
437
self .__reset_flags ()
425
438
@@ -431,10 +444,7 @@ def __handle_level1(self, line: str) -> None:
431
444
self .individual .set_sex (tokens [1 ])
432
445
elif line_lead_token == "NAME" and self .individual :
433
446
line = line [5 :]
434
- tokens = line .split ('/' )
435
- self .individual .set_forename (tokens [0 ].strip ())
436
- if len (tokens ) > 1 :
437
- self .individual .set_surname (tokens [1 ].strip ())
447
+ self .__handle_indi_name (line )
438
448
elif line_lead_token == "FAMC" and self .individual :
439
449
# At least <https://www.ancestry.com> sometimes writes multiple FAMC, which doesn't
440
450
# make sense. Import only the first one.
0 commit comments