--- src/zope/datetime/__init__.py.orig 2011-11-29 16:29:14 UTC +++ src/zope/datetime/__init__.py @@ -87,7 +87,7 @@ i=int(yr-1) to_year =int(i*365+i/4-i/100+i/400-693960.0) to_month=tm[yr%4==0 and (yr%100!=0 or yr%400==0)][mo] EPOCH =(to_year+to_month+dy+(hr/24.0+mn/1440.0+sc/86400.0))*86400 -jd1901 =2415385L +jd1901 =2415385 numericTimeZoneMatch=re.compile(r'[+-][0-9][0-9][0-9][0-9]').match #TS @@ -282,7 +282,7 @@ class _cache: def __init__(self): self._db = _data - self._d, self._zidx= {}, self._zmap.keys() + self._d, self._zidx= {}, list(self._zmap.keys()) def __getitem__(self,k): try: n=self._zmap[k.lower()] @@ -337,28 +337,28 @@ def _calcDependentSecond(tz, t): # Calculates the timezone-dependent second (integer part only) # from the timezone-independent second. fset = _tzoffset(tz, t) - return fset + long(math.floor(t)) + long(EPOCH) - 86400L + return fset + int(math.floor(t)) + int(EPOCH) - 86400 def _calcDependentSecond2(yr,mo,dy,hr,mn,sc): # Calculates the timezone-dependent second (integer part only) # from the date given. ss = int(hr) * 3600 + int(mn) * 60 + int(sc) - x = long(_julianday(yr,mo,dy)-jd1901) * 86400 + ss + x = int(_julianday(yr,mo,dy)-jd1901) * 86400 + ss return x def _calcIndependentSecondEtc(tz, x, ms): # Derive the timezone-independent second from the timezone # dependent second. fsetAtEpoch = _tzoffset(tz, 0.0) - nearTime = x - fsetAtEpoch - long(EPOCH) + 86400L + ms + nearTime = x - fsetAtEpoch - int(EPOCH) + 86400 + ms # nearTime is now within an hour of being correct. # Recalculate t according to DST. - fset = long(_tzoffset(tz, nearTime)) + fset = int(_tzoffset(tz, nearTime)) x_adjusted = x - fset + ms d = x_adjusted / 86400.0 - t = x_adjusted - long(EPOCH) + 86400L + t = x_adjusted - int(EPOCH) + 86400 millis = (x + 86400 - fset) * 1000 + \ - long(ms * 1000.0) - long(EPOCH * 1000.0) + int(ms * 1000.0) - int(EPOCH * 1000.0) s = d - math.floor(d) return s,d,t,millis @@ -382,34 +382,34 @@ def _calcYMDHMS(x, ms): return yr,mo,dy,hr,mn,sc def _julianday(yr,mo,dy): - y,m,d=long(yr),long(mo),long(dy) - if m > 12L: - y=y+m/12L - m=m%12L - elif m < 1L: + y,m,d=int(yr),int(mo),int(dy) + if m > 12: + y=y+m/12 + m=m%12 + elif m < 1: m=-m - y=y-m/12L-1L - m=12L-m%12L - if y > 0L: yr_correct=0L - else: yr_correct=3L - if m < 3L: y, m=y-1L,m+12L - if y*10000L+m*100L+d > 15821014L: b=2L-y/100L+y/400L - else: b=0L - return (1461L*y-yr_correct)/4L+306001L*(m+1L)/10000L+d+1720994L+b + y=y-m/12-1 + m=12-m%12 + if y > 0: yr_correct=0 + else: yr_correct=3 + if m < 3: y, m=y-1,m+12 + if y*10000+m*100+d > 15821014: b=2-y/100+y/400 + else: b=0 + return (1461*y-yr_correct)/4+306001*(m+1)/10000+d+1720994+b def _calendarday(j): - j=long(j) - if(j < 2299160L): - b=j+1525L + j=int(j) + if(j < 2299160): + b=j+1525 else: - a=(4L*j-7468861L)/146097L - b=j+1526L+a-a/4L - c=(20L*b-2442L)/7305L - d=1461L*c/4L - e=10000L*(b-d)/306001L - dy=int(b-d-306001L*e/10000L) - mo=(e < 14L) and int(e-1L) or int(e-13L) - yr=(mo > 2) and (c-4716L) or (c-4715L) + a=(4*j-7468861)/146097 + b=j+1526+a-a/4 + c=(20*b-2442)/7305 + d=1461*c/4 + e=10000*(b-d)/306001 + dy=int(b-d-306001*e/10000) + mo=(e < 14) and int(e-1) or int(e-13) + yr=(mo > 2) and (c-4716) or (c-4715) return int(yr),int(mo),int(dy) def _tzoffset(tz, t): @@ -619,7 +619,7 @@ class DateTimeParser: if not self._multipleZones: return self._localzone0 fsetAtEpoch = _tzoffset(self._localzone0, 0.0) - nearTime = x - fsetAtEpoch - long(EPOCH) + 86400L + ms + nearTime = x - fsetAtEpoch - int(EPOCH) + 86400 + ms # nearTime is within an hour of being correct. try: ltm = safelocaltime(nearTime) @@ -631,7 +631,7 @@ class DateTimeParser: yr,mo,dy,hr,mn,sc = _calcYMDHMS(x, 0) yr = ((yr - 1970) % 28) + 1970 x = _calcDependentSecond2(yr,mo,dy,hr,mn,sc) - nearTime = x - fsetAtEpoch - long(EPOCH) + 86400L + ms + nearTime = x - fsetAtEpoch - int(EPOCH) + 86400 + ms ltm = safelocaltime(nearTime) tz = self.localZone(ltm) return tz --- src/zope/datetime/timezones.py.orig 2011-11-29 16:29:14 UTC +++ src/zope/datetime/timezones.py @@ -1178,23 +1178,23 @@ historical_zone_info = { def dumpTimezoneInfo(_data): - print "historical_zone_info = {" + print("historical_zone_info = {") - items = _data.items() + items = list(_data.items()) items.sort() for key, value in items: v1, v2, v3, ilist, bitmap, two_by_three, two_nullterm = value - print "'%s': ('%s', %s, %s," % (key, v1, v2, v3) - print "[", + print("'%s': ('%s', %s, %s," % (key, v1, v2, v3)) + print("[", end=' ') while ilist: next_5, ilist = ilist[:5], ilist[5:] line = ", ".join(["'%s'" % x for x in next_5]) - print "%s," % line - print "], " - print "%s," % repr(bitmap) - print "%s, %s)," % (repr(two_by_three), repr(two_nullterm)) + print("%s," % line) + print("], ") + print("%s," % repr(bitmap)) + print("%s, %s)," % (repr(two_by_three), repr(two_nullterm))) - print "}" + print("}") if __name__ == '__main__': dumpTimezoneInfo(historical_zone_info)