2828from dreadnode .artifact .storage import ArtifactStorage
2929from dreadnode .artifact .tree_builder import ArtifactTreeBuilder , DirectoryNode
3030from dreadnode .constants import MAX_INLINE_OBJECT_BYTES
31- from dreadnode .metric import Metric , MetricDict , MetricMode
31+ from dreadnode .metric import Metric , MetricAggMode , MetricDict
3232from dreadnode .object import Object , ObjectRef , ObjectUri , ObjectVal
3333from dreadnode .serialization import Serialized , serialize
3434from dreadnode .types import UNSET , AnyDict , JsonDict , JsonValue , Unset
@@ -526,9 +526,8 @@ def log_metric(
526526 step : int = 0 ,
527527 origin : t .Any | None = None ,
528528 timestamp : datetime | None = None ,
529- mode : MetricMode = "direct" ,
530- ) -> None :
531- ...
529+ mode : MetricAggMode | None = None ,
530+ ) -> None : ...
532531
533532 @t .overload
534533 def log_metric (
@@ -537,9 +536,8 @@ def log_metric(
537536 value : Metric ,
538537 * ,
539538 origin : t .Any | None = None ,
540- mode : MetricMode = "direct" ,
541- ) -> None :
542- ...
539+ mode : MetricAggMode | None = None ,
540+ ) -> None : ...
543541
544542 def log_metric (
545543 self ,
@@ -549,7 +547,7 @@ def log_metric(
549547 step : int = 0 ,
550548 origin : t .Any | None = None ,
551549 timestamp : datetime | None = None ,
552- mode : MetricMode = "direct" ,
550+ mode : MetricAggMode | None = None ,
553551 ) -> None :
554552 metric = (
555553 value
@@ -566,7 +564,9 @@ def log_metric(
566564 metric .attributes [METRIC_ATTRIBUTE_SOURCE_HASH ] = origin_hash
567565
568566 metrics = self ._metrics .setdefault (key , [])
569- metrics .append (metric .apply_mode (mode , metrics ))
567+ if mode is not None :
568+ metric = metric .apply_mode (mode , metrics )
569+ metrics .append (metric )
570570
571571 @property
572572 def outputs (self ) -> AnyDict :
@@ -739,9 +739,8 @@ def log_metric(
739739 step : int = 0 ,
740740 origin : t .Any | None = None ,
741741 timestamp : datetime | None = None ,
742- mode : MetricMode = "direct" ,
743- ) -> None :
744- ...
742+ mode : MetricAggMode | None = None ,
743+ ) -> None : ...
745744
746745 @t .overload
747746 def log_metric (
@@ -750,9 +749,8 @@ def log_metric(
750749 value : Metric ,
751750 * ,
752751 origin : t .Any | None = None ,
753- mode : MetricMode = "direct" ,
754- ) -> None :
755- ...
752+ mode : MetricAggMode | None = None ,
753+ ) -> None : ...
756754
757755 def log_metric (
758756 self ,
@@ -762,7 +760,7 @@ def log_metric(
762760 step : int = 0 ,
763761 origin : t .Any | None = None ,
764762 timestamp : datetime | None = None ,
765- mode : MetricMode = "direct" ,
763+ mode : MetricAggMode | None = None ,
766764 ) -> None :
767765 metric = (
768766 value
@@ -779,7 +777,9 @@ def log_metric(
779777 metric .attributes [METRIC_ATTRIBUTE_SOURCE_HASH ] = origin_hash
780778
781779 metrics = self ._metrics .setdefault (key , [])
782- metrics .append (metric .apply_mode (mode , metrics ))
780+ if mode is not None :
781+ metric = metric .apply_mode (mode , metrics )
782+ metrics .append (metric )
783783
784784 # For every metric we log, also log it to the run
785785 # with our `label` as a prefix.
0 commit comments