freeseek / getmyancestors

33 stars 45 forks source link

Failing on one specific person #4

Closed ghost closed 8 years ago

ghost commented 9 years ago

I've isolated one specific person that is causing getmyancestors to fail.. Wonder why we are failing on this specific person.. I can build GEDCOMs from any other family. Could there be something wrong with the individual's data in FamilySearch?

Test command:

mhs@ny1:~$ ./getmyancestors.py -a 0 -d 0 -u xxxx -p xxxx -i LCFZ-DXV -v -o rw.ged Downloading: https://familysearch.org/platform/tree/persons/LCFZ-DXV.json Status code: 200 Traceback (most recent call last): File "./getmyancestors.py", line 392, in tree.indi[fid] = Indi(fid) File "./getmyancestors.py", line 136, in init self.buriplac = y['place']['original'] if 'place' in y else None KeyError: 'original'

OJFord commented 9 years ago

As a temporary fix, you could just add something (an empty string even) to that persons burial place.

Without looking at the context (i.e. y) it's hard to say why only one person wouldn't have a burial place set, unless of course they were the only person not to.. in which case the proper fix would likely be to alter to if 'place' in y and 'original' in y['place'].

freeseek commented 9 years ago

I have implemented the fix. Sort of odd that profile LCFZ-DXV has a 'standardized' 'place' for burial ("Box Elder, Utah, United States") but no 'original' 'place' for burial (see https://familysearch.org/platform/tree/persons/LCFZ-DXV.json). You cannot manually create this situation editing the page from the FamilySearch interface (see https://familysearch.org/tree/#view=ancestor&person=LCFZ-DXV). Notice that the current version of getmyancestors.py will not download the burial location for this profile until it is added in the original field. Thank you for pointing out this corner case.

OJFord commented 9 years ago

Bizarre. I should retract my earlier comment about 'original' being guaranteed!

I suppose it must have been an import (as in, another tool's "export to FS") - but even then really FS should make an undefined original be a copy of whatever does exist.