Merge branch '0.10' into 0.11

pull/2907/head
sebres 2021-01-04 02:48:49 +01:00
commit f259dac747
1 changed files with 22 additions and 2 deletions

View File

@ -36,10 +36,30 @@ def _getYearCentRE(cent=(0,3), distance=3, now=(MyTime.now(), MyTime.alternateNo
Thereby respect possible run in the test-cases (alternate date used there) Thereby respect possible run in the test-cases (alternate date used there)
""" """
cent = lambda year, f=cent[0], t=cent[1]: str(year)[f:t] cent = lambda year, f=cent[0], t=cent[1]: str(year)[f:t]
def grp(exprset):
c = None
if len(exprset) > 1:
for i in exprset:
if c is None or i[0:-1] == c:
c = i[0:-1]
else:
c = None
break
if not c:
for i in exprset:
if c is None or i[0] == c:
c = i[0]
else:
c = None
break
if c:
return "%s%s" % (c, grp([i[len(c):] for i in exprset]))
return ("(?:%s)" % "|".join(exprset) if len(exprset[0]) > 1 else "[%s]" % "".join(exprset)) \
if len(exprset) > 1 else "".join(exprset)
exprset = set( cent(now[0].year + i) for i in (-1, distance) ) exprset = set( cent(now[0].year + i) for i in (-1, distance) )
if len(now) and now[1]: if len(now) and now[1]:
exprset |= set( cent(now[1].year + i) for i in (-1, distance) ) exprset |= set( cent(now[1].year + i) for i in xrange(-1, now[0].year-now[1].year+1, distance) )
return "(?:%s)" % "|".join(exprset) if len(exprset) > 1 else "".join(exprset) return grp(sorted(list(exprset)))
timeRE = TimeRE() timeRE = TimeRE()