def checkunfiltered(filename, strict=1): def expand(file, entry): if entry[0] in ('preamble', 'string'): return entry bibkind, (bibkey, bibtype, a, b, items) = entry results = [(k, _bibtex.expand(file, items[k], -1)) for k in sorted(items)] return (bibkind, (bibkey, bibtype, a, b, results)) file = _bibtex.open_file(filename, strict) result = open(filename + '-ok', 'r') line = 1 failures = 0 checks = 0 while 1: try: entry = _bibtex.next_unfiltered(file) if entry is None: break obtained = ` expand(file, entry) ` except IOError, msg: obtained = 'ParserError' if _debug: print obtained valid = result.readline().strip() if not expected_result(obtained, valid): sys.stderr.write('error: %s: line %d: unexpected result:\n' % (filename, line)) sys.stderr.write('error: %s: line %d: obtained %s\n' % (filename, line, obtained)) sys.stderr.write('error: %s: line %d: expected %s\n' % (filename, line, valid)) failures = failures + 1 checks = checks + 1
def checkunfiltered(filename, strict=1): def expand(file, entry): if entry[0] in ("preamble", "string"): return entry bibkind, (bibkey, bibtype, a, b, items) = entry results = [(k, _bibtex.expand(file, items[k], -1)) for k in sorted(items)] return (bibkind, (bibkey, bibtype, a, b, results)) file = _bibtex.open_file(filename, strict) result = open(filename + "-ok", "r") line = 1 failures = 0 checks = 0 while 1: try: entry = _bibtex.next_unfiltered(file) if entry is None: break obtained = ` expand(file, entry) ` except IOError, msg: obtained = "ParserError" if _debug: print obtained valid = result.readline().strip() if not expected_result(obtained, valid): sys.stderr.write("error: %s: line %d: unexpected result:\n" % (filename, line)) sys.stderr.write("error: %s: line %d: obtained %s\n" % (filename, line, obtained)) sys.stderr.write("error: %s: line %d: expected %s\n" % (filename, line, valid)) failures = failures + 1 checks = checks + 1
def next(self): while True: try: retval = _bibtex.next_unfiltered(self.parser) except IOError, error: raise Exceptions.ParserError((str(error),)) if retval == None: self.db.set_metadata('bibtex-preamble', self.preamble) return None elif retval[0] == 'entry': retval = retval[1] name, fieldtype, offset, line, object = retval if name: key = Key.Key(self.db, name) else: key = None fieldtype = Types.get_entry(fieldtype) return Entry(key, fieldtype, object, self.parser, line) elif retval[0] == 'preamble': self.preamble.append(retval[1]) continue else: continue
def next(self): while True: try: retval = _bibtex.next_unfiltered(self.parser) except IOError, error: raise Exceptions.ParserError((str(error), )) if retval == None: self.db.set_metadata('bibtex-preamble', self.preamble) return None elif retval[0] == 'entry': retval = retval[1] name, fieldtype, offset, line, object = retval if name: key = Key.Key(self.db, name) else: key = None fieldtype = Types.get_entry(fieldtype) return Entry(key, fieldtype, object, self.parser, line) elif retval[0] == 'preamble': self.preamble.append(retval[1]) continue else: continue