Skip to content

Commit f951d43

Browse files
committed
feat: support for writing pandas DataFrame (#79) - check if measurement name is in kwargs
1 parent 3a3aab8 commit f951d43

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

influxdb_client/client/write_api.py

+3
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,9 @@ def _data_frame_to_list_of_points(self, data_frame, precision, **kwargs):
303303
raise TypeError('Must be DataFrame, but type was: {0}.'
304304
.format(type(data_frame)))
305305

306+
if 'data_frame_measurement_name' not in kwargs:
307+
raise TypeError('"data_frame_measurement_name" is a Required Argument')
308+
306309
if isinstance(data_frame.index, pd.PeriodIndex):
307310
data_frame.index = data_frame.index.to_timestamp()
308311
else:

tests/test_WriteApi.py

+16
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,22 @@ def test_write_data_frame(self):
260260

261261
self.delete_test_bucket(bucket)
262262

263+
def test_write_data_frame_without_measurement_name(self):
264+
from influxdb_client.extras import pd
265+
266+
bucket = self.create_test_bucket()
267+
268+
now = pd.Timestamp('1970-01-01 00:00+00:00')
269+
data_frame = pd.DataFrame(data=[["coyote_creek", 1.0], ["coyote_creek", 2.0]],
270+
index=[now + timedelta(hours=1), now + timedelta(hours=2)],
271+
columns=["location", "water_level"])
272+
273+
with self.assertRaises(TypeError) as cm:
274+
self.write_client.write(bucket.name, record=data_frame)
275+
exception = cm.exception
276+
277+
self.assertEqual('"data_frame_measurement_name" is a Required Argument', exception.__str__())
278+
263279
def test_use_default_org(self):
264280
bucket = self.create_test_bucket()
265281

0 commit comments

Comments
 (0)