@@ -231,7 +231,7 @@ def switch_user(self, username, password):
231
231
self ._username = username
232
232
self ._password = password
233
233
234
- def request (self , url , method = 'GET' , params = None , data = None ,
234
+ def request (self , url , method = 'GET' , params = None , data = None , stream = False ,
235
235
expected_response_code = 200 , headers = None ):
236
236
"""Make a HTTP request to the InfluxDB API.
237
237
@@ -243,6 +243,8 @@ def request(self, url, method='GET', params=None, data=None,
243
243
:type params: dict
244
244
:param data: the data of the request, defaults to None
245
245
:type data: str
246
+ :param stream: True if a query uses chunked responses
247
+ :type stream: bool
246
248
:param expected_response_code: the expected response code of
247
249
the request, defaults to 200
248
250
:type expected_response_code: int
@@ -277,6 +279,7 @@ def request(self, url, method='GET', params=None, data=None,
277
279
auth = (self ._username , self ._password ),
278
280
params = params ,
279
281
data = data ,
282
+ stream = stream ,
280
283
headers = headers ,
281
284
proxies = self ._proxies ,
282
285
verify = self ._verify_ssl ,
@@ -346,17 +349,17 @@ def write(self, data, params=None, expected_response_code=204,
346
349
347
350
@staticmethod
348
351
def _read_chunked_response (response , raise_errors = True ):
349
- result_set = {}
350
352
for line in response .iter_lines ():
351
353
if isinstance (line , bytes ):
352
354
line = line .decode ('utf-8' )
353
355
data = json .loads (line )
356
+ result_set = {}
354
357
for result in data .get ('results' , []):
355
358
for _key in result :
356
359
if isinstance (result [_key ], list ):
357
360
result_set .setdefault (
358
361
_key , []).extend (result [_key ])
359
- return ResultSet (result_set , raise_errors = raise_errors )
362
+ yield ResultSet (result_set , raise_errors = raise_errors )
360
363
361
364
def query (self ,
362
365
query ,
@@ -447,6 +450,7 @@ def query(self,
447
450
method = method ,
448
451
params = params ,
449
452
data = None ,
453
+ stream = chunked ,
450
454
expected_response_code = expected_response_code
451
455
)
452
456
0 commit comments