def get_extended_attributes( db_handle: DbReadBase, obj: GrampsObject, args: Optional[Dict] = None ) -> Dict: """Get extended attributes for a GrampsObject.""" args = args or {} result = {} do_all = False if "all" in args["extend"]: do_all = True if (do_all or "child_ref_list" in args["extend"]) and hasattr( obj, "child_ref_list" ): result["children"] = [ db_handle.get_person_from_handle(child_ref.ref) for child_ref in obj.child_ref_list ] if (do_all or "citation_list" in args["extend"]) and hasattr(obj, "citation_list"): result["citations"] = [ db_handle.get_citation_from_handle(handle) for handle in obj.citation_list ] if (do_all or "event_ref_list" in args["extend"]) and hasattr( obj, "event_ref_list" ): result["events"] = [ db_handle.get_event_from_handle(event_ref.ref) for event_ref in obj.event_ref_list ] if (do_all or "media_list" in args["extend"]) and hasattr(obj, "media_list"): result["media"] = [ db_handle.get_media_from_handle(media_ref.ref) for media_ref in obj.media_list ] if (do_all or "note_list" in args["extend"]) and hasattr(obj, "note_list"): result["notes"] = [ db_handle.get_note_from_handle(handle) for handle in obj.note_list ] if (do_all or "person_ref_list" in args["extend"]) and hasattr( obj, "person_ref_list" ): result["people"] = [ db_handle.get_person_from_handle(person_ref.ref) for person_ref in obj.person_ref_list ] if (do_all or "reporef_list" in args["extend"]) and hasattr(obj, "reporef_list"): result["repositories"] = [ db_handle.get_repository_from_handle(repo_ref.ref) for repo_ref in obj.reporef_list ] if (do_all or "tag_list" in args["extend"]) and hasattr(obj, "tag_list"): result["tags"] = [ db_handle.get_tag_from_handle(handle) for handle in obj.tag_list ] if (do_all or "backlinks" in args["extend"]) and hasattr(obj, "backlinks"): result["backlinks"] = {} for class_name, backlinks in obj.backlinks.items(): result["backlinks"][class_name] = [ db_handle.method("get_%s_from_handle", class_name.upper())(handle) for handle in backlinks ] return result
def get_event_date_from_handle(db: DbReadBase, handle: Handle) -> Optional[str]: """Return a formatted date for the event.""" try: date = db.get_event_from_handle(handle).get_date_object() except AttributeError: return None return dd.display(date) or None
def get_event_profile_for_handle(db_handle: DbReadBase, handle: Handle) -> Optional[Dict]: """Get event profile given a handle.""" try: obj = db_handle.get_event_from_handle(handle) except HandleError: return None return get_event_profile_for_object(db_handle, obj)
def get_event_profile_for_handle( db_handle: DbReadBase, handle: Handle, args: List, base_event: Union[Event, None] = None, label: str = "span", locale: GrampsLocale = glocale, role: Optional[str] = None, ) -> Dict: """Get event profile given a handle.""" try: obj = db_handle.get_event_from_handle(handle) except HandleError: return {} return get_event_profile_for_object( db_handle, obj, args=args, base_event=base_event, label=label, locale=locale, role=role, )
def get_event_place_from_handle(db: DbReadBase, handle: Handle) -> Optional[GrampsId]: """Get an event's place.""" return get_event_place_grampsid(db, db.get_event_from_handle(handle))