diff --git a/backend/__pycache__/eventlog.cpython-311.pyc b/backend/__pycache__/eventlog.cpython-311.pyc index 827cee78f49c89fcbea7bf5fd479d99fa42870b9..d3d0beae52e96eb33fa31b5a6a16d568550c2d20 100644 Binary files a/backend/__pycache__/eventlog.cpython-311.pyc and b/backend/__pycache__/eventlog.cpython-311.pyc differ diff --git a/backend/eventlog.py b/backend/eventlog.py index d97fb3b7eeaa47b938c055010705c0d0f45b6a1c..84b1f9300c5b301f7478ff6ec240bd33b3a88420 100644 --- a/backend/eventlog.py +++ b/backend/eventlog.py @@ -95,6 +95,36 @@ def convert_to_dataframe(name): return event_log_df +def format_check(name): + event_log = convert_to_dataframe(name) + + allowed_columns = {'CaseID', 'Activity', 'StartTimestamp', 'EndTimestamp'} + allowed_activities = {'place order', 'arrange standard order', 'arrange custom order', 'pick from stock A', 'pick from stock B', 'pick from stock C', 'manufacture A', 'manufacture B', 'pack A', 'pack B', 'pack C', 'attempt delivery A', 'attempt delivery B', 'attempt delivery C', 'order completed'} + + for column_name in event_log.columns: + if column_name not in allowed_columns: + return False + + for index, event in event_log.iterrows(): + case_id = event['CaseID'] + if not isinstance(case_id, int): + return False + + activity = event['Activity'] + if activity not in allowed_activities: + return False + + start = event['StartTimestamp'] + if not isinstance(start, float): + return False + + end = event['EndTimestamp'] + if not isinstance(end, float): + return False + + return True + + def get_active_cases(name): event_log_df = convert_to_dataframe(name) @@ -280,7 +310,8 @@ def show_active_cases(name): def main(): # generate_event_log(10000) - print(get_state(5, "eventlog.csv")) + # print(get_state(5, "eventlog.xes")) + print(format_check("eventlog.xes")) if __name__ == "__main__":