Spaces:
Runtime error
Runtime error
class CitationManager: | |
def __init__(self, annotations, client, start=1): | |
self.start = start | |
self.body = {} | |
self.citations = [] | |
for a in annotations: | |
reference = f'[{start}]' | |
self.body[a.text] = reference | |
document = client.files.retrieve(a.file_citation.file_id) | |
self.citations.append('{} {}:{}--{}'.format( | |
reference, | |
document.filename, | |
a.start_index, | |
a.end_index, | |
)) | |
start += 1 | |
def __len__(self): | |
return len(self.citations) | |
def __str__(self): | |
raise NotImplementedError() | |
def __iter__(self): | |
raise NotImplementedError() | |
def replace(self, body): | |
for i in self: | |
body = body.replace(*i) | |
return body | |
class NumericCitations(CitationManager): | |
def __str__(self): | |
return '\n\n{}'.format('\n'.join(self.citations)) | |
def __iter__(self): | |
for (k, v) in self.body.items(): | |
yield (k, f' {v}') | |
class NoCitations(CitationManager): | |
def __str__(self): | |
return '' | |
def __iter__(self): | |
yield from zip(self.body, it.repeat('')) | |