@@ -241,24 +241,26 @@ def __attrs_post_init__(self):
241241 raise ValueError ("Metadata should not contain a key 'Dataset' when using uploaded dataset (data is a string)." )
242242 self .metadata ["Dataset" ] = self .data
243243
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 ):
245245 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
247248 print (f"Run name set to: { self .run_name } , since a name was not provided." )
248249 else :
249- self .run_name = name
250+ self .run_name = f" { prefix } _ { name } " if prefix else name
250251
251- def run (self , run_name : Optional [str ] = None ) -> None :
252+ def run (self , run_name : Optional [str ] = None , prefix : Optional [ str ] = None ) -> None :
252253 """Run the experiment and save the results to DVC.
253254 param run_name: The run name of the experiment. This name must be unique across experiment runs.
254255 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.
255257 """
256258 if is_logging_disabled ():
257259 print ("Parea logging is turned off. Experiment can't be run without logging. Set env var TURN_OFF_PAREA_LOGGING to False to enable." )
258260 return
259261
260262 try :
261- self ._gen_run_name_if_none (run_name )
263+ self ._gen_run_name_if_none (run_name , prefix )
262264 experiment_schema : ExperimentSchema = self .p .create_experiment (CreateExperimentRequest (name = self .experiment_name , run_name = self .run_name , metadata = self .metadata ))
263265 self .experiment_uuid = experiment_schema .uuid
264266 self .experiment_stats = asyncio .run (
@@ -281,17 +283,18 @@ def run(self, run_name: Optional[str] = None) -> None:
281283 traceback .print_exc ()
282284 print (f"Error running experiment: { e } " )
283285
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 :
285287 """Run the experiment and save the results to DVC.
286288 param run_name: The run name of the experiment. This name must be unique across experiment runs.
287289 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.
288291 """
289292 if is_logging_disabled ():
290293 print ("Parea logging is turned off. Experiment can't be run without logging. Set env var TURN_OFF_PAREA_LOGGING to False to enable." )
291294 return
292295
293296 try :
294- self ._gen_run_name_if_none (run_name )
297+ self ._gen_run_name_if_none (run_name , prefix )
295298 experiment_schema : ExperimentSchema = await self .p .acreate_experiment (
296299 CreateExperimentRequest (name = self .experiment_name , run_name = self .run_name , metadata = self .metadata )
297300 )
0 commit comments