@@ -45,6 +45,7 @@ def flatten(lst):
4545 result .append (item )
4646 return result
4747
48+
4849class NoneData :
4950
5051 # def __setattr__(self, attr, value):
@@ -68,6 +69,9 @@ def __call__(self, *args, **kwargs):
6869 # print(args, kwargs)
6970 return ""
7071
72+ def __iter__ (self ):
73+ return iter ([])
74+
7175
7276class DataDict2 (dict ):
7377 """
@@ -234,7 +238,9 @@ def tags(self):
234238 def citations (self ):
235239 return DataList2 (
236240 [
237- DataDict2 (sa .dbase .get_raw_citation_data (handle ), callback = self .callback )
241+ DataDict2 (
242+ sa .dbase .get_raw_citation_data (handle ), callback = self .callback
243+ )
238244 for handle in self .citation_list
239245 ],
240246 )
@@ -252,6 +258,10 @@ def events(self):
252258 ],
253259 )
254260
261+ @property
262+ def reference (self ):
263+ return DataDict2 (sa .dbase .get_raw_person_data (self .ref ), callback = self .callback )
264+
255265 @property
256266 def attributes (self ):
257267 return self .attribute_list
@@ -268,6 +278,22 @@ def lds_ords(self):
268278 def references (self ):
269279 return self .person_ref_list
270280
281+ @property
282+ def back_references (self ):
283+ retval = []
284+ for obj_type , ohandle in sa .dbase .find_backlink_handles (self .handle ):
285+ obj = sa .dbase .method ("get_%s_from_handle" , obj_type )(ohandle )
286+ retval .append (DataDict2 (obj , callback = self .callback ))
287+ return DataList2 (retval )
288+
289+ @property
290+ def back_references_recursively (self ):
291+ retval = []
292+ for obj_type , ohandle in self ._object .get_referenced_handles_recursively ():
293+ obj = sa .dbase .method ("get_%s_from_handle" , obj_type )(ohandle )
294+ retval .append (DataDict2 (obj , callback = self .callback ))
295+ return DataList2 (retval )
296+
271297 @property
272298 def name (self ):
273299 if self ["_class" ] == "Person" :
0 commit comments