def parse_datacite_dict(doc): """ :param doc: python dict containing datacite conform data to be parsed. """ if not doc or "resource" not in doc: msg = "Could not find root. " msg += "Please escape any XML namespace using the '-n' command line option." raise ParserException(msg) datacite_root = doc["resource"] if "identifier" not in datacite_root: raise ParserException("Could not find identifier (DOI) node") odml_doc = Document() odml_doc.repository = "https://terminologies.g-node.org/v1.1/terminologies.xml" odml_doc.date = date.today().isoformat() root_sec = Section(name="DataCite", type="data_reference", parent=odml_doc) supported_tags = setup_supported_tags() for node_tag in datacite_root: if node_tag in supported_tags: helper = supported_tags[node_tag] helper.func(helper, datacite_root[node_tag], root_sec) else: print("[Warning] Ignoring unsupported root node '%s'" % node_tag) return odml_doc
def test_date(self): datestring = "2000-01-02" doc = Document(date=datestring) self.assertIsInstance(doc.date, datetime.date) self.assertEqual( doc.date, datetime.datetime.strptime(datestring, FORMAT_DATE).date()) doc.date = None self.assertIsNone(doc.date) doc.date = datestring self.assertIsInstance(doc.date, datetime.date) self.assertEqual( doc.date, datetime.datetime.strptime(datestring, FORMAT_DATE).date()) doc.date = [] self.assertIsNone(doc.date) doc.date = {} self.assertIsNone(doc.date) doc.date = () self.assertIsNone(doc.date) doc.date = "" self.assertIsNone(doc.date) with self.assertRaises(ValueError): doc.date = "some format"
def test_date(self): datestring = "2000-01-02" doc = Document(date=datestring) self.assertIsInstance(doc.date, datetime.date) self.assertEqual(doc.date, datetime.datetime.strptime(datestring, FORMAT_DATE).date()) doc.date = None self.assertIsNone(doc.date) doc.date = datestring self.assertIsInstance(doc.date, datetime.date) self.assertEqual(doc.date, datetime.datetime.strptime(datestring, FORMAT_DATE).date()) doc.date = [] self.assertIsNone(doc.date) doc.date = {} self.assertIsNone(doc.date) doc.date = () self.assertIsNone(doc.date) doc.date = "" self.assertIsNone(doc.date) with self.assertRaises(ValueError): doc.date = "some format"
def test_doc(self): """ Test if a document and its attributes get converted correctly from rdf to odml. """ doc = Document() doc.author = "D. N. Adams" doc.version = 42 doc.date = datetime.date(1979, 10, 12) rdf_writer = RDFWriter(doc).get_rdf_str() rdf_reader = RDFReader().from_string(rdf_writer, "turtle") self.assertEqual(rdf_reader[0].author, "D. N. Adams") self.assertEqual(rdf_reader[0].version, "42") self.assertEqual(rdf_reader[0].date, datetime.date(1979, 10, 12))