[CalendarServer-changes] [13587] PyCalendar/trunk/src/zonal

source_changes at macosforge.org source_changes at macosforge.org
Sat May 31 19:08:50 PDT 2014


Revision: 13587
          http://trac.calendarserver.org//changeset/13587
Author:   cdaboo at apple.com
Date:     2014-05-31 19:08:50 -0700 (Sat, 31 May 2014)
Log Message:
-----------
Fix tz functions to catch up to api changes.

Modified Paths:
--------------
    PyCalendar/trunk/src/zonal/tzdump.py
    PyCalendar/trunk/src/zonal/tzverify.py

Modified: PyCalendar/trunk/src/zonal/tzdump.py
===================================================================
--- PyCalendar/trunk/src/zonal/tzdump.py	2014-06-01 01:06:08 UTC (rev 13586)
+++ PyCalendar/trunk/src/zonal/tzdump.py	2014-06-01 02:08:50 UTC (rev 13587)
@@ -46,14 +46,16 @@
 
 
 
+def sortedList(setdata):
+    l = list(setdata)
+    l.sort(cmp=lambda x, y: DateTime.sort(x[0], y[0]))
+    return l
+
+
+
 def formattedExpandedDates(expanded):
-    items = []
-    for item in expanded:
-        utc = item[0].duplicate()
-        utc.setTimezoneUTC(True)
-        utc.offsetSeconds(-item[1])
-        items.append((item[0], utc, secondsToTime(item[1]), secondsToTime(item[2]),))
-    return "\n".join(["(%s, %s, %s, %s)" % item for item in items])
+    items = sortedList([(item[0], item[1], secondsToTime(item[2]), secondsToTime(item[3]),) for item in expanded])
+    return ", ".join(["(%s, %s, %s, %s)" % item for item in items])
 
 
 

Modified: PyCalendar/trunk/src/zonal/tzverify.py
===================================================================
--- PyCalendar/trunk/src/zonal/tzverify.py	2014-06-01 01:06:08 UTC (rev 13586)
+++ PyCalendar/trunk/src/zonal/tzverify.py	2014-06-01 02:08:50 UTC (rev 13587)
@@ -22,8 +22,9 @@
 import getopt
 import os
 import sys
+from pycalendar.icalendar import definitions
 
-def loadCalendarFromZoneinfo(zoneinfopath, skips=(), verbose=False, quiet=False):
+def loadCalendarFromZoneinfo(zoneinfopath, skips=(), only=(), verbose=False, quiet=False):
 
     if not quiet:
         print "Scanning for calendar data in: %s" % (zoneinfopath,)
@@ -34,13 +35,20 @@
             if os.path.isdir(fpath):
                 scanForICS(fpath)
             elif fname.endswith(".ics"):
-                for skip in skips:
-                    if skip in fpath:
-                        break
+                if only:
+                    for item in only:
+                        if item in fpath:
+                            if verbose:
+                                print "Found calendar data: %s" % (fpath,)
+                            paths.append(fpath)
                 else:
-                    if verbose:
-                        print "Found calendar data: %s" % (fpath,)
-                    paths.append(fpath)
+                    for skip in skips:
+                        if skip in fpath:
+                            break
+                    else:
+                        if verbose:
+                            print "Found calendar data: %s" % (fpath,)
+                        paths.append(fpath)
     scanForICS(zoneinfopath)
 
     if not quiet:
@@ -109,9 +117,9 @@
     missing = tzids1.difference(tzids2)
     if missing:
         print """TZIDs in calendar 1 not in calendar 2 files: %s
-These cannot be checked.""" % (", ".join(missing),)
+These cannot be checked.""" % (", ".join(sorted(missing)),)
 
-    for tzid in tzids1.intersection(tzids2):
+    for tzid in sorted(tzids1.intersection(tzids2)):
         if filterTzids and tzid not in filterTzids:
             continue
         if not quiet:
@@ -128,11 +136,11 @@
             if i[0] == start:
                 d1.discard(i)
                 break
-            if i[1] == i[2]:
+            if i[2] == i[3]:
                 d1.discard(i)
         d2 = set2.difference(set1)
         for i in set(d2):
-            if i[1] == i[2]:
+            if i[2] == i[3]:
                 d2.discard(i)
         if d1:
             print "In calendar 1 but not in calendar 2 tzid=%s: %s" % (tzid, formattedExpandedDates(d1),)
@@ -146,8 +154,7 @@
 def getTZIDs(cal):
     results = set()
 
-    db = cal.getVTimezoneDB()
-    for vtz in db:
+    for vtz in cal.getComponents(definitions.cICalComponent_VTIMEZONE):
         tzid = vtz.getID()
         results.add(tzid)
 
@@ -157,8 +164,7 @@
 
 def getExpandedDates(cal, tzid, start, end):
 
-    db = cal.getVTimezoneDB()
-    return db[tzid].expandAll(start, end)
+    return cal.getTimezone(tzid).expandAll(start, end)
 
 
 
@@ -170,8 +176,8 @@
 
 
 def formattedExpandedDates(expanded):
-    items = sortedList([(item[0], secondsToTime(item[1]), secondsToTime(item[2]),) for item in expanded])
-    return ", ".join(["(%s, %s, %s)" % item for item in items])
+    items = sortedList([(item[0], item[1], secondsToTime(item[2]), secondsToTime(item[3]),) for item in expanded])
+    return ", ".join(["(%s, %s, %s, %s)" % item for item in items])
 
 
 
@@ -267,9 +273,13 @@
         #"Africa/Cairo",
     )
 
-    checkcalendar1 = loadCalendarFromZoneinfo(zonedir1, skips, verbose, quiet)
-    checkcalendar2 = loadCalendarFromZoneinfo(zonedir2, skips, verbose, quiet)
+    only = (
+        #"Europe/Lisbon",
+    )
 
+    checkcalendar1 = loadCalendarFromZoneinfo(zonedir1, skips, only, verbose, quiet)
+    checkcalendar2 = loadCalendarFromZoneinfo(zonedir2, skips, only, verbose, quiet)
+
     compareCalendars(
         checkcalendar1,
         checkcalendar2,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140531/afe07893/attachment-0001.html>


More information about the calendarserver-changes mailing list