@@ -171,7 +171,10 @@ def __init__(
171171 emissions_endpoint : Optional [str ] = _sentinel ,
172172 experiment_id : Optional [str ] = _sentinel ,
173173 experiment_name : Optional [str ] = _sentinel ,
174- co2_signal_api_token : Optional [str ] = _sentinel ,
174+ electricitymaps_api_token : Optional [str ] = _sentinel ,
175+ co2_signal_api_token : Optional [
176+ str
177+ ] = _sentinel , # Deprecated, use electricitymaps_api_token
175178 tracking_mode : Optional [str ] = _sentinel ,
176179 log_level : Optional [Union [int , str ]] = _sentinel ,
177180 on_csv_write : Optional [str ] = _sentinel ,
@@ -221,8 +224,9 @@ def __init__(
221224 data.
222225 :param experiment_id: Id of the experiment.
223226 :param experiment_name: Label of the experiment
224- :param co2_signal_api_token: API token for co2signal.com (requires sign-up for
225- free beta)
227+ :param electricitymaps_api_token: API token for electricitymaps.com (formerly co2signal.com)
228+ :param co2_signal_api_token: [DEPRECATED] Use electricitymaps_api_token instead.
229+ Old parameter name for backward compatibility.
226230 :param tracking_mode: One of "process" or "machine" in order to measure the
227231 power consumption due to the entire machine or to try and
228232 isolate the tracked processe's in isolation.
@@ -268,7 +272,31 @@ def __init__(
268272 self ._set_from_conf (api_call_interval , "api_call_interval" , 8 , int )
269273 self ._set_from_conf (api_endpoint , "api_endpoint" , "https://api.codecarbon.io" )
270274 self ._set_from_conf (api_key , "api_key" , "api_key" )
271- self ._set_from_conf (co2_signal_api_token , "co2_signal_api_token" )
275+
276+ # Handle backward compatibility for co2_signal_api_token
277+ if co2_signal_api_token is not _sentinel :
278+ logger .warning (
279+ "Parameter 'co2_signal_api_token' is deprecated and will be removed in a future version. "
280+ "Please use 'electricitymaps_api_token' instead."
281+ )
282+ if electricitymaps_api_token is _sentinel :
283+ electricitymaps_api_token = co2_signal_api_token
284+
285+ self ._set_from_conf (electricitymaps_api_token , "electricitymaps_api_token" )
286+ # Also check for old config name for backward compatibility
287+ if (
288+ not hasattr (self , "_electricitymaps_api_token" )
289+ or self ._electricitymaps_api_token is None
290+ ):
291+ self ._set_from_conf (_sentinel , "co2_signal_api_token" , prevent_setter = True )
292+ old_token = self ._external_conf .get ("co2_signal_api_token" )
293+ if old_token :
294+ logger .warning (
295+ "Configuration parameter 'co2_signal_api_token' is deprecated. "
296+ "Please update your config to use 'electricitymaps_api_token' instead."
297+ )
298+ self ._electricitymaps_api_token = old_token
299+
272300 self ._set_from_conf (emissions_endpoint , "emissions_endpoint" )
273301 self ._set_from_conf (experiment_name , "experiment_name" , "base" )
274302 self ._set_from_conf (gpu_ids , "gpu_ids" )
@@ -378,7 +406,7 @@ def __init__(
378406 self ._conf ["provider" ] = cloud .provider
379407
380408 self ._emissions : Emissions = Emissions (
381- self ._data_source , self ._co2_signal_api_token
409+ self ._data_source , self ._electricitymaps_api_token
382410 )
383411 self ._init_output_methods (api_key = self ._api_key )
384412
@@ -956,7 +984,7 @@ def __init__(
956984 See https://github.com/mlco2/codecarbon/
957985 blob/master/codecarbon/data/cloud/impact.csv
958986 for a list of cloud regions.
959- :param country_2letter_iso_code: For use with the CO2Signal emissions API.
987+ :param country_2letter_iso_code: For use with the Electricity Maps emissions API.
960988 See http://api.electricitymap.org/v3/zones for
961989 a list of codes and their corresponding
962990 locations.
@@ -1095,7 +1123,10 @@ def track_emissions(
10951123 emissions_endpoint : Optional [str ] = _sentinel ,
10961124 experiment_id : Optional [str ] = _sentinel ,
10971125 experiment_name : Optional [str ] = _sentinel ,
1098- co2_signal_api_token : Optional [str ] = _sentinel ,
1126+ electricitymaps_api_token : Optional [str ] = _sentinel ,
1127+ co2_signal_api_token : Optional [
1128+ str
1129+ ] = _sentinel , # Deprecated, use electricitymaps_api_token
10991130 tracking_mode : Optional [str ] = _sentinel ,
11001131 log_level : Optional [Union [int , str ]] = _sentinel ,
11011132 on_csv_write : Optional [str ] = _sentinel ,
@@ -1150,8 +1181,9 @@ def track_emissions(
11501181 data.
11511182 :param experiment_id: Id of the experiment.
11521183 :param experiment_name: Label of the experiment
1153- :param co2_signal_api_token: API token for co2signal.com (requires sign-up for
1154- free beta)
1184+ :param electricitymaps_api_token: API token for electricitymaps.com (formerly co2signal.com)
1185+ :param co2_signal_api_token: [DEPRECATED] Use electricitymaps_api_token instead.
1186+ Old parameter name for backward compatibility.
11551187 :param tracking_mode: One of "process" or "machine" in order to measure the
11561188 power consumption due to the entire machine or to try and
11571189 isolate the tracked processe's in isolation.
@@ -1180,7 +1212,7 @@ def track_emissions(
11801212 See https://github.com/mlco2/codecarbon/
11811213 blob/master/codecarbon/data/cloud/impact.csv
11821214 for a list of cloud regions.
1183- :param country_2letter_iso_code: For use with the CO2Signal emissions API.
1215+ :param country_2letter_iso_code: For use with the Electricity Maps emissions API.
11841216 See http://api.electricitymap.org/v3/zones for
11851217 a list of codes and their corresponding
11861218 locations.
@@ -1199,6 +1231,17 @@ def _decorate(fn: Callable):
11991231 @wraps (fn )
12001232 def wrapped_fn (* args , ** kwargs ):
12011233 fn_result = None
1234+
1235+ # Handle backward compatibility for co2_signal_api_token
1236+ _electricitymaps_token = electricitymaps_api_token
1237+ if co2_signal_api_token is not _sentinel :
1238+ logger .warning (
1239+ "Parameter 'co2_signal_api_token' is deprecated and will be removed in a future version. "
1240+ "Please use 'electricitymaps_api_token' instead."
1241+ )
1242+ if electricitymaps_api_token is _sentinel :
1243+ _electricitymaps_token = co2_signal_api_token
1244+
12021245 if offline and offline is not _sentinel :
12031246 if (country_iso_code is None or country_iso_code is _sentinel ) and (
12041247 cloud_provider is None or cloud_provider is _sentinel
@@ -1217,7 +1260,7 @@ def wrapped_fn(*args, **kwargs):
12171260 prometheus_url = prometheus_url ,
12181261 output_handlers = output_handlers ,
12191262 gpu_ids = gpu_ids ,
1220- co2_signal_api_token = co2_signal_api_token ,
1263+ electricitymaps_api_token = _electricitymaps_token ,
12211264 tracking_mode = tracking_mode ,
12221265 log_level = log_level ,
12231266 on_csv_write = on_csv_write ,
@@ -1256,7 +1299,7 @@ def wrapped_fn(*args, **kwargs):
12561299 emissions_endpoint = emissions_endpoint ,
12571300 experiment_id = experiment_id ,
12581301 experiment_name = experiment_name ,
1259- co2_signal_api_token = co2_signal_api_token ,
1302+ electricitymaps_api_token = _electricitymaps_token ,
12601303 tracking_mode = tracking_mode ,
12611304 log_level = log_level ,
12621305 on_csv_write = on_csv_write ,
0 commit comments