@@ -324,20 +324,19 @@ class ExperimentPeriod(BaseModel):
324324 """
325325
326326 start : float = Field (alias = C .TIME )
327- condition_ids : list [ str ] = Field (alias = C .CONDITION_ID )
327+ condition_id : str = Field (alias = C .CONDITION_ID )
328328
329329 class Config :
330330 populate_by_name = True
331331
332- @field_validator ("condition_ids " )
332+ @field_validator ("condition_id " )
333333 @classmethod
334- def validate_id (cls , v ):
335- for condition_id in v :
336- if not condition_id :
337- raise ValueError ("ID must not be empty." )
338- if not is_valid_identifier (condition_id ):
339- raise ValueError (f"Invalid ID: { condition_id } " )
340- return v
334+ def validate_id (cls , condition_id ):
335+ if not condition_id :
336+ raise ValueError ("ID must not be empty." )
337+ if not is_valid_identifier (condition_id ):
338+ raise ValueError (f"Invalid ID: { condition_id } " )
339+ return condition_id
341340
342341
343342class Experiment (BaseModel ):
@@ -377,14 +376,12 @@ def from_dataframe(cls, df: pd.DataFrame) -> ExperimentsTable:
377376
378377 experiments = []
379378 for experiment_id , cur_exp_df in df .groupby (C .EXPERIMENT_ID ):
380- periods = []
381- for time , cur_period_df in cur_exp_df .groupby (C .TIME ):
382- period_conditions = list (cur_period_df [C .CONDITION_ID ])
383- periods .append (
384- ExperimentPeriod (
385- start = time , condition_ids = period_conditions
386- )
379+ periods = [
380+ ExperimentPeriod (
381+ start = row [C .TIME ], condition_id = row [C .CONDITION_ID ]
387382 )
383+ for _ , row in cur_exp_df .iterrows ()
384+ ]
388385 experiments .append (Experiment (id = experiment_id , periods = periods ))
389386
390387 return cls (experiments = experiments )
0 commit comments