Andrea Maldonado commited on
Commit
775403a
·
1 Parent(s): c31e194

Renames log_config to log_features to avoid misunderstandings

Browse files
Files changed (2) hide show
  1. gedi/generator.py +15 -16
  2. gedi/run.py +1 -1
gedi/generator.py CHANGED
@@ -151,7 +151,7 @@ class GenerateEventLogs():
151
  os.makedirs(self.output_path, exist_ok=True)
152
 
153
  if self.output_path.endswith('csv'):
154
- self.log_config = pd.read_csv(self.output_path)
155
  return
156
 
157
  generator_params = params.get(GENERATOR_PARAMS)
@@ -171,13 +171,13 @@ class GenerateEventLogs():
171
  print(f"INFO: Generator starting at {start.strftime('%H:%M:%S')} using {num_cores} cores for {len(tasks)} tasks...")
172
  random.seed(RANDOM_SEED)
173
  partial_wrapper = partial(self.generator_wrapper, generator_params=generator_params)
174
- log_config = p.map(partial_wrapper, [(index, row) for index, row in tasks.iterrows()])
175
  # TODO: Split log and metafeatures into separate object attributes
176
  # TODO: Access not storing log in memory
177
- # TODO: identify why log is needed in self.log_config
178
- self.log_config = [
179
  {'log': config.get('log'), 'metafeatures': config.get('metafeatures')}
180
- for config in log_config
181
  if 'metafeatures' in config and 'log' in config
182
  ]
183
 
@@ -187,26 +187,25 @@ class GenerateEventLogs():
187
  if type(configs) is not list:
188
  configs = [configs]
189
  temp = self.generate_optimized_log(configs[0])
190
- self.log_config = [temp['metafeatures']] if 'metafeatures' in temp else []
191
  save_path = get_output_key_value_location(generator_params[EXPERIMENT],
192
  self.output_path, "genEL")+".xes"
193
  write_xes(temp['log'], save_path)
194
  add_extension_before_traces(save_path)
195
  print("SUCCESS: Saved generated event log in", save_path)
196
- print(f"SUCCESS: Generator took {dt.now()-start} sec. Generated {len(self.log_config)} event log(s).")
 
197
  print(f" Saved generated logs in {self.output_path}")
198
  print("========================= ~ Generator ==========================")
199
 
200
-
201
  def clear(self):
202
  print("Clearing parameters...")
203
- self.log_config = None
204
  # self.configs = None
205
  # self.params = None
206
  self.output_path = None
207
  self.feature_keys = None
208
-
209
-
210
  def generator_wrapper(self, task, generator_params=None):
211
  try:
212
  identifier = [x for x in task[1] if isinstance(x, str)][0]
@@ -221,17 +220,17 @@ class GenerateEventLogs():
221
 
222
  random.seed(RANDOM_SEED)
223
  if isinstance(configs, list):
224
- log_config = self.generate_optimized_log(configs[0])
225
  else:
226
- log_config = self.generate_optimized_log(configs)
227
 
228
  save_path = get_output_key_value_location(task.to_dict(),
229
  self.output_path, identifier, self.feature_keys)+".xes"
230
 
231
- write_xes(log_config['log'], save_path)
232
  add_extension_before_traces(save_path)
233
  print("SUCCESS: Saved generated event log in", save_path)
234
- features_to_dump = log_config['metafeatures']
235
 
236
  features_to_dump['log']= os.path.split(save_path)[1].split(".")[0]
237
  # calculating the manhattan distance of the generated log to the target features
@@ -239,7 +238,7 @@ class GenerateEventLogs():
239
  features_to_dump['target_similarity'] = compute_similarity(self.objectives, features_to_dump)
240
  dump_features_json(features_to_dump, save_path)
241
 
242
- return log_config
243
 
244
  def generate_optimized_log(self, config):
245
  ''' Returns event log from given configuration'''
 
151
  os.makedirs(self.output_path, exist_ok=True)
152
 
153
  if self.output_path.endswith('csv'):
154
+ self.log_features = pd.read_csv(self.output_path)
155
  return
156
 
157
  generator_params = params.get(GENERATOR_PARAMS)
 
171
  print(f"INFO: Generator starting at {start.strftime('%H:%M:%S')} using {num_cores} cores for {len(tasks)} tasks...")
172
  random.seed(RANDOM_SEED)
173
  partial_wrapper = partial(self.generator_wrapper, generator_params=generator_params)
174
+ log_features = p.map(partial_wrapper, [(index, row) for index, row in tasks.iterrows()])
175
  # TODO: Split log and metafeatures into separate object attributes
176
  # TODO: Access not storing log in memory
177
+ # TODO: identify why log is needed in self.log_features
178
+ self.log_features = [
179
  {'log': config.get('log'), 'metafeatures': config.get('metafeatures')}
180
+ for config in log_features
181
  if 'metafeatures' in config and 'log' in config
182
  ]
183
 
 
187
  if type(configs) is not list:
188
  configs = [configs]
189
  temp = self.generate_optimized_log(configs[0])
190
+ self.log_features = [temp['metafeatures']] if 'metafeatures' in temp else []
191
  save_path = get_output_key_value_location(generator_params[EXPERIMENT],
192
  self.output_path, "genEL")+".xes"
193
  write_xes(temp['log'], save_path)
194
  add_extension_before_traces(save_path)
195
  print("SUCCESS: Saved generated event log in", save_path)
196
+ import pdb; pdb.set_trace()
197
+ print(f"SUCCESS: Generator took {dt.now()-start} sec. Generated {len(self.log_features)} event log(s).")
198
  print(f" Saved generated logs in {self.output_path}")
199
  print("========================= ~ Generator ==========================")
200
 
 
201
  def clear(self):
202
  print("Clearing parameters...")
203
+ self.log_features = None
204
  # self.configs = None
205
  # self.params = None
206
  self.output_path = None
207
  self.feature_keys = None
208
+
 
209
  def generator_wrapper(self, task, generator_params=None):
210
  try:
211
  identifier = [x for x in task[1] if isinstance(x, str)][0]
 
220
 
221
  random.seed(RANDOM_SEED)
222
  if isinstance(configs, list):
223
+ log_features = self.generate_optimized_log(configs[0])
224
  else:
225
+ log_features = self.generate_optimized_log(configs)
226
 
227
  save_path = get_output_key_value_location(task.to_dict(),
228
  self.output_path, identifier, self.feature_keys)+".xes"
229
 
230
+ write_xes(log_features['log'], save_path)
231
  add_extension_before_traces(save_path)
232
  print("SUCCESS: Saved generated event log in", save_path)
233
+ features_to_dump = log_features['metafeatures']
234
 
235
  features_to_dump['log']= os.path.split(save_path)[1].split(".")[0]
236
  # calculating the manhattan distance of the generated log to the target features
 
238
  features_to_dump['target_similarity'] = compute_similarity(self.objectives, features_to_dump)
239
  dump_features_json(features_to_dump, save_path)
240
 
241
+ return log_features
242
 
243
  def generate_optimized_log(self, config):
244
  ''' Returns event log from given configuration'''
gedi/run.py CHANGED
@@ -31,7 +31,7 @@ def run(kwargs:dict, model_params_list: list, filename_list:list):
31
  augmented_ft = InstanceAugmentator(aug_params=model_params, samples=ft.feat)
32
  AugmentationPlotter(augmented_ft, model_params)
33
  elif model_params.get(PIPELINE_STEP) == 'event_logs_generation':
34
- gen = pd.DataFrame(GenerateEventLogs(model_params).log_config)
35
  #gen = pd.read_csv("output/features/generated/grid_2objectives_enseef_enve/2_enseef_enve_feat.csv")
36
  #GenerationPlotter(gen, model_params, output_path="output/plots")
37
  elif model_params.get(PIPELINE_STEP) == 'benchmark_test':
 
31
  augmented_ft = InstanceAugmentator(aug_params=model_params, samples=ft.feat)
32
  AugmentationPlotter(augmented_ft, model_params)
33
  elif model_params.get(PIPELINE_STEP) == 'event_logs_generation':
34
+ gen = pd.DataFrame(GenerateEventLogs(model_params).log_features)
35
  #gen = pd.read_csv("output/features/generated/grid_2objectives_enseef_enve/2_enseef_enve_feat.csv")
36
  #GenerationPlotter(gen, model_params, output_path="output/plots")
37
  elif model_params.get(PIPELINE_STEP) == 'benchmark_test':