def setUpForProtocol(self, protocol_class, repository): self.oaisource, _ = OaiSource.objects.get_or_create( identifier='deposit_oaisource', name='Repository OAI source', default_pubtype='preprint') logo = InMemoryUploadedFile(BytesIO(simple_png_image), None, 'logo.png', 'image/png', len(simple_png_image), None, None) self.repo = repository self.repo.oaisource = self.oaisource self.repo.logo = logo if not self.repo.description: self.repo.description = 'brsuatiercs' if not self.repo.name: self.repo.name = 'Test Repository' self.repo.protocol = protocol_class.__name__ self.repo.save() protocol_registry.register(protocol_class) self.proto = protocol_class(self.repo) self.form = None
def setUpForProtocol(self, protocol_class, repository): self.oaisource, _ = OaiSource.objects.get_or_create( identifier='deposit_oaisource', name='Repository OAI source', default_pubtype='preprint') logo = InMemoryUploadedFile( BytesIO(simple_png_image), None, 'logo.png', 'image/png', len(simple_png_image), None, None) self.repo = repository self.repo.oaisource = self.oaisource self.repo.logo = logo if not self.repo.description: self.repo.description = 'brsuatiercs' if not self.repo.name: self.repo.name = 'Test Repository' self.repo.protocol = protocol_class.__name__ self.repo.save() protocol_registry.register(protocol_class) self.proto = protocol_class(self.repo) self.form = None
related_item_issue.set('type', 'issue') related_item_issue_number = etree.SubElement(related_item_issue, MODS + 'number') related_item_issue_number.text = self.paper_metadata.get('issue') part['issue'] = related_item_issue # Set volume if self.paper_metadata.get('volume'): related_item_volume = etree.Element(MODS + 'detail') related_item_volume.set('type', 'volume') related_item_volume_number = etree.SubElement(related_item_volume, MODS + 'number') related_item_volume_number.text = self.paper_metadata.get('volume') part['volume'] = related_item_volume # Make parts if existing if len(part) >= 1: related_item_part = etree.Element(MODS + 'part') for item in part.values(): related_item_part.insert(0, item) related_item_data['part'] = related_item_part # Make relatedItem if existing if len(related_item_data) >= 1: related_item = etree.Element(MODS + 'relatedItem') for item in related_item_data.values(): related_item.insert(0, item) return related_item protocol_registry.register(SWORDMETSMODSProtocol)
lambda r: { 'relation': 'isAlternateIdentifier', 'identifier': r.splash_url }, oairecords) for publi in publications: if publi.journal and publi.journal.issn: idents.append({ 'relation': 'isPartOf', 'identifier': publi.journal.issn }) data = {"metadata": metadata} return data protocol_registry.register(ZenodoProtocol) def swordDocumentType(paper): tr = { 'journal-article': ('publication', 'article'), 'proceedings-article': ('publication', 'conferencepaper'), 'book-chapter': ('publication', 'section'), 'book': ('publication', 'book'), 'journal-issue': ('publication', 'book'), 'proceedings': ('publication', 'book'), 'reference-entry': ('publication', 'other'), 'poster': ('poster', ), 'report': ('publication', 'report'), 'thesis': ('publication', 'thesis'), 'dataset': ('dataset', ),
"id": preprint_id, "attributes": { "is_published": "true" } } } self.log("### Make the project public") project_pub_req = requests.patch(self.node_url, data=json.dumps(public_project), headers=self.headers) self.log_request(project_pub_req, 200, _('Unable to make the project public.')) self.log("### Make the preprint public") preprint_pub_req = requests.patch(self.preprint_node_url, data=json.dumps(public_preprint), headers=self.headers) self.log_request(preprint_pub_req, 200, _('Unable to make the project public.')) deposit_result.identifier = self.project_public_url deposit_result.splash_url = self.preprint_public_url deposit_result.pdf_url = preprint_public_pdf return deposit_result protocol_registry.register(OSFProtocol)
oairecord.about.update_availability() oairecord.about.update_index() def get_new_status(self, identifier): """ Unconditionnally fetch the new status of a deposit, by ID (e.g. hal-0001234) """ deposit_url = '%s%s' % (self.api_url, identifier) req = requests.get(deposit_url, auth=requests.auth.HTTPBasicAuth(self.username,self.password)) if req.status_code == 400: return 'deleted' req.raise_for_status() parser = etree.XMLParser(encoding='utf-8') receipt = etree.parse(BytesIO(req.text.encode('utf-8')), parser) receipt = receipt.getroot() hal_status = receipt.find('status').text if hal_status == 'accept' or hal_status == 'replace': return 'published' elif hal_status == 'verify' or hal_status == 'update': return 'pending' elif hal_status == 'delete': return 'refused' protocol_registry.register(HALProtocol)
oairecord.about.update_availability() oairecord.about.update_index() def get_new_status(self, identifier): """ Unconditionnally fetch the new status of a deposit, by ID (e.g. hal-0001234) """ deposit_url = '%s%s' % (self.api_url, identifier) req = requests.get(deposit_url, auth=requests.auth.HTTPBasicAuth( self.username, self.password)) if req.status_code == 400: return 'deleted' req.raise_for_status() parser = etree.XMLParser(encoding='utf-8') receipt = etree.parse(BytesIO(req.text.encode('utf-8')), parser) receipt = receipt.getroot() hal_status = receipt.find('status').text if hal_status == 'accept' or hal_status == 'replace': return 'published' elif hal_status == 'verify' or hal_status == 'update': return 'pending' elif hal_status == 'delete': return 'refused' protocol_registry.register(HALProtocol)
def ready(self): from .protocol import ZenodoProtocol from deposit.registry import protocol_registry protocol_registry.register(ZenodoProtocol)
"data": { "id": preprint_id, "attributes": { "is_published": "true" } } } self.log("### Make the project public") project_pub_req = requests.patch(self.node_url, data=json.dumps(public_project), headers=self.headers) self.log_request(project_pub_req, 200, _('Unable to make the project public.')) self.log("### Make the preprint public") preprint_pub_req = requests.patch(self.preprint_node_url, data=json.dumps(public_preprint), headers=self.headers) self.log_request(preprint_pub_req, 200, _('Unable to make the project public.')) deposit_result.identifier = self.project_public_url deposit_result.splash_url = self.preprint_public_url deposit_result.pdf_url = preprint_public_pdf return deposit_result protocol_registry.register(OSFProtocol)
# payload=f,col_iri=self.repository.api_key) #receipt = conn.create(metadata_entry=entry,col_iri=self.repository.api_key) files = {'file': ('metadata.xml', meta)} headers = { 'In-Progress': 'false', 'Content-Type': 'application/atom+xml; type=entry' } auth = requests.auth.HTTPBasicAuth(self.repository.username, self.repository.password) r = requests.post(self.repository.api_key, files=files, headers=headers, auth=auth) self.log_request( r, 201, __('Unable to submit the paper to the collection.')) self.log(unicode(r.text)) deposit_result = DepositResult() except requests.exceptions.RequestException as e: raise DepositError(unicode(e)) except sword2.exceptions.HTTPResponseError as e: if conn is not None: self.log(unicode(conn.history)) raise DepositError(__('Failed to connect to the SWORD server.')) return deposit_result protocol_registry.register(SwordProtocol)
# Related identifiers idents = [{ 'relation': 'isAlternateIdentifier', 'identifier': r.splash_url } for r in oairecords] for publi in publications: if publi.journal and publi.journal.issn: idents.append( {'relation': 'isPartOf', 'identifier': publi.journal.issn}) data = {"metadata": metadata} return data protocol_registry.register(ZenodoProtocol) def swordDocumentType(paper): tr = { 'journal-article': ('publication', 'article'), 'proceedings-article': ('publication', 'conferencepaper'), 'book-chapter': ('publication', 'section'), 'book': ('publication', 'book'), 'journal-issue': ('publication', 'book'), 'proceedings': ('publication', 'book'), 'reference-entry': ('publication', 'other'), 'poster': ('poster',), 'report': ('publication', 'report'), 'thesis': ('publication', 'thesis'), 'dataset': ('dataset',),