[CalendarServer-changes] [13809] CalendarServer/trunk/txdav

source_changes at macosforge.org source_changes at macosforge.org
Thu Jul 31 13:15:15 PDT 2014


Revision: 13809
          http://trac.calendarserver.org//changeset/13809
Author:   cdaboo at apple.com
Date:     2014-07-31 13:15:15 -0700 (Thu, 31 Jul 2014)
Log Message:
-----------
Whitespace.

Modified Paths:
--------------
    CalendarServer/trunk/txdav/carddav/datastore/index_file.py
    CalendarServer/trunk/txdav/carddav/datastore/query/test/test_filter.py
    CalendarServer/trunk/txdav/carddav/datastore/sql.py
    CalendarServer/trunk/txdav/carddav/datastore/test/common.py
    CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py
    CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py
    CalendarServer/trunk/txdav/carddav/datastore/test/test_sql_sharing.py
    CalendarServer/trunk/txdav/carddav/datastore/util.py
    CalendarServer/trunk/txdav/common/datastore/file.py
    CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py
    CalendarServer/trunk/txdav/common/datastore/podding/test/test_resource.py
    CalendarServer/trunk/txdav/common/datastore/sql.py
    CalendarServer/trunk/txdav/common/datastore/sql_tables.py
    CalendarServer/trunk/txdav/common/datastore/test/test_sql.py
    CalendarServer/trunk/txdav/common/datastore/test/test_sql_schema_files.py
    CalendarServer/trunk/txdav/common/datastore/test/test_sql_tables.py
    CalendarServer/trunk/txdav/common/datastore/test/util.py
    CalendarServer/trunk/txdav/common/datastore/upgrade/migrate.py
    CalendarServer/trunk/txdav/common/datastore/upgrade/sql/test/test_upgrade.py
    CalendarServer/trunk/txdav/common/datastore/upgrade/sql/upgrades/addressbook_upgrade_from_1_to_2.py
    CalendarServer/trunk/txdav/common/datastore/upgrade/test/test_migrate.py
    CalendarServer/trunk/txdav/common/datastore/work/revision_cleanup.py
    CalendarServer/trunk/txdav/common/datastore/work/test/test_inbox_cleanup.py
    CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py
    CalendarServer/trunk/txdav/dps/client.py
    CalendarServer/trunk/txdav/dps/server.py
    CalendarServer/trunk/txdav/dps/test/test_client.py
    CalendarServer/trunk/txdav/who/augment.py
    CalendarServer/trunk/txdav/who/directory.py
    CalendarServer/trunk/txdav/who/test/support.py
    CalendarServer/trunk/txdav/who/test/test_group_attendees.py
    CalendarServer/trunk/txdav/who/test/test_group_sharees.py
    CalendarServer/trunk/txdav/who/vcard.py
    CalendarServer/trunk/txdav/xml/base.py
    CalendarServer/trunk/txdav/xml/parser_sax.py
    CalendarServer/trunk/txdav/xml/rfc2518.py
    CalendarServer/trunk/txdav/xml/rfc5842.py
    CalendarServer/trunk/txdav/xml/test/test_xml.py
    CalendarServer/trunk/txdav/xml/xmlext.py

Modified: CalendarServer/trunk/txdav/carddav/datastore/index_file.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/index_file.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/index_file.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -81,15 +81,16 @@
     def reserveUID(self, uid):
         uid = uid.encode('utf-8')
         self.log.debug("Reserving UID %r @ %r" % (
-                uid,
-                self.index.resource.fp.path))
+            uid,
+            self.index.resource.fp.path
+        ))
 
         def _handleFalse(result):
             if result is False:
                 raise ReservationError(
                     "UID %s already reserved for address book collection %s."
                     % (uid, self.index.resource)
-                    )
+                )
 
         d = self.getCachePool().add(self._key(uid),
                                     'reserved',
@@ -101,15 +102,16 @@
     def unreserveUID(self, uid):
         uid = uid.encode('utf-8')
         self.log.debug("Unreserving UID %r @ %r" % (
-                uid,
-                self.index.resource.fp.path))
+            uid,
+            self.index.resource.fp.path
+        ))
 
         def _handleFalse(result):
             if result is False:
                 raise ReservationError(
                     "UID %s is not reserved for address book collection %s."
                     % (uid, self.index.resource)
-                    )
+                )
 
         d = self.getCachePool().delete(self._key(uid))
         d.addCallback(_handleFalse)
@@ -119,8 +121,9 @@
     def isReservedUID(self, uid):
         uid = uid.encode('utf-8')
         self.log.debug("Is reserved UID %r @ %r" % (
-                uid,
-                self.index.resource.fp.path))
+            uid,
+            self.index.resource.fp.path
+        ))
 
         def _checkValue((flags, value)):
             if value is None:
@@ -174,7 +177,7 @@
                 raise ReservationError(
                     "UID %s is not reserved for address book collection %s."
                     % (uid, self.index.resource)
-                    )
+                )
             else:
                 try:
                     self.index._db_execute(
@@ -647,7 +650,7 @@
                 except ValueError:
                     log.error("Non-addressbook resource: %s" % (name,))
                 else:
-                    #log.info("Indexing resource: %s" % (name,))
+                    # log.info("Indexing resource: %s" % (name,))
                     self.addResource(name, vcard, True)
             finally:
                 stream.close()

Modified: CalendarServer/trunk/txdav/carddav/datastore/query/test/test_filter.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/query/test/test_filter.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/query/test/test_filter.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -42,7 +42,7 @@
         filter = carddavxml.Filter(
             *[carddavxml.PropertyFilter(
                 carddavxml.TextMatch.fromString("Example"),
-                **{"name":"UID"}
+                **{"name": "UID"}
             )]
         )
         filter = Filter(filter)
@@ -64,7 +64,7 @@
         filter = carddavxml.Filter(
             *[carddavxml.PropertyFilter(
                 carddavxml.TextMatch.fromString("Example"),
-                **{"name":"UID"}
+                **{"name": "UID"}
             )]
         )
         filter = Filter(filter)
@@ -85,7 +85,7 @@
         filter = carddavxml.Filter(
             *[carddavxml.PropertyFilter(
                 carddavxml.TextMatch.fromString("Example"),
-                **{"name":"UID"}
+                **{"name": "UID"}
             )]
         )
         filter = Filter(filter)

Modified: CalendarServer/trunk/txdav/carddav/datastore/sql.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/sql.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/sql.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -576,12 +576,18 @@
     @classproperty
     def _deleteBumpTokenQuery(cls): #@NoSelf
         rev = cls._revisionsSchema
-        return Update({rev.REVISION: schema.REVISION_SEQ,
-                       rev.OBJECT_RESOURCE_ID: Parameter("id"),
-                       rev.DELETED: True},
-                      Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
-                           rev.RESOURCE_NAME == Parameter("name")),
-                      Return=rev.REVISION)
+        return Update(
+            {
+                rev.REVISION: schema.REVISION_SEQ,
+                rev.OBJECT_RESOURCE_ID: Parameter("id"),
+                rev.DELETED: True
+            },
+            Where=(
+                rev.RESOURCE_ID == Parameter("resourceID")).And(
+                rev.RESOURCE_NAME == Parameter("name")
+            ),
+            Return=rev.REVISION
+        )
 
 
     @inlineCallbacks
@@ -694,7 +700,7 @@
         bindRevisions = [self._bindRevision] if self.fullyShared() else []
 
         groupBindRows = yield AddressBookObject._acceptedBindForHomeIDAndAddressBookID.on(
-                self._txn, homeID=self._home._resourceID, addressbookID=self._resourceID
+            self._txn, homeID=self._home._resourceID, addressbookID=self._resourceID
         )
         if groupBindRows:
             bindRevisions += [groupBindRow[self.bindColumns().index(self._bindSchema.BIND_REVISION)] for groupBindRow in groupBindRows]
@@ -731,17 +737,17 @@
             # get revision table changes
             rev = self._revisionsSchema
             results = [(
-                    name,
-                    id,
-                    wasdeleted,
-                ) for name, id, wasdeleted in (
-                    yield Select(
-                        [rev.RESOURCE_NAME, rev.OBJECT_RESOURCE_ID, rev.DELETED],
-                        From=rev,
-                        Where=(rev.REVISION > revision).And(
+                name,
+                id,
+                wasdeleted,
+            ) for name, id, wasdeleted in (
+                yield Select(
+                    [rev.RESOURCE_NAME, rev.OBJECT_RESOURCE_ID, rev.DELETED],
+                    From=rev,
+                    Where=(rev.REVISION > revision).And(
                         rev.RESOURCE_ID == self._resourceID)
-                    ).on(self._txn)
-                ) if name
+                ).on(self._txn)
+            ) if name
             ]
 
         # get deleted object names if any
@@ -874,7 +880,7 @@
         self._objects.pop(child.uid(), None)
         if self._objectNames and child.name() in self._objectNames:
             self._objectNames.remove(child.name())
-        #yield self._deleteRevision(child.name())
+        # yield self._deleteRevision(child.name())
         yield self.notifyChanged()
 
 
@@ -1016,11 +1022,12 @@
 X-ADDRESSBOOKSERVER-KIND:group
 END:VCARD
 """.replace("\n", "\r\n").format(
-            prodid=vCardProductID,
-            uid=uid,
-            fn=fn,
-            n=n,
-        ))
+                prodid=vCardProductID,
+                uid=uid,
+                fn=fn,
+                n=n,
+            )
+        )
 
         # then get member UIDs
         abo = schema.ADDRESSBOOK_OBJECT
@@ -1282,10 +1289,11 @@
         DAL query to find members and revisions
         """
         aboMembers = schema.ABO_MEMBERS
-        return Select([aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
-                      From=aboMembers,
-                      Where=aboMembers.GROUP_ID.In(Parameter("groupIDs", len(groupIDs))),
-                     )
+        return Select(
+            [aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
+            From=aboMembers,
+            Where=aboMembers.GROUP_ID.In(Parameter("groupIDs", len(groupIDs))),
+        )
 
 
     @classmethod
@@ -1294,11 +1302,12 @@
         DAL query to find members and revisions
         """
         aboMembers = schema.ABO_MEMBERS
-        return Select([aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
-                      From=aboMembers,
-                      Where=aboMembers.GROUP_ID.In(Parameter("groupIDs", len(groupIDs)))
-                            .And(aboMembers.REVISION <= Parameter("revision")),
-                     )
+        return Select(
+            [aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
+            From=aboMembers,
+            Where=aboMembers.GROUP_ID.In(Parameter("groupIDs", len(groupIDs))).And(
+                aboMembers.REVISION <= Parameter("revision")),
+        )
 
 
     @classmethod
@@ -1761,7 +1770,7 @@
 
             acceptedBindCount = 1 if addressbookAsShared.fullyShared() else 0
             groupBindRows = yield AddressBookObject._acceptedBindForHomeIDAndAddressBookID.on(
-                    self._txn, homeID=shareeHome._resourceID, addressbookID=addressbookAsShared._resourceID
+                self._txn, homeID=shareeHome._resourceID, addressbookID=addressbookAsShared._resourceID
             )
             acceptedBindCount += len(groupBindRows)
             if acceptedBindCount == 1:
@@ -1770,7 +1779,7 @@
                 shareeHome._children.pop(addressbookAsShared._resourceID, None)
             else:
                 yield addressbookAsShared.notifyPropertyChanged()
-                #update revision in all remaining bind table rows for this address book
+                # update revision in all remaining bind table rows for this address book
                 for groupBindRow in groupBindRows:
                     groupObject = yield addressbookAsShared.objectResourceWithID(
                         groupBindRow[self.bindColumns().index(self._bindSchema.RESOURCE_ID)]
@@ -1784,7 +1793,8 @@
             yield shareeHome.notifyChanged()
 
         # delete bind table rows for this share
-        yield self._deleteBindForResourceIDAndHomeID.on(self._txn,
+        yield self._deleteBindForResourceIDAndHomeID.on(
+            self._txn,
             resourceID=self._resourceID, homeID=shareeHome._resourceID
         )
 
@@ -2044,8 +2054,10 @@
         if partiallyShared:
             readWriteGroupIDs = yield self.addressbook().readWriteGroupIDs()
             readWriteObjectIDs = (
-                set((yield self.addressbook().expandGroupIDs(self._txn, readWriteGroupIDs)))
-                    if readWriteGroupIDs else set()
+                set(
+                    (yield self.addressbook().expandGroupIDs(self._txn, readWriteGroupIDs))
+                )
+                if readWriteGroupIDs else set()
             )
             # can't delete item in read-only shared group, even if user has addressbook unbind
             if self._resourceID not in readWriteObjectIDs:
@@ -2056,7 +2068,8 @@
 
         # get groups where this object was once a member and version info
         aboMembers = schema.ABO_MEMBERS
-        groupRows = yield Select([aboMembers.GROUP_ID, aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
+        groupRows = yield Select(
+            [aboMembers.GROUP_ID, aboMembers.MEMBER_ID, aboMembers.REMOVED, aboMembers.REVISION],
             From=aboMembers,
             Where=aboMembers.MEMBER_ID == self._resourceID,
         ).on(self._txn)
@@ -2071,7 +2084,7 @@
         # see if this object is in current version
         groupIDs = set([
             groupID for groupID, memberRows in groupIDToMemberRowMap.iteritems()
-                if self._resourceID in AddressBook._currentMemberIDsFromMemberIDRemovedRevisionRows(memberRows)
+            if self._resourceID in AddressBook._currentMemberIDsFromMemberIDRemovedRevisionRows(memberRows)
         ])
 
         if partiallyShared:
@@ -2082,7 +2095,8 @@
 
         # add to member table rows marked removed
         for groupIDToRemoveFrom in groupIDsToRemoveFrom:
-            yield self._insertMemberIDQuery.on(self._txn,
+            yield self._insertMemberIDQuery.on(
+                self._txn,
                 groupID=groupIDToRemoveFrom,
                 addressbookID=self._ownerAddressBookResourceID,
                 memberID=self._resourceID,
@@ -2252,7 +2266,7 @@
             "_created",
             "_modified",
             "_dataversion",
-         )
+        )
 
 
     @classmethod
@@ -2431,12 +2445,12 @@
     @classmethod
     def _resourceIDAndUIDForUIDsAndAddressBookResourceIDQuery(cls, uids):
         abo = schema.ADDRESSBOOK_OBJECT
-        return Select([abo.RESOURCE_ID, abo.VCARD_UID],
-                      From=abo,
-                      Where=((abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookResourceID")
-                              ).And(
-                                    abo.VCARD_UID.In(Parameter("uids", len(uids))))),
-                      )
+        return Select(
+            [abo.RESOURCE_ID, abo.VCARD_UID],
+            From=abo,
+            Where=((abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookResourceID")).And(
+                abo.VCARD_UID.In(Parameter("uids", len(uids))))),
+        )
 
 
     @classmethod
@@ -2445,7 +2459,8 @@
         return Delete(
             aboForeignMembers,
             Where=(aboForeignMembers.GROUP_ID == groupID).And(
-                    aboForeignMembers.MEMBER_ADDRESS.In(Parameter("memberAddrs", len(memberAddrs)))))
+                aboForeignMembers.MEMBER_ADDRESS.In(Parameter("memberAddrs", len(memberAddrs))))
+        )
 
 
     @classproperty
@@ -2469,7 +2484,8 @@
                 abo.RESOURCE_ID,
                 abo.CREATED,
                 abo.MODIFIED
-        ))
+            )
+        )
 
 
     @classproperty
@@ -2610,7 +2626,8 @@
 
             # add to member table rows
             for groupID in groupIDs:
-                yield self._insertMemberIDQuery.on(self._txn,
+                yield self._insertMemberIDQuery.on(
+                    self._txn,
                     groupID=groupID,
                     addressbookID=self._ownerAddressBookResourceID,
                     memberID=self._resourceID,
@@ -2653,8 +2670,8 @@
             # get current foreign members
             currentForeignMemberRows = yield Select(
                 [aboForeignMembers.MEMBER_ADDRESS],
-                 From=aboForeignMembers,
-                 Where=aboForeignMembers.GROUP_ID == self._resourceID,
+                From=aboForeignMembers,
+                Where=aboForeignMembers.GROUP_ID == self._resourceID,
             ).on(self._txn)
             currentForeignMemberAddrs = [currentForeignMemberRow[0] for currentForeignMemberRow in currentForeignMemberRows]
 
@@ -2731,9 +2748,9 @@
                     # get foreign members
                     aboForeignMembers = schema.ABO_FOREIGN_MEMBERS
                     foreignMemberRows = yield Select(
-                         [aboForeignMembers.MEMBER_ADDRESS],
-                         From=aboForeignMembers,
-                         Where=aboForeignMembers.GROUP_ID == self._resourceID,
+                        [aboForeignMembers.MEMBER_ADDRESS],
+                        From=aboForeignMembers,
+                        Where=aboForeignMembers.GROUP_ID == self._resourceID,
                     ).on(self._txn)
                     foreignMembers = [foreignMemberRow[0] for foreignMemberRow in foreignMemberRows]
 
@@ -2788,12 +2805,14 @@
         bind = cls._bindSchema
         child = cls._objectSchema
         columns = cls.bindColumns() + cls.additionalBindColumns() + cls.metadataColumns()
-        return Select(columns,
-                     From=child.join(
-                         bind, child.RESOURCE_ID == bind.RESOURCE_ID,
-                         'left outer'),
-                     Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
-                           ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
+        return Select(
+            columns,
+            From=child.join(
+                bind, child.RESOURCE_ID == bind.RESOURCE_ID,
+                'left outer'),
+            Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+                bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
+        )
 
 
     def notifyPropertyChanged(self):
@@ -2806,10 +2825,11 @@
     @classproperty
     def _addressbookIDForResourceID(cls): #@NoSelf
         obj = cls._objectSchema
-        return Select([obj.PARENT_RESOURCE_ID],
-                      From=obj,
-                      Where=obj.RESOURCE_ID == Parameter("resourceID")
-                    )
+        return Select(
+            [obj.PARENT_RESOURCE_ID],
+            From=obj,
+            Where=obj.RESOURCE_ID == Parameter("resourceID")
+        )
 
 
     @classmethod
@@ -2824,12 +2844,12 @@
         bind = cls._bindSchema
         abo = cls._objectSchema
         return Select(
-                  cls.bindColumns() + cls.additionalBindColumns(),
-                  From=bind.join(abo),
-                  Where=(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
-                        .And(bind.RESOURCE_ID == abo.RESOURCE_ID)
-                        .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
-                        .And(abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
+            cls.bindColumns() + cls.additionalBindColumns(),
+            From=bind.join(abo),
+            Where=(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED).And(
+                bind.RESOURCE_ID == abo.RESOURCE_ID).And(
+                    bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+                        abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
         )
 
 
@@ -2838,12 +2858,12 @@
         bind = cls._bindSchema
         abo = cls._objectSchema
         return Select(
-                  cls.bindColumns() + cls.additionalBindColumns(),
-                  From=bind.join(abo),
-                  Where=(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED)
-                        .And(bind.RESOURCE_ID == abo.RESOURCE_ID)
-                        .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
-                        .And(abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
+            cls.bindColumns() + cls.additionalBindColumns(),
+            From=bind.join(abo),
+            Where=(bind.BIND_STATUS != _BIND_STATUS_ACCEPTED).And(
+                bind.RESOURCE_ID == abo.RESOURCE_ID).And(
+                    bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+                        abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
         )
 
 
@@ -2852,11 +2872,11 @@
         bind = cls._bindSchema
         abo = cls._objectSchema
         return Select(
-                  cls.bindColumns() + cls.additionalBindColumns(),
-                  From=bind.join(abo),
-                  Where=(bind.RESOURCE_ID == abo.RESOURCE_ID)
-                        .And(bind.HOME_RESOURCE_ID == Parameter("homeID"))
-                        .And(abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
+            cls.bindColumns() + cls.additionalBindColumns(),
+            From=bind.join(abo),
+            Where=(bind.RESOURCE_ID == abo.RESOURCE_ID).And(
+                bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+                    abo.ADDRESSBOOK_HOME_RESOURCE_ID == Parameter("addressbookID"))
         )
 
 

Modified: CalendarServer/trunk/txdav/carddav/datastore/test/common.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/common.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/common.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -109,7 +109,7 @@
 
 
 vcard4notCardDAV_text = (# Missing UID, N and FN
-"""BEGIN:VCARD
+    """BEGIN:VCARD
 VERSION:3.0
 EMAIL;type=INTERNET;type=WORK;type=pref:lthompson at example.com
 TEL;type=WORK;type=pref:1-555-555-5555
@@ -208,8 +208,8 @@
         """
         return (
             txn.addressbookHomeWithUID(name if name else "home1")
-                if txn
-                else self.transactionUnderTest().addressbookHomeWithUID(name if name else "home1")
+            if txn
+            else self.transactionUnderTest().addressbookHomeWithUID(name if name else "home1")
         )
 
 
@@ -218,8 +218,10 @@
         """
         Get the addressbook detailed by C{requirements['home1']['addressbook']}.
         """
-        returnValue((yield (yield self.homeUnderTest(txn=txn, name=home))
-            .addressbookWithName(name if name else "addressbook")))
+        returnValue((
+            yield (yield self.homeUnderTest(txn=txn, name=home))
+            .addressbookWithName(name if name else "addressbook")
+        ))
 
 
     @inlineCallbacks
@@ -294,8 +296,10 @@
         provides L{IAddressBookHome} and has a C{uid()} method that returns the
         same value that was passed in.
         """
-        addressbookHome = (yield self.transactionUnderTest()
-                            .addressbookHomeWithUID("home1"))
+        addressbookHome = (
+            yield self.transactionUnderTest()
+            .addressbookHomeWithUID("home1")
+        )
         self.assertEquals(addressbookHome.uid(), "home1")
         self.assertProvides(IAddressBookHome, addressbookHome)
 
@@ -357,7 +361,7 @@
         """
         home = yield self.homeUnderTest()
         name = "addressbook"
-        #self.assertIdentical((yield home.addressbookWithName(name)), None)
+        # self.assertIdentical((yield home.addressbookWithName(name)), None)
         yield home.removeAddressBookWithName(name)
         self.assertNotIdentical((yield home.addressbookWithName(name)), None)
         # notify is called prior to commit
@@ -713,9 +717,11 @@
         text.
         """
         yield self.failUnlessFailure(
-            maybeDeferred((yield self.addressbookUnderTest())
+            maybeDeferred(
+                (yield self.addressbookUnderTest())
                 .createAddressBookObjectWithName,
-                "new", VComponent.fromString(vcard4notCardDAV_text)),
+                "new", VComponent.fromString(vcard4notCardDAV_text)
+            ),
             InvalidObjectResourceError
         )
 
@@ -728,8 +734,10 @@
         """
         addressbookObject = (yield self.addressbookObjectUnderTest())
         yield self.failUnlessFailure(
-            maybeDeferred(addressbookObject.setComponent,
-                VComponent.fromString(vcard4notCardDAV_text)),
+            maybeDeferred(
+                addressbookObject.setComponent,
+                VComponent.fromString(vcard4notCardDAV_text)
+            ),
             InvalidObjectResourceError
         )
 

Modified: CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/test_file.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -99,9 +99,10 @@
         Filenames starting with "." are reserved by this
         implementation, so no UIDs may start with ".".
         """
-        self.assertEquals(
-            (yield self.addressbookStore.newTransaction(self.id()
-                ).addressbookHomeWithUID(".xyzzy")),
+        self.assertEquals((
+            yield self.addressbookStore.newTransaction(
+                self.id())
+            .addressbookHomeWithUID(".xyzzy")),
             None
         )
 
@@ -235,8 +236,7 @@
         )
         self.assertEquals(
             addressbookObject.component(),
-            (yield self.addressbook1.addressbookObjectWithName("1.vcf")
-                ).component()
+            (yield self.addressbook1.addressbookObjectWithName("1.vcf")).component()
         )
 
 

Modified: CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/test_sql.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -40,7 +40,7 @@
 
 from txdav.common.icommondatastore import NoSuchObjectResourceError
 from txdav.common.datastore.sql import EADDRESSBOOKTYPE, CommonObjectResource
-from txdav.common.datastore.sql_tables import  _ABO_KIND_PERSON, _ABO_KIND_GROUP, schema
+from txdav.common.datastore.sql_tables import _ABO_KIND_PERSON, _ABO_KIND_GROUP, schema
 from txdav.common.datastore.test.util import cleanStore
 from txdav.carddav.datastore.sql import AddressBook
 
@@ -160,8 +160,8 @@
         toHome = yield self.transactionUnderTest().addressbookHomeWithUID(
             "new-home", create=True)
         toAddressbook = yield toHome.addressbookWithName("addressbook")
-        ok, bad = (yield _migrateAddressbook(fromAddressbook, toAddressbook,
-                                  lambda x: x.component()))
+        ok, bad = (yield _migrateAddressbook(
+            fromAddressbook, toAddressbook, lambda x: x.component()))
         self.assertEqual(ok, 1)
         self.assertEqual(bad, 1)
 
@@ -362,7 +362,7 @@
         txn2 = addressbookStore.newTransaction()
 
         notification_uid1_1 = yield txn1.notificationsWithUID(
-           "uid1",
+            "uid1",
         )
 
         @inlineCallbacks
@@ -415,7 +415,7 @@
 UID:uid1
 END:VCARD
 """.replace("\n", "\r\n")
-            )
+        )
         self.assertEqual(person.resourceUID(), "uid1")
         abObject = yield adbk.createAddressBookObjectWithName("1.vcf", person)
         self.assertEqual(abObject.uid(), "uid1")
@@ -461,7 +461,7 @@
 UID:uid1
 END:VCARD
 """.replace("\n", "\r\n")
-            )
+        )
         self.assertEqual(person.resourceKind(), None)
         abObject = yield adbk.createAddressBookObjectWithName("p.vcf", person)
         self.assertEqual(abObject.kind(), _ABO_KIND_PERSON)
@@ -478,7 +478,7 @@
 X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:uid1
 END:VCARD
 """.replace("\n", "\r\n")
-            )
+        )
         abObject = self.assertEqual(group.resourceKind(), "group")
         abObject = yield adbk.createAddressBookObjectWithName("g.vcf", group)
         self.assertEqual(abObject.kind(), _ABO_KIND_GROUP)
@@ -495,7 +495,7 @@
 X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:uid1
 END:VCARD
 """.replace("\n", "\r\n")
-            )
+        )
         abObject = self.assertEqual(badgroup.resourceKind(), "badgroup")
         abObject = yield adbk.createAddressBookObjectWithName("bg.vcf", badgroup)
         self.assertEqual(abObject.kind(), _ABO_KIND_PERSON)
@@ -553,7 +553,7 @@
 UID:uid1
 END:VCARD
 """.replace("\n", "\r\n")
-            )
+        )
         self.assertEqual(person.resourceKind(), None)
         personObject = yield adbk.createAddressBookObjectWithName("p.vcf", person)
 
@@ -569,7 +569,7 @@
 X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:uid3
 END:VCARD
 """.replace("\n", "\r\n")
-            )
+        )
         groupObject = yield adbk.createAddressBookObjectWithName("g.vcf", group)
 
         aboMembers = schema.ABO_MEMBERS
@@ -592,14 +592,14 @@
 X-ADDRESSBOOKSERVER-MEMBER:urn:uuid:uid1
 END:VCARD
 """.replace("\n", "\r\n")
-            )
+        )
         subgroupObject = yield adbk.createAddressBookObjectWithName("sg.vcf", subgroup)
 
         memberRows = yield Select([aboMembers.GROUP_ID, aboMembers.MEMBER_ID], From=aboMembers, Where=aboMembers.REMOVED == False).on(txn)
         self.assertEqual(sorted(memberRows), sorted([
-                                                     [groupObject._resourceID, subgroupObject._resourceID],
-                                                     [subgroupObject._resourceID, personObject._resourceID],
-                                                    ]))
+            [groupObject._resourceID, subgroupObject._resourceID],
+            [subgroupObject._resourceID, personObject._resourceID],
+        ]))
 
         foreignMemberRows = yield Select([aboForeignMembers.GROUP_ID, aboForeignMembers.MEMBER_ADDRESS], From=aboForeignMembers).on(txn)
         self.assertEqual(foreignMemberRows, [])
@@ -617,7 +617,7 @@
         # see if this object is in current version
         groupIDs = set([
             groupID for groupID, memberIDRemovedRevisionRows in groupIDToMemberRowMap.iteritems()
-                if AddressBook._currentMemberIDsFromMemberIDRemovedRevisionRows(memberIDRemovedRevisionRows)
+            if AddressBook._currentMemberIDsFromMemberIDRemovedRevisionRows(memberIDRemovedRevisionRows)
         ])
 
         self.assertEqual(len(groupIDs), 0)
@@ -639,9 +639,11 @@
         """
 
         prop = schema.RESOURCE_PROPERTY
-        _allWithID = Select([prop.NAME, prop.VIEWER_UID, prop.VALUE],
-                        From=prop,
-                        Where=prop.RESOURCE_ID == Parameter("resourceID"))
+        _allWithID = Select(
+            [prop.NAME, prop.VIEWER_UID, prop.VALUE],
+            From=prop,
+            Where=prop.RESOURCE_ID == Parameter("resourceID")
+        )
 
         # Create address book and add a property
         home = yield self.homeUnderTest()
@@ -691,9 +693,11 @@
         resourceID = addressobject._resourceID
 
         prop = schema.RESOURCE_PROPERTY
-        _allWithID = Select([prop.NAME, prop.VIEWER_UID, prop.VALUE],
-                        From=prop,
-                        Where=prop.RESOURCE_ID == Parameter("resourceID"))
+        _allWithID = Select(
+            [prop.NAME, prop.VIEWER_UID, prop.VALUE],
+            From=prop,
+            Where=prop.RESOURCE_ID == Parameter("resourceID")
+        )
 
         # No properties on existing address book object
         rows = yield _allWithID.on(self.transactionUnderTest(), resourceID=resourceID)

Modified: CalendarServer/trunk/txdav/carddav/datastore/test/test_sql_sharing.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/test/test_sql_sharing.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/test/test_sql_sharing.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -111,24 +111,24 @@
     @classproperty(cache=False)
     def requirements(cls): #@NoSelf
         return {
-        "user01": {
-            "addressbook": {
-                "card1.vcf": cls.card1,
-                "card2.vcf": cls.card2,
-                "card3.vcf": cls.card3,
-                "group1.vcf": cls.group1,
-                "group2.vcf": cls.group2,
+            "user01": {
+                "addressbook": {
+                    "card1.vcf": cls.card1,
+                    "card2.vcf": cls.card2,
+                    "card3.vcf": cls.card3,
+                    "group1.vcf": cls.group1,
+                    "group2.vcf": cls.group2,
+                },
             },
-        },
-        "user02": {
-            "addressbook": {
+            "user02": {
+                "addressbook": {
+                },
             },
-        },
-        "user03": {
-            "addressbook": {
+            "user03": {
+                "addressbook": {
+                },
             },
-        },
-    }
+        }
 
     fully_shared_children = ["addressbook.vcf", "group1.vcf", "group2.vcf", "card1.vcf", "card2.vcf", "card3.vcf", ]
     all_children = ["group1.vcf", "group2.vcf", "card1.vcf", "card2.vcf", "card3.vcf", ]
@@ -1174,15 +1174,15 @@
         self.assertEqual(len(invalid), 0)
 
         for depth, result in (
-            ("1", ['addressbook/',
-                   'user01/', ]
-            ),
-            ("infinity", ['addressbook/',
-                             'user01/',
-                             'user01/card1.vcf',
-                             'user01/card2.vcf',
-                             'user01/group1.vcf']
-             )):
+            ("1", ['addressbook/', 'user01/', ]),
+            ("infinity", [
+                'addressbook/',
+                'user01/',
+                'user01/card1.vcf',
+                'user01/card2.vcf',
+                'user01/group1.vcf'
+            ])
+        ):
             changed, deleted, invalid = yield otherAB.viewerHome().resourceNamesSinceRevision(0, depth)
             self.assertEqual(set(changed), set(result))
             self.assertEqual(len(deleted), 0)

Modified: CalendarServer/trunk/txdav/carddav/datastore/util.py
===================================================================
--- CalendarServer/trunk/txdav/carddav/datastore/util.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/carddav/datastore/util.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -52,7 +52,7 @@
             raise InvalidObjectResourceError(
                 "UID may not change (%s != %s)" % (
                     component.resourceUID(), addressbookObject.uid()
-                 )
+                )
             )
     except NoSuchObjectResourceError:
         pass

Modified: CalendarServer/trunk/txdav/common/datastore/file.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/file.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/file.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -63,7 +63,6 @@
 import uuid
 from twistedcaldav.sql import AbstractSQLDatabase, db_prefix
 import os
-import types
 
 ECALENDARTYPE = 0
 EADDRESSBOOKTYPE = 1
@@ -520,7 +519,8 @@
 
     def addOrUpdateRecord(self, record):
 
-        self._db_execute("""insert or replace into SHARES (SHAREUID, SHARETYPE, HOSTURL, LOCALNAME, SUMMARY)
+        self._db_execute(
+            """insert or replace into SHARES (SHAREUID, SHARETYPE, HOSTURL, LOCALNAME, SUMMARY)
             values (:1, :2, :3, :4, :5)
             """, record.shareuid, record.sharetype, record.hosturl, record.localname, record.summary,
         )
@@ -613,7 +613,7 @@
 
     def _makeRecord(self, row):
 
-        return SharedCollectionRecord(*[str(item) if type(item) == types.UnicodeType else item for item in row])
+        return SharedCollectionRecord(*[str(item) if isinstance(item, unicode) else item for item in row])
 
 
 
@@ -758,7 +758,7 @@
             self.childWithName(name)
             for name in self._path.listdir()
             if not name.startswith(".") and
-                name not in self._removedChildren
+            name not in self._removedChildren
         )
 
     # For file store there is no efficient "bulk" load of all children so just
@@ -776,8 +776,8 @@
             name
             for name in self._path.listdir()
             if not name.startswith(".") and
-                self._path.child(name).isdir() and
-                name not in self._removedChildren
+            self._path.child(name).isdir() and
+            name not in self._removedChildren
         ))
 
 
@@ -1535,8 +1535,7 @@
             # Return undo
             return lambda: home._path.child(collectionName).remove()
 
-        txn.addOperation(do, "create notification child %r" %
-                          (collectionName,))
+        txn.addOperation(do, "create notification child %r" % (collectionName,))
         return c
 
     notificationObjects = CommonHomeChild.objectResources

Modified: CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/podding/test/test_conduit.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -82,25 +82,25 @@
     @classproperty(cache=False)
     def requirements(cls): #@NoSelf
         return {
-        "user01": {
-            "calendar_1": {
+            "user01": {
+                "calendar_1": {
+                },
+                "inbox": {
+                },
             },
-            "inbox": {
+            "user02": {
+                "calendar_1": {
+                },
+                "inbox": {
+                },
             },
-        },
-        "user02": {
-            "calendar_1": {
+            "user03": {
+                "calendar_1": {
+                },
+                "inbox": {
+                },
             },
-            "inbox": {
-            },
-        },
-        "user03": {
-            "calendar_1": {
-            },
-            "inbox": {
-            },
-        },
-    }
+        }
 
 
     @inlineCallbacks
@@ -274,7 +274,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        shared = yield  calendar1.shareeView("puser01")
+        shared = yield calendar1.shareeView("puser01")
         self.assertEqual(shared.shareStatus(), _BIND_STATUS_ACCEPTED)
         yield self.commit()
 
@@ -306,7 +306,7 @@
         yield self.otherCommit()
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         count = yield calendar1.countObjectResources()
         self.assertEqual(count, 1)
         yield self.commit()
@@ -318,7 +318,7 @@
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
-        yield  object1.remove()
+        yield object1.remove()
         count = yield calendar1.countObjectResources()
         self.assertEqual(count, 0)
         yield self.commit()
@@ -343,8 +343,8 @@
         yield self.otherCommit()
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
-        yield  calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
         objects = yield calendar1.listObjectResources()
         self.assertEqual(set(objects), set(("1.ics", "2.ics",)))
         yield self.commit()
@@ -356,7 +356,7 @@
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
-        yield  object1.remove()
+        yield object1.remove()
         objects = yield calendar1.listObjectResources()
         self.assertEqual(set(objects), set(("2.ics",)))
         yield self.commit()
@@ -386,7 +386,7 @@
         self.assertEqual(token1_1, token2_1)
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
@@ -402,7 +402,7 @@
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
-        yield  object1.remove()
+        yield object1.remove()
         count = yield calendar1.countObjectResources()
         self.assertEqual(count, 0)
         yield self.commit()
@@ -437,7 +437,7 @@
         yield self.otherCommit()
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
@@ -454,7 +454,7 @@
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
-        yield  object1.remove()
+        yield object1.remove()
         count = yield calendar1.countObjectResources()
         self.assertEqual(count, 0)
         yield self.commit()
@@ -491,7 +491,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
@@ -518,7 +518,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
@@ -545,13 +545,13 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         filter = caldavxml.Filter(
             caldavxml.ComponentFilter(
                 *[caldavxml.ComponentFilter(
-                    **{"name":("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
+                    **{"name": ("VEVENT", "VFREEBUSY", "VAVAILABILITY")}
                 )],
                 **{"name": "VCALENDAR"}
             )
@@ -578,9 +578,9 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        resource1 = yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        resource1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         resource_id1 = resource1.id()
-        resource2 = yield  calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
+        resource2 = yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
         resource_id2 = resource2.id()
         yield self.commit()
 
@@ -614,7 +614,7 @@
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
-        yield  object1.remove()
+        yield object1.remove()
         yield self.commit()
 
         shared = yield self.calendarUnderTest(txn=self.newOtherTransaction(), home="puser01", name="shared-calendar")
@@ -655,10 +655,10 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        resource1 = yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        resource1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         resource_id1 = resource1.id()
-        yield  calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
-        resource3 = yield  calendar1.createCalendarObjectWithName("3.ics", Component.fromString(self.caldata3))
+        yield calendar1.createCalendarObjectWithName("2.ics", Component.fromString(self.caldata2))
+        resource3 = yield calendar1.createCalendarObjectWithName("3.ics", Component.fromString(self.caldata3))
         resource_id3 = resource3.id()
         yield self.commit()
 
@@ -697,7 +697,7 @@
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
-        yield  object1.remove()
+        yield object1.remove()
         yield self.commit()
 
         shared = yield self.calendarUnderTest(txn=self.newOtherTransaction(), home="puser01", name="shared-calendar")
@@ -738,7 +738,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        resource = yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        resource = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         resource_id = resource.id()
         yield self.commit()
 
@@ -777,7 +777,7 @@
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
-        yield  object1.remove()
+        yield object1.remove()
         yield self.commit()
 
         shared = yield self.calendarUnderTest(txn=self.newOtherTransaction(), home="puser01", name="shared-calendar")
@@ -838,7 +838,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         shared = yield self.calendarUnderTest(txn=self.newOtherTransaction(), home="puser01", name="shared-calendar")
@@ -859,7 +859,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         shared_object = yield self.calendarObjectUnderTest(txn=self.newOtherTransaction(), home="puser01", calendar_name="shared-calendar", name="1.ics")
@@ -892,7 +892,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         shared_object = yield self.calendarObjectUnderTest(txn=self.newOtherTransaction(), home="puser01", calendar_name="shared-calendar", name="1.ics")
@@ -911,7 +911,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         shared_object = yield self.calendarObjectUnderTest(txn=self.newOtherTransaction(), home="puser01", calendar_name="shared-calendar", name="1.ics")
@@ -936,7 +936,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         fbstart = "{now:04d}0102T000000Z".format(**self.nowYear)
@@ -990,7 +990,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        object1 = yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        object1 = yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         resourceID = object1.id()
         yield self.commit()
 
@@ -1020,7 +1020,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")
@@ -1055,7 +1055,7 @@
         yield self.createShare("user01", "puser01")
 
         calendar1 = yield self.calendarUnderTest(home="user01", name="calendar")
-        yield  calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
+        yield calendar1.createCalendarObjectWithName("1.ics", Component.fromString(self.caldata1))
         yield self.commit()
 
         object1 = yield self.calendarObjectUnderTest(home="user01", calendar_name="calendar", name="1.ics")

Modified: CalendarServer/trunk/txdav/common/datastore/podding/test/test_resource.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/podding/test/test_resource.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/podding/test/test_resource.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -66,25 +66,25 @@
     @classproperty(cache=False)
     def requirements(cls): #@NoSelf
         return {
-        "user01": {
-            "calendar_1": {
+            "user01": {
+                "calendar_1": {
+                },
+                "inbox": {
+                },
             },
-            "inbox": {
+            "user02": {
+                "calendar_1": {
+                },
+                "inbox": {
+                },
             },
-        },
-        "user02": {
-            "calendar_1": {
+            "user03": {
+                "calendar_1": {
+                },
+                "inbox": {
+                },
             },
-            "inbox": {
-            },
-        },
-        "user03": {
-            "calendar_1": {
-            },
-            "inbox": {
-            },
-        },
-    }
+        }
 
 
     @inlineCallbacks

Modified: CalendarServer/trunk/txdav/common/datastore/sql.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/sql.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/sql.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -783,39 +783,48 @@
     @classproperty
     def _insertAPNSubscriptionQuery(cls):
         apn = schema.APN_SUBSCRIPTIONS
-        return Insert({apn.TOKEN: Parameter("token"),
-                       apn.RESOURCE_KEY: Parameter("resourceKey"),
-                       apn.MODIFIED: Parameter("modified"),
-                       apn.SUBSCRIBER_GUID: Parameter("subscriber"),
-                       apn.USER_AGENT: Parameter("userAgent"),
-                       apn.IP_ADDR: Parameter("ipAddr")})
+        return Insert({
+            apn.TOKEN: Parameter("token"),
+            apn.RESOURCE_KEY: Parameter("resourceKey"),
+            apn.MODIFIED: Parameter("modified"),
+            apn.SUBSCRIBER_GUID: Parameter("subscriber"),
+            apn.USER_AGENT: Parameter("userAgent"),
+            apn.IP_ADDR: Parameter("ipAddr")
+        })
 
 
     @classproperty
     def _updateAPNSubscriptionQuery(cls):
         apn = schema.APN_SUBSCRIPTIONS
-        return Update({apn.MODIFIED: Parameter("modified"),
-                       apn.SUBSCRIBER_GUID: Parameter("subscriber"),
-                       apn.USER_AGENT: Parameter("userAgent"),
-                       apn.IP_ADDR: Parameter("ipAddr")},
-                      Where=(apn.TOKEN == Parameter("token")).And(
-                             apn.RESOURCE_KEY == Parameter("resourceKey")))
+        return Update(
+            {
+                apn.MODIFIED: Parameter("modified"),
+                apn.SUBSCRIBER_GUID: Parameter("subscriber"),
+                apn.USER_AGENT: Parameter("userAgent"),
+                apn.IP_ADDR: Parameter("ipAddr")
+            },
+            Where=(apn.TOKEN == Parameter("token")).And(
+                apn.RESOURCE_KEY == Parameter("resourceKey"))
+        )
 
 
     @classproperty
     def _selectAPNSubscriptionQuery(cls):
         apn = schema.APN_SUBSCRIPTIONS
-        return Select([apn.MODIFIED, apn.SUBSCRIBER_GUID], From=apn,
-                Where=(
-                    apn.TOKEN == Parameter("token")).And(
-                    apn.RESOURCE_KEY == Parameter("resourceKey")
-                )
+        return Select(
+            [apn.MODIFIED, apn.SUBSCRIBER_GUID],
+            From=apn,
+            Where=(apn.TOKEN == Parameter("token")).And(
+                apn.RESOURCE_KEY == Parameter("resourceKey")
             )
+        )
 
 
     @inlineCallbacks
-    def addAPNSubscription(self, token, key, timestamp, subscriber,
-        userAgent, ipAddr):
+    def addAPNSubscription(
+        self, token, key, timestamp, subscriber,
+        userAgent, ipAddr
+    ):
         if not (token and key and timestamp and subscriber):
             raise InvalidSubscriptionValues()
 
@@ -823,11 +832,14 @@
         userAgent = userAgent[:255]
         ipAddr = ipAddr[:255]
 
-        row = yield self._selectAPNSubscriptionQuery.on(self,
-            token=token, resourceKey=key)
+        row = yield self._selectAPNSubscriptionQuery.on(
+            self,
+            token=token, resourceKey=key
+        )
         if not row:  # Subscription does not yet exist
             try:
-                yield self._insertAPNSubscriptionQuery.on(self,
+                yield self._insertAPNSubscriptionQuery.on(
+                    self,
                     token=token, resourceKey=key, modified=timestamp,
                     subscriber=subscriber, userAgent=userAgent,
                     ipAddr=ipAddr)
@@ -837,7 +849,8 @@
 
         else:  # Subscription exists, so update with new timestamp and subscriber
             try:
-                yield self._updateAPNSubscriptionQuery.on(self,
+                yield self._updateAPNSubscriptionQuery.on(
+                    self,
                     token=token, resourceKey=key, modified=timestamp,
                     subscriber=subscriber, userAgent=userAgent,
                     ipAddr=ipAddr)
@@ -855,7 +868,8 @@
 
 
     def removeAPNSubscription(self, token, key):
-        return self._removeAPNSubscriptionQuery.on(self,
+        return self._removeAPNSubscriptionQuery.on(
+            self,
             token=token, resourceKey=key)
 
 
@@ -867,7 +881,8 @@
 
 
     def purgeOldAPNSubscriptions(self, olderThan):
-        return self._purgeOldAPNSubscriptionQuery.on(self,
+        return self._purgeOldAPNSubscriptionQuery.on(
+            self,
             olderThan=olderThan)
 
 
@@ -909,11 +924,12 @@
     @classproperty
     def _insertIMIPTokenQuery(cls):
         imip = schema.IMIP_TOKENS
-        return Insert({imip.TOKEN: Parameter("token"),
-                       imip.ORGANIZER: Parameter("organizer"),
-                       imip.ATTENDEE: Parameter("attendee"),
-                       imip.ICALUID: Parameter("icaluid"),
-                      })
+        return Insert({
+            imip.TOKEN: Parameter("token"),
+            imip.ORGANIZER: Parameter("organizer"),
+            imip.ATTENDEE: Parameter("attendee"),
+            imip.ICALUID: Parameter("icaluid"),
+        })
 
 
     @inlineCallbacks
@@ -925,7 +941,8 @@
             token = str(uuid4())
 
         try:
-            yield self._insertIMIPTokenQuery.on(self,
+            yield self._insertIMIPTokenQuery.on(
+                self,
                 token=token, organizer=organizer, attendee=attendee,
                 icaluid=icaluid)
         except Exception:
@@ -952,29 +969,36 @@
     @classproperty
     def _selectIMIPTokenQuery(cls):
         imip = schema.IMIP_TOKENS
-        return Select([imip.TOKEN], From=imip,
-                      Where=(imip.ORGANIZER == Parameter("organizer")).And(
-                             imip.ATTENDEE == Parameter("attendee")).And(
-                             imip.ICALUID == Parameter("icaluid")))
+        return Select(
+            [imip.TOKEN],
+            From=imip,
+            Where=(imip.ORGANIZER == Parameter("organizer")).And(
+                imip.ATTENDEE == Parameter("attendee")).And(
+                imip.ICALUID == Parameter("icaluid"))
+        )
 
 
     @classproperty
     def _updateIMIPTokenQuery(cls):
         imip = schema.IMIP_TOKENS
-        return Update({imip.ACCESSED: utcNowSQL, },
-                      Where=(imip.ORGANIZER == Parameter("organizer")).And(
-                             imip.ATTENDEE == Parameter("attendee")).And(
-                             imip.ICALUID == Parameter("icaluid")))
+        return Update(
+            {imip.ACCESSED: utcNowSQL, },
+            Where=(imip.ORGANIZER == Parameter("organizer")).And(
+                imip.ATTENDEE == Parameter("attendee")).And(
+                    imip.ICALUID == Parameter("icaluid"))
+        )
 
 
     @inlineCallbacks
     def imipGetToken(self, organizer, attendee, icaluid):
-        row = (yield self._selectIMIPTokenQuery.on(self, organizer=organizer,
+        row = (yield self._selectIMIPTokenQuery.on(
+            self, organizer=organizer,
             attendee=attendee, icaluid=icaluid))
         if row:
             token = row[0][0]
             # update the timestamp
-            yield self._updateIMIPTokenQuery.on(self, organizer=organizer,
+            yield self._updateIMIPTokenQuery.on(
+                self, organizer=organizer,
                 attendee=attendee, icaluid=icaluid)
         else:
             token = None
@@ -2661,8 +2685,8 @@
                         aboMembers,
                         Where=(aboMembers.GROUP_ID == groupID).And(
                             aboMembers.MEMBER_ID == memberID).And(
-                                aboMembers.REVISION.In(Parameter("revisionsToRemove", len(revisionsToRemove)))
-                            )
+                            aboMembers.REVISION.In(Parameter("revisionsToRemove", len(revisionsToRemove)))
+                        )
                     ).on(self, revisionsToRemove=revisionsToRemove)
 
 
@@ -3588,9 +3612,10 @@
             Do the changes query.
             Subclasses may override.
         """
-        result = yield self._changesQuery.on(self._txn,
-                                         resourceID=self._resourceID,
-                                         revision=revision)
+        result = yield self._changesQuery.on(
+            self._txn,
+            resourceID=self._resourceID,
+            revision=revision)
         returnValue(result)
 
 
@@ -3616,8 +3641,8 @@
         Now that we are truncating the revision table, we need to handle the full sync (revision == 0)
         case a little differently as the revision table will not contain data for resources that exist,
         but were last modified before the revision cut-off. Instead for revision == 0 we need to list
-        all existing child resources.  
-  
+        all existing child resources.
+
         We need to handle shared collection a little differently from owned ones. When a shared collection
         is bound into a home we record a revision for it using the sharee home id and sharee collection name.
         That revision is the "starting point" for changes: so if sync occurs with a revision earlier than
@@ -3700,8 +3725,6 @@
         returnValue((changed, deleted, invalid,))
 
 
-
-
     @inlineCallbacks
     def resourceNamesSinceRevisionZero(self, depth):
         """
@@ -4139,10 +4162,10 @@
                 raise SyncTokenValidException
 
             results = [
-                (name if name else "", removed) for name, removed in
-                    (yield self._objectNamesSinceRevisionQuery().on(
+                (name if name else "", removed) for name, removed in (
+                    yield self._objectNamesSinceRevisionQuery().on(
                         self._txn, revision=revision, resourceID=self._resourceID)
-                    )
+                )
             ]
             results.sort(key=lambda x: x[1])
 
@@ -4169,14 +4192,18 @@
     @classproperty
     def _addNewRevision(cls):
         rev = cls._revisionsSchema
-        return Insert({rev.HOME_RESOURCE_ID: Parameter("homeID"),
-                       rev.RESOURCE_ID: Parameter("resourceID"),
-                       rev.COLLECTION_NAME: Parameter("collectionName"),
-                       rev.RESOURCE_NAME: None,
-                       # Always starts false; may be updated to be a tombstone
-                       # later.
-                       rev.DELETED: False},
-                     Return=[rev.REVISION])
+        return Insert(
+            {
+                rev.HOME_RESOURCE_ID: Parameter("homeID"),
+                rev.RESOURCE_ID: Parameter("resourceID"),
+                rev.COLLECTION_NAME: Parameter("collectionName"),
+                rev.RESOURCE_NAME: None,
+                # Always starts false; may be updated to be a tombstone
+                # later.
+                rev.DELETED: False
+            },
+            Return=[rev.REVISION]
+        )
 
 
     @inlineCallbacks
@@ -4263,13 +4290,16 @@
         DAL query to indicate a shared collection has been deleted.
         """
         rev = cls._revisionsSchema
-        return Update({rev.RESOURCE_ID: None,
-                       rev.REVISION: schema.REVISION_SEQ,
-                       rev.DELETED: True},
-                      Where=(rev.HOME_RESOURCE_ID == Parameter("homeID")).And(
-                          rev.RESOURCE_ID == Parameter("resourceID")).And(
-                              rev.RESOURCE_NAME == None)
-                     )
+        return Update(
+            {
+                rev.RESOURCE_ID: None,
+                rev.REVISION: schema.REVISION_SEQ,
+                rev.DELETED: True
+            },
+            Where=(rev.HOME_RESOURCE_ID == Parameter("homeID")).And(
+                rev.RESOURCE_ID == Parameter("resourceID")).And(
+                rev.RESOURCE_NAME == None)
+        )
 
 
     @classproperty
@@ -4278,12 +4308,15 @@
         DAL query to indicate an owned collection has been deleted.
         """
         rev = cls._revisionsSchema
-        return Update({rev.RESOURCE_ID: None,
-                       rev.REVISION: schema.REVISION_SEQ,
-                       rev.DELETED: True},
-                      Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
-                          rev.RESOURCE_NAME == None),
-                     )
+        return Update(
+            {
+                rev.RESOURCE_ID: None,
+                rev.REVISION: schema.REVISION_SEQ,
+                rev.DELETED: True
+            },
+            Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+                rev.RESOURCE_NAME == None),
+        )
 
 
     @inlineCallbacks
@@ -4330,49 +4363,60 @@
     @classproperty
     def _deleteBumpTokenQuery(cls):
         rev = cls._revisionsSchema
-        return Update({rev.REVISION: schema.REVISION_SEQ,
-                       rev.DELETED: True},
-                      Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
-                           rev.RESOURCE_NAME == Parameter("name")),
-                      Return=rev.REVISION)
+        return Update(
+            {rev.REVISION: schema.REVISION_SEQ, rev.DELETED: True},
+            Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+                rev.RESOURCE_NAME == Parameter("name")),
+            Return=rev.REVISION
+        )
 
 
     @classproperty
     def _updateBumpTokenQuery(cls):
         rev = cls._revisionsSchema
-        return Update({rev.REVISION: schema.REVISION_SEQ},
-                      Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
-                           rev.RESOURCE_NAME == Parameter("name")),
-                      Return=rev.REVISION)
+        return Update(
+            {rev.REVISION: schema.REVISION_SEQ},
+            Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+                rev.RESOURCE_NAME == Parameter("name")),
+            Return=rev.REVISION
+        )
 
 
     @classproperty
     def _insertFindPreviouslyNamedQuery(cls):
         rev = cls._revisionsSchema
-        return Select([rev.RESOURCE_ID], From=rev,
-                      Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
-                           rev.RESOURCE_NAME == Parameter("name")))
+        return Select(
+            [rev.RESOURCE_ID],
+            From=rev,
+            Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+                rev.RESOURCE_NAME == Parameter("name"))
+        )
 
 
     @classproperty
     def _updatePreviouslyNamedQuery(cls):
         rev = cls._revisionsSchema
-        return Update({rev.REVISION: schema.REVISION_SEQ,
-                       rev.DELETED: False},
-                      Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
-                           rev.RESOURCE_NAME == Parameter("name")),
-                      Return=rev.REVISION)
+        return Update(
+            {rev.REVISION: schema.REVISION_SEQ, rev.DELETED: False},
+            Where=(rev.RESOURCE_ID == Parameter("resourceID")).And(
+                rev.RESOURCE_NAME == Parameter("name")),
+            Return=rev.REVISION
+        )
 
 
     @classproperty
     def _completelyNewRevisionQuery(cls):
         rev = cls._revisionsSchema
-        return Insert({rev.HOME_RESOURCE_ID: Parameter("homeID"),
-                       rev.RESOURCE_ID: Parameter("resourceID"),
-                       rev.RESOURCE_NAME: Parameter("name"),
-                       rev.REVISION: schema.REVISION_SEQ,
-                       rev.DELETED: False},
-                      Return=rev.REVISION)
+        return Insert(
+            {
+                rev.HOME_RESOURCE_ID: Parameter("homeID"),
+                rev.RESOURCE_ID: Parameter("resourceID"),
+                rev.RESOURCE_NAME: Parameter("name"),
+                rev.REVISION: schema.REVISION_SEQ,
+                rev.DELETED: False
+            },
+            Return=rev.REVISION
+        )
 
 
     @inlineCallbacks
@@ -4463,8 +4507,8 @@
         bind = cls._bindSchema
         return Update(
             columnMap,
-            Where=(bind.RESOURCE_ID == Parameter("resourceID"))
-                   .And(bind.HOME_RESOURCE_ID == Parameter("homeID")),
+            Where=(bind.RESOURCE_ID == Parameter("resourceID")).And(
+                bind.HOME_RESOURCE_ID == Parameter("homeID")),
         )
 
 
@@ -4473,8 +4517,8 @@
         bind = cls._bindSchema
         return Delete(
             From=bind,
-            Where=(bind.RESOURCE_ID == Parameter("resourceID"))
-                  .And(bind.HOME_RESOURCE_ID == Parameter("homeID")),
+            Where=(bind.RESOURCE_ID == Parameter("resourceID")).And(
+                bind.HOME_RESOURCE_ID == Parameter("homeID")),
         )
 
 
@@ -5023,7 +5067,7 @@
         # TODO: raise a nice exception if shareeView is not, in fact, a shared
         # version of this same L{CommonHomeChild}
 
-        #remove None parameters, and substitute None for empty string
+        # remove None parameters, and substitute None for empty string
         bind = self._bindSchema
         columnMap = {}
         if mode != None and mode != self._bindMode:
@@ -5235,8 +5279,8 @@
         bind = self._bindSchema
         yield Update(
             {bind.MESSAGE: self._bindMessage},
-            Where=(bind.RESOURCE_ID == Parameter("resourceID"))
-                  .And(bind.HOME_RESOURCE_ID == Parameter("homeID")),
+            Where=(bind.RESOURCE_ID == Parameter("resourceID")).And(
+                bind.HOME_RESOURCE_ID == Parameter("homeID")),
         ).on(self._txn, resourceID=self._resourceID, homeID=self.viewerHome()._resourceID)
 
         yield self.invalidateQueryCache()
@@ -5416,14 +5460,16 @@
         childMetaData = cls._homeChildMetaDataSchema
 
         columns = cls.bindColumns() + cls.additionalBindColumns() + cls.metadataColumns()
-        return Select(columns,
-                     From=child.join(
-                         bind, child.RESOURCE_ID == bind.RESOURCE_ID,
-                         'left outer').join(
-                         childMetaData, childMetaData.RESOURCE_ID == bind.RESOURCE_ID,
-                         'left outer'),
-                     Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")
-                           ).And(bind.BIND_STATUS == _BIND_STATUS_ACCEPTED))
+        return Select(
+            columns,
+            From=child.join(
+                bind, child.RESOURCE_ID == bind.RESOURCE_ID,
+                'left outer').join(
+                    childMetaData, childMetaData.RESOURCE_ID == bind.RESOURCE_ID,
+                    'left outer'),
+            Where=(bind.HOME_RESOURCE_ID == Parameter("homeID")).And(
+                bind.BIND_STATUS == _BIND_STATUS_ACCEPTED)
+        )
 
 
     @classmethod
@@ -5432,8 +5478,8 @@
         return Select(
             [rev.RESOURCE_ID, Max(rev.REVISION)],
             From=rev,
-            Where=rev.RESOURCE_ID.In(Parameter("resourceIDs", len(resourceIDs))).
-                    And((rev.RESOURCE_NAME != None).Or(rev.DELETED == False)),
+            Where=rev.RESOURCE_ID.In(Parameter("resourceIDs", len(resourceIDs))).And(
+                (rev.RESOURCE_NAME != None).Or(rev.DELETED == False)),
             GroupBy=rev.RESOURCE_ID
         )
 
@@ -6095,8 +6141,8 @@
         obj = cls._objectSchema
         return Select(
             [obj.RESOURCE_NAME], From=obj,
-            Where=(obj.UID == Parameter("uid")
-                  ).And(obj.PARENT_RESOURCE_ID == Parameter("resourceID")))
+            Where=(obj.UID == Parameter("uid")).And(
+                obj.PARENT_RESOURCE_ID == Parameter("resourceID")))
 
 
     @inlineCallbacks
@@ -6124,8 +6170,9 @@
         obj = cls._objectSchema
         return Select(
             [obj.UID], From=obj,
-            Where=(obj.RESOURCE_NAME == Parameter("name")
-                  ).And(obj.PARENT_RESOURCE_ID == Parameter("resourceID")))
+            Where=(obj.RESOURCE_NAME == Parameter("name")).And(
+                obj.PARENT_RESOURCE_ID == Parameter("resourceID"))
+        )
 
 
     @inlineCallbacks
@@ -6437,7 +6484,7 @@
                     [rev.RESOURCE_NAME, rev.DELETED],
                     From=rev,
                     Where=(rev.REVISION > revision).And(
-                    rev.RESOURCE_ID == self._resourceID)
+                        rev.RESOURCE_ID == self._resourceID)
                 ).on(self._txn))
                 if name
             ]
@@ -8028,7 +8075,7 @@
             From=schema.NOTIFICATION_HOME.join(
                 schema.NOTIFICATION,
                 on=schema.NOTIFICATION_HOME.RESOURCE_ID ==
-                    schema.NOTIFICATION.NOTIFICATION_HOME_RESOURCE_ID),
+                schema.NOTIFICATION.NOTIFICATION_HOME_RESOURCE_ID),
             Where=schema.NOTIFICATION_HOME.OWNER_UID == uid
         )
     homeTypeName = {ECALENDARTYPE: "CALENDAR",
@@ -8039,9 +8086,9 @@
     obj = getattr(schema, homeTypeName + "_OBJECT")
     return Select(
         [Max(obj.MODIFIED)],
-        From=home.join(bind, on=bind.HOME_RESOURCE_ID == home.RESOURCE_ID)
-           .join(child, on=child.RESOURCE_ID == bind.RESOURCE_ID)
-           .join(obj, on=obj.PARENT_RESOURCE_ID == child.RESOURCE_ID),
+        From=home.join(bind, on=bind.HOME_RESOURCE_ID == home.RESOURCE_ID).join(
+            child, on=child.RESOURCE_ID == bind.RESOURCE_ID).join(
+            obj, on=obj.PARENT_RESOURCE_ID == child.RESOURCE_ID),
         Where=(bind.BIND_MODE == 0).And(home.OWNER_UID == uid)
     )
 

Modified: CalendarServer/trunk/txdav/common/datastore/sql_tables.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/sql_tables.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/sql_tables.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -365,12 +365,13 @@
                         elif default is False:
                             default = 0
                         out.write(" " + repr(default))
-            if ((not column.model.canBeNull())
-                 # Oracle treats empty strings as NULLs, so we have to accept
-                 # NULL values in columns of a string type.  Other types should
-                 # be okay though.
-                 and typeName not in ('varchar', 'nclob', 'char', 'nchar',
-                                      'nvarchar', 'nvarchar2')):
+            if (
+                (not column.model.canBeNull())
+                # Oracle treats empty strings as NULLs, so we have to accept
+                # NULL values in columns of a string type.  Other types should
+                # be okay though.
+                and typeName not in ('varchar', 'nclob', 'char', 'nchar', 'nvarchar', 'nvarchar2')
+            ):
                 out.write(' not null')
             if [column.model] in list(table.model.uniques()):
                 out.write(' unique')
@@ -461,7 +462,7 @@
             aggregated += agg
             continue
         if inPlSQL is None:
-            #if 'begin'.lower() in str(stmt).split()[0].lower():
+            # if 'begin'.lower() in str(stmt).split()[0].lower():
             if str(stmt).lower().strip().startswith('begin'):
                 inPlSQL = True
                 aggregated += str(stmt)

Modified: CalendarServer/trunk/txdav/common/datastore/test/test_sql.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/test_sql.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/test/test_sql.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -71,10 +71,10 @@
         txn = self.transactionUnderTest()
         cs = schema.CALENDARSERVER
         version = (yield Select(
-                [cs.VALUE, ],
-                From=cs,
-                Where=cs.NAME == 'VERSION',
-            ).on(txn))
+            [cs.VALUE, ],
+            From=cs,
+            Where=cs.NAME == 'VERSION',
+        ).on(txn))
         self.assertNotEqual(version, None)
         self.assertEqual(len(version), 1)
         self.assertEqual(len(version[0]), 1)
@@ -350,23 +350,27 @@
         rp = schema.RESOURCE_PROPERTY
         txn = self.transactionUnderTest()
         # setup
-        yield Insert({rp.RESOURCE_ID: 1,
-                      rp.NAME: "asdf",
-                      rp.VALUE: "property-value",
-                      rp.VIEWER_UID: "not-a-uuid"}).on(txn)
-        yield Insert({rp.RESOURCE_ID: 2,
-                      rp.NAME: "fdsa",
-                      rp.VALUE: "another-value",
-                      rp.VIEWER_UID: "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"}
-                    ).on(txn)
+        yield Insert({
+            rp.RESOURCE_ID: 1,
+            rp.NAME: "asdf",
+            rp.VALUE: "property-value",
+            rp.VIEWER_UID: "not-a-uuid"}).on(txn)
+        yield Insert({
+            rp.RESOURCE_ID: 2,
+            rp.NAME: "fdsa",
+            rp.VALUE: "another-value",
+            rp.VIEWER_UID: "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"}
+        ).on(txn)
         # test
         from txdav.common.datastore.sql import _normalizeColumnUUIDs
         yield _normalizeColumnUUIDs(txn, rp.VIEWER_UID)
         self.assertEqual(
-            (yield Select([rp.RESOURCE_ID, rp.NAME,
-                           rp.VALUE, rp.VIEWER_UID], From=rp,
-                           OrderBy=rp.RESOURCE_ID, Ascending=True,
-                           ).on(txn)),
+            (yield Select(
+                [rp.RESOURCE_ID, rp.NAME,
+                    rp.VALUE, rp.VIEWER_UID],
+                From=rp,
+                OrderBy=rp.RESOURCE_ID, Ascending=True,
+            ).on(txn)),
             [[1, "asdf", "property-value", "not-a-uuid"],
              [2, "fdsa", "another-value",
               "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"]]

Modified: CalendarServer/trunk/txdav/common/datastore/test/test_sql_schema_files.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/test_sql_schema_files.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/test/test_sql_schema_files.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -134,7 +134,7 @@
         indexed_columns = set()
         for index in schema.pseudoIndexes():
             indexed_columns.add("%s.%s" % (index.table.name, index.columns[0].name,))
-        #print indexed_columns
+        # print indexed_columns
 
         # Look at each table
         failures = []

Modified: CalendarServer/trunk/txdav/common/datastore/test/test_sql_tables.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/test_sql_tables.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/test/test_sql_tables.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -221,10 +221,10 @@
         """
         self.assertSortaEquals(
             self.translated(SchemaSyntax(self.schemaFromString(
-                            "create table alpha ( "
-                            'beta integer, check (beta > 3)'
-                            " );"
-                        ))),
+                "create table alpha ( "
+                'beta integer, check (beta > 3)'
+                " );"
+            ))),
             "create table alpha ( "
             '"beta" integer, check ("beta" > 3)'
             " );"
@@ -238,10 +238,10 @@
         """
         self.assertSortaEquals(
             self.translated(SchemaSyntax(self.schemaFromString(
-                            "create table alpha ( "
-                            'beta integer, constraint beta_lt_3 check (beta > 3)'
-                            " );"
-                        ))),
+                "create table alpha ( "
+                'beta integer, constraint beta_lt_3 check (beta > 3)'
+                " );"
+            ))),
             "create table alpha ( "
             '"beta" integer, constraint "beta_lt_3" check ("beta" > 3)'
             " );"
@@ -303,26 +303,26 @@
         One complex sql statement yields a single string
         """
         bigSQL = dedent(
-        '''SELECT
-              CL.CODE,
-              CL.CATEGORY,
-           FROM
-              CLIENTS_SUPPLIERS CL
-              INVOICES I
-           WHERE
-              CL.CODE = I.CODE AND
-              CL.CATEGORY = I.CATEGORY AND
-              CL.UP_DATE =
-                (SELECT
-                   MAX(CL2.UP_DATE)
-                 FROM
-                   CLIENTS_SUPPLIERS CL2
-                 WHERE
-                   CL2.CODE = I.CODE AND
-                   CL2.CATEGORY = I.CATEGORY AND
-                   CL2.UP_DATE <= I.EMISSION
-                ) AND
-                I.EMISSION BETWEEN DATE1 AND DATE2;''')
+            '''SELECT
+                  CL.CODE,
+                  CL.CATEGORY,
+               FROM
+                  CLIENTS_SUPPLIERS CL
+                  INVOICES I
+               WHERE
+                  CL.CODE = I.CODE AND
+                  CL.CATEGORY = I.CATEGORY AND
+                  CL.UP_DATE =
+                    (SELECT
+                       MAX(CL2.UP_DATE)
+                     FROM
+                       CLIENTS_SUPPLIERS CL2
+                     WHERE
+                       CL2.CODE = I.CODE AND
+                       CL2.CATEGORY = I.CATEGORY AND
+                       CL2.UP_DATE <= I.EMISSION
+                    ) AND
+                    I.EMISSION BETWEEN DATE1 AND DATE2;''')
         result = splitSQLString(bigSQL)
         r1 = result.next()
         self.assertEquals(r1, bigSQL.rstrip(";"))
@@ -334,13 +334,13 @@
         One pl/sql block yields a single string
         """
         plsql = dedent(
-        '''BEGIN
-           LOOP
-               INSERT INTO T1 VALUES(i,i);
-               i := i+1;
-               EXIT WHEN i>100;
-           END LOOP;
-           END;''')
+            '''BEGIN
+               LOOP
+                   INSERT INTO T1 VALUES(i,i);
+                   i := i+1;
+                   EXIT WHEN i>100;
+               END LOOP;
+               END;''')
         s1 = 'BEGIN\nLOOP\nINSERT INTO T1 VALUES(i,i);i := i+1;EXIT WHEN i>100;END LOOP;END;'
         result = splitSQLString(plsql)
         r1 = result.next()
@@ -353,23 +353,23 @@
         One sql statement and one pl/sql statement yields two separate strings
         """
         sql = dedent(
-        '''SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
-            FROM EGM
-            INNER JOIN BioEntity
-                ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
-            OPTION (MERGE JOIN);''')
+            '''SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
+                FROM EGM
+                INNER JOIN BioEntity
+                    ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
+                OPTION (MERGE JOIN);''')
         plsql = dedent(
-        '''BEGIN
-           FOR i IN 1..10 LOOP
-               IF MOD(i,2) = 0 THEN
-                   INSERT INTO temp VALUES (i, x, 'i is even');
-               ELSE
-                   INSERT INTO temp VALUES (i, x, 'i is odd');
-               END IF;
-               x := x + 100;
-           END LOOP;
-           COMMIT;
-           END;''')
+            '''BEGIN
+               FOR i IN 1..10 LOOP
+                   IF MOD(i,2) = 0 THEN
+                       INSERT INTO temp VALUES (i, x, 'i is even');
+                   ELSE
+                       INSERT INTO temp VALUES (i, x, 'i is odd');
+                   END IF;
+                   x := x + 100;
+               END LOOP;
+               COMMIT;
+               END;''')
         s2 = "BEGIN\nFOR i IN 1..10 LOOP\nIF MOD(i,2) = 0 THEN\nINSERT INTO temp VALUES (i, x, 'i is even');ELSE\nINSERT INTO temp VALUES (i, x, 'i is odd');END IF;x := x + 100;END LOOP;COMMIT;END;"
         result = splitSQLString(sql + plsql)
         r1 = result.next()
@@ -384,32 +384,32 @@
         One sql statement and one pl/sql statement yields two separate strings
         """
         sql = dedent(
-        '''SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
-            FROM EGM
-            INNER JOIN BioEntity
-                ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
-            OPTION (MERGE JOIN);''')
+            '''SELECT EGM.Name, BioEntity.BioEntityId INTO AUX
+                FROM EGM
+                INNER JOIN BioEntity
+                    ON EGM.name LIKE BioEntity.Name AND EGM.TypeId = BioEntity.TypeId
+                OPTION (MERGE JOIN);''')
         sqlfn = dedent(
-        '''CREATE or REPLACE FUNCTION foobar() RETURNS integer as $$
-           DECLARE
-             result integer;
-           BEGIN
-            SELECT ID into result from JOB;
-            RETURN result;
-           END
-           $$ LANGUAGE plpgsql;''')
+            '''CREATE or REPLACE FUNCTION foobar() RETURNS integer as $$
+               DECLARE
+                 result integer;
+               BEGIN
+                SELECT ID into result from JOB;
+                RETURN result;
+               END
+               $$ LANGUAGE plpgsql;''')
         plsql = dedent(
-        '''BEGIN
-           FOR i IN 1..10 LOOP
-               IF MOD(i,2) = 0 THEN
-                   INSERT INTO temp VALUES (i, x, 'i is even');
-               ELSE
-                   INSERT INTO temp VALUES (i, x, 'i is odd');
-               END IF;
-               x := x + 100;
-           END LOOP;
-           COMMIT;
-           END;''')
+            '''BEGIN
+               FOR i IN 1..10 LOOP
+                   IF MOD(i,2) = 0 THEN
+                       INSERT INTO temp VALUES (i, x, 'i is even');
+                   ELSE
+                       INSERT INTO temp VALUES (i, x, 'i is odd');
+                   END IF;
+                   x := x + 100;
+               END LOOP;
+               COMMIT;
+               END;''')
         s3 = "BEGIN\nFOR i IN 1..10 LOOP\nIF MOD(i,2) = 0 THEN\nINSERT INTO temp VALUES (i, x, 'i is even');ELSE\nINSERT INTO temp VALUES (i, x, 'i is odd');END IF;x := x + 100;END LOOP;COMMIT;END;"
         result = splitSQLString(sql + sqlfn + plsql)
         r1 = result.next()
@@ -427,50 +427,50 @@
         ignoring comments
         """
         realsql = dedent(
-        '''
-        ----
-        -- Copyright (c) 2011-2014 Apple Inc. All rights reserved.
-        --
-        -- Licensed under the Apache License, Version 2.0 (the "License");
-        -- you may not use this file except in compliance with the License.
-        -- You may obtain a copy of the License at
-        --
-        -- http://www.apache.org/licenses/LICENSE-2.0
-        --
-        -- Unless required by applicable law or agreed to in writing, software
-        -- distributed under the License is distributed on an "AS IS" BASIS,
-        -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-        -- See the License for the specific language governing permissions and
-        -- limitations under the License.
-        ----
+            '''
+            ----
+            -- Copyright (c) 2011-2014 Apple Inc. All rights reserved.
+            --
+            -- Licensed under the Apache License, Version 2.0 (the "License");
+            -- you may not use this file except in compliance with the License.
+            -- You may obtain a copy of the License at
+            --
+            -- http://www.apache.org/licenses/LICENSE-2.0
+            --
+            -- Unless required by applicable law or agreed to in writing, software
+            -- distributed under the License is distributed on an "AS IS" BASIS,
+            -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+            -- See the License for the specific language governing permissions and
+            -- limitations under the License.
+            ----
 
-        ---------------------------------------------------
-        -- Upgrade database schema from VERSION 16 to 17 --
-        ---------------------------------------------------
+            ---------------------------------------------------
+            -- Upgrade database schema from VERSION 16 to 17 --
+            ---------------------------------------------------
 
 
-        ------------------------------
-        -- CALENDAR_OBJECT clean-up --
-        ------------------------------
+            ------------------------------
+            -- CALENDAR_OBJECT clean-up --
+            ------------------------------
 
-        begin
-        for i in (select constraint_name from user_cons_columns where column_name = 'ORGANIZER_OBJECT')
-        loop
-        execute immediate 'alter table calendar_object drop constraint ' || i.constraint_name;
-        end loop;
-        end;
+            begin
+            for i in (select constraint_name from user_cons_columns where column_name = 'ORGANIZER_OBJECT')
+            loop
+            execute immediate 'alter table calendar_object drop constraint ' || i.constraint_name;
+            end loop;
+            end;
 
-        alter table CALENDAR_OBJECT
-         drop (ORGANIZER_OBJECT);
+            alter table CALENDAR_OBJECT
+             drop (ORGANIZER_OBJECT);
 
-        create index CALENDAR_OBJECT_ICALE_82e731d5 on CALENDAR_OBJECT (
-            ICALENDAR_UID
-        );
+            create index CALENDAR_OBJECT_ICALE_82e731d5 on CALENDAR_OBJECT (
+                ICALENDAR_UID
+            );
 
 
-        -- Now update the version
-        update CALENDARSERVER set VALUE = '17' where NAME = 'VERSION';
-        ''')
+            -- Now update the version
+            update CALENDARSERVER set VALUE = '17' where NAME = 'VERSION';
+            ''')
         s1 = "begin\nfor i in (select constraint_name from user_cons_columns where column_name = 'ORGANIZER_OBJECT')\nloop\nexecute immediate 'alter table calendar_object drop constraint ' || i.constraint_name;end loop;end;"
         s2 = 'alter table CALENDAR_OBJECT\n drop (ORGANIZER_OBJECT)'
         s3 = 'create index CALENDAR_OBJECT_ICALE_82e731d5 on CALENDAR_OBJECT (\n    ICALENDAR_UID\n)'

Modified: CalendarServer/trunk/txdav/common/datastore/test/util.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/test/util.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/test/util.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -265,6 +265,7 @@
 
     @inlineCallbacks
     def cleanStore(self, testCase, storeToClean):
+
         cleanupTxn = storeToClean.sqlTxnFactory(
             "%s schema-cleanup" % (testCase.id(),)
         )
@@ -881,9 +882,9 @@
         """
         Get the calendar detailed by C{requirements['home1']['calendar_1']}.
         """
-        returnValue((yield
-            (yield self.homeUnderTest(txn, home)).calendarWithName(name))
-        )
+        returnValue((
+            yield (yield self.homeUnderTest(txn, home)).calendarWithName(name)
+        ))
 
 
     @inlineCallbacks
@@ -910,9 +911,9 @@
         """
         Get the addressbook detailed by C{requirements['home1']['addressbook']}.
         """
-        returnValue((yield
-            (yield self.addressbookHomeUnderTest(txn=txn, name=home)).addressbookWithName(name))
-        )
+        returnValue((
+            yield (yield self.addressbookHomeUnderTest(txn=txn, name=home)).addressbookWithName(name)
+        ))
 
 
     @inlineCallbacks

Modified: CalendarServer/trunk/txdav/common/datastore/upgrade/migrate.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/upgrade/migrate.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/upgrade/migrate.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -225,9 +225,10 @@
                 lambda fileHome:
                 self.upgrader.migrateOneHome(fileTxn, homeType, fileHome)
             )
-            .addCallbacks(lambda ignored: fileTxn.commit(),
-                          lambda err: fileTxn.abort()
-                                      .addCallback(lambda ign: err))
+            .addCallbacks(
+                lambda ignored: fileTxn.commit(),
+                lambda err: fileTxn.abort()
+                    .addCallback(lambda ign: err))
             .addCallback(lambda ignored: {})
         )
 
@@ -302,8 +303,9 @@
 
                     appropriateStoreClass = AppleDoubleStore
 
-                return FileStore(path, None, None, True, True,
-                          propertyStoreClass=appropriateStoreClass)
+                return FileStore(
+                    path, None, None, True, True,
+                    propertyStoreClass=appropriateStoreClass)
         return None
 
 
@@ -361,7 +363,7 @@
         for homeType, eachFunc in [
                 ("calendar", self.fileStore.withEachCalendarHomeDo),
                 ("addressbook", self.fileStore.withEachAddressbookHomeDo),
-            ]:
+        ]:
             yield eachFunc(
                 lambda txn, home: self._upgradeAction(
                     txn, home, homeType
@@ -372,8 +374,10 @@
         # since attachments started living outside the database directory
         # created by initdb?  default permissions might be correct now.
         sqlAttachmentsPath = self.sqlStore.attachmentsPath
-        if (sqlAttachmentsPath and sqlAttachmentsPath.exists() and
-            (self.uid or self.gid)):
+        if (
+            sqlAttachmentsPath and sqlAttachmentsPath.exists() and
+            (self.uid or self.gid)
+        ):
             uid = self.uid or -1
             gid = self.gid or -1
             for fp in sqlAttachmentsPath.walk():
@@ -421,7 +425,7 @@
 
         # Now apply each required data upgrade
         self.sqlStore.setUpgrading(True)
-        for upgrade, description  in (
+        for upgrade, description in (
             (doCalendarUpgrade_1_to_2, "Calendar data upgrade from v1 to v2"),
             (doCalendarUpgrade_2_to_3, "Calendar data upgrade from v2 to v3"),
             (doCalendarUpgrade_3_to_4, "Calendar data upgrade from v3 to v4"),

Modified: CalendarServer/trunk/txdav/common/datastore/upgrade/sql/test/test_upgrade.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/upgrade/sql/test/test_upgrade.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/upgrade/sql/test/test_upgrade.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -57,13 +57,15 @@
 
         upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema1")
         files = upgrader.scanForUpgradeFiles("fake_dialect")
-        self.assertEqual(files,
+        self.assertEqual(
+            files,
             [(3, 4, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql"))],
         )
 
         upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema2")
         files = upgrader.scanForUpgradeFiles("fake_dialect")
-        self.assertEqual(files,
+        self.assertEqual(
+            files,
             [
                 (3, 4, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql")),
                 (3, 5, upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_5.sql")),
@@ -79,7 +81,8 @@
         upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema1")
         files = upgrader.scanForUpgradeFiles("fake_dialect")
         upgrades = upgrader.determineUpgradeSequence(3, 4, files, "fake_dialect")
-        self.assertEqual(upgrades,
+        self.assertEqual(
+            upgrades,
             [upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql")],
         )
         self.assertRaises(RuntimeError, upgrader.determineUpgradeSequence, 3, 5, files, "fake_dialect")
@@ -87,18 +90,21 @@
         upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema2")
         files = upgrader.scanForUpgradeFiles("fake_dialect")
         upgrades = upgrader.determineUpgradeSequence(3, 5, files, "fake_dialect")
-        self.assertEqual(upgrades,
+        self.assertEqual(
+            upgrades,
             [upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_5.sql")]
         )
         upgrades = upgrader.determineUpgradeSequence(4, 5, files, "fake_dialect")
-        self.assertEqual(upgrades,
+        self.assertEqual(
+            upgrades,
             [upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_4_to_5.sql")]
         )
 
         upgrader.schemaLocation = getModule(__name__).filePath.sibling("fake_schema3")
         files = upgrader.scanForUpgradeFiles("fake_dialect")
         upgrades = upgrader.determineUpgradeSequence(3, 5, files, "fake_dialect")
-        self.assertEqual(upgrades,
+        self.assertEqual(
+            upgrades,
             [
                 upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_3_to_4.sql"),
                 upgrader.schemaLocation.child("upgrades").child("fake_dialect").child("upgrade_from_4_to_5.sql"),

Modified: CalendarServer/trunk/txdav/common/datastore/upgrade/sql/upgrades/addressbook_upgrade_from_1_to_2.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/upgrade/sql/upgrades/addressbook_upgrade_from_1_to_2.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/upgrade/sql/upgrades/addressbook_upgrade_from_1_to_2.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -67,11 +67,12 @@
             if lcResourceKind == "group":
                 # update kind
                 abo = schema.ADDRESSBOOK_OBJECT
-                yield Update({abo.KIND: _ABO_KIND_GROUP},
-                                Where=abo.RESOURCE_ID == abObject._resourceID,
-                                ).on(txn)
+                yield Update(
+                    {abo.KIND: _ABO_KIND_GROUP},
+                    Where=abo.RESOURCE_ID == abObject._resourceID,
+                ).on(txn)
                 abObject._kind = _ABO_KIND_GROUP
-                #update rest
+                # update rest
                 yield abObject.setComponent(component)
 
     logUpgradeStatus("Starting Addressbook Populate Members")

Modified: CalendarServer/trunk/txdav/common/datastore/upgrade/test/test_migrate.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/upgrade/test/test_migrate.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/upgrade/test/test_migrate.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -86,8 +86,8 @@
 
     @PickleConfig.responder
     def pickleConfig(self, config, delegateTo):
-        #from twistedcaldav.config import config as globalConfig
-        #globalConfig._data = config._data
+        # from twistedcaldav.config import config as globalConfig
+        # globalConfig._data = config._data
         swapAMP(self, namedAny(delegateTo)(config))
         return {}
 
@@ -282,10 +282,10 @@
         self.addCleanup(txn.commit)
         self.assertIdentical(
             None,
-            (yield (yield (yield
-                (yield txn.calendarHomeWithUID("home1"))
-                          .calendarWithName("calendar_1")))
-                          .calendarObjectWithName("bogus.ics"))
+            (yield (yield (yield (
+                yield txn.calendarHomeWithUID("home1")
+            ).calendarWithName("calendar_1"))
+            ).calendarObjectWithName("bogus.ics"))
         )
 
 

Modified: CalendarServer/trunk/txdav/common/datastore/work/revision_cleanup.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/work/revision_cleanup.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/work/revision_cleanup.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -60,8 +60,10 @@
         minValidRevision = int((yield self.transaction.calendarserverValue("MIN-VALID-REVISION")))
 
         # get max revision on table rows before dateLimit
-        dateLimit = (datetime.datetime.utcnow() -
-            datetime.timedelta(days=float(config.RevisionCleanup.SyncTokenLifetimeDays)))
+        dateLimit = (
+            datetime.datetime.utcnow() -
+            datetime.timedelta(days=float(config.RevisionCleanup.SyncTokenLifetimeDays))
+        )
         maxRevOlderThanDate = 0
 
         # TODO: Use one Select statement

Modified: CalendarServer/trunk/txdav/common/datastore/work/test/test_inbox_cleanup.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/work/test/test_inbox_cleanup.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/work/test/test_inbox_cleanup.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -161,7 +161,7 @@
         self.patch(config.InboxCleanup, "ItemLifetimeDays", -1)
         self.patch(config.InboxCleanup, "ItemLifeBeyondEventEndDays", -1)
 
-        #create orphans by deleting events
+        # create orphans by deleting events
         inbox = yield self.calendarUnderTest(home="user01", name="inbox")
         for item in (yield inbox.objectResourcesWithNames(["cal1.ics", "cal3.ics"])):
             yield item.remove()
@@ -191,9 +191,11 @@
 
         itemsToPredate = ["cal2.ics", "cal3.ics"]
         co = schema.CALENDAR_OBJECT
-        yield Update({co.CREATED: oldDate},
+        yield Update(
+            {co.CREATED: oldDate},
             Where=co.RESOURCE_NAME.In(Parameter("itemsToPredate", len(itemsToPredate))).And(
-            co.CALENDAR_RESOURCE_ID == inbox._resourceID)).on(self.transactionUnderTest(), itemsToPredate=itemsToPredate)
+                co.CALENDAR_RESOURCE_ID == inbox._resourceID)
+        ).on(self.transactionUnderTest(), itemsToPredate=itemsToPredate)
 
         # do cleanup
         yield self.transactionUnderTest().enqueue(CleanupOneInboxWork, homeID=inbox.ownerHome()._resourceID, notBefore=datetime.datetime.utcnow())
@@ -217,9 +219,10 @@
         cal3Event = yield calendar.objectResourceWithName("cal3.ics")
 
         tr = schema.TIME_RANGE
-        yield Update({tr.END_DATE: datetime.datetime.utcnow()},
-            Where=tr.CALENDAR_OBJECT_RESOURCE_ID == cal3Event._resourceID).on(
-            self.transactionUnderTest())
+        yield Update(
+            {tr.END_DATE: datetime.datetime.utcnow()},
+            Where=tr.CALENDAR_OBJECT_RESOURCE_ID == cal3Event._resourceID
+        ).on(self.transactionUnderTest())
         # do cleanup
         yield self.transactionUnderTest().enqueue(CleanupOneInboxWork, homeID=calendar.ownerHome()._resourceID, notBefore=datetime.datetime.utcnow())
         yield self.commit()

Modified: CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py
===================================================================
--- CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/common/datastore/work/test/test_revision_cleanup.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -246,7 +246,7 @@
         calendar = yield self.calendarUnderTest(home="user01", name="calendar")
         token = yield calendar.syncToken()
 
-        #make changes
+        # make changes
         cal1Object = yield self.calendarObjectUnderTest(self.transactionUnderTest(), name="cal1.ics", calendar_name="calendar", home="user01")
         yield cal1Object.remove()
         cal2Object = yield self.calendarObjectUnderTest(self.transactionUnderTest(), name="cal2.ics", calendar_name="calendar", home="user01")
@@ -297,7 +297,7 @@
         home = yield self.homeUnderTest(name="user01")
         token = yield home.syncToken()
 
-        #make notification changes as side effect of sharing
+        # make notification changes as side effect of sharing
         yield self._createCalendarShare()
 
         # Get object revisions
@@ -346,7 +346,7 @@
         addressbook = yield self.addressbookUnderTest(home="user01", name="addressbook")
         token = yield addressbook.syncToken()
 
-        #make changes
+        # make changes
         card1Object = yield self.addressbookObjectUnderTest(self.transactionUnderTest(), name="card1.vcf", addressbook_name="addressbook", home="user01")
         yield card1Object.remove()
         card2Object = yield self.addressbookObjectUnderTest(self.transactionUnderTest(), name="card2.vcf", addressbook_name="addressbook", home="user01")

Modified: CalendarServer/trunk/txdav/dps/client.py
===================================================================
--- CalendarServer/trunk/txdav/dps/client.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/dps/client.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -54,17 +54,17 @@
 
 log = Logger()
 
-##
-## Client implementation of Directory Proxy Service
-##
+#
+# Client implementation of Directory Proxy Service
+#
 
 
 
-## MOVE2WHO TODOs:
-## LDAP
-## Store based directory service (records in the store, i.e.
-##    locations/resources)
-## Store autoAcceptGroups in the group db?
+# MOVE2WHO TODOs:
+# LDAP
+# Store based directory service (records in the store, i.e.
+#    locations/resources)
+# Store autoAcceptGroups in the group db?
 
 @implementer(IDirectoryService, IStoreDirectoryService)
 class DirectoryService(BaseDirectoryService, CalendarDirectoryServiceMixin):
@@ -200,7 +200,6 @@
         )
 
 
-
     @inlineCallbacks
     def _call(self, command, postProcess, **kwds):
         """
@@ -432,6 +431,7 @@
         )
 
 
+
 # Test client:
 
 @inlineCallbacks

Modified: CalendarServer/trunk/txdav/dps/server.py
===================================================================
--- CalendarServer/trunk/txdav/dps/server.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/dps/server.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -47,9 +47,9 @@
 log = Logger()
 
 
-##
-## Server implementation of Directory Proxy Service
-##
+#
+# Server implementation of Directory Proxy Service
+#
 
 
 class DirectoryProxyAMPProtocol(amp.AMP):
@@ -254,8 +254,6 @@
         returnValue(response)
 
 
-
-
     @RecordsMatchingTokensCommand.responder
     @inlineCallbacks
     def recordsMatchingTokens(self, tokens, context=None):
@@ -269,7 +267,6 @@
         returnValue(response)
 
 
-
     @RecordsMatchingFieldsCommand.responder
     @inlineCallbacks
     def recordsMatchingFields(self, fields, operand="OR", recordType=None):
@@ -448,6 +445,7 @@
         returnValue(response)
 
 
+
 class DirectoryProxyAMPFactory(Factory):
     """
     """

Modified: CalendarServer/trunk/txdav/dps/test/test_client.py
===================================================================
--- CalendarServer/trunk/txdav/dps/test/test_client.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/dps/test/test_client.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -663,6 +663,7 @@
                 self.assertEquals(authenticated, answer)
 
 
+
 class DPSClientLargeResultsTest(unittest.TestCase):
     """
     Tests the client against a single directory service (as opposed to the

Modified: CalendarServer/trunk/txdav/who/augment.py
===================================================================
--- CalendarServer/trunk/txdav/who/augment.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/augment.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -91,6 +91,7 @@
     return timingWrapper
 
 
+
 @implementer(IDirectoryService, IStoreDirectoryService)
 class AugmentedDirectoryService(
     BaseDirectoryService, CalendarDirectoryServiceMixin

Modified: CalendarServer/trunk/txdav/who/directory.py
===================================================================
--- CalendarServer/trunk/txdav/who/directory.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/directory.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -110,8 +110,8 @@
 
     searchContext_location = "location"
     searchContext_resource = "resource"
-    searchContext_user     = "user"
-    searchContext_group    = "group"
+    searchContext_user = "user"
+    searchContext_group = "group"
     searchContext_attendee = "attendee"
 
 

Modified: CalendarServer/trunk/txdav/who/test/support.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/support.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/test/support.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -36,6 +36,7 @@
     pass
 
 
+
 class InMemoryDirectoryService(IndexDirectoryService):
     """
     An in-memory IDirectoryService.  You must call updateRecords( ) if you want

Modified: CalendarServer/trunk/txdav/who/test/test_group_attendees.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/test_group_attendees.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/test/test_group_attendees.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -869,7 +869,7 @@
         yield self.commit()
         yield JobItem.waitEmpty(self._sqlCalendarStore.newTransaction, reactor, 60)
 
-        #finally, simulate an event that has become old
+        # finally, simulate an event that has become old
         self.patch(CalendarDirectoryRecordMixin, "expandedMembers", unpatchedExpandedMembers)
 
         (
@@ -878,11 +878,10 @@
         ) = yield self.transactionUnderTest().groupByUID("group01")
         ga = schema.GROUP_ATTENDEE
         yield Insert({
-                ga.RESOURCE_ID: cobj._resourceID,
-                ga.GROUP_ID: groupID,
-                ga.MEMBERSHIP_HASH: (-1),
-            }
-        ).on(self.transactionUnderTest())
+            ga.RESOURCE_ID: cobj._resourceID,
+            ga.GROUP_ID: groupID,
+            ga.MEMBERSHIP_HASH: (-1),
+        }).on(self.transactionUnderTest())
         wps = yield groupCacher.refreshGroup(self.transactionUnderTest(), "group01")
         self.assertEqual(len(wps), 1)
         yield self.commit()
@@ -1032,7 +1031,7 @@
             yield JobItem.waitEmpty(self._sqlCalendarStore.newTransaction, reactor, 60)
         self.assertEqual(len(wps), 0)
 
-        #finally, simulate an event that has become old
+        # finally, simulate an event that has become old
         self.patch(CalendarDirectoryRecordMixin, "expandedMembers", unpatchedExpandedMembers)
 
         (
@@ -1041,11 +1040,10 @@
         ) = yield self.transactionUnderTest().groupByUID("group01")
         ga = schema.GROUP_ATTENDEE
         yield Insert({
-                ga.RESOURCE_ID: cobj._resourceID,
-                ga.GROUP_ID: groupID,
-                ga.MEMBERSHIP_HASH: (-1),
-            }
-        ).on(self.transactionUnderTest())
+            ga.RESOURCE_ID: cobj._resourceID,
+            ga.GROUP_ID: groupID,
+            ga.MEMBERSHIP_HASH: (-1),
+        }).on(self.transactionUnderTest())
         wps = yield groupCacher.refreshGroup(self.transactionUnderTest(), "group01")
         self.assertEqual(len(wps), 1)
         yield self.commit()
@@ -1194,7 +1192,7 @@
                     )
                 )
 
-        #TODO: add some meaningful test
+        # TODO: add some meaningful test
         '''
         cal = yield self.calendarUnderTest(name="calendar", home="user01")
         cobjs = yield cal.objectResources()
@@ -1344,7 +1342,7 @@
                 )
 
         yield self._verifyObjectResourceCount("user01", 1)
-        #TODO: add some meaningful test
+        # TODO: add some meaningful test
         '''
         cal = yield self.calendarUnderTest(name="calendar", home="user01")
         cobjs = yield cal.objectResources()

Modified: CalendarServer/trunk/txdav/who/test/test_group_sharees.py
===================================================================
--- CalendarServer/trunk/txdav/who/test/test_group_sharees.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/test/test_group_sharees.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -94,9 +94,9 @@
         """
         Get the calendar detailed by C{requirements['home1']['calendar_1']}.
         """
-        returnValue((yield
-            (yield self.homeUnderTest(txn, home)).shareeView(shareUID))
-        )
+        returnValue((
+            yield (yield self.homeUnderTest(txn, home)).shareeView(shareUID)
+        ))
 
 
 

Modified: CalendarServer/trunk/txdav/who/vcard.py
===================================================================
--- CalendarServer/trunk/txdav/who/vcard.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/who/vcard.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -37,44 +37,44 @@
 
 
 recordTypeToVCardKindMap = {
-   RecordType.user: "individual",
-   RecordType.group: "group",
-   CalRecordType.location: "location",
-   CalRecordType.resource: "device",
+    RecordType.user: "individual",
+    RecordType.group: "group",
+    CalRecordType.location: "location",
+    CalRecordType.resource: "device",
 }
 
 vCardKindToRecordTypeMap = {
-   "individual" : RecordType.user,
-   "group": RecordType.group,
-   "org": RecordType.group,
-   "location": CalRecordType.location,
-   "device": CalRecordType.resource,
+    "individual" : RecordType.user,
+    "group": RecordType.group,
+    "org": RecordType.group,
+    "location": CalRecordType.location,
+    "device": CalRecordType.resource,
 }
 
 
 # all possible generated parameters.
 vCardPropToParamMap = {
-    #"PHOTO": {"ENCODING": ("B",), "TYPE": ("JPEG",), },
+    # "PHOTO": {"ENCODING": ("B",), "TYPE": ("JPEG",), },
     "ADR": {"TYPE": ("WORK", "PREF", "POSTAL", "PARCEL",),
             "LABEL": None, "GEO": None, },
     "LABEL": {"TYPE": ("POSTAL", "PARCEL",)},
-    #"TEL": {"TYPE": None, },  # None means param value can be anything
+    # "TEL": {"TYPE": None, },  # None means param value can be anything
     "EMAIL": {"TYPE": None, },
-    #"KEY": {"ENCODING": ("B",), "TYPE": ("PGPPUBILICKEY", "USERCERTIFICATE", "USERPKCS12DATA", "USERSMIMECERTIFICATE",)},
-    #"URL": {"TYPE": ("WEBLOG", "HOMEPAGE",)},
-    #"IMPP": {"TYPE": ("PREF",), "X-SERVICE-TYPE": None, },
-    #"X-ABRELATEDNAMES": {"TYPE": None, },
-    #"X-AIM": {"TYPE": ("PREF",), },
-    #"X-JABBER": {"TYPE": ("PREF",), },
-    #"X-MSN": {"TYPE": ("PREF",), },
-    #"X-ICQ": {"TYPE": ("PREF",), },
+    # "KEY": {"ENCODING": ("B",), "TYPE": ("PGPPUBILICKEY", "USERCERTIFICATE", "USERPKCS12DATA", "USERSMIMECERTIFICATE",)},
+    # "URL": {"TYPE": ("WEBLOG", "HOMEPAGE",)},
+    # "IMPP": {"TYPE": ("PREF",), "X-SERVICE-TYPE": None, },
+    # "X-ABRELATEDNAMES": {"TYPE": None, },
+    # "X-AIM": {"TYPE": ("PREF",), },
+    # "X-JABBER": {"TYPE": ("PREF",), },
+    # "X-MSN": {"TYPE": ("PREF",), },
+    # "X-ICQ": {"TYPE": ("PREF",), },
 }
 
 
 vCardConstantProperties = {
-    #===================================================================
+    # ====================================================================
     # 3.6 EXPLANATORY TYPES http://tools.ietf.org/html/rfc2426#section-3.6
-    #===================================================================
+    # ====================================================================
     # 3.6.3 PRODID
     "PRODID": vCardProductID,
     # 3.6.9 VERSION
@@ -107,12 +107,13 @@
                 prop=newProperty
             )
 
-    #=======================================================================
+    # =======================================================================
     # start
-    #=======================================================================
+    # =======================================================================
 
-    log.debug("vCardFromRecord: record={record}, forceKind={forceKind}, addProps={addProps}, parentURI={parentURI}",
-                   record=record, forceKind=forceKind, addProps=addProps, parentURI=parentURI)
+    log.debug(
+        "vCardFromRecord: record={record}, forceKind={forceKind}, addProps={addProps}, parentURI={parentURI}",
+        record=record, forceKind=forceKind, addProps=addProps, parentURI=parentURI)
 
     if forceKind is None:
         kind = recordTypeToVCardKindMap.get(record.recordType, "individual")
@@ -132,9 +133,9 @@
     for key, value in constantProperties.items():
         vcard.addProperty(Property(key, value))
 
-    #===========================================================================
+    # ===========================================================================
     # 2.1 Predefined Type Usage
-    #===========================================================================
+    # ===========================================================================
     # 2.1.4 SOURCE Type http://tools.ietf.org/html/rfc2426#section-2.1.4
     if parentURI:
         uri = joinURL(parentURI, record.fields[FieldName.uid].encode("utf-8") + ".vcf")
@@ -152,9 +153,9 @@
                 source = "https://{server}:{port}{uri}".format(server=config.ServerHostName, port=config.HTTPPort, uri=uri)
         vcard.addProperty(Property("SOURCE", source))
 
-    #===================================================================
+    # =======================================================================
     # 3.1 IDENTIFICATION TYPES http://tools.ietf.org/html/rfc2426#section-3.1
-    #===================================================================
+    # =======================================================================
     # 3.1.1 FN
     vcard.addProperty(Property("FN", record.fields[FieldName.fullNames][0].encode("utf-8")))
 
@@ -185,9 +186,9 @@
     #     3.1.4 PHOTO
     #     3.1.5 BDAY
 
-    #===========================================================================
+    # ============================================================================
     # 3.2 Delivery Addressing Types http://tools.ietf.org/html/rfc2426#section-3.2
-    #===========================================================================
+    # ============================================================================
     # 3.2.1 ADR
     #
     # Experimental:
@@ -215,7 +216,7 @@
         vcard.addProperty(
             Property(
                 "ADR", Adr(
-                    #pobox = box,
+                    # pobox = box,
                     extended=extended.encode("utf-8") if extended else None,
                     street=street.encode("utf-8") if street else None,
                     locality=city.encode("utf-8") if city else None,
@@ -228,13 +229,13 @@
         )
 
     #    3.2.2 LABEL
-    #label = record.fields.get(CalFieldName.streetAddress)
+    # label = record.fields.get(CalFieldName.streetAddress)
     if label:
         vcard.addProperty(Property("LABEL", label.encode("utf-8"), params={"TYPE": ["POSTAL", "PARCEL", ]}))
 
-    #===================================================================
+    # ======================================================================================
     # 3.3 TELECOMMUNICATIONS ADDRESSING TYPES http://tools.ietf.org/html/rfc2426#section-3.3
-    #===================================================================
+    # ======================================================================================
     #
     # UNIMPLEMENTED
     #     3.3.1 TEL
@@ -250,9 +251,9 @@
     # UNIMPLEMENTED:
     #     3.3.3 MAILER
     #
-    #===================================================================
+    # =====================================================================
     # 3.4 GEOGRAPHICAL TYPES http://tools.ietf.org/html/rfc2426#section-3.4
-    #===================================================================
+    # =====================================================================
     #
     # UNIMPLEMENTED:
     #     3.4.1 TZ
@@ -262,9 +263,9 @@
     if geographicLocation:
         vcard.addProperty(Property("GEO", geographicLocation.encode("utf-8")))
 
-    #===================================================================
+    # =======================================================================
     # 3.5 ORGANIZATIONAL TYPES http://tools.ietf.org/html/rfc2426#section-3.5
-    #===================================================================
+    # =======================================================================
     #
     # UNIMPLEMENTED:
     #     3.5.1 TITLE
@@ -273,9 +274,9 @@
     #     3.5.4 AGENT
     #     3.5.5 ORG
     #
-    #===================================================================
+    # ====================================================================
     # 3.6 EXPLANATORY TYPES http://tools.ietf.org/html/rfc2426#section-3.6
-    #===================================================================
+    # ====================================================================
     #
     # UNIMPLEMENTED:
     #     3.6.1 CATEGORIES
@@ -297,16 +298,16 @@
     # ADDED WITH CONTSTANT PROPERTIES:
     #     3.6.9 VERSION
 
-    #===================================================================
+    # ===================================================================
     # 3.7 SECURITY TYPES http://tools.ietf.org/html/rfc2426#section-3.7
-    #===================================================================
+    # ===================================================================
     # UNIMPLEMENTED:
     #     3.7.1 CLASS
     #     3.7.2 KEY
 
-    #===================================================================
+    # ===================================================================
     # X Properties
-    #===================================================================
+    # ===================================================================
     # UNIMPLEMENTED:
     #    X-<instant messaging type> such as:
     #        "AIM", "FACEBOOK", "GAGU-GAGU", "GOOGLE TALK", "ICQ", "JABBER", "MSN", "QQ", "SKYPE", "YAHOO",
@@ -327,9 +328,9 @@
         if cua:
             vcard.addProperty(Property("X-ADDRESSBOOKSERVER-MEMBER", cua.encode("utf-8")))
 
-    #===================================================================
+    # ===================================================================
     # vCard 4.0  http://tools.ietf.org/html/rfc6350
-    #===================================================================
+    # ===================================================================
     # UNIMPLEMENTED:
     #     6.4.3 IMPP http://tools.ietf.org/html/rfc6350#section-6.4.3
     #

Modified: CalendarServer/trunk/txdav/xml/base.py
===================================================================
--- CalendarServer/trunk/txdav/xml/base.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/base.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -264,8 +264,8 @@
     def __eq__(self, other):
         if isinstance(other, WebDAVElement):
             return (
-                self.name == other.name       and
-                self.namespace == other.namespace  and
+                self.name == other.name and
+                self.namespace == other.namespace and
                 self.attributes == other.attributes and
                 self.children == other.children
             )
@@ -301,8 +301,10 @@
             output.write("  " * level)
 
         # Check for empty element (one with either no children or a single PCDATA that is itself empty)
-        if (len(self.children) == 0 or
-            (len(self.children) == 1 and isinstance(self.children[0], PCDATAElement) and len(str(self.children[0])) == 0)):
+        if (
+            len(self.children) == 0 or
+            (len(self.children) == 1 and isinstance(self.children[0], PCDATAElement) and len(str(self.children[0])) == 0)
+        ):
 
             # Write out any attributes or the namespace if difference from enclosing element.
             if self.attributes or (ns != self.namespace):
@@ -822,7 +824,7 @@
 
             delta = (offset_hour * 60) + offset_minute
 
-            if   offset_sign == "+":
+            if offset_sign == "+":
                 offset = FixedOffset(0 - delta)
             elif offset_sign == "-":
                 offset = FixedOffset(0 + delta)

Modified: CalendarServer/trunk/txdav/xml/parser_sax.py
===================================================================
--- CalendarServer/trunk/txdav/xml/parser_sax.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/parser_sax.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -176,7 +176,7 @@
         except xml.sax.SAXParseException, e:
             raise ValueError(e)
 
-        #handler.dom.root_element.validate()
+        # handler.dom.root_element.validate()
 
         return handler.dom
 
@@ -184,5 +184,5 @@
     def writeXML(self, output):
         document = xml.dom.minidom.Document()
         self.root_element.addToDOM(document, None)
-        #document.normalize()
+        # document.normalize()
         xmlPrint(document, output)

Modified: CalendarServer/trunk/txdav/xml/rfc2518.py
===================================================================
--- CalendarServer/trunk/txdav/xml/rfc2518.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/rfc2518.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -299,7 +299,7 @@
         propstat_count = 0
 
         for child in children:
-            if   isinstance(child, HRef):
+            if isinstance(child, HRef):
                 resource_count += 1
             elif isinstance(child, Status):
                 status_count += 1
@@ -311,7 +311,7 @@
                 "{0} element must have at least one {1}.".format(
                     cls.sname(), HRef.sname()
                 )
-        )
+            )
 
         if status_count is 0:
             if propstat_count is 0:
@@ -326,7 +326,7 @@
                     "{0} element with {1} may only have one {2}".format(
                         cls.sname(), PropertyStatus.sname(), HRef.sname()
                     )
-            )
+                )
 
             return PropertyStatusResponse.__new__(PropertyStatusResponse, *children)
 

Modified: CalendarServer/trunk/txdav/xml/rfc5842.py
===================================================================
--- CalendarServer/trunk/txdav/xml/rfc5842.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/rfc5842.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -90,9 +90,9 @@
 # sub-elements and so that can extend it here.
 
 
-#@registerElement
-#@registerElementClass
-#class BindResponse (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class BindResponse (WebDAVElement):
 #    """
 #    Response body for a BIND request
 #    """
@@ -104,9 +104,9 @@
 #    }
 #
 #
-#@registerElement
-#@registerElementClass
-#class UnbindRequest (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class UnbindRequest (WebDAVElement):
 #    """
 #    Request body for a UNBIND request
 #    """
@@ -118,9 +118,9 @@
 #    }
 #
 #
-#@registerElement
-#@registerElementClass
-#class Unbind (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class Unbind (WebDAVElement):
 #    """
 #    Response body for a UNBIND request
 #    """
@@ -132,9 +132,9 @@
 #    }
 #
 #
-#@registerElement
-#@registerElementClass
-#class RebindRequest (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class RebindRequest (WebDAVElement):
 #    """
 #    Request body for a REBIND request
 #    """
@@ -147,9 +147,9 @@
 #    }
 #
 #
-#@registerElement
-#@registerElementClass
-#class Rebind (WebDAVElement):
+# @registerElement
+# @registerElementClass
+# class Rebind (WebDAVElement):
 #    """
 #    Response body for a UNBIND request
 #    """

Modified: CalendarServer/trunk/txdav/xml/test/test_xml.py
===================================================================
--- CalendarServer/trunk/txdav/xml/test/test_xml.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/test/test_xml.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -50,8 +50,9 @@
     element = MultiStatus(
         Response(
             HRef("http://webdav.sb.aol.com/webdav/secret"),
-            Status("HTTP/1.1 403 Forbidden")),
-        )
+            Status("HTTP/1.1 403 Forbidden")
+        ),
+    )
 
 
 

Modified: CalendarServer/trunk/txdav/xml/xmlext.py
===================================================================
--- CalendarServer/trunk/txdav/xml/xmlext.py	2014-07-31 19:21:33 UTC (rev 13808)
+++ CalendarServer/trunk/txdav/xml/xmlext.py	2014-07-31 20:15:15 UTC (rev 13809)
@@ -46,10 +46,11 @@
     preserveElements = preserveElements or []
     owner_doc = root.ownerDocument or root
     if hasattr(owner_doc, 'getElementsByName'):
-        #We don't want to insert any whitespace into HTML inline elements
+        # We don't want to insert any whitespace into HTML inline elements
         preserveElements = preserveElements + HTML_4_TRANSITIONAL_INLINE
-    visitor = PrintVisitor(stream, encoding, indent,
-                                   preserveElements, nss_hints)
+    visitor = PrintVisitor(
+        stream, encoding, indent,
+        preserveElements, nss_hints)
     PrintWalker(visitor, root).run()
     stream.write('\n')
     return
@@ -57,7 +58,7 @@
 
 
 def GetAllNs(node):
-    #The xml namespace is implicit
+    # The xml namespace is implicit
     nss = {'xml': XML_NAMESPACE}
     if node.nodeType == Node.ATTRIBUTE_NODE and node.ownerElement:
         return GetAllNs(node.ownerElement)
@@ -73,7 +74,7 @@
             elif attr.namespaceURI:
                 nss[attr.prefix] = attr.namespaceURI
     if node.parentNode:
-        #Inner NS/Prefix mappings take precedence over outer ones
+        # Inner NS/Prefix mappings take precedence over outer ones
         parent_nss = GetAllNs(node.parentNode)
         parent_nss.update(nss)
         nss = parent_nss
@@ -210,7 +211,7 @@
     def visitProlog(self):
         self._write("<?xml version='1.0' encoding='%s'?>" % (
             self.encoding or 'utf-8'
-            ))
+        ))
         self._inText = 0
         return
 
@@ -391,16 +392,16 @@
 ILLEGAL_LOW_CHARS = '[\x01-\x08\x0B-\x0C\x0E-\x1F]'
 SURROGATE_BLOCK = '[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]'
 ILLEGAL_HIGH_CHARS = '\xEF\xBF[\xBE\xBF]'
-#Note: Prolly fuzzy on this, but it looks as if characters from the surrogate block are allowed if in scalar form, which is encoded in UTF8 the same was as in surrogate block form
+# Note: Prolly fuzzy on this, but it looks as if characters from the surrogate block are allowed if in scalar form, which is encoded in UTF8 the same was as in surrogate block form
 XML_ILLEGAL_CHAR_PATTERN = re.compile('%s|%s' % (ILLEGAL_LOW_CHARS, ILLEGAL_HIGH_CHARS))
 
 g_utf8TwoBytePattern = re.compile('([\xC0-\xC3])([\x80-\xBF])')
 g_cdataCharPattern = re.compile('[&<]|]]>')
 g_charToEntity = {
-        '&': '&amp;',
-        '<': '&lt;',
-        ']]>': ']]&gt;',
-        }
+    '&': '&amp;',
+    '<': '&lt;',
+    ']]>': ']]&gt;',
+}
 
 # Slightly modified to not use types.Unicode
 import codecs
@@ -418,7 +419,7 @@
     encoder = codecs.lookup(encoding)[0] # encode,decode,reader,writer
     if type(text) is not unicode:
         text = unicode(text, "utf-8")
-    #FIXME
+    # FIXME
     return str(encoder(text)[0])
 
 
@@ -433,8 +434,8 @@
     else:
         delimiter = "'"
         new_chars = re.sub("'", '&apos;', characters)
-    #FIXME: There's more to normalization
-    #Convert attribute new-lines to character entity
+    # FIXME: There's more to normalization
+    # Convert attribute new-lines to character entity
     # characters is possibly shorter than new_chars (no entities)
     if "\n" in characters:
         new_chars = re.sub('\n', '&#10;', new_chars)
@@ -442,7 +443,7 @@
 
 
 
-#Note: Unicode object only for now
+# Note: Unicode object only for now
 def TranslateCdata(characters, encoding='UTF-8', prev_chars='', markupSafe=0,
                    charsetHandler=utf8_to_code):
     """
@@ -464,9 +465,9 @@
             new_string = '&gt;' + new_string[1:]
     else:
         new_string = characters
-    #Note: use decimal char entity rep because some browsers are broken
-    #FIXME: This will bomb for high characters.  Should, for instance, detect
-    #The UTF-8 for 0xFFFE and put out &#xFFFE;
+    # Note: use decimal char entity rep because some browsers are broken
+    # FIXME: This will bomb for high characters.  Should, for instance, detect
+    # The UTF-8 for 0xFFFE and put out &#xFFFE;
     if XML_ILLEGAL_CHAR_PATTERN.search(new_string):
         new_string = XML_ILLEGAL_CHAR_PATTERN.subn(
             lambda m: '&#%i;' % ord(m.group()),
@@ -477,20 +478,20 @@
 
 
 def TranslateHtmlCdata(characters, encoding='UTF-8', prev_chars=''):
-    #Translate numerical char entity references with HTML entity equivalents
+    # Translate numerical char entity references with HTML entity equivalents
     new_string, _ignore_num_subst = re.subn(
         g_cdataCharPattern,
         lambda m, d=g_charToEntity: d[m.group()],
         characters
-        )
+    )
     if prev_chars[-2:] == ']]' and new_string[0] == '>':
         new_string = '&gt;' + new_string[1:]
     new_string = UseHtmlCharEntities(new_string)
     try:
         new_string = utf8_to_code(new_string, encoding)
     except:
-        #FIXME: This is a work-around, contributed by Mike Brown, that
-        #Deals with escaping output, until we have XML/HTML aware codecs
+        # FIXME: This is a work-around, contributed by Mike Brown, that
+        # Deals with escaping output, until we have XML/HTML aware codecs
         tmp_new_string = ""
         for c in new_string:
             try:
@@ -499,8 +500,8 @@
                 new_c = '&#%i;' % ord(c)
             tmp_new_string = tmp_new_string + new_c
         new_string = tmp_new_string
-    #new_string, num_subst = re.subn(g_xmlIllegalCharPattern, lambda m: '&#%i;'%ord(m.group()), new_string)
-    #Note: use decimal char entity rep because some browsers are broken
+    # new_string, num_subst = re.subn(g_xmlIllegalCharPattern, lambda m: '&#%i;'%ord(m.group()), new_string)
+    # Note: use decimal char entity rep because some browsers are broken
     return new_string
 
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20140731/c839641c/attachment-0001.html>


More information about the calendarserver-changes mailing list