aboutsummaryrefslogtreecommitdiffstats
path: root/entry.py
diff options
context:
space:
mode:
Diffstat (limited to 'entry.py')
-rw-r--r--entry.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/entry.py b/entry.py
index e9dd6e3..4ad7b86 100644
--- a/entry.py
+++ b/entry.py
@@ -38,29 +38,32 @@ DISPLAYED_FIELDS = ['title', 'author', 'journal', 'booktitle',
class BibTeXEntry:
"""A single BibTeX entry."""
- def __init__(self, type, key, entries):
+ def __init__(self, type, key, fields):
self.type = type # What kind of entry is it? (@book,@injournal,etc)
self.key = key # What key does it have?
- self.entries = entries # Map from key to value.
+ self.fields = fields # Map from key to value.
self.entryLine = 0 # Defined on this line number
def get(self, k, v=None):
- return self.entries.get(k, v)
+ return self.fields.get(k, v)
def __contains__(self, k):
- return k in self.entries
+ return k in self.fields
def __getitem__(self, k):
- return self.entries[k]
+ return self.fields[k]
+
+ def __delitem__(self, k):
+ del self.fields[k]
def __setitem__(self, k, v):
- self.entries[k] = v
+ self.fields[k] = v
def __str__(self):
return self.format(70, 1)
def __iter__(self):
- return iter(self.entries.keys())
+ return iter(self.fields.keys())
def getURL(self):
"""Return the best URL to use for this paper, or None."""
@@ -81,7 +84,7 @@ class BibTeXEntry:
d = ["@%s{%s,\n" % (self.type, self.key)]
if v:
df = DISPLAYED_FIELDS[:]
- for k in self.entries.keys():
+ for k in self:
if k not in df:
df.append(k)
else:
@@ -89,7 +92,7 @@ class BibTeXEntry:
for f in df:
if f not in self:
continue
- v = self.entries[f]
+ v = self[f]
if v.startswith("<span class='bad'>"):
d.append("%%%%% ERROR: Missing field\n")
d.append("%% %s = {?????},\n" % f)
@@ -159,7 +162,7 @@ class BibTeXEntry:
if self.get(field) is None or \
self.get(field).startswith("<span class='bad'>"):
errs.append("ERROR: %s has no %s field" % (self.key, field))
- self.entries[field] = "<span class='bad'>%s:??</span>" % field
+ self[field] = "<span class='bad'>%s:??</span>" % field
if self.type == 'inproceedings':
if self.get("booktitle"):
@@ -174,7 +177,7 @@ class BibTeXEntry:
if self.get('title'):
errs.append("ERROR: %s is a proceedings: it should have a booktitle, not a title." % self.key)
- for field, value in self.entries.items():
+ for field, value in self.fields.items():
if value.translate(ALLCHARS, PRINTINGCHARS):
errs.append("ERROR: %s.%s has non-ASCII characters" % (
self.key, field))