Moves add_papers fonctionality.

Now:
- paper.py provides extraction of many Papers from bib,
- command performs the loop to add each paper to repo.
main
Olivier Mangin 12 years ago
parent da7fa55d19
commit 47e3ce88e8

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

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

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

Loading…
Cancel
Save