factorized list command print code into helpers

This commit is contained in:
Fabien Benureau 2013-06-27 11:08:19 +02:00
parent 8290eeaa9b
commit 4d3ce2e2d8
2 changed files with 31 additions and 14 deletions

View File

@ -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')

View File

@ -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