diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2016-02-04 21:28:27 -0500 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2016-02-04 21:28:27 -0500 |
| commit | 59dfd23bc8abc331b44c5f87e6a1b5dae3dc1036 (patch) | |
| tree | aa12195663550b7099011785521eb1c6fbc88dda /BibTeX.py | |
| parent | b0a3a31d5caaeafb63ff415fc9b86b537b759f21 (diff) | |
| download | anonbib-59dfd23bc8abc331b44c5f87e6a1b5dae3dc1036.tar.gz | |
Nicer interface for BibTeX class
Diffstat (limited to 'BibTeX.py')
| -rw-r--r-- | BibTeX.py | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -35,10 +35,19 @@ class BibTeX: return self.entries[k.lower()] = ent + def __contains__(self, key): + return key.lower() in self.entries + + def __getitem__(self, key): + return self.entries[key.lower()] + + def __iter__(self): + return iter(self.entries.values()) + def resolve(self): """Validate all entries in this file, and resolve cross-references""" seen = {} - for ent in self.entries.values(): + for ent in self: seen.clear() while ent.get('crossref'): try: @@ -68,7 +77,7 @@ class BibTeX: # entry will have a title. rk = "title" - for ent in self.entries.values(): + for ent in self: if ent.type in config.OMIT_ENTRIES or not ent.has_key(rk): ent.check() del self.entries[ent.key.lower()] @@ -352,7 +361,7 @@ def parseFile(filename, result=None): p = Parser(f, {}, result) r = p.parse() r.resolve() - for e in r.entries.values(): + for e in r: e.check() return r @@ -363,7 +372,7 @@ def parseString(string, result=None): p = Parser(f, {}, result) r = p.parse() r.resolve() - for e in r.entries.values(): + for e in r: e.check() return r @@ -375,7 +384,7 @@ if __name__ == '__main__': r = parseFile(fname) - for e in r.entries.values(): + for e in r: if e.type in ("proceedings", "journal"): continue print e.to_html() |
