From 47e3ce88e83f4ef07a0026899c5c1ba5b7399514 Mon Sep 17 00:00:00 2001 From: Olivier Mangin Date: Thu, 20 Dec 2012 15:47:00 +0100 Subject: [PATCH] Moves add_papers fonctionality. Now: - paper.py provides extraction of many Papers from bib, - command performs the loop to add each paper to repo. --- papers/commands/add_library_cmd.py | 5 ++++- papers/paper.py | 6 ++++++ papers/repo.py | 7 ------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/papers/commands/add_library_cmd.py b/papers/commands/add_library_cmd.py index 883c720..60dd773 100644 --- a/papers/commands/add_library_cmd.py +++ b/papers/commands/add_library_cmd.py @@ -1,4 +1,5 @@ from .. import repo +from ..paper import Paper def parser(subparsers, config): @@ -7,9 +8,11 @@ def parser(subparsers, config): parser.add_argument('bibfile', help='bibtex, bibtexml or bibyaml file') return parser + def command(config, bibfile): """ :param bibtex bibtex file (in .bib, .bibml or .yaml format. """ rp = repo.Repository.from_directory() - rp.add_papers(bibfile) + for p in Paper.many_from_bib(bibfile): + rp.add_paper(p) diff --git a/papers/paper.py b/papers/paper.py index 38a42c1..ab27a47 100644 --- a/papers/paper.py +++ b/papers/paper.py @@ -146,3 +146,9 @@ class Paper(object): @classmethod def create_meta(cls): return BASE_META.copy() + + @classmethod + def many_from_bib(cls, bibpath): + bib_data = files.load_externalbibfile(bibpath) + return [Paper(bibentry=bib_data.entries[k], citekey=k) + for k in bib_data.entries] diff --git a/papers/repo.py b/papers/repo.py index 2b0de46..0eb0003 100644 --- a/papers/repo.py +++ b/papers/repo.py @@ -91,13 +91,6 @@ class Repository(object): paper.save_to_disc(self.path_to_paper_file(paper.citekey, 'bib'), self.path_to_paper_file(paper.citekey, 'meta')) - def add_papers(self, bibpath): - bib_data = files.load_externalbibfile(bibpath) - for k in bib_data.entries: - sub_bib = bib_data.entries[k] - p = Paper(bibentry=sub_bib, citekey=k) - self.add_paper(p) - def get_free_citekey(self, paper, citekey=None): """Create a unique citekey for the given paper. """