From b46f8c543d7cd9497e22a86cae730d8e84035215 Mon Sep 17 00:00:00 2001 From: Olivier Mangin Date: Wed, 19 Dec 2012 16:20:35 +0100 Subject: [PATCH] Improves repo dir specification to avoid issues. --- papers/commands/add_cmd.py | 1 + papers/commands/init_cmd.py | 4 ++-- papers/repo.py | 15 ++++++++------- tests/test_repo.py | 4 ++-- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/papers/commands/add_cmd.py b/papers/commands/add_cmd.py index 750e600..cd035ea 100644 --- a/papers/commands/add_cmd.py +++ b/papers/commands/add_cmd.py @@ -7,6 +7,7 @@ def parser(subparsers, config): parser.add_argument('bibfile', help='bibtex, bibtexml or bibyaml file') return parser + def command(config, pdffile, bibfile): """ :param pdffilepath path (no url yet) to a pdf or ps file diff --git a/papers/commands/init_cmd.py b/papers/commands/init_cmd.py index b85a448..070bc1b 100644 --- a/papers/commands/init_cmd.py +++ b/papers/commands/init_cmd.py @@ -18,8 +18,8 @@ def command(config): if not os.path.exists(papersdir): print('{}initializing papers in {}{}{}'.format( color.grey, color.cyan, papersdir, color.end)) - repo = Repository(papersdir=papersdir) - repo.init() # Creates directories + repo = Repository() + repo.init(papersdir) # Creates directories repo.save() # Saves empty repository description else: print('{}error {} : papers already present in {}{}{}'.format( diff --git a/papers/repo.py b/papers/repo.py index 55a35ca..2b0de46 100644 --- a/papers/repo.py +++ b/papers/repo.py @@ -13,11 +13,8 @@ META_DIR = 'meta' class Repository(object): - def __init__(self, papersdir=None): - if papersdir: - self.papersdir = papersdir - else: - self.papersdir = files.find_papersdir() + def __init__(self): + self.papersdir = None self.citekeys = [] # loading existing papers @@ -125,7 +122,8 @@ class Repository(object): papers_config = files.read_yamlfile(self.base_file_path()) self.citekeys = papers_config['citekeys'] - def init(self): + def init(self, papersdir): + self.papersdir = papersdir os.makedirs(os.path.join(self.papersdir, BIB_DIR)) os.makedirs(os.path.join(self.papersdir, META_DIR)) self.save() @@ -140,7 +138,10 @@ class Repository(object): @classmethod def from_directory(cls, papersdir=None): - repo = cls(papersdir=papersdir) + repo = cls() + if papersdir is None: + papersdir = files.find_papersdir() + repo.papersdir = papersdir repo.load() return repo diff --git a/tests/test_repo.py b/tests/test_repo.py index 371c7d9..e4e73b1 100644 --- a/tests/test_repo.py +++ b/tests/test_repo.py @@ -33,8 +33,8 @@ class TestAddPaper(unittest.TestCase): def setUp(self): self.tmpdir = tempfile.mkdtemp() - self.repo = Repository(papersdir=self.tmpdir) - self.repo.init() + self.repo = Repository() + self.repo.init(self.tmpdir) self.repo.add_paper(fixtures.turing1950) def test_raises_value_error_on_existing_key(self):