Skip to content

Faulty import path for Polars Dataframe Serializer #104

@josiahschuller

Description

@josiahschuller

Specifications

  • Client Version: 0.7.0
  • InfluxDB Version: 3
  • Platform: Debian Linux

Code sample to reproduce problem

import polars as pl
from influxdb_client_3 import InfluxDBClient3
client = InfluxDBClient3(host="host", token="token", org="org")
df = pl.DataFrame({
    "time": ["2024-08-01 00:00:00", "2024-08-01 01:00:00"],
    "temperature": [22.4, 21.8],
})
client.write(
    database="database",
    record=df,
    data_frame_measurement_name="measurement",
    data_frame_timestamp_column="time",
)

Expected behavior

There should not be any errors.

Actual behavior

2024-08-12 14:39:35 Traceback (most recent call last):
2024-08-12 14:39:35   File "/app/python_poc/data_ingestion.py", line 278, in <module>
2024-08-12 14:39:35     ingest_data(
2024-08-12 14:39:35   File "/app/python_poc/data_ingestion.py", line 216, in ingest_data
2024-08-12 14:39:35     db_interface.insert_data(df=df_formatted, file_name=file_name)
2024-08-12 14:39:35   File "/app/python_poc/database_interface.py", line 166, in insert_data
2024-08-12 14:39:35     client.write(
2024-08-12 14:39:35   File "/usr/local/lib/python3.12/site-packages/influxdb_client_3/__init__.py", line 164, in write
2024-08-12 14:39:35     self._write_api.write(bucket=database, record=record, **kwargs)
2024-08-12 14:39:35   File "/usr/local/lib/python3.12/site-packages/influxdb_client_3/write_client/client/write_api.py", line 369, in write
2024-08-12 14:39:35     self._serialize(record, write_precision, payloads, **kwargs)
2024-08-12 14:39:35   File "/usr/local/lib/python3.12/site-packages/influxdb_client_3/write_client/client/_base.py", line 251, in _serialize
2024-08-12 14:39:35     from influxdb_client_3.write_client.client.write.dataframe_serializer import PolarsDataframeSerializer
2024-08-12 14:39:35 ImportError: cannot import name 'PolarsDataframeSerializer' from 'influxdb_client_3.write_client.client.write.dataframe_serializer' (/usr/local/lib/python3.12/site-packages/influxdb_client_3/write_client/client/write/dataframe_serializer.py). Did you mean: 'DataframeSerializer'?

Additional info

I experience the above error when attempting to write a Polars dataframe to InfluxDB. The issue appears to be in line 251 of influxdb_client_3/write_client/client/_base.py, where the serializer for Polars is imported from influxdb_client_3.write_client.client.write.dataframe_serializer instead of influxdb_client_3.write_client.client.write.polars_dataframe_serializer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions