@@ -60,15 +60,17 @@ class PyMeasures(PyObjects):
6060 `model.Measures.find('ratio')`.
6161 """
6262
63- def __init__ (self , objects , parent ) -> None :
63+ def __init__ (self , objects , parent = None ) -> None :
6464 """Extends init from `PyObjects`."""
6565 super ().__init__ (objects , parent )
6666
6767 def __call__ (self , * args , ** kwargs ):
6868 """Made `PyMeasures` just sends args through to `add_measure`."""
6969 return self .add_measure (* args , ** kwargs )
7070
71- def add_measure (self , name : str , expression : str , ** kwargs ) -> PyMeasure :
71+ def add_measure (
72+ self , name : str , expression : str , auto_save : bool = True , ** kwargs
73+ ) -> PyMeasure :
7274 """Add or replace measures from `PyMeasures` class.
7375
7476 Required is just `name` and `expression`.
@@ -98,6 +100,8 @@ def add_measure(self, name: str, expression: str, **kwargs) -> PyMeasure:
98100 Args:
99101 name (str): Name of the measure. Brackets ARE NOT required.
100102 expression (str): DAX expression for the measure.
103+ auto_save (bool, optional): Automatically save changes after measure creations.
104+ Defaults to `True`
101105 """
102106 if isinstance (self .parent ._object , Table ):
103107 table = self .parent
@@ -128,6 +132,8 @@ def add_measure(self, name: str, expression: str, **kwargs) -> PyMeasure:
128132 if new :
129133 measures = table .get_Measures ()
130134 measures .Add (new_measure )
131-
132- model .save_changes ()
133- return model .Measures [new_measure .Name ]
135+ if auto_save :
136+ model .save_changes ()
137+ return model .Measures [new_measure .Name ]
138+ else :
139+ return True
0 commit comments