@@ -241,24 +241,26 @@ def __attrs_post_init__(self):
241
241
raise ValueError ("Metadata should not contain a key 'Dataset' when using uploaded dataset (data is a string)." )
242
242
self .metadata ["Dataset" ] = self .data
243
243
244
- def _gen_run_name_if_none (self , name : Optional [str ]):
244
+ def _gen_run_name_if_none (self , name : Optional [str ], prefix : Optional [ str ] = None ):
245
245
if not name :
246
- self .run_name = gen_random_name ()
246
+ new_name = gen_random_name ()
247
+ self .run_name = f"{ prefix } _{ new_name } " if prefix else new_name
247
248
print (f"Run name set to: { self .run_name } , since a name was not provided." )
248
249
else :
249
- self .run_name = name
250
+ self .run_name = f" { prefix } _ { name } " if prefix else name
250
251
251
- def run (self , run_name : Optional [str ] = None ) -> None :
252
+ def run (self , run_name : Optional [str ] = None , prefix : Optional [ str ] = None ) -> None :
252
253
"""Run the experiment and save the results to DVC.
253
254
param run_name: The run name of the experiment. This name must be unique across experiment runs.
254
255
If no run name is provided a memorable name will be generated automatically.
256
+ param prefix: The prefix to use for the run name. This is useful for grouping runs together.
255
257
"""
256
258
if is_logging_disabled ():
257
259
print ("Parea logging is turned off. Experiment can't be run without logging. Set env var TURN_OFF_PAREA_LOGGING to False to enable." )
258
260
return
259
261
260
262
try :
261
- self ._gen_run_name_if_none (run_name )
263
+ self ._gen_run_name_if_none (run_name , prefix )
262
264
experiment_schema : ExperimentSchema = self .p .create_experiment (CreateExperimentRequest (name = self .experiment_name , run_name = self .run_name , metadata = self .metadata ))
263
265
self .experiment_uuid = experiment_schema .uuid
264
266
self .experiment_stats = asyncio .run (
@@ -281,17 +283,18 @@ def run(self, run_name: Optional[str] = None) -> None:
281
283
traceback .print_exc ()
282
284
print (f"Error running experiment: { e } " )
283
285
284
- async def arun (self , run_name : Optional [str ] = None ) -> None :
286
+ async def arun (self , run_name : Optional [str ] = None , prefix : Optional [ str ] = None ) -> None :
285
287
"""Run the experiment and save the results to DVC.
286
288
param run_name: The run name of the experiment. This name must be unique across experiment runs.
287
289
If no run name is provided a memorable name will be generated automatically.
290
+ param prefix: The prefix to use for the run name. This is useful for grouping runs together.
288
291
"""
289
292
if is_logging_disabled ():
290
293
print ("Parea logging is turned off. Experiment can't be run without logging. Set env var TURN_OFF_PAREA_LOGGING to False to enable." )
291
294
return
292
295
293
296
try :
294
- self ._gen_run_name_if_none (run_name )
297
+ self ._gen_run_name_if_none (run_name , prefix )
295
298
experiment_schema : ExperimentSchema = await self .p .acreate_experiment (
296
299
CreateExperimentRequest (name = self .experiment_name , run_name = self .run_name , metadata = self .metadata )
297
300
)
0 commit comments