@@ -771,12 +771,12 @@ def set_metric(self, df: pd.DataFrame):
771771
772772 def __init__ (
773773 self : T ,
774- name : str = '' ,
775- documentation : str = '' ,
774+ name : str ,
775+ documentation : str ,
776+ df : pd .DataFrame ,
776777 namespace : str = '' ,
777778 subsystem : str = '' ,
778779 unit : str = '' ,
779- df = None ,
780780 columns = None ,
781781 registry : Optional [CollectorRegistry ] = REGISTRY ,
782782 tag = 'report' ,
@@ -786,11 +786,15 @@ def __init__(
786786 Esta classe parte do pressuporto que a metrica é trocada com mais eficiencia do que ficar alterando apenas 1 valor
787787 o calculo pode ser feito em outro lugar e passar apenas a estrutura completo pronto em DataFrame
788788 """
789+ if df is None :
790+ raise ValueError ("df must be set" )
791+
789792 self ._name = _build_full_name (self ._type , name , namespace , subsystem , unit )
790793 if columns :
791794 self ._labelvalues = columns
792795 else :
793796 self ._labelvalues = df .columns
797+
794798 self ._labelnames = _validate_labelnames (self , self ._labelvalues )
795799 self ._labelvalues = tuple (None or ())
796800 self ._kwargs : Dict [str , Any ] = {}
@@ -837,20 +841,20 @@ def clear(self) -> None:
837841 with self ._lock :
838842 self ._metrics = {}
839843
840- def _samples (self ) -> Iterable [Sample ]:
841- if self ._is_parent ():
842- return self ._multi_samples ()
843- else :
844- return self ._child_samples ()
845-
846- def _multi_samples (self ) -> Iterable [Sample ]:
847- if 'pandas' not in vars (metrics ._encoder ):
848- with self ._lock :
849- metrics = self ._metrics .copy ()
850- for labels , metric in metrics .items ():
851- series_labels = list (zip (self ._labelnames , labels ))
852- for suffix , sample_labels , value , timestamp , exemplar in metric ._samples ():
853- yield Sample (suffix , dict (series_labels + list (sample_labels .items ())), value , timestamp , exemplar )
844+ # def _samples(self) -> Iterable[Sample]:
845+ # if self._is_parent():
846+ # return self._multi_samples()
847+ # else:
848+ # return self._child_samples()
849+
850+ # def _multi_samples(self) -> Iterable[Sample]:
851+ # if 'pandas' not in vars(metrics._encoder):
852+ # with self._lock:
853+ # metrics = self._metrics.copy()
854+ # for labels, metric in metrics.items():
855+ # series_labels = list(zip(self._labelnames, labels))
856+ # for suffix, sample_labels, value, timestamp, exemplar in metric._samples():
857+ # yield Sample(suffix, dict(series_labels + list(sample_labels.items())), value, timestamp, exemplar)
854858
855859 def _child_samples (self ) -> Iterable [Sample ]: # pragma: no cover
856860 raise NotImplementedError ('_child_samples() must be implemented by %r' % self )
0 commit comments