aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2016-02-04 21:49:36 -0500
committerThibaut Horel <thibaut.horel@gmail.com>2016-02-04 21:49:36 -0500
commite63154721bf377ec42f1d5de39b74c7d1e1ebb2d (patch)
tree4694f9c84665763e509e0cf09c02f6b94bcc580d
parent2f94281f983f86b23f8e5bcdc790fd4e032a0a2d (diff)
downloadanonbib-e63154721bf377ec42f1d5de39b74c7d1e1ebb2d.tar.gz
entries --> fields (possible confusion with Bibtex.entries)
-rw-r--r--BibTeX.py4
-rw-r--r--entry.py25
-rwxr-xr-xwriteHTML.py2
3 files changed, 17 insertions, 14 deletions
diff --git a/BibTeX.py b/BibTeX.py
index 4aee5e6..1cf4db6 100644
--- a/BibTeX.py
+++ b/BibTeX.py
@@ -64,7 +64,7 @@ class BibTeX:
if seen.get(cr.key):
raise ParseError("Circular crossref at %s" % ent.key)
seen[cr.key] = 1
- del ent.entries['crossref']
+ del ent['crossref']
if cr.entryLine < ent.entryLine:
print "Warning: crossref %s used after declaration" % cr.key
@@ -74,7 +74,7 @@ class BibTeX:
print "ERROR: %s defined both in %s and in %s" % (
k, ent.key, cr.key)
else:
- ent.entries[k] = cr.entries[k]
+ ent[k] = cr[k]
ent.resolve()
rk = config.REQUIRE_KEY
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))
diff --git a/writeHTML.py b/writeHTML.py
index 871839a..00b79d6 100755
--- a/writeHTML.py
+++ b/writeHTML.py
@@ -118,7 +118,7 @@ def writeHTML(f, sections, sectionType, fieldName, choices,
def jsonDumper(obj):
if isinstance(obj, BibTeX.BibTeXEntry):
- e = obj.entries.copy()
+ e = obj.fields.copy()
e['key'] = obj.key
return e
else: