@@ -60,9 +60,7 @@ def _check_df(df: pd.DataFrame, req_cols: Iterable, name: str) -> None:
6060 Raises:
6161 AssertionError: if a column is missing
6262 """
63- cols_set = df .columns .values
64- missing_cols = set (req_cols ) - set (cols_set )
65- if missing_cols :
63+ if missing_cols := set (req_cols ) - set (df .columns .values ):
6664 raise AssertionError (
6765 f"DataFrame { name } requires the columns { missing_cols } ." )
6866
@@ -105,7 +103,7 @@ def check_condition_df(
105103 _check_df (df , req_cols , "condition" )
106104
107105 # Check for correct index
108- if not df .index .name = = CONDITION_ID :
106+ if df .index .name ! = CONDITION_ID :
109107 raise AssertionError (
110108 f"Condition table has wrong index { df .index .name } ."
111109 f"expected { CONDITION_ID } ." )
@@ -161,14 +159,9 @@ def check_measurement_df(df: pd.DataFrame,
161159 df [column_name ].values , column_name )
162160
163161 if observable_df is not None :
164- # Check all observables are defined
165- observables_defined = set (observable_df .index .values )
166- observables_used = set (df [OBSERVABLE_ID ])
167- observables_undefined = observables_used - observables_defined
168- if observables_undefined :
169- raise ValueError (f"Observables { observables_undefined } used in "
170- "measurement table but not defined in "
171- "observables table." )
162+ assert_measured_observables_defined (df , observable_df )
163+ measurements .assert_overrides_match_parameter_count (
164+ df , observable_df )
172165
173166 if OBSERVABLE_TRANSFORMATION in observable_df :
174167 # Check for positivity of measurements in case of
@@ -183,11 +176,6 @@ def check_measurement_df(df: pd.DataFrame,
183176 f'transformation { trafo } must be '
184177 f'positive, but { measurement } <= 0.' )
185178
186- if observable_df is not None :
187- assert_measured_observables_defined (df , observable_df )
188- measurements .assert_overrides_match_parameter_count (
189- df , observable_df )
190-
191179 assert_measurements_not_null (df )
192180 assert_measurements_numeric (df )
193181
@@ -213,7 +201,7 @@ def check_parameter_df(
213201
214202 _check_df (df , PARAMETER_DF_REQUIRED_COLS [1 :], "parameter" )
215203
216- if not df .index .name = = PARAMETER_ID :
204+ if df .index .name ! = PARAMETER_ID :
217205 raise AssertionError (
218206 f"Parameter table has wrong index { df .index .name } ."
219207 f"expected { PARAMETER_ID } ." )
@@ -239,10 +227,11 @@ def check_parameter_df(
239227 f"but column { NOMINAL_VALUE } is missing." )
240228 try :
241229 df .loc [non_estimated_par_ids , NOMINAL_VALUE ].apply (float )
242- except ValueError :
243- raise AssertionError ("Expected numeric values for "
244- f"`{ NOMINAL_VALUE } ` in parameter table for "
245- "all non-estimated parameters." )
230+ except ValueError as e :
231+ raise AssertionError (
232+ f"Expected numeric values for `{ NOMINAL_VALUE } ` in parameter "
233+ "table for all non-estimated parameters."
234+ ) from e
246235
247236 assert_parameter_id_is_string (df )
248237 assert_parameter_scale_is_valid (df )
@@ -292,8 +281,9 @@ def check_observable_df(observable_df: pd.DataFrame) -> None:
292281 try :
293282 sp .sympify (obs )
294283 except sp .SympifyError as e :
295- raise AssertionError (f"Cannot parse expression '{ obs } ' "
296- f"for observable { row .Index } : { e } " )
284+ raise AssertionError (
285+ f"Cannot parse expression '{ obs } ' "
286+ f"for observable { row .Index } : { e } " ) from e
297287
298288 noise = getattr (row , NOISE_FORMULA )
299289 try :
@@ -304,9 +294,10 @@ def check_observable_df(observable_df: pd.DataFrame) -> None:
304294 raise AssertionError (f"No or non-finite { NOISE_FORMULA } "
305295 f"given for observable { row .Index } ." )
306296 except sp .SympifyError as e :
307- raise AssertionError (f"Cannot parse expression '{ noise } ' "
308- f"for noise model for observable "
309- f"{ row .Index } : { e } " )
297+ raise AssertionError (
298+ f"Cannot parse expression '{ noise } ' "
299+ f"for noise model for observable " f"{ row .Index } : { e } "
300+ ) from e
310301
311302
312303def assert_all_parameters_present_in_parameter_df (
@@ -353,7 +344,8 @@ def assert_all_parameters_present_in_parameter_df(
353344
354345def assert_measured_observables_defined (
355346 measurement_df : pd .DataFrame ,
356- observable_df : pd .DataFrame ) -> None :
347+ observable_df : pd .DataFrame
348+ ) -> None :
357349 """Check if all observables in the measurement table have been defined in
358350 the observable table
359351
@@ -367,12 +359,11 @@ def assert_measured_observables_defined(
367359
368360 used_observables = set (measurement_df [OBSERVABLE_ID ].values )
369361 defined_observables = set (observable_df .index .values )
370- undefined_observables = used_observables - defined_observables
371-
372- if undefined_observables :
362+ if undefined_observables := (used_observables - defined_observables ):
373363 raise AssertionError (
374- "Undefined observables in measurement file: "
375- f"{ undefined_observables } ." )
364+ f"Observables { undefined_observables } used in "
365+ "measurement table but not defined in observables table."
366+ )
376367
377368
378369def condition_table_is_parameter_free (condition_df : pd .DataFrame ) -> bool :
@@ -547,9 +538,10 @@ def assert_parameter_prior_parameters_are_valid(
547538 pars = tuple (
548539 float (val ) for val in pars_str .split (PARAMETER_SEPARATOR )
549540 )
550- except ValueError :
541+ except ValueError as e :
551542 raise AssertionError (
552- f"Could not parse prior parameters '{ pars_str } '." )
543+ f"Could not parse prior parameters '{ pars_str } '." ) from e
544+
553545 # all distributions take 2 parameters
554546 if len (pars ) != 2 :
555547 raise AssertionError (
@@ -933,9 +925,7 @@ def assert_measurement_conditions_present_in_condition_table(
933925 used_conditions |= \
934926 set (measurement_df [PREEQUILIBRATION_CONDITION_ID ].dropna ().values )
935927 available_conditions = set (condition_df .index .values )
936- missing_conditions = used_conditions - available_conditions
937-
938- if missing_conditions :
928+ if missing_conditions := (used_conditions - available_conditions ):
939929 raise AssertionError ("Measurement table references conditions that "
940930 "are not specified in the condition table: "
941931 + str (missing_conditions ))
0 commit comments