3838 validate_yaml_syntax ,
3939 yaml ,
4040)
41+ from ..v1 .core import (
42+ get_notnull_columns ,
43+ get_observable_replacement_id ,
44+ )
4145from ..v1 .distributions import *
42- from ..v1 .lint import is_valid_identifier
46+ from ..v1 .lint import is_scalar_float , is_valid_identifier
4347from ..v1 .math import petab_math_str , sympify_petab
4448from ..v1 .models .model import Model , model_factory
4549from ..v1 .yaml import get_path_prefix
@@ -124,7 +128,7 @@ def _valid_petab_id(v: str) -> str:
124128 return v
125129
126130
127- def _valid_petab_id_or_none (v : str ) -> str :
131+ def _valid_petab_id_or_none (v : str ) -> str | None :
128132 """Field validator for optional PEtab IDs."""
129133 if not v :
130134 return None
@@ -264,7 +268,7 @@ def __getitem__(self, id_: str) -> T:
264268
265269 @classmethod
266270 @abstractmethod
267- def from_df (cls , df : pd .DataFrame ) -> BaseTable [T ]:
271+ def from_df (cls , df : pd .DataFrame , ** kwargs ) -> BaseTable [T ]:
268272 """Create a table from a DataFrame."""
269273 pass
270274
@@ -2381,9 +2385,6 @@ def has_timepoint_specific_overrides(
23812385 if not self .measurements :
23822386 return False
23832387
2384- from ..v1 .core import get_notnull_columns
2385- from ..v1 .lint import is_scalar_float
2386-
23872388 measurement_df = self .measurement_df
23882389
23892390 # mask numeric values
@@ -2556,11 +2557,6 @@ def _get_flattened_id_mappings(
25562557 :returns:
25572558 A mapping from flattened ID to original observable ID.
25582559 """
2559- from ..v1 .core import (
2560- get_notnull_columns ,
2561- get_observable_replacement_id ,
2562- )
2563-
25642560 groupvars = get_notnull_columns (
25652561 petab_problem .measurement_df , _POSSIBLE_GROUPVARS_FLATTENED_PROBLEM
25662562 )
@@ -2607,10 +2603,6 @@ def flatten_timepoint_specific_output_overrides(
26072603 :param petab_problem:
26082604 PEtab problem to work on. Modified in place.
26092605 """
2610- from ..v1 .core import (
2611- get_notnull_columns ,
2612- get_observable_replacement_id ,
2613- )
26142606
26152607 # Update observables
26162608 def create_new_observable (old_id , new_id ) -> Observable :
@@ -2624,8 +2616,8 @@ def create_new_observable(old_id, new_id) -> Observable:
26242616 observable .id = new_id
26252617
26262618 # update placeholders
2627- old_obs_placeholders = observable .observable_placeholders or []
2628- old_noise_placeholders = observable .noise_placeholders or []
2619+ old_obs_placeholders = observable .observable_placeholders
2620+ old_noise_placeholders = observable .noise_placeholders
26292621 suffix = new_id .removeprefix (old_id )
26302622 observable .observable_placeholders = [
26312623 f"{ sym .name } { suffix } " for sym in observable .observable_placeholders
@@ -2684,7 +2676,7 @@ def create_new_observable(old_id, new_id) -> Observable:
26842676
26852677def unflatten_simulation_df (
26862678 simulation_df : pd .DataFrame ,
2687- petab_problem : petab . problem . Problem ,
2679+ petab_problem : Problem ,
26882680) -> pd .DataFrame :
26892681 """Unflatten simulations from a flattened PEtab problem.
26902682
0 commit comments