From 8974d0608072bd0d5c7e97022bfa91f30d77f6a1 Mon Sep 17 00:00:00 2001 From: benoit-cty <4-benoit-cty@users.noreply.git.leximpact.dev> Date: Thu, 1 May 2025 08:30:39 +0200 Subject: [PATCH 1/3] Fix #830 --- codecarbon/emissions_tracker.py | 18 +++++++++++------- tests/test_config.py | 4 ++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/codecarbon/emissions_tracker.py b/codecarbon/emissions_tracker.py index 24ee26c4f..cf0214fcb 100644 --- a/codecarbon/emissions_tracker.py +++ b/codecarbon/emissions_tracker.py @@ -123,14 +123,18 @@ def _set_from_conf( # no value provided in the constructor for `name`: check in the conf # (using the provided default value) value = self._external_conf.get(name, default) - - # parse to `return_type` if needed - if return_type is not None: + if value is not None and return_type is not None: if return_type is bool: value = str(value).lower() == "true" else: assert callable(return_type) - value = return_type(value) + try: + value = return_type(value) + except ValueError: + logger.error( + f"CONFIG - Value for '{name}' must be of type '{return_type.__name__}'. Got '{value}' instead. It will be ignored." + ) + value = None # Check conf if name == "output_dir": if not os.path.exists(value): @@ -280,10 +284,10 @@ def __init__( self._set_from_conf(tracking_mode, "tracking_mode", "machine") self._set_from_conf(on_csv_write, "on_csv_write", "append") self._set_from_conf(logger_preamble, "logger_preamble", "") - self._set_from_conf(force_cpu_power, "force_cpu_power") - self._set_from_conf(force_ram_power, "force_ram_power") + self._set_from_conf(force_cpu_power, "force_cpu_power", None, float) + self._set_from_conf(force_ram_power, "force_ram_power", None, float) self._set_from_conf(pue, "pue", 1.0, float) - self._set_from_conf(force_mode_cpu_load, "force_mode_cpu_load", False) + self._set_from_conf(force_mode_cpu_load, "force_mode_cpu_load", False, bool) self._set_from_conf( experiment_id, "experiment_id", "5b0fa12a-3dd7-45bb-9766-cc326314d9f1" ) diff --git a/tests/test_config.py b/tests/test_config.py index 14f2fae73..3721a6e4d 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -163,6 +163,8 @@ def test_full_hierarchy(self): """\ [codecarbon] measure_power_secs=10 + force_cpu_power=toto + force_ram_power=50.5 output_dir=ERROR:not overwritten save_to_file=ERROR:not overwritten """ @@ -184,6 +186,8 @@ def test_full_hierarchy(self): project_name="test-project", co2_signal_api_token="signal-token" ) self.assertEqual(tracker._measure_power_secs, 10) + self.assertEqual(tracker._force_cpu_power, None) + self.assertEqual(tracker._force_ram_power, 50.5) self.assertEqual(tracker._output_dir, "/success/overwritten") self.assertEqual(tracker._emissions_endpoint, "http://testhost:2000") self.assertEqual(tracker._gpu_ids, [0, 1]) From 4d5b0935fce4d606faa123e31354cf96657388cc Mon Sep 17 00:00:00 2001 From: Benoit Courty <6603048+benoit-cty@users.noreply.github.com> Date: Thu, 1 May 2025 08:35:42 +0200 Subject: [PATCH 2/3] Update codecarbon/emissions_tracker.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- codecarbon/emissions_tracker.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codecarbon/emissions_tracker.py b/codecarbon/emissions_tracker.py index cf0214fcb..9b4294d73 100644 --- a/codecarbon/emissions_tracker.py +++ b/codecarbon/emissions_tracker.py @@ -130,7 +130,7 @@ def _set_from_conf( assert callable(return_type) try: value = return_type(value) - except ValueError: + except (ValueError, TypeError): logger.error( f"CONFIG - Value for '{name}' must be of type '{return_type.__name__}'. Got '{value}' instead. It will be ignored." ) From 7780c9696ca2d6f00bc5983115f8f420868d240c Mon Sep 17 00:00:00 2001 From: benoit-cty <4-benoit-cty@users.noreply.git.leximpact.dev> Date: Thu, 1 May 2025 08:47:56 +0200 Subject: [PATCH 3/3] bump --- codecarbon/_version.py | 2 +- docs/.buildinfo | 2 +- docs/_static/documentation_options.js | 2 +- docs/advanced_installation.html | 4 ++-- docs/api.html | 4 ++-- docs/comet.html | 4 ++-- docs/edit/conf.py | 2 +- docs/examples.html | 4 ++-- docs/faq.html | 4 ++-- docs/genindex.html | 4 ++-- docs/index.html | 4 ++-- docs/installation.html | 4 ++-- docs/methodology.html | 4 ++-- docs/model_examples.html | 4 ++-- docs/motivation.html | 4 ++-- docs/output.html | 4 ++-- docs/parameters.html | 4 ++-- docs/search.html | 4 ++-- docs/test_on_scaleway.html | 4 ++-- docs/to_logger.html | 4 ++-- docs/usage.html | 4 ++-- docs/visualize.html | 4 ++-- pyproject.toml | 2 +- 23 files changed, 41 insertions(+), 41 deletions(-) diff --git a/codecarbon/_version.py b/codecarbon/_version.py index 528787cfc..055276878 100644 --- a/codecarbon/_version.py +++ b/codecarbon/_version.py @@ -1 +1 @@ -__version__ = "3.0.0" +__version__ = "3.0.1" diff --git a/docs/.buildinfo b/docs/.buildinfo index 3e62a9af1..037f452e7 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file records the configuration used when building these files. When it is not found, a full rebuild will be done. -config: d75eb8ce15708524ae1fb27acec993bc +config: efdde624c3e18e32d8a147d48b8c5ee5 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js index e1ef608cd..12d3d03c1 100644 --- a/docs/_static/documentation_options.js +++ b/docs/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '3.0.0', + VERSION: '3.0.1', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/advanced_installation.html b/docs/advanced_installation.html index 2491f629d..9f2d6749f 100644 --- a/docs/advanced_installation.html +++ b/docs/advanced_installation.html @@ -6,14 +6,14 @@ -