1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 from Pyblio.Parsers.Syntax import BibTeX
21 from Pyblio import Attribute
22
23 _monthmap={
24 'january': 1, 'jan': 1,
25 'february': 2, 'feb': 2,
26 'march': 3, 'mar': 3,
27 'april': 4, 'apr': 4,
28 'may': 5,
29 'june': 6, 'jun': 6,
30 'july': 7, 'jul': 7,
31 'august': 8, 'aug': 8,
32 'september': 9, 'sep': 9,
33 'october': 10, 'oct': 10,
34 'november': 11, 'nov': 11,
35 'december': 12, 'dec': 12,
36 }
37
39 """ Default BibTeX parser.
40 """
41
43
44 for key, value in data.fields:
45 self.env.strings[key] = value
46 return
47
52
56
58 if self.key is not None:
59 self.id_add('id', self.key)
60
61 if self.date != Attribute.Date():
62 self.record['date'] = [self.date]
63 return
64
66 year = self.to_text(value).strip()
67 if not year: return
68
69 try:
70 self.date.year = int(year)
71 except ValueError, msg:
72 raise ValueError('in %s: %s' % (self.key, msg))
73 return
74
76 month = self.to_text(value).lower().strip()
77 if not month: return
78
79 try:
80 self.date.month =_monthmap[month]
81 except KeyError, msg:
82 raise KeyError('in %s: %s' % (self.key, msg))
83 return
84
85
86
89