11import importlib .util
22import os
33import urllib .parse
4+ from typing import Any
45
56import pyarrow as pa
67
@@ -48,16 +49,19 @@ def file_parser_options(**kwargs):
4849 """
4950 return kwargs
5051
51-
52- def from_env (** kwargs ):
52+ # Constants for environment variable names
53+ INFLUX_HOST = "INFLUX_HOST"
54+ INFLUX_TOKEN = "INFLUX_TOKEN"
55+ INFLUX_DATABASE = "INFLUX_DATABASE"
56+ INFLUX_ORG = "INFLUX_ORG"
57+ def from_env (** kwargs : Any ) -> 'InfluxDBClient3' :
5358 """
5459 Create an instance of `InfluxDBClient3` using environment variables for configuration.
5560
5661 This function retrieves and validates the following required environment variables:
5762 - `INFLUX_HOST`: The hostname or IP address of the InfluxDB server.
5863 - `INFLUX_TOKEN`: The authentication token used for accessing the server.
5964 - `INFLUX_DATABASE`: The default database for the client operations.
60-
6165 And optional environment variable:
6266 - `INFLUX_ORG`: The organization associated with InfluxDB operations.
6367 Defaults to "default" if not set.
@@ -72,26 +76,26 @@ def from_env(**kwargs):
7276 :return: An initialized `InfluxDBClient3` instance.
7377 :raises ValueError: If any required environment variables are not set.
7478 """
75-
76- invalid_env_vars = []
77- host = os .getenv ("INFLUX_HOST" )
78- if host is None :
79- invalid_env_vars . append ( "INFLUX_HOST" )
80-
81- token = os . getenv ( "INFLUX_TOKEN" )
82- if token is None :
83- invalid_env_vars . append ( "INFLUX_TOKEN " )
84-
85- database = os .getenv ("INFLUX_DATABASE " )
86- if database is None :
87- invalid_env_vars . append ( "INFLUX_DATABASE" )
88-
89- org = os . getenv ( "INFLUX_ORG" )
90-
91- if len ( invalid_env_vars ) > 0 :
92- raise ValueError ( f"The following environment variables are None or empty: { ', ' . join ( invalid_env_vars ) } " )
93-
94- return InfluxDBClient3 ( host = host , token = token , database = database , org = org , ** kwargs )
79+ required_vars = {
80+ INFLUX_HOST : os . getenv ( INFLUX_HOST ),
81+ INFLUX_TOKEN : os .getenv (INFLUX_TOKEN ),
82+ INFLUX_DATABASE : os . getenv ( INFLUX_DATABASE )
83+ }
84+
85+ missing_vars = [ var for var , value in required_vars . items () if value is None or value == "" ]
86+ if missing_vars :
87+ raise ValueError ( f"Missing required environment variables: { ', ' . join ( missing_vars ) } " )
88+
89+ org = os .getenv (INFLUX_ORG , "default " )
90+
91+ return InfluxDBClient3 (
92+ host = required_vars [ INFLUX_HOST ],
93+ token = required_vars [ INFLUX_TOKEN ],
94+ database = required_vars [ INFLUX_DATABASE ],
95+ org = org ,
96+ ** kwargs
97+ )
98+
9599
96100
97101def _deep_merge (target , source ):
0 commit comments