From e017ffef20b67f6e2f425f2df043b437613d2119 Mon Sep 17 00:00:00 2001 From: Olivier Mangin Date: Thu, 27 Jun 2013 19:21:28 +0200 Subject: [PATCH] Fix bugs with saving tags in yaml. - now saves tag set as list (maybe the save_meta function should be moved to paper.py) - updates test to actually test storing of metadata --- papers/files.py | 5 ++++- papers/paper.py | 2 +- tests/fixtures.py | 1 + tests/test_paper.py | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/papers/files.py b/papers/files.py index 8be8a5d..8a0867f 100644 --- a/papers/files.py +++ b/papers/files.py @@ -108,7 +108,10 @@ def save_bibdata(bib_data, filepath): def save_meta(meta_data, filepath): - write_yamlfile(filepath, meta_data) + new_meta = meta_data.copy() + # Cannot store sets in yaml + new_meta['tags'] = list(new_meta['tags']) + write_yamlfile(filepath, new_meta) # is this function ever used? 08/06/2013 diff --git a/papers/paper.py b/papers/paper.py index d0405a5..96577bd 100644 --- a/papers/paper.py +++ b/papers/paper.py @@ -20,7 +20,7 @@ CITEKEY_EXCLUDE_RE = re.compile('[%s]' BASE_META = { 'external-document': None, - 'tags': [], + 'tags': set(), 'notes': [], } diff --git a/tests/fixtures.py b/tests/fixtures.py index fb56d44..86bc7b6 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -8,6 +8,7 @@ turing1950.bibentry.fields['title'] = u'Computing machinery and intelligence.' turing1950.bibentry.fields['year'] = u'1950' turing1950.bibentry.persons['author'] = [Person(u'Alan Turing')] turing1950.citekey = turing1950.generate_citekey() +turing1950.tags = ['computer', 'AI'] doe2013 = Paper() diff --git a/tests/test_paper.py b/tests/test_paper.py index 43b37c6..c2c8446 100644 --- a/tests/test_paper.py +++ b/tests/test_paper.py @@ -24,7 +24,7 @@ entries: META = """ external-document: null notes: [] -tags: [] +tags: ['AI', 'computer'] """