factorized list command print code into helpers

main
Fabien Benureau 12 years ago
parent 8290eeaa9b
commit 4d3ce2e2d8

@ -1,5 +1,6 @@
from .. import files from .. import files
from .. import color from .. import color
from .. import pretty
from ..repo import InvalidReference from ..repo import InvalidReference
from ..paper import NoDocumentFile from ..paper import NoDocumentFile
@ -51,3 +52,16 @@ def parse_reference(ui, rp, ref):
def parse_references(ui, rp, refs): def parse_references(ui, rp, refs):
citekeys = [parse_reference(ui, rp, ref) for ref in refs] citekeys = [parse_reference(ui, rp, ref) for ref in refs]
return citekeys return citekeys
def paper_oneliner(p, n = 0, citekey_only = False):
if citekey_only:
return p.citekey
else:
bibdesc = pretty.bib_oneliner(p.bibentry)
return (u'{num:d}: [{citekey}] {descr} {tags}'.format(
num=int(n),
citekey=color.dye(p.citekey, color.purple),
descr=bibdesc,
tags=color.dye(' '.join(p.tags),
color.purple, bold=True),
)).encode('utf-8')

@ -1,6 +1,7 @@
from .. import pretty from .. import pretty
from .. import repo from .. import repo
from .. import color from .. import color
from . import helpers
def parser(subparsers, config): def parser(subparsers, config):
@ -17,20 +18,22 @@ def command(config, ui, citekeys, query):
rp = repo.Repository.from_directory(config) rp = repo.Repository.from_directory(config)
papers = [(n, p) for n, p in enumerate(rp.all_papers()) papers = [(n, p) for n, p in enumerate(rp.all_papers())
if test_paper(query, p)] if test_paper(query, p)]
if citekeys: # if citekeys:
paper_strings = [p.citekey for n, p in papers] # paper_strings = [p.citekey for n, p in papers]
else: # else:
paper_strings = [] # paper_strings = []
for n, p in papers: # print p.tags
bibdesc = pretty.bib_oneliner(p.bibentry) # print color.dye(' '.join(p.tags), color.purple)
paper_strings.append((u'{num:d}: [{citekey}] {descr} {tags}'.format( # for n, p in papers:
num=int(n), # bibdesc = pretty.bib_oneliner(p.bibentry)
citekey=color.dye(p.citekey, color.purple), # paper_strings.append((u'{num:d}: [{citekey}] {descr} {tags}'.format(
descr=bibdesc, # num=int(n),
tags=color.dye(' '.join(p.tags), # citekey=color.dye(p.citekey, color.purple),
color.purple, bold=True), # descr=bibdesc,
)).encode('utf-8')) # tags=color.dye(' '.join(p.tags),
ui.print_('\n'.join(paper_strings)) # color.purple, bold=True),
# )).encode('utf-8'))
ui.print_('\n'.join(helpers.paper_oneliner(p, n = n, citekey_only = citekeys) for n, p in papers))
# TODO author is not implemented, should we do it by last name only or more # TODO author is not implemented, should we do it by last name only or more

Loading…
Cancel
Save