influxdb-client
Advanced tools
| Metadata-Version: 2.1 | ||
| Name: influxdb-client | ||
| Version: 1.41.0 | ||
| Version: 1.42.0 | ||
| Summary: InfluxDB 2.0 Python client library | ||
@@ -5,0 +5,0 @@ Home-page: https://github.com/influxdata/influxdb-client-python |
@@ -22,10 +22,2 @@ """ | ||
| def _not_nan(x): | ||
| return x == x | ||
| def _any_not_nan(p, indexes): | ||
| return any(map(lambda x: _not_nan(p[x]), indexes)) | ||
| class DataframeSerializer: | ||
@@ -81,3 +73,3 @@ """Serialize DataFrame into LineProtocols.""" | ||
| # | ||
| # lambda p: f"""{measurement_name} {"" if math.isnan(p[1]) | ||
| # lambda p: f"""{measurement_name} {"" if pd.isna(p[1]) | ||
| # else f"{keys[0]}={p[1]}"},{keys[1]}={p[2]}i {p[0].value}""" | ||
@@ -180,3 +172,3 @@ # | ||
| key_value = f"""{{ | ||
| '' if {val_format} == '' or type({val_format}) == float and math.isnan({val_format}) else | ||
| '' if {val_format} == '' or pd.isna({val_format}) else | ||
| f',{key_format}={{str({val_format}).translate(_ESCAPE_STRING)}}' | ||
@@ -198,15 +190,12 @@ }}""" | ||
| sep = '' if len(field_indexes) == 0 else ',' | ||
| if issubclass(value.type, np.integer): | ||
| field_value = f"{sep}{key_format}={{{val_format}}}i" | ||
| elif issubclass(value.type, np.bool_): | ||
| field_value = f'{sep}{key_format}={{{val_format}}}' | ||
| elif issubclass(value.type, np.floating): | ||
| if issubclass(value.type, np.integer) or issubclass(value.type, np.floating) or issubclass(value.type, np.bool_): # noqa: E501 | ||
| suffix = 'i' if issubclass(value.type, np.integer) else '' | ||
| if null_columns.iloc[index]: | ||
| field_value = f"""{{"" if math.isnan({val_format}) else f"{sep}{key_format}={{{val_format}}}"}}""" | ||
| field_value = f"""{{"" if pd.isna({val_format}) else f"{sep}{key_format}={{{val_format}}}{suffix}"}}""" # noqa: E501 | ||
| else: | ||
| field_value = f'{sep}{key_format}={{{val_format}}}' | ||
| field_value = f"{sep}{key_format}={{{val_format}}}{suffix}" | ||
| else: | ||
| if null_columns.iloc[index]: | ||
| field_value = f"""{{ | ||
| '' if type({val_format}) == float and math.isnan({val_format}) else | ||
| '' if pd.isna({val_format}) else | ||
| f'{sep}{key_format}="{{str({val_format}).translate(_ESCAPE_STRING)}}"' | ||
@@ -236,3 +225,3 @@ }}""" | ||
| 'keys': keys, | ||
| 'math': math, | ||
| 'pd': pd, | ||
| }) | ||
@@ -244,2 +233,5 @@ | ||
| def _any_not_nan(p, indexes): | ||
| return any(map(lambda x: not pd.isna(p[x]), indexes)) | ||
| self.data_frame = data_frame | ||
@@ -249,2 +241,3 @@ self.f = f | ||
| self.first_field_maybe_null = null_columns.iloc[field_indexes[0] - 1] | ||
| self._any_not_nan = _any_not_nan | ||
@@ -276,3 +269,3 @@ # | ||
| lp = (re.sub('^(( |[^ ])* ),([a-zA-Z0-9])(.*)', '\\1\\3\\4', self.f(p)) | ||
| for p in filter(lambda x: _any_not_nan(x, self.field_indexes), _itertuples(chunk))) | ||
| for p in filter(lambda x: self._any_not_nan(x, self.field_indexes), _itertuples(chunk))) | ||
| return list(lp) | ||
@@ -279,0 +272,0 @@ else: |
| """Version of the Client that is used in User-Agent header.""" | ||
| VERSION = '1.41.0' | ||
| VERSION = '1.42.0' |
+1
-1
| Metadata-Version: 2.1 | ||
| Name: influxdb_client | ||
| Version: 1.41.0 | ||
| Version: 1.42.0 | ||
| Summary: InfluxDB 2.0 Python client library | ||
@@ -5,0 +5,0 @@ Home-page: https://github.com/influxdata/influxdb-client-python |
@@ -162,2 +162,28 @@ import time | ||
| def test_write_missing_values(self): | ||
| from influxdb_client.extras import pd | ||
| data_frame = pd.DataFrame({ | ||
| "a_bool": [True, None, False], | ||
| "b_int": [None, 1, 2], | ||
| "c_float": [1.0, 2.0, None], | ||
| "d_str": ["a", "b", None], | ||
| }) | ||
| data_frame['a_bool'] = data_frame['a_bool'].astype(pd.BooleanDtype()) | ||
| data_frame['b_int'] = data_frame['b_int'].astype(pd.Int64Dtype()) | ||
| data_frame['c_float'] = data_frame['c_float'].astype(pd.Float64Dtype()) | ||
| data_frame['d_str'] = data_frame['d_str'].astype(pd.StringDtype()) | ||
| print(data_frame) | ||
| points = data_frame_to_list_of_points( | ||
| data_frame=data_frame, | ||
| point_settings=PointSettings(), | ||
| data_frame_measurement_name='measurement') | ||
| self.assertEqual(3, len(points)) | ||
| self.assertEqual("measurement a_bool=True,c_float=1.0,d_str=\"a\" 0", points[0]) | ||
| self.assertEqual("measurement b_int=1i,c_float=2.0,d_str=\"b\" 1", points[1]) | ||
| self.assertEqual("measurement a_bool=False,b_int=2i 2", points[2]) | ||
| def test_write_field_bool(self): | ||
@@ -164,0 +190,0 @@ from influxdb_client.extras import pd |
Alert delta unavailable
Currently unable to show alert delta for PyPI packages.
4403425
0.02%88106
0.02%