renamed n_authors into max_authors
This commit is contained in:
parent
a30e75a5e6
commit
04b25a22c8
@ -147,7 +147,7 @@ def command(conf, args):
|
|||||||
doc_add = conf['main']['doc_add']
|
doc_add = conf['main']['doc_add']
|
||||||
|
|
||||||
rp.push_paper(p)
|
rp.push_paper(p)
|
||||||
ui.message('added to pubs:\n{}'.format(pretty.paper_oneliner(p, n_authors=conf['main']['n_authors'])))
|
ui.message('added to pubs:\n{}'.format(pretty.paper_oneliner(p, max_authors=conf['main']['max_authors'])))
|
||||||
if docfile is not None:
|
if docfile is not None:
|
||||||
rp.push_doc(p.citekey, docfile, copy=(doc_add in ('copy', 'move')))
|
rp.push_doc(p.citekey, docfile, copy=(doc_add in ('copy', 'move')))
|
||||||
if doc_add == 'move' and content.content_type(docfile) != 'url':
|
if doc_add == 'move' and content.content_type(docfile) != 'url':
|
||||||
|
@ -54,7 +54,7 @@ def command(conf, args):
|
|||||||
papers = sorted(papers, key=date_added)
|
papers = sorted(papers, key=date_added)
|
||||||
if len(papers) > 0:
|
if len(papers) > 0:
|
||||||
ui.message('\n'.join(
|
ui.message('\n'.join(
|
||||||
pretty.paper_oneliner(p, citekey_only=args.citekeys, n_authors=conf['main']['n_authors'])
|
pretty.paper_oneliner(p, citekey_only=args.citekeys, max_authors=conf['main']['max_authors'])
|
||||||
for p in papers))
|
for p in papers))
|
||||||
|
|
||||||
rp.close()
|
rp.close()
|
||||||
|
@ -117,7 +117,7 @@ def command(conf, args):
|
|||||||
len(p.tags.intersection(excluded)) == 0):
|
len(p.tags.intersection(excluded)) == 0):
|
||||||
papers_list.append(p)
|
papers_list.append(p)
|
||||||
|
|
||||||
ui.message('\n'.join(pretty.paper_oneliner(p, n_authors=conf['main']['n_authors'])
|
ui.message('\n'.join(pretty.paper_oneliner(p, max_authors=conf['main']['max_authors'])
|
||||||
for p in papers_list))
|
for p in papers_list))
|
||||||
|
|
||||||
rp.close()
|
rp.close()
|
||||||
|
@ -29,7 +29,7 @@ note_extension = string(default='txt')
|
|||||||
|
|
||||||
# How many authors to display when displaying a citation. If there are more
|
# How many authors to display when displaying a citation. If there are more
|
||||||
# authors, only the first author is diplayed followed by 'et al.'.
|
# authors, only the first author is diplayed followed by 'et al.'.
|
||||||
n_authors = integer(default=3)
|
max_authors = integer(default=3)
|
||||||
|
|
||||||
# If true debug mode is on which means exceptions are not catched and
|
# If true debug mode is on which means exceptions are not catched and
|
||||||
# the full python stack is printed.
|
# the full python stack is printed.
|
||||||
|
@ -23,30 +23,24 @@ def person_repr(p):
|
|||||||
' '.join(p.lineage(abbr=True))] if s)
|
' '.join(p.lineage(abbr=True))] if s)
|
||||||
|
|
||||||
|
|
||||||
def short_authors(bibdata, n_authors=3):
|
def short_authors(bibdata, max_authors=3):
|
||||||
"""
|
"""
|
||||||
:param n_authors: number of authors to display completely. Additional authors will be
|
:param max_authors: number of authors to display completely. Additional authors will be
|
||||||
represented by 'et al.'.
|
represented by 'et al.'.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
authors = [p for p in bibdata['author']]
|
authors = [p for p in bibdata['author']]
|
||||||
if 0 < n_authors < len(authors):
|
if 0 < max_authors < len(authors):
|
||||||
authors_str = '{} et al.'.format(authors[0])
|
authors_str = '{} et al.'.format(authors[0])
|
||||||
else:
|
else:
|
||||||
authors_str = ' and '.join(authors)
|
authors_str = ' and '.join(authors)
|
||||||
|
|
||||||
# if n_authors > 0:
|
|
||||||
# authors = authors[:n_authors]
|
|
||||||
# authors_str = ' and '.join(authors)
|
|
||||||
# if 0 < n_authors < len(bibdata['author']):
|
|
||||||
# authors_str += ' et al.'
|
|
||||||
return authors_str
|
return authors_str
|
||||||
except KeyError: # When no author is defined
|
except KeyError: # When no author is defined
|
||||||
return ''
|
return ''
|
||||||
|
|
||||||
|
|
||||||
def bib_oneliner(bibdata, n_authors=3):
|
def bib_oneliner(bibdata, max_authors=3):
|
||||||
authors = short_authors(bibdata, n_authors=n_authors)
|
authors = short_authors(bibdata, max_authors=max_authors)
|
||||||
journal = ''
|
journal = ''
|
||||||
if 'journal' in bibdata:
|
if 'journal' in bibdata:
|
||||||
journal = ' ' + bibdata['journal']
|
journal = ' ' + bibdata['journal']
|
||||||
@ -71,11 +65,11 @@ def bib_desc(bib_data):
|
|||||||
return s
|
return s
|
||||||
|
|
||||||
|
|
||||||
def paper_oneliner(p, citekey_only=False, n_authors=3):
|
def paper_oneliner(p, citekey_only=False, max_authors=3):
|
||||||
if citekey_only:
|
if citekey_only:
|
||||||
return p.citekey
|
return p.citekey
|
||||||
else:
|
else:
|
||||||
bibdesc = bib_oneliner(p.get_unicode_bibdata(), n_authors=n_authors)
|
bibdesc = bib_oneliner(p.get_unicode_bibdata(), max_authors=max_authors)
|
||||||
doc_str = ''
|
doc_str = ''
|
||||||
if p.docpath is not None:
|
if p.docpath is not None:
|
||||||
doc_extension = os.path.splitext(p.docpath)[1]
|
doc_extension = os.path.splitext(p.docpath)[1]
|
||||||
|
@ -33,7 +33,7 @@ def resolve_citekey(repo, citekey, ui=None, exit_on_fail=True):
|
|||||||
"citekeys:".format(citekey))
|
"citekeys:".format(citekey))
|
||||||
for c in citekeys:
|
for c in citekeys:
|
||||||
p = repo.pull_paper(c)
|
p = repo.pull_paper(c)
|
||||||
ui.message(' {}'.format(pretty.paper_oneliner(p, n_authors=conf['main']['n_authors'])))
|
ui.message(' {}'.format(pretty.paper_oneliner(p, max_authors=conf['main']['max_authors'])))
|
||||||
if exit_on_fail:
|
if exit_on_fail:
|
||||||
ui.exit()
|
ui.exit()
|
||||||
return citekey
|
return citekey
|
||||||
|
@ -28,15 +28,15 @@ class TestPretty(unittest.TestCase):
|
|||||||
line = 'Page, Lawrence et al. "The PageRank Citation Ranking: Bringing Order to the Web."'
|
line = 'Page, Lawrence et al. "The PageRank Citation Ranking: Bringing Order to the Web."'
|
||||||
self.assertEqual(color.undye(pretty.bib_oneliner(bibdata['Page99'])), line)
|
self.assertEqual(color.undye(pretty.bib_oneliner(bibdata['Page99'])), line)
|
||||||
|
|
||||||
def test_oneliner_n_authors(self):
|
def test_oneliner_max_authors(self):
|
||||||
decoder = endecoder.EnDecoder()
|
decoder = endecoder.EnDecoder()
|
||||||
bibdata = decoder.decode_bibdata(bibtex_raw0)
|
bibdata = decoder.decode_bibdata(bibtex_raw0)
|
||||||
for n_authors in [1, 2, 3]:
|
for max_authors in [1, 2, 3]:
|
||||||
line = 'Page, Lawrence et al. "The PageRank Citation Ranking: Bringing Order to the Web." (1999)'
|
line = 'Page, Lawrence et al. "The PageRank Citation Ranking: Bringing Order to the Web." (1999)'
|
||||||
self.assertEqual(color.undye(pretty.bib_oneliner(bibdata['Page99'], n_authors=n_authors)), line)
|
self.assertEqual(color.undye(pretty.bib_oneliner(bibdata['Page99'], max_authors=max_authors)), line)
|
||||||
for n_authors in [-1, 0, 4, 5, 10]:
|
for max_authors in [-1, 0, 4, 5, 10]:
|
||||||
line = 'Page, Lawrence and Brin, Sergey and Motwani, Rajeev and Winograd, Terry "The PageRank Citation Ranking: Bringing Order to the Web." (1999)'
|
line = 'Page, Lawrence and Brin, Sergey and Motwani, Rajeev and Winograd, Terry "The PageRank Citation Ranking: Bringing Order to the Web." (1999)'
|
||||||
self.assertEqual(color.undye(pretty.bib_oneliner(bibdata['Page99'], n_authors=n_authors)), line)
|
self.assertEqual(color.undye(pretty.bib_oneliner(bibdata['Page99'], max_authors=max_authors)), line)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
@ -1157,18 +1157,18 @@ class TestCache(DataCommandTestCase):
|
|||||||
|
|
||||||
class TestConfigChange(DataCommandTestCase):
|
class TestConfigChange(DataCommandTestCase):
|
||||||
|
|
||||||
def test_n_authors_default(self):
|
def test_max_authors_default(self):
|
||||||
line_al = '[Page99] Page, Lawrence et al. "The PageRank Citation Ranking: Bringing Order to the Web." (1999) \n'
|
line_al = '[Page99] Page, Lawrence et al. "The PageRank Citation Ranking: Bringing Order to the Web." (1999) \n'
|
||||||
line_full = '[Page99] Page, Lawrence and Brin, Sergey and Motwani, Rajeev and Winograd, Terry "The PageRank Citation Ranking: Bringing Order to the Web." (1999) \n'
|
line_full = '[Page99] Page, Lawrence and Brin, Sergey and Motwani, Rajeev and Winograd, Terry "The PageRank Citation Ranking: Bringing Order to the Web." (1999) \n'
|
||||||
|
|
||||||
self.execute_cmds(['pubs init', 'pubs add data/pagerank.bib'])
|
self.execute_cmds(['pubs init', 'pubs add data/pagerank.bib'])
|
||||||
|
|
||||||
for n_authors in [1, 2, 3]:
|
for max_authors in [1, 2, 3]:
|
||||||
self.update_config({'main': {'n_authors': n_authors}})
|
self.update_config({'main': {'max_authors': max_authors}})
|
||||||
self.execute_cmds([('pubs list', None, line_al, None)])
|
self.execute_cmds([('pubs list', None, line_al, None)])
|
||||||
|
|
||||||
for n_authors in [-1, 0, 4, 5, 10]:
|
for max_authors in [-1, 0, 4, 5, 10]:
|
||||||
self.update_config({'main': {'n_authors': n_authors}})
|
self.update_config({'main': {'max_authors': max_authors}})
|
||||||
self.execute_cmds([('pubs list', None, line_full, None)])
|
self.execute_cmds([('pubs list', None, line_full, None)])
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user