<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[14513] CalendarServer/trunk/txdav</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.calendarserver.org//changeset/14513">14513</a></dd>
<dt>Author</dt> <dd>wsanchez@apple.com</dd>
<dt>Date</dt> <dd>2015-03-05 13:08:20 -0800 (Thu, 05 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>lint</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#CalendarServertrunktxdavbasedatastoresubpostgrespy">CalendarServer/trunk/txdav/base/datastore/subpostgres.py</a></li>
<li><a href="#CalendarServertrunktxdavcommondatastorepoddingstore_apipy">CalendarServer/trunk/txdav/common/datastore/podding/store_api.py</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="CalendarServertrunktxdavbasedatastoresubpostgrespy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/base/datastore/subpostgres.py (14512 => 14513)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/base/datastore/subpostgres.py        2015-03-05 20:20:10 UTC (rev 14512)
+++ CalendarServer/trunk/txdav/base/datastore/subpostgres.py        2015-03-05 21:08:20 UTC (rev 14513)
</span><span class="lines">@@ -26,7 +26,7 @@
</span><span class="cx"> from hashlib import md5
</span><span class="cx"> from pipes import quote as shell_quote
</span><span class="cx"> 
</span><del>-import pgdb as postgres
</del><ins>+import pg8000 as postgres
</ins><span class="cx"> 
</span><span class="cx"> from twisted.python.procutils import which
</span><span class="cx"> from twisted.internet.protocol import ProcessProtocol
</span></span></pre></div>
<a id="CalendarServertrunktxdavcommondatastorepoddingstore_apipy"></a>
<div class="modfile"><h4>Modified: CalendarServer/trunk/txdav/common/datastore/podding/store_api.py (14512 => 14513)</h4>
<pre class="diff"><span>
<span class="info">--- CalendarServer/trunk/txdav/common/datastore/podding/store_api.py        2015-03-05 20:20:10 UTC (rev 14512)
+++ CalendarServer/trunk/txdav/common/datastore/podding/store_api.py        2015-03-05 21:08:20 UTC (rev 14513)
</span><span class="lines">@@ -34,13 +34,17 @@
</span><span class="cx">     @inlineCallbacks
</span><span class="cx">     def _getRequestForStoreObject(self, action, storeObject, classMethod):
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        Create the JSON data needed to identify the remote resource by type and ids, along with any parent resources.
</del><ins>+        Create the JSON data needed to identify the remote resource by type and
+        ids, along with any parent resources.
</ins><span class="cx"> 
</span><span class="cx">         @param action: the conduit action name
</span><span class="cx">         @type action: L{str}
</span><ins>+
</ins><span class="cx">         @param storeObject: the store object that is being operated on
</span><span class="cx">         @type storeObject: L{object}
</span><del>-        @param classMethod: indicates whether the method being called is a classmethod
</del><ins>+
+        @param classMethod: indicates whether the method being called is a
+            classmethod
</ins><span class="cx">         @type classMethod: L{bool}
</span><span class="cx"> 
</span><span class="cx">         @return: the transaction in use, the JSON dict to send in the request,
</span><span class="lines">@@ -48,7 +52,10 @@
</span><span class="cx">         @rtype: L{tuple} of (L{CommonStoreTransaction}, L{dict}, L{str})
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-        from txdav.common.datastore.sql import CommonObjectResource, CommonHomeChild, CommonHome
</del><ins>+        from txdav.common.datastore.sql import (
+            CommonObjectResource, CommonHomeChild, CommonHome
+        )
+
</ins><span class="cx">         result = {
</span><span class="cx">             &quot;action&quot;: action,
</span><span class="cx">         }
</span><span class="lines">@@ -59,6 +66,7 @@
</span><span class="cx">         viewer_home = None
</span><span class="cx">         home_child = None
</span><span class="cx">         object_resource = None
</span><ins>+
</ins><span class="cx">         if isinstance(storeObject, CommonObjectResource):
</span><span class="cx">             owner_home = storeObject.ownerHome()
</span><span class="cx">             viewer_home = storeObject.viewerHome()
</span><span class="lines">@@ -86,9 +94,10 @@
</span><span class="cx">         if object_resource:
</span><span class="cx">             result[&quot;objectResourceID&quot;] = object_resource.id()
</span><span class="cx"> 
</span><del>-        # Note that the owner_home is always the ownerHome() because in the sharing case
-        # a viewer is accessing the owner's data on another pod.
-        recipient = yield self.store.directoryService().recordWithUID(owner_home.uid())
</del><ins>+        # Note that the owner_home is always the ownerHome() because in the
+        # sharing case a viewer is accessing the owner's data on another pod.
+        directory = self.store.directoryService()
+        recipient = yield directory.recordWithUID(owner_home.uid())
</ins><span class="cx"> 
</span><span class="cx">         returnValue((txn, result, recipient.server(),))
</span><span class="cx"> 
</span><span class="lines">@@ -103,7 +112,9 @@
</span><span class="cx">         classObject = None
</span><span class="cx"> 
</span><span class="cx">         if &quot;homeUID&quot; in request:
</span><del>-            home = yield txn.homeWithUID(request[&quot;homeType&quot;], request[&quot;homeUID&quot;])
</del><ins>+            home = yield txn.homeWithUID(
+                request[&quot;homeType&quot;], request[&quot;homeUID&quot;]
+            )
</ins><span class="cx">             if home is None:
</span><span class="cx">                 raise FailedCrossPodRequestError(&quot;Invalid owner UID specified&quot;)
</span><span class="cx">             home._internalRequest = False
</span><span class="lines">@@ -114,22 +125,30 @@
</span><span class="cx">         if &quot;homeChildID&quot; in request:
</span><span class="cx">             homeChild = yield home.childWithID(request[&quot;homeChildID&quot;])
</span><span class="cx">             if homeChild is None:
</span><del>-                raise FailedCrossPodRequestError(&quot;Invalid home child specified&quot;)
</del><ins>+                raise FailedCrossPodRequestError(
+                    &quot;Invalid home child specified&quot;
+                )
</ins><span class="cx">             returnObject = homeChild
</span><span class="cx">             if request.get(&quot;classMethod&quot;, False):
</span><span class="cx">                 classObject = homeChild._objectResourceClass
</span><span class="cx">         elif &quot;homeChildSharedID&quot; in request:
</span><span class="cx">             homeChild = yield home.childWithName(request[&quot;homeChildSharedID&quot;])
</span><span class="cx">             if homeChild is None:
</span><del>-                raise FailedCrossPodRequestError(&quot;Invalid home child specified&quot;)
</del><ins>+                raise FailedCrossPodRequestError(
+                    &quot;Invalid home child specified&quot;
+                )
</ins><span class="cx">             returnObject = homeChild
</span><span class="cx">             if request.get(&quot;classMethod&quot;, False):
</span><span class="cx">                 classObject = homeChild._objectResourceClass
</span><span class="cx"> 
</span><span class="cx">         if &quot;objectResourceID&quot; in request:
</span><del>-            objectResource = yield homeChild.objectResourceWithID(request[&quot;objectResourceID&quot;])
</del><ins>+            objectResource = yield homeChild.objectResourceWithID(
+                request[&quot;objectResourceID&quot;]
+            )
</ins><span class="cx">             if objectResource is None:
</span><del>-                raise FailedCrossPodRequestError(&quot;Invalid object resource specified&quot;)
</del><ins>+                raise FailedCrossPodRequestError(
+                    &quot;Invalid object resource specified&quot;
+                )
</ins><span class="cx">             returnObject = objectResource
</span><span class="cx"> 
</span><span class="cx">         returnValue((returnObject, classObject,))
</span><span class="lines">@@ -156,7 +175,8 @@
</span><span class="cx">     @inlineCallbacks
</span><span class="cx">     def recv_home_resource_id(self, txn, request):
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        Process an addAttachment cross-pod request. Request arguments as per L{send_add_attachment}.
</del><ins>+        Process an addAttachment cross-pod request.
+        Request arguments as per L{send_add_attachment}.
</ins><span class="cx"> 
</span><span class="cx">         @param request: request arguments
</span><span class="cx">         @type request: C{dict}
</span><span class="lines">@@ -180,12 +200,18 @@
</span><span class="cx">         event_details,
</span><span class="cx">     ):
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        Request free busy information for a shared calendar collection hosted on a different pod. See
-        L{txdav.caldav.datastore.scheduling.freebusy} for the base free busy lookup behavior.
</del><ins>+        Request free busy information for a shared calendar collection hosted
+        on a different pod.
+        See L{txdav.caldav.datastore.scheduling.freebusy} for the base free
+        busy lookup behavior.
</ins><span class="cx">         &quot;&quot;&quot;
</span><del>-        txn, request, server = yield self._getRequestForStoreObject(&quot;freebusy&quot;, calresource, False)
</del><ins>+        txn, request, server = yield self._getRequestForStoreObject(
+            &quot;freebusy&quot;, calresource, False
+        )
</ins><span class="cx"> 
</span><del>-        request[&quot;timerange&quot;] = [timerange.start.getText(), timerange.end.getText()]
</del><ins>+        request[&quot;timerange&quot;] = [
+            timerange.start.getText(), timerange.end.getText()
+        ]
</ins><span class="cx">         request[&quot;matchtotal&quot;] = matchtotal
</span><span class="cx">         request[&quot;excludeuid&quot;] = excludeuid
</span><span class="cx">         request[&quot;organizer&quot;] = organizer
</span><span class="lines">@@ -201,20 +227,26 @@
</span><span class="cx">     @inlineCallbacks
</span><span class="cx">     def recv_freebusy(self, txn, request):
</span><span class="cx">         &quot;&quot;&quot;
</span><del>-        Process a freebusy cross-pod request. Message arguments as per L{send_freebusy}.
</del><ins>+        Process a freebusy cross-pod request.
+        Message arguments as per L{send_freebusy}.
</ins><span class="cx"> 
</span><span class="cx">         @param request: request arguments
</span><span class="cx">         @type request: C{dict}
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><span class="cx">         # Operate on the L{CommonHomeChild}
</span><del>-        calresource, _ignore = yield self._getStoreObjectForRequest(txn, request)
</del><ins>+        calresource, _ignore = yield self._getStoreObjectForRequest(
+            txn, request
+        )
</ins><span class="cx"> 
</span><span class="cx">         fbinfo = [[], [], []]
</span><span class="cx">         matchtotal = yield generateFreeBusyInfo(
</span><span class="cx">             calresource,
</span><span class="cx">             fbinfo,
</span><del>-            TimeRange(start=request[&quot;timerange&quot;][0], end=request[&quot;timerange&quot;][1]),
</del><ins>+            TimeRange(
+                start=request[&quot;timerange&quot;][0],
+                end=request[&quot;timerange&quot;][1],
+            ),
</ins><span class="cx">             request[&quot;matchtotal&quot;],
</span><span class="cx">             request[&quot;excludeuid&quot;],
</span><span class="cx">             request[&quot;organizer&quot;],
</span><span class="lines">@@ -237,29 +269,42 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     #
</span><del>-    # We can simplify code generation for simple calls by dynamically generating the appropriate class methods.
</del><ins>+    # We can simplify code generation for simple calls by dynamically
+    # generating the appropriate class methods.
</ins><span class="cx">     #
</span><span class="cx"> 
</span><span class="cx">     @inlineCallbacks
</span><del>-    def _simple_object_send(self, actionName, storeObject, classMethod=False, transform=None, args=None, kwargs=None):
</del><ins>+    def _simple_object_send(
+        self, actionName, storeObject,
+        classMethod=False, transform=None, args=None, kwargs=None
+    ):
</ins><span class="cx">         &quot;&quot;&quot;
</span><span class="cx">         A simple send operation that returns a value.
</span><span class="cx"> 
</span><span class="cx">         @param actionName: name of the action.
</span><span class="cx">         @type actionName: C{str}
</span><ins>+
</ins><span class="cx">         @param shareeView: sharee resource being operated on.
</span><span class="cx">         @type shareeView: L{CommonHomeChildExternal}
</span><del>-        @param objectResource: the resource being operated on, or C{None} for classmethod.
</del><ins>+
+        @param objectResource: the resource being operated on, or C{None} for
+            classmethod.
</ins><span class="cx">         @type objectResource: L{CommonObjectResourceExternal}
</span><del>-        @param transform: a function used to convert the JSON response into return values.
</del><ins>+
+        @param transform: a function used to convert the JSON response into
+            return values.
</ins><span class="cx">         @type transform: C{callable}
</span><ins>+
</ins><span class="cx">         @param args: list of optional arguments.
</span><span class="cx">         @type args: C{list}
</span><ins>+
</ins><span class="cx">         @param kwargs: optional keyword arguments.
</span><span class="cx">         @type kwargs: C{dict}
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-        txn, request, server = yield self._getRequestForStoreObject(actionName, storeObject, classMethod)
</del><ins>+        txn, request, server = yield self._getRequestForStoreObject(
+            actionName, storeObject, classMethod
+        )
</ins><span class="cx">         if args is not None:
</span><span class="cx">             request[&quot;arguments&quot;] = args
</span><span class="cx">         if kwargs is not None:
</span><span class="lines">@@ -269,26 +314,46 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx">     @inlineCallbacks
</span><del>-    def _simple_object_recv(self, txn, actionName, request, method, transform=None):
</del><ins>+    def _simple_object_recv(
+        self, txn, actionName, request, method, transform=None
+    ):
</ins><span class="cx">         &quot;&quot;&quot;
</span><del>-        A simple recv operation that returns a value. We also look for an optional set of arguments/keywords
-        and include those only if present.
</del><ins>+        A simple recv operation that returns a value.
+        We also look for an optional set of arguments/keywords and include
+        those only if present.
</ins><span class="cx"> 
</span><span class="cx">         @param actionName: name of the action.
</span><span class="cx">         @type actionName: C{str}
</span><ins>+
</ins><span class="cx">         @param request: request arguments
</span><span class="cx">         @type request: C{dict}
</span><del>-        @param method: name of the method to execute on the shared resource to get the result.
</del><ins>+
+        @param method: name of the method to execute on the shared resource to
+            get the result.
</ins><span class="cx">         @type method: C{str}
</span><del>-        @param transform: method to call on returned JSON value to convert it to something useful.
</del><ins>+
+        @param transform: method to call on returned JSON value to convert it
+            to something useful.
</ins><span class="cx">         @type transform: C{callable}
</span><span class="cx">         &quot;&quot;&quot;
</span><span class="cx"> 
</span><del>-        storeObject, classObject = yield self._getStoreObjectForRequest(txn, request)
</del><ins>+        storeObject, classObject = yield self._getStoreObjectForRequest(
+            txn, request
+        )
+
</ins><span class="cx">         if classObject is not None:
</span><del>-            value = yield getattr(classObject, method)(storeObject, *request.get(&quot;arguments&quot;, ()), **request.get(&quot;keywords&quot;, {}))
</del><ins>+            m = getattr(classObject, method)
+            value = yield m(
+                storeObject,
+                *request.get(&quot;arguments&quot;, ()),
+                **request.get(&quot;keywords&quot;, {})
+            )
</ins><span class="cx">         else:
</span><del>-            value = yield getattr(storeObject, method)(*request.get(&quot;arguments&quot;, ()), **request.get(&quot;keywords&quot;, {}))
</del><ins>+            m = getattr(storeObject, method)
+            value = yield m(
+                *request.get(&quot;arguments&quot;, ()),
+                **request.get(&quot;keywords&quot;, {})
+            )
</ins><span class="cx"> 
</span><span class="cx">         returnValue(transform(value) if transform is not None else value)
</span><span class="cx"> 
</span><span class="lines">@@ -297,18 +362,27 @@
</span><span class="cx">     # Factory methods for binding actions to the conduit class
</span><span class="cx">     #
</span><span class="cx">     @classmethod
</span><del>-    def _make_simple_action(cls, action, method, classMethod=False, transform_recv_result=None, transform_send_result=None):
</del><ins>+    def _make_simple_action(
+        cls, action, method, classMethod=False,
+        transform_recv_result=None, transform_send_result=None
+    ):
</ins><span class="cx">         setattr(
</span><span class="cx">             cls,
</span><span class="cx">             &quot;send_{}&quot;.format(action),
</span><span class="cx">             lambda self, storeObject, *args, **kwargs:
</span><del>-                self._simple_object_send(action, storeObject, classMethod=classMethod, transform=transform_send_result, args=args, kwargs=kwargs)
</del><ins>+                self._simple_object_send(
+                    action, storeObject, classMethod=classMethod,
+                    transform=transform_send_result, args=args, kwargs=kwargs
+            )
</ins><span class="cx">         )
</span><span class="cx">         setattr(
</span><span class="cx">             cls,
</span><span class="cx">             &quot;recv_{}&quot;.format(action),
</span><span class="cx">             lambda self, txn, message:
</span><del>-                self._simple_object_recv(txn, action, message, method, transform=transform_recv_result)
</del><ins>+                self._simple_object_recv(
+                    txn, action, message, method,
+                    transform=transform_recv_result
+                )
</ins><span class="cx">         )
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -345,24 +419,81 @@
</span><span class="cx"> # Calls on L{CommonHome} objects
</span><span class="cx"> 
</span><span class="cx"> # Calls on L{CommonHomeChild} objects
</span><del>-StoreAPIConduitMixin._make_simple_action(&quot;homechild_listobjects&quot;, &quot;listObjects&quot;, classMethod=True)
-StoreAPIConduitMixin._make_simple_action(&quot;homechild_loadallobjects&quot;, &quot;loadAllObjects&quot;, classMethod=True, transform_recv_result=StoreAPIConduitMixin._to_externalize_list)
-StoreAPIConduitMixin._make_simple_action(&quot;homechild_objectwith&quot;, &quot;objectWith&quot;, classMethod=True, transform_recv_result=StoreAPIConduitMixin._to_externalize)
-StoreAPIConduitMixin._make_simple_action(&quot;homechild_movehere&quot;, &quot;moveObjectResourceHere&quot;)
-StoreAPIConduitMixin._make_simple_action(&quot;homechild_moveaway&quot;, &quot;moveObjectResourceAway&quot;)
-StoreAPIConduitMixin._make_simple_action(&quot;homechild_synctoken&quot;, &quot;syncToken&quot;)
-StoreAPIConduitMixin._make_simple_action(&quot;homechild_resourcenamessincerevision&quot;, &quot;resourceNamesSinceRevision&quot;, transform_send_result=StoreAPIConduitMixin._to_tuple)
-StoreAPIConduitMixin._make_simple_action(&quot;homechild_search&quot;, &quot;search&quot;)
</del><ins>+StoreAPIConduitMixin._make_simple_action(
+    &quot;homechild_listobjects&quot;, &quot;listObjects&quot;,
+    classMethod=True
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;homechild_loadallobjects&quot;, &quot;loadAllObjects&quot;,
+    classMethod=True,
+    transform_recv_result=StoreAPIConduitMixin._to_externalize_list
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;homechild_objectwith&quot;, &quot;objectWith&quot;,
+    classMethod=True,
+    transform_recv_result=StoreAPIConduitMixin._to_externalize
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;homechild_movehere&quot;, &quot;moveObjectResourceHere&quot;
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;homechild_moveaway&quot;, &quot;moveObjectResourceAway&quot;
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;homechild_synctoken&quot;, &quot;syncToken&quot;
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;homechild_resourcenamessincerevision&quot;, &quot;resourceNamesSinceRevision&quot;,
+    transform_send_result=StoreAPIConduitMixin._to_tuple
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;homechild_search&quot;, &quot;search&quot;
+)
</ins><span class="cx"> 
</span><span class="cx"> # Calls on L{CommonObjectResource} objects
</span><del>-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_loadallobjects&quot;, &quot;loadAllObjects&quot;, classMethod=True, transform_recv_result=StoreAPIConduitMixin._to_externalize_list)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_loadallobjectswithnames&quot;, &quot;loadAllObjectsWithNames&quot;, classMethod=True, transform_recv_result=StoreAPIConduitMixin._to_externalize_list)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_listobjects&quot;, &quot;listObjects&quot;, classMethod=True)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_countobjects&quot;, &quot;countObjects&quot;, classMethod=True)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_objectwith&quot;, &quot;objectWith&quot;, classMethod=True, transform_recv_result=StoreAPIConduitMixin._to_externalize)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_resourcenameforuid&quot;, &quot;resourceNameForUID&quot;, classMethod=True)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_resourceuidforname&quot;, &quot;resourceUIDForName&quot;, classMethod=True)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_create&quot;, &quot;create&quot;, classMethod=True, transform_recv_result=StoreAPIConduitMixin._to_externalize)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_setcomponent&quot;, &quot;setComponent&quot;)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_component&quot;, &quot;component&quot;, transform_recv_result=StoreAPIConduitMixin._to_string)
-StoreAPIConduitMixin._make_simple_action(&quot;objectresource_remove&quot;, &quot;remove&quot;)
</del><ins>+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_loadallobjects&quot;, &quot;loadAllObjects&quot;,
+    classMethod=True,
+    transform_recv_result=StoreAPIConduitMixin._to_externalize_list
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_loadallobjectswithnames&quot;, &quot;loadAllObjectsWithNames&quot;,
+    classMethod=True,
+    transform_recv_result=StoreAPIConduitMixin._to_externalize_list
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_listobjects&quot;, &quot;listObjects&quot;,
+    classMethod=True
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_countobjects&quot;, &quot;countObjects&quot;,
+    classMethod=True
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_objectwith&quot;, &quot;objectWith&quot;,
+    classMethod=True,
+    transform_recv_result=StoreAPIConduitMixin._to_externalize
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_resourcenameforuid&quot;, &quot;resourceNameForUID&quot;,
+    classMethod=True
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_resourceuidforname&quot;, &quot;resourceUIDForName&quot;,
+    classMethod=True
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_create&quot;, &quot;create&quot;,
+    classMethod=True,
+    transform_recv_result=StoreAPIConduitMixin._to_externalize
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_setcomponent&quot;, &quot;setComponent&quot;
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_component&quot;, &quot;component&quot;,
+    transform_recv_result=StoreAPIConduitMixin._to_string
+)
+StoreAPIConduitMixin._make_simple_action(
+    &quot;objectresource_remove&quot;, &quot;remove&quot;
+)
</ins></span></pre>
</div>
</div>

</body>
</html>