|
16 | 16 | from office365.sharepoint.sites.site import Site
|
17 | 17 | from office365.sharepoint.webs.context_web_information import ContextWebInformation
|
18 | 18 | from office365.sharepoint.webs.web import Web
|
| 19 | +from office365.runtime.compat import range_or_xrange |
19 | 20 |
|
20 | 21 |
|
21 | 22 | class ClientContext(ClientRuntimeContext):
|
@@ -98,18 +99,26 @@ def with_credentials(self, credentials):
|
98 | 99 | self.authentication_context.register_provider(credentials)
|
99 | 100 | return self
|
100 | 101 |
|
101 |
| - def execute_batch(self): |
102 |
| - """Construct and submit a batch request""" |
| 102 | + def execute_batch(self, items_per_bulk=100): |
| 103 | + """ |
| 104 | + Construct and submit a batch request |
| 105 | +
|
| 106 | + :param int items_per_bulk: Maximum to be selected for bulk operation |
| 107 | + """ |
103 | 108 | batch_request = ODataBatchRequest(self)
|
104 | 109 |
|
105 |
| - queries = [qry for qry in self.pending_request()] |
106 |
| - batch_qry = BatchQuery(self, queries) |
| 110 | + all_queries = [qry for qry in self.pending_request()] |
| 111 | + # batch_qry = BatchQuery(self, all_queries) |
107 | 112 |
|
108 | 113 | def _prepare_batch_request(request):
|
109 | 114 | self.ensure_form_digest(request)
|
110 | 115 |
|
111 | 116 | batch_request.beforeExecute += _prepare_batch_request
|
112 |
| - batch_request.execute_query(batch_qry) |
| 117 | + |
| 118 | + for i in range_or_xrange(0, len(all_queries), items_per_bulk): |
| 119 | + queries = all_queries[i:i + items_per_bulk] |
| 120 | + batch_qry = BatchQuery(self, queries) |
| 121 | + batch_request.execute_query(batch_qry) |
113 | 122 |
|
114 | 123 | def build_single_request(self, query):
|
115 | 124 | """
|
|
0 commit comments