diff --git a/influxdb/_dataframe_client.py b/influxdb/_dataframe_client.py index 5f81e4c8..fb7b4da5 100644 --- a/influxdb/_dataframe_client.py +++ b/influxdb/_dataframe_client.py @@ -44,8 +44,8 @@ def write_points(self, dataframe, measurement, tags=None, - tag_columns=[], - field_columns=[], + tag_columns=None, + field_columns=None, time_precision=None, database=None, retention_policy=None, @@ -72,6 +72,10 @@ def write_points(self, figures for float and all significant figures for int datatypes. """ + if tag_columns is None: + tag_columns = [] + if field_columns is None: + field_columns = [] if batch_size: number_batches = int(math.ceil(len(dataframe) / float(batch_size))) for batch in range(number_batches): @@ -166,8 +170,8 @@ def _convert_dataframe_to_json(self, dataframe, measurement, tags=None, - tag_columns=[], - field_columns=[], + tag_columns=None, + field_columns=None, time_precision=None): if not isinstance(dataframe, pd.DataFrame): @@ -221,9 +225,9 @@ def _convert_dataframe_to_json(self, def _convert_dataframe_to_lines(self, dataframe, measurement, - field_columns=[], - tag_columns=[], - global_tags={}, + field_columns=None, + tag_columns=None, + global_tags=None, time_precision=None, numeric_precision=None): @@ -242,6 +246,8 @@ def _convert_dataframe_to_lines(self, field_columns = [] if tag_columns is None: tag_columns = [] + if global_tags is None: + global_tags = {} # Make sure field_columns and tag_columns are lists field_columns = list(field_columns) if list(field_columns) else [] diff --git a/influxdb/client.py b/influxdb/client.py index b9faa4f0..1a0a4821 100644 --- a/influxdb/client.py +++ b/influxdb/client.py @@ -131,8 +131,8 @@ def _port(self): def _get_port(self): return self.__port - @staticmethod - def from_DSN(dsn, **kwargs): + @classmethod + def from_DSN(cls, dsn, **kwargs): """Return an instance of :class:`~.InfluxDBClient` from the provided data source name. Supported schemes are "influxdb", "https+influxdb" and "udp+influxdb". Parameters for the :class:`~.InfluxDBClient` @@ -169,7 +169,7 @@ def from_DSN(dsn, **kwargs): init_args['port'] = port init_args.update(kwargs) - return InfluxDBClient(**init_args) + return cls(**init_args) def switch_database(self, database): """Change the client's database.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: