IOTesting #19

Merged
mysticmomba merged 22 commits from IOTesting into master 2025-09-05 11:02:43 -04:00
Showing only changes of commit b41e56d84a - Show all commits
+15 -13
View File
@@ -294,7 +294,7 @@ def menu_prepare_to_enforce():
exe1 = pd.read_parquet(f"parquet\\execution_history_{first_policy}.parquet")
utils.pathfunctions.inspect_parquet(f"parquet\\execution_history_{first_policy}.parquet")
if not exe1.empty:
condensed_exe1 = exe1.groupby('sha256').agg(lambda x: list(set(x.tolist()))).reset_index()
print()
else:
print("⚠️ First dataframe is empty.")
except Exception as e:
@@ -304,26 +304,20 @@ def menu_prepare_to_enforce():
exe2 = pd.read_parquet(f"parquet\\execution_history_{second_policy}.parquet")
utils.pathfunctions.inspect_parquet(f"parquet\\execution_history_{second_policy}.parquet")
if not exe2.empty:
condensed_exe2 = exe2.groupby('sha256').agg(lambda x: list(set(x.tolist()))).reset_index()
print()
else:
print("⚠️ Second dataframe is empty.")
except Exception as e:
print(f"❌ Error reading second Parquet file: {e}")
if not exe1.empty and not exe2.empty:
condensed_combo = pd.concat([condensed_exe1, condensed_exe2], ignore_index=True)
# Group by 'sha256' and merge list columns manually
condensed_combo = condensed_combo.groupby('sha256').agg(
lambda col: list(set([item for sublist in col if isinstance(sublist, list) for item in sublist]))
).reset_index()
condensed_combo = pd.concat([exe1, exe2], ignore_index=True)
print(f"✅ Combined {len(condensed_combo)} hashes.")
elif exe1.empty:
condensed_combo = condensed_exe2
condensed_combo = exe2
elif exe2.empty:
condensed_combo = condensed_exe1
condensed_combo = exe1
else:
print("⚠️ No valid dataframes to combine.")
@@ -466,8 +460,16 @@ def menu_prepare_to_enforce():
forbidden = utils.pathfunctions.regulator(badpathparts, True)
forbidden_lcfp = grouped_df_view["longestcfp"].str.contains(forbidden, na=False)
grouped_df_view = grouped_df_view[~forbidden_lcfp]
print(ct.colorText(f"Removing forbidden filepaths for path exceptions","green"))
# Make a real DataFrame copy before modifying
grouped_df_view = grouped_df_view[~forbidden_lcfp].copy()
print(ct.colorText("Removing forbidden filepaths for path exceptions", "green"))
for col in grouped_df_view.columns:
if grouped_df_view[col].apply(lambda x: isinstance(x, list)).all():
grouped_df_view[col] = grouped_df_view[col].apply(deduplicate_list)
grouped_df_view.to_parquet(f"parquet\\path_needs_approved_{first_policy}_{second_policy}.parquet", index=False)
grouped_df_view.to_csv(f"needs_approved\\path_needs_approved_{first_policy}_{second_policy}.csv", index=False)