fnp
/
librarian.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixes for dates etc
[librarian.git]
/
librarian
/
dcparser.py
diff --git
a/librarian/dcparser.py
b/librarian/dcparser.py
index
bcee932
..
7418f70
100644
(file)
--- a/
librarian/dcparser.py
+++ b/
librarian/dcparser.py
@@
-65,16
+65,23
@@
class Person(object):
def as_date(text):
try:
# check out the "N. poł X w." syntax
def as_date(text):
try:
# check out the "N. poł X w." syntax
- m = re.match(u"([12]) *poł[.]? ([MCDXVI]+) .*[.]?", text)
+ if isinstance(text, str): text = text.decode("utf-8")
+ m = re.match(u"(?:([12]) *poł[.]? )?([MCDXVI]+) *w[.]?", text)
if m:
if m:
- half = int(m.groups()[0])
+
+ half = m.groups()[0]
+ if half is not None:
+ half = int(half)
+ else:
+ half = 1
century = roman_to_int(str(m.groups()[1]))
t = ((century*100 + (half-1)*50), 1, 1)
else:
century = roman_to_int(str(m.groups()[1]))
t = ((century*100 + (half-1)*50), 1, 1)
else:
+ text = re.sub(r"(po|ok[.]?) *", "", text)
try:
t = time.strptime(text, '%Y-%m-%d')
except ValueError:
try:
t = time.strptime(text, '%Y-%m-%d')
except ValueError:
- t = time.strptime(
text
, '%Y')
+ t = time.strptime(
re.split(r'[-/]', text)[0]
, '%Y')
return date(t[0], t[1], t[2])
except ValueError, e:
raise ValueError("Unrecognized date format. Try YYYY-MM-DD or YYYY.")
return date(t[0], t[1], t[2])
except ValueError, e:
raise ValueError("Unrecognized date format. Try YYYY-MM-DD or YYYY.")