From 5fb8d6000d925d3e2ead44943028f8e54b018395 Mon Sep 17 00:00:00 2001 From: Aleksandra <aleks.dimitrova.21@gmail.com> Date: Mon, 3 Jul 2023 10:21:14 +0200 Subject: [PATCH] format check for the uploaded event log --- backend/__pycache__/eventlog.cpython-311.pyc | Bin 10246 -> 11244 bytes backend/eventlog.py | 33 ++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/backend/__pycache__/eventlog.cpython-311.pyc b/backend/__pycache__/eventlog.cpython-311.pyc index 827cee78f49c89fcbea7bf5fd479d99fa42870b9..d3d0beae52e96eb33fa31b5a6a16d568550c2d20 100644 GIT binary patch delta 1728 zcmZn*coWXIoR^o2fq{YHK+B>OR@I4o5{&mIs&6((5o%$Gl1r6O5zb};Nf+@jF{H{Z zV_;xd4dQ|^BSQ*fFc@o!Y-VBH#x*&Hk&`Kdaq>}aC9@2M6voAjwM-cdDNKtQYnf{p zvlzj;7#J8_7-BhVS!!5nn93N7m>C&Tn1dO5xM~;|Fin0apj7X|5L*(%#K2I?TFX|$ zmck+l)5lQDUcwINFx0S@a3FZgm>3vVgWU=eD~1|d!<NE|q@SaPqlOt_X$@Nn8<H$1 z*z|gkeg+1H8qN}M$UwL_jb}$PfD3E@L<2(&7h(N9r70Z244RyNb}S4G3`HROiiEjA zOkNPd!@$5`$IrmPFgZp<l83t>CowryA-^akwP>=Ph`azln5mGQpIeZVT9TSFnN`GU za;b>*<oCkjlWz!%*SkSX1RDr4s|aLjh$dT+B?AM)E%xO6oYLI9;#(Y<C8<S4`Q^p8 zxH5|~^NLFn^O93<F=ytL6bUjgFlcfYnS)#da>y<I#GIV`^3;@gm}ViEKw@%9W?5!Q zW@_;*Zir-kd|qO1YLNm+vn+@Z1rcH(yIG4%5{pW1F{kFG6oZ_nfB;1jAO$>W`9-;j zCGp7_sma+z!3+!xNem1O#oUYx3=Ir-1ymM<Toll{BB0ga`9RF?0vI*;e_&#e%4hk& z043|C@>wphh&>QjxFW9cfq{ut5=?Y(-{2OTk$-_(_X4->4Pl81rV~s*Ff;JzePCmd zRJtyqbxA_&qJ+*B37roN{2)F2tdgBP9jqOtH-yAza7@wfV86>RIYWJ^@kM_1EBxvo z7#KMvq2@dgmY5-RMOdYS;|8~I@&##-6$o1%2#8(~Q@bLd-oXkoL3ODp78Ce{C-`0A zQ|@2}DN&wVdXZoC3co6{B_Eg>IVC@^G4Kd<m~39b?Ze1g<OoV6th~OA&69(9yIA8G z7#JEhKjMAC>QQ6|3Up5p;Q=C?K!h`hZ~+naAi@DeSc3=~5Mc`<TtS2zh;RoHj*~Zu zxJVZHg4p2H!(E(TR1#m7m{XcsTogH(UsQ!H1|%6a*-~^8W69(*qH|a$FfcH5Y|a%^ zW|s%WUQsegK^lli0TJ0CA_qj|O<pg1$hHQ=tOXHuAOe&TiyA<zMi9{iBAP)&3y5e1 z5p5u%9Yl0YUMJ_pI*);Y;mzj1a?Q;3RPr_`{qq;`fvf<#9_(<iXHr38=^!ElL}Y@9 zED!<qpmr{ZnGYfoKtv&kC;$;9AOd8dCTkHWo{A<+)>4)+=me#Dj^xDR)SS%Xl3VOW zsl^~h5m<RYNRKW^1zT!aYF<fkQP1QuWdk-)fh^28d5!XaP}$39H+idy{Nyu=GCqt9 zDGb33noNFGJYWqu`RRHUsl}R1MP?wQK>2AULy;7S4bE;Xxrv#1MJpK?7|a<N7>Yqz zwt?X*8v`p>ug+v=Rdq&%$=RxMDpNsDV9hJdEvPIi1+hUnJtsA}Br`v+xQH2K+~mn? zRp)4eEP(nBBnXO^B9LRjR@~x<2bT=-@kJ{p=c-9?ZDwF#0M!n~b(8zm{_smP3VdLI X6E>5()m{0S88tpIzzLqo_tn(_FC>uF delta 857 zcmaD8-WI^OoR^o2fq{XcZ~DTNZiR__5{x${s&5uZl}i!IW&%kR@h~x@%1-<s$tb*; zi*Xy*W_tlEM!{eF`9&$IMGDFJxdl0?C8;Ts>jZrnQzxGh>|%9gU|>kv94+*MmHiiY zK~7?F>STRBxykZ;;*(eNT28Lvl@n$wNKDRFaQp?Koj~;D`@9ZJMK+VWC0rzLF=ytL z6j?GbFx=uU&Mzv7FH6iRO)V~RnEXOQh0U3PfuYEDvXJB?#>~k}CFiiVF)%P>ZFZAV zW|#K_$$5bYUl8F9B7#6fFo+19+@W~Lwg|*51`#D7q7+1wfrxStQ2`<<K|~dZs0I-= zAfgsT)J<+z@?xFBz`$^B^EIVr=K4sGXcUNu1`#nJA{Io%frxkzkpLnRK|~UWNCpup zAR-k+q=5(<1_lOA{vtjQ8|-?p!@-{M0g3s62!9X}03rfG1lWTfAs}WLh;RoH5g;NQ zL}Y>pkb#=4MW7fd0)^5o)}q9`^we9-IjMO?0w7Ddip)U@>nAIyi%Wp@w1W7$ps;64 zElbTSDK2W7?5}RXHiv<M;VZ-BR`vgryJa~U9VYi_$k(SZEn{L}SPf1opwzOAk%3_~ zBZvjUj0`CZ!3>(renlW(RPlh#%gImIOD-<cWGXTP*#vUdN`@jS5L*IdD@$%-W?s>J z1_lO6Mh1pr1qKF&28O3BoV}V894FLW<WjrBrFM};{R)fv1(wOGn&OP|lWjHSRJuWW zS@TMB3o47UKy2>h{G6QB<dV$%yy7Beknx?9>ow=N!2_cR6pck7Z-H&Q#StH$mzbLx zA73;Nq#Ev`UmP~M`6;D2sdhyx85kHqzAMh3oTl|>a-p^>KNF+I2L?F7HTkHvIsl}X B&vpO+ diff --git a/backend/eventlog.py b/backend/eventlog.py index d97fb3b..84b1f93 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__": -- GitLab