Skip to content

Commit

Permalink
fix: return str instead of urllib3.HTTPResponse for `InfluxDBClie…
Browse files Browse the repository at this point in the history
…nt.QueryAPI.query_raw`
  • Loading branch information
jules-ch committed Nov 11, 2023
1 parent 2f9e5ed commit f0c7ef4
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 4 deletions.
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,33 @@
## 1.39.0 [unreleased]

### Breaking Changes

1. [#569](https://github.com/influxdata/influxdb-client-python/pull/569): Return `str` instead of `urllib3.HTTPResponse` for `InfluxDBClient.QueryAPI.query_raw`.

This fixes `InfluxDBClient.query_raw` that returned the wrong type based on the documentation.

The async version `InfluxDBClientAsync` is not affected.

To make your code compatible with this version, you can remove the step of retrieving the response content:

```diff
from influxdb_client.client import InfluxDBClient

with InfluxDBClient(url="http://localhost:8086", token="my-token", org="my-org") as client:
query = "..."
result = client.query_raw(query=query)
- content = result.data.decode("utf8")
+ content = result
```


## 1.38.0 [2023-10-02]

### Bug Fixes
1. [#601](https://github.com/influxdata/influxdb-client-python/pull/601): Use HTTResponse.headers to clear deprecation warning [urllib3]
1. [#610](https://github.com/influxdata/influxdb-client-python/pull/601): Use iloc to clear deprecation warning


### Documentation
1. [#566](https://github.com/influxdata/influxdb-client-python/pull/566): Fix Sphinx documentation build and add support `.readthedocs.yml` V2 configuration file

Expand Down
5 changes: 3 additions & 2 deletions influxdb_client/client/query_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from influxdb_client import Dialect
from influxdb_client.client._base import _BaseQueryApi
from influxdb_client.client.flux_table import FluxRecord, TableList, CSVIterator
from influxdb_client.rest import _UTF_8_encoding


class QueryOptions(object):
Expand Down Expand Up @@ -121,8 +122,8 @@ def query_raw(self, query: str, org=None, dialect=_BaseQueryApi.default_dialect,
org = self._org_param(org)
result = self._query_api.post_query(org=org, query=self._create_query(query, dialect, params), async_req=False,
_preload_content=False)

return result
raw_bytes = result.data
return raw_bytes.decode(_UTF_8_encoding)

def query(self, query: str, org=None, params: dict = None) -> TableList:
"""Execute synchronous Flux query and return result as a :class:`~influxdb_client.client.flux_table.FluxTable` list.
Expand Down
4 changes: 2 additions & 2 deletions tests/test_InfluxDBClient.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import codecs
import http.server
import json
import logging
Expand Down Expand Up @@ -346,7 +345,8 @@ def test_query_and_debug(self):
self.assertIn("my-bucket", list(map(lambda record: record["name"], results[0].records)))
# Query RAW
results = self.client.query_api().query_raw("buckets()", "my-org")
self.assertIn("my-bucket", codecs.decode(results.data))
self.assertIn("my-bucket", results)
self.assertTrue(isinstance(results, str))
# Bucket API
results = self.client.buckets_api().find_buckets()
self.assertIn("my-bucket", list(map(lambda bucket: bucket.name, results.buckets)))
Expand Down

0 comments on commit f0c7ef4

Please sign in to comment.