diff --git a/simvue/api/objects/artifact/file.py b/simvue/api/objects/artifact/file.py index 54f0a8cb..7b2ce312 100644 --- a/simvue/api/objects/artifact/file.py +++ b/simvue/api/objects/artifact/file.py @@ -87,7 +87,7 @@ def new( if offline: return _artifact - with open(file_path, "rb") as out_f: + with open(_file_orig_path, "rb") as out_f: _artifact._upload(file=out_f) return _artifact diff --git a/simvue/api/objects/base.py b/simvue/api/objects/base.py index 84de6e1e..f3b607ef 100644 --- a/simvue/api/objects/base.py +++ b/simvue/api/objects/base.py @@ -37,6 +37,9 @@ except ImportError: from typing_extensions import Self +# Need to use this inside of Generator typing to fix bug present in Python 3.10 - see issue #745 +T = typing.TypeVar("T", bound="SimvueObject") + def staging_check(member_func: typing.Callable) -> typing.Callable: """Decorator for checking if requested attribute has uncommitted changes""" @@ -318,7 +321,7 @@ def get( count: pydantic.PositiveInt | None = None, offset: pydantic.NonNegativeInt | None = None, **kwargs, - ) -> typing.Generator[tuple[str, Self | None], None, None]: + ) -> typing.Generator[tuple[str, T | None], None, None]: _class_instance = cls(_read_only=True, _local=True) if (_data := cls._get_all_objects(count, offset, **kwargs).get("data")) is None: raise RuntimeError( diff --git a/simvue/eco.py b/simvue/eco.py index 50db508f..76e2d694 100644 --- a/simvue/eco.py +++ b/simvue/eco.py @@ -35,11 +35,11 @@ def out( try: self._simvue_run.update_metadata( { - "codecarbon": { + "sustainability": { "country": total.country_name, "country_iso_code": total.country_iso_code, "region": total.region, - "version": total.codecarbon_version, + "codecarbon_version": total.codecarbon_version, } } ) @@ -57,10 +57,10 @@ def out( try: self._simvue_run.log_metrics( metrics={ - "codecarbon.total.emissions": total.emissions, - "codecarbon.total.energy_consumed": total.energy_consumed, - "codecarbon.delta.emissions": delta.emissions, - "codecarbon.delta.energy_consumed": delta.energy_consumed, + "sustainability.emissions.total": total.emissions, + "sustainability.energy_consumed.total": total.energy_consumed, + "sustainability.emissions.delta": delta.emissions, + "sustainability.energy_consumed.delta": delta.energy_consumed, }, step=self._metrics_step, timestamp=simvue_timestamp(_cc_timestamp), diff --git a/tests/functional/test_run_class.py b/tests/functional/test_run_class.py index e4f6f55a..2e9a8b1a 100644 --- a/tests/functional/test_run_class.py +++ b/tests/functional/test_run_class.py @@ -58,8 +58,8 @@ def test_run_with_emissions() -> None: _metric_names = [item[0] for item in _run.metrics] client = sv_cl.Client() for _metric in ["emissions", "energy_consumed"]: - _total_metric_name = f'codecarbon.total.{_metric}' - _delta_metric_name = f'codecarbon.delta.{_metric}' + _total_metric_name = f'sustainability.{_metric}.total' + _delta_metric_name = f'sustainability.{_metric}.delta' assert _total_metric_name in _metric_names assert _delta_metric_name in _metric_names _metric_values = client.get_metric_values(metric_names=[_total_metric_name, _delta_metric_name], xaxis="time", output_format="dataframe", run_ids=[run_created.id])