def importData(dbase, filename, user): """Function called by Gramps to import data on persons in CSV format.""" dbase.disable_signals() try: with DbTxn(_("JSON import"), dbase, batch=True) as trans: with OpenFileOrStdin(filename, encoding="utf-8") as fp: line = fp.readline() while line: json = ast.literal_eval(line) obj = from_struct(json) if json["_class"] == "Person": dbase.add_person(obj, trans) elif json["_class"] == "Family": dbase.add_family(obj, trans) elif json["_class"] == "Event": dbase.add_event(obj, trans) elif json["_class"] == "MediaObject": dbase.add_object(obj, trans) elif json["_class"] == "Repository": dbase.add_repository(obj, trans) elif json["_class"] == "Tag": dbase.add_tag(obj, trans) elif json["_class"] == "Source": dbase.add_source(obj, trans) elif json["_class"] == "Citation": dbase.add_citation(obj, trans) elif json["_class"] == "Note": dbase.add_note(obj, trans) elif json["_class"] == "Place": dbase.add_place(obj, trans) else: LOG.warn("ignored: " + json) line = fp.readline() except EnvironmentError as err: user.notify_error(_("%s could not be opened\n") % filename, str(err)) dbase.enable_signals() dbase.request_rebuild()
def importData(dbase, filename, user): """Function called by Gramps to import data on persons in CSV format.""" dbase.disable_signals() try: with DbTxn(_("JSON import"), dbase, batch=True) as trans: with OpenFileOrStdin(filename, 'b') as fp: line = fp.readline() while line: json = eval(line) obj = from_struct(json) if json["_class"] == "Person": dbase.add_person(obj, trans) elif json["_class"] == "Family": dbase.add_family(obj, trans) elif json["_class"] == "Event": dbase.add_event(obj, trans) elif json["_class"] == "MediaObject": dbase.add_object(obj, trans) elif json["_class"] == "Repository": dbase.add_repository(obj, trans) elif json["_class"] == "Tag": dbase.add_tag(obj, trans) elif json["_class"] == "Source": dbase.add_source(obj, trans) elif json["_class"] == "Citation": dbase.add_citation(obj, trans) elif json["_class"] == "Note": dbase.add_note(obj, trans) elif json["_class"] == "Place": dbase.add_place(obj, trans) else: LOG.warn("ignored: " + json) line = fp.readline() except EnvironmentError as err: user.notify_error(_("%s could not be opened\n") % filename, str(err)) dbase.enable_signals() dbase.request_rebuild()
def test2(self): self.assertEqual(obj.serialize(), from_struct(struct).serialize())