def json(self): """ Dumps the OAI record as a JSON object (for dataset dumping purposes) """ result = {} if self.publisher: result['policy'] = self.publisher.json() if self.journal: result['issn'] = self.journal.issn result.update({ 'source': self.source.identifier, 'identifier': self.identifier, 'splash_url': self.splash_url, 'pdf_url': self.pdf_url, 'doi': self.doi, 'abstract': self.description, 'keywords': self.keywords, 'contributors': self.contributors, 'type': self.pubtype, 'publisher': self.publisher_name, 'journal': self.full_journal_title(), 'container': self.container, 'issue': self.issue, 'volume': self.volume, 'pages': self.pages, }) return remove_nones(result)
def json(self): """ JSON representation of the paper, for dataset dumping purposes """ return remove_nones({ 'title': self.title, 'type': self.doctype, 'date': self.pubdate.isoformat(), 'authors': [a.json() for a in self.authors], 'records': [r.json() for r in self.oairecords], 'pdf_url': self.pdf_url, 'classification': self.oa_status, })
def json(self): """ JSON representation of the author for dataset dumping purposes, or for the public API. """ orcid_id = self.orcid affiliation = None if not orcid_id and self.affiliation: affiliation = self.affiliation return remove_nones({ 'name': self.name.json(), 'affiliation': affiliation, 'orcid': orcid_id, })
def test_remove_nones(self): self.assertEqual(remove_nones({'orcid':None,'wtf':'pl'}), {'wtf': 'pl'}) self.assertEqual(remove_nones({'orcid':'blah','hey':'you'}), {'orcid': 'blah', 'hey': 'you'}) self.assertEqual(remove_nones({None:1}), {None: 1})