Simplifies paper retrieval from repo.
- Removes old paper_from_ref from repo. - Changes papers_from_citekey to get_paper. - Switches texnote plugin to new ref argument helpers.
This commit is contained in:
parent
105ae292b9
commit
18ed2a7629
@ -16,7 +16,7 @@ def parser(subparsers, config):
|
||||
def command(config, ui, meta, reference):
|
||||
rp = repo.Repository.from_directory(config)
|
||||
key = parse_reference(ui, rp, reference)
|
||||
paper = rp.paper_from_citekey(key)
|
||||
paper = rp.get_paper(key)
|
||||
to_edit = 'bib'
|
||||
if meta:
|
||||
to_edit = 'meta'
|
||||
|
@ -21,7 +21,7 @@ def command(config, ui, bib_format, references):
|
||||
:param bib_format (in 'bibtex', 'yaml')
|
||||
"""
|
||||
rp = repo.Repository.from_directory(config)
|
||||
papers = [rp.paper_from_citekey(c)
|
||||
papers = [rp.get_paper(c)
|
||||
for c in parse_references(ui, rp, references)]
|
||||
if len(papers) == 0:
|
||||
papers = rp.all_papers()
|
||||
|
@ -19,7 +19,7 @@ def parser(subparsers, config):
|
||||
def command(config, ui, with_command, reference):
|
||||
rp = repo.Repository.from_directory(config)
|
||||
key = parse_reference(ui, rp, reference)
|
||||
paper = rp.paper_from_citekey(key)
|
||||
paper = rp.get_paper(key)
|
||||
if with_command is None:
|
||||
with_command = config.get(configs.MAIN_SECTION, 'open-cmd')
|
||||
try:
|
||||
|
@ -19,6 +19,7 @@ from ... import repo
|
||||
from ...paper import NoDocumentFile
|
||||
from ... import configs
|
||||
from ... import files
|
||||
from ...commands.helpers import add_references_argument, parse_reference
|
||||
|
||||
TEXNOTE_SECTION = 'texnote'
|
||||
TEXNOTE_SAMPLE_FILE = os.path.join(os.path.dirname(__file__), 'note_sample.tex')
|
||||
@ -26,8 +27,8 @@ TEXNOTE_DIR = 'texnote'
|
||||
|
||||
def parser(subparsers, config):
|
||||
parser = subparsers.add_parser('texnote', help="edit advance note in latex")
|
||||
parser.add_argument('ref', help='the paper associated citekey or number')
|
||||
parser.add_argument('-v', '--view', action='store_true', help='open the paper in a pdf viewer', default=None)
|
||||
add_references_argument(parser, single=True)
|
||||
return parser
|
||||
|
||||
|
||||
@ -43,7 +44,7 @@ def command(config, ui, ref, view):
|
||||
|
||||
def open_texnote(config, ui, ref):
|
||||
rp = repo.Repository.from_directory(config)
|
||||
paper = rp.paper_from_ref(ref, fatal=True)
|
||||
paper = rp.get_paper(parse_reference(ui, rp, ref))
|
||||
|
||||
if not paper.metadata.has_key('texnote'):
|
||||
texnote_dir = os.path.join(rp.papersdir, TEXNOTE_DIR)
|
||||
|
@ -34,7 +34,7 @@ class Repository(object):
|
||||
def has_paper(self, citekey):
|
||||
return citekey in self.citekeys
|
||||
|
||||
def paper_from_citekey(self, citekey):
|
||||
def get_paper(self, citekey):
|
||||
"""Load a paper by its citekey from disk, if necessary."""
|
||||
return PaperInRepo.load(
|
||||
self, self.path_to_paper_file(citekey, 'bib'),
|
||||
@ -52,10 +52,6 @@ class Repository(object):
|
||||
except (IndexError, ValueError):
|
||||
raise(InvalidReference)
|
||||
|
||||
def paper_from_ref(self, ref):
|
||||
key = self.citekey_from_ref(ref)
|
||||
return self.paper_from_citekey(key)
|
||||
|
||||
# creating new papers
|
||||
|
||||
def add_paper(self, p):
|
||||
@ -111,7 +107,7 @@ class Repository(object):
|
||||
self.remove(old_citekey)
|
||||
|
||||
def remove(self, citekey):
|
||||
paper = self.paper_from_citekey(citekey)
|
||||
paper = self.get_paper(citekey)
|
||||
self.citekeys.remove(citekey)
|
||||
self.save()
|
||||
for f in ('bib', 'meta'):
|
||||
@ -188,7 +184,7 @@ class Repository(object):
|
||||
|
||||
def all_papers(self):
|
||||
for key in self.citekeys:
|
||||
yield self.paper_from_citekey(key)
|
||||
yield self.get_paper(key)
|
||||
|
||||
def import_document(self, citekey, doc_file):
|
||||
if citekey not in self.citekeys:
|
||||
|
@ -72,16 +72,16 @@ class TestUpdatePaper(TestRepo):
|
||||
self.repo.update(fixtures.turing1950, old_citekey='Doe2013')
|
||||
|
||||
def test_updates_same_key(self):
|
||||
new = self.repo.paper_from_citekey('Turing1950')
|
||||
new = self.repo.get_paper('Turing1950')
|
||||
new.bibentry.fields['journal'] = u'Mind'
|
||||
self.repo.update(new)
|
||||
self.assertEqual(new, self.repo.paper_from_citekey('Turing1950'))
|
||||
self.assertEqual(new, self.repo.get_paper('Turing1950'))
|
||||
|
||||
def test_updates_same_key_with_old_arg(self):
|
||||
new = self.repo.paper_from_citekey('Turing1950')
|
||||
new = self.repo.get_paper('Turing1950')
|
||||
new.bibentry.fields['journal'] = u'Mind'
|
||||
self.repo.update(new, old_citekey='Turing1950')
|
||||
self.assertEqual(new, self.repo.paper_from_citekey('Turing1950'))
|
||||
self.assertEqual(new, self.repo.get_paper('Turing1950'))
|
||||
|
||||
def test_update_new_key_removes_old(self):
|
||||
self.repo.update(fixtures.doe2013, old_citekey='Turing1950')
|
||||
@ -90,7 +90,7 @@ class TestUpdatePaper(TestRepo):
|
||||
def test_update_new_key_updates(self):
|
||||
self.repo.update(fixtures.doe2013, old_citekey='Turing1950')
|
||||
self.assertTrue(self.repo.has_paper('Doe2013'))
|
||||
self.assertEqual(self.repo.paper_from_citekey('Doe2013'),
|
||||
self.assertEqual(self.repo.get_paper('Doe2013'),
|
||||
PaperInRepo.from_paper(fixtures.doe2013, self.repo))
|
||||
|
||||
def test_update_new_key_moves_doc(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user