From 5df6eafde64d1572b7cdbcc813212d6fdd0343e4 Mon Sep 17 00:00:00 2001 From: Alexey Mironov Date: Wed, 1 Oct 2025 12:25:33 +0300 Subject: [PATCH 1/8] Remove weibull_experiment.py --- weibull_experiment.py | 157 ------------------------------------------ 1 file changed, 157 deletions(-) delete mode 100644 weibull_experiment.py diff --git a/weibull_experiment.py b/weibull_experiment.py deleted file mode 100644 index 5645122..0000000 --- a/weibull_experiment.py +++ /dev/null @@ -1,157 +0,0 @@ -import multiprocessing - -from pysatl_criterion.statistics.weibull import ( - AndersonDarlingWeibullGofStatistic, - Chi2PearsonWeibullGofStatistic, - CrammerVonMisesWeibullGofStatistic, - KolmogorovSmirnovWeibullGofStatistic, - KullbackLeiblerWeibullGofStatistic, - LaplaceTransform2WeibullGofStatistic, - LaplaceTransform3WeibullGofStatistic, - LaplaceTransformWeibullGofStatistic, - LiaoShimokawaWeibullGofStatistic, - LillieforsWeibullGofStatistic, - LOSWeibullGofStatistic, - MahdiDoostparastWeibullGofStatistic, - MinToshiyukiWeibullGofStatistic, - MSFWeibullGofStatistic, - OKWeibullGofStatistic, - REJGWeibullGofStatistic, - RSBWeibullGofStatistic, - SBWeibullGofStatistic, - ST1WeibullGofStatistic, - ST2WeibullGofStatistic, - TikuSinghWeibullGofStatistic, - WatsonWeibullGofStatistic, -) -from pysatl_experiment.experiment import Experiment -from pysatl_experiment.experiment.configuration.configuration import ( - AlternativeConfiguration, - ExperimentConfiguration, - ReportConfiguration, - TestConfiguration, -) -from pysatl_experiment.experiment.generator import WeibullGenerator -from pysatl_experiment.experiment.generator.generators import ( - ExponentialGenerator, - GammaGenerator, - GompertzGenerator, - InvGaussGenerator, - LognormGenerator, - RiceGenerator, -) -from pysatl_experiment.experiment.hypothesis import WeibullHypothesis -from pysatl_experiment.experiment.listener.listeners import TimeEstimationListener -from pysatl_experiment.experiment.report.model import PdfPowerReportBuilder -from pysatl_experiment.experiment.test.worker import PowerCalculationWorker -from pysatl_experiment.persistence.db_store import CriticalValueDbStore, RvsDbStore -from pysatl_experiment.persistence.db_store.result_store import ResultDbStore - - -if __name__ == "__main__": - print("Start Weibull experiment") - - # Configuring experiment - test_data_tel = TimeEstimationListener() - generate_data_tel = TimeEstimationListener() - - db_url = "sqlite:///weibull_experiment.sqlite" - listeners = [generate_data_tel] - hypothesis = WeibullHypothesis() - test_threads = multiprocessing.cpu_count() - generation_threads = multiprocessing.cpu_count() - sizes = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000] - - critical_value_store = CriticalValueDbStore(db_url=db_url) - rvs_store = RvsDbStore(db_url=db_url) - result_store = ResultDbStore(db_url=db_url) - - alternatives = [ - ExponentialGenerator(lam=0.5), - ExponentialGenerator(lam=1), - ExponentialGenerator(lam=1.5), - GammaGenerator(alfa=1, beta=2), - GammaGenerator(alfa=2, beta=2), - GammaGenerator(alfa=3, beta=2), - GammaGenerator(alfa=5, beta=1), - GammaGenerator(alfa=9, beta=0.5), - GammaGenerator(alfa=0.5, beta=1), - InvGaussGenerator(mu=1, lam=0.2), - InvGaussGenerator(mu=1, lam=1), - InvGaussGenerator(mu=1, lam=3), - InvGaussGenerator(mu=3, lam=0.2), - InvGaussGenerator(mu=3, lam=1), - LognormGenerator(mu=0, s=0.25), - LognormGenerator(mu=0, s=1), - LognormGenerator(mu=0, s=5), - LognormGenerator(mu=5, s=0.25), - LognormGenerator(mu=5, s=1), - LognormGenerator(mu=5, s=5), - RiceGenerator(nu=0, sigma=1), - RiceGenerator(nu=0.5, sigma=1), - RiceGenerator(nu=4, sigma=1), - GompertzGenerator(eta=0.1, b=1), - GompertzGenerator(eta=2, b=1), - GompertzGenerator(eta=3, b=1), - GompertzGenerator(eta=1, b=2), - GompertzGenerator(eta=1, b=3), - WeibullGenerator(l=1, k=5), - WeibullGenerator(l=2, k=5), - ] - tests = [ - KolmogorovSmirnovWeibullGofStatistic(), - MinToshiyukiWeibullGofStatistic(), - Chi2PearsonWeibullGofStatistic(), - CrammerVonMisesWeibullGofStatistic(), - ST1WeibullGofStatistic(), - ST2WeibullGofStatistic(), - TikuSinghWeibullGofStatistic(), - LOSWeibullGofStatistic(), - MSFWeibullGofStatistic(), - OKWeibullGofStatistic(), - SBWeibullGofStatistic(), - RSBWeibullGofStatistic(), - LaplaceTransform3WeibullGofStatistic(), - LaplaceTransform2WeibullGofStatistic(), - LaplaceTransformWeibullGofStatistic(), - KullbackLeiblerWeibullGofStatistic(), - LiaoShimokawaWeibullGofStatistic(), - WatsonWeibullGofStatistic(), - MahdiDoostparastWeibullGofStatistic(), - REJGWeibullGofStatistic(), - AndersonDarlingWeibullGofStatistic(), - LillieforsWeibullGofStatistic(), - ] - - alternatives_configuration = AlternativeConfiguration( - alternatives, - sizes, - count=1_000, - threads=generation_threads, - listeners=listeners, - skip_step=True, - ) - - power_calculation_worker = PowerCalculationWorker(0.05, 100_000, critical_value_store, hypothesis=hypothesis) - test_configuration = TestConfiguration( - tests, - threads=test_threads, - worker=power_calculation_worker, - listeners=[test_data_tel], - skip_step=True, - ) - - report_builder = PdfPowerReportBuilder() - report_configuration = ReportConfiguration(report_builder) - - experiment_configuration = ExperimentConfiguration( - alternatives_configuration, - test_configuration, - report_configuration, - rvs_store=rvs_store, - result_store=result_store, - ) - experiment = Experiment(experiment_configuration) - - # Execute experiment - experiment.execute() From 04209f31fc294c9f086b2d52b0b83a6abe29e16e Mon Sep 17 00:00:00 2001 From: Alexey Mironov Date: Wed, 1 Oct 2025 12:26:05 +0300 Subject: [PATCH 2/8] Remove config examples --- config_examples/config_example_full.json | 45 ------------------------ 1 file changed, 45 deletions(-) delete mode 100644 config_examples/config_example_full.json diff --git a/config_examples/config_example_full.json b/config_examples/config_example_full.json deleted file mode 100644 index 226a7ea..0000000 --- a/config_examples/config_example_full.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "generator_path": "", - "alternatives_configuration": { - "alternatives": [ - { - "name": "BBBRVSGenerator", - "params": { - "a": 0.3, - "b": 0.5 - } - } - ], - "sizes": [ - 30, - 40 - ], - "count": 1000, - "threads": 4, - "skip_if_exists": true, - "clear_before": false, - "skip_step": false, - "listeners": [ - "StepListener" - ] - }, - "test_configuration": { - "tests": [ - "AbstractTest" - ], - "worker": "TestWorker", - "hypothesis": "AbstractHypothesis", - "threads": 4, - "listeners": [ - "StepListener" - ], - "skip_step": false - }, - "report_configuration": { - "report_builder": "ReportBuilder", - "data_reader": "", - "listeners": [ - "StepListener" - ] - } -} \ No newline at end of file From 3053b33c4533ee1a552cf50b31b13ec8ecd8bd28 Mon Sep 17 00:00:00 2001 From: Alexey Mironov Date: Wed, 1 Oct 2025 12:26:32 +0300 Subject: [PATCH 3/8] Remove test generators --- generators/gen.py | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 generators/gen.py diff --git a/generators/gen.py b/generators/gen.py deleted file mode 100644 index 6610e9a..0000000 --- a/generators/gen.py +++ /dev/null @@ -1,15 +0,0 @@ -from pysatl_experiment.core.distribution.beta import generate_beta -from pysatl_experiment.experiment.generator import AbstractRVSGenerator - - -class BBBRVSGenerator(AbstractRVSGenerator): - def __init__(self, a, b, **kwargs): - super().__init__(**kwargs) - self.a = a - self.b = b - - def code(self): - return super()._convert_to_code(["beta", self.a, self.b]) - - def generate(self, size): - return generate_beta(size=size, a=self.a, b=self.b) From 48d758169a3aa77dc498bcdc0bdb884c5516a6eb Mon Sep 17 00:00:00 2001 From: Alexey Mironov Date: Wed, 1 Oct 2025 12:27:06 +0300 Subject: [PATCH 4/8] Remove report examples --- report_examples/critical_values_report.pdf | Bin 417296 -> 0 bytes report_examples/time_complexity_report.pdf | Bin 153624 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 report_examples/critical_values_report.pdf delete mode 100644 report_examples/time_complexity_report.pdf diff --git a/report_examples/critical_values_report.pdf b/report_examples/critical_values_report.pdf deleted file mode 100644 index b640a133ea166e7795f7f7d9266bf33785526ab1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417296 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 VO;zbzm60dh3UEp` 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%0Ak>iB($&&W_M!8eG_B|x) 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ⓈxpUY(>+Z4?Uyt!=&!a<9|}v2 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 -_YLItjDQf4z(b8&Kx}J&G=dN3K_k$?9wrHLkyG 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 T19zy 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 z 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

K1@I@TWPpc16H^yoPdm59%)^bz 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

Ax$>P!u|(Re4kNd5 zf}U6D`}Brd`7`O(y7ydvYUC&G7;)zhM=spm4BNR2*>d6Z%n#W!XxF1$Jd(mYlv{Qe znIz`q%IIINNUvqC{mX7(KC6@dcbtveoL+u`al#RnSFP&rTDO`Zi8Y{KML>N0^;pGeXv&CmCU_r zb$|M2fD3NSa8uf?fg{BhN=FHOc}I3Z2epkJto&G|**9;QNv+-z0rCcza)qg4z2zBpg5 zY*zL;gbeaBce+pfy~{Fka){01kZP7l4}De7;;q-NtvE+Z^TQ2kRFTTjd@8MBU{-w# zo5`P*^J~9|^G11>W4~jpmSsM$wmF(?abdOzTDjW;8(t?RPetBGL+zm@(nO&HnVE*^ zsCW?1WcCrOVZE0OeP0mnZ$L7kU7<35H2bR*TDR9keoU&fYnEPDySXp^NMcNPRMTnp zcaT-n>yVQ~&McVyGygy#E*b00JZ#5YpE;^wMf02M*C#ydR_etc{sx=n3E{9WqPUxxpXFfN;Bb6a4zWW*&+t>E3U-dHSL(U2;L;L+r4Zf zzDCSpc(=f`IxQ_men;>c?`YF&9(2ghl8e0sxQSM?j+?Z-G0cF>jY&j^jFPnKiH`u%BtwF+EjK7(I+1eQ^qe54k&m!m_FT-MgmWP(?gBs$>abt1F zzO1>0$BtY~22lR9Y_ftEa%nU%*_>6M>`MVsIRPVfdvL5jsaWy(JIIy*bSv+0x-{G% z2oQVGlhttl^RyM|zQ12&0C@lw`G5Ak zddc_mSB-+-Du0nn?;2i4>Hql4f}g8@)!X$7-K;nMYB5x$)oQo?vi~C2mp8oTFS_>k zmnhyR{k>i9^Vgp(j$w;`{bOTm5KgGx7q&&Nh4EkH*83mdzsTw1;(McieC7Y~b^2$+ zhV0xu_xq3SydOsDRGQ#yp{|X#$F!-o*J{&L-Ko0N&8<6iif&*3qS}9Ue~~;K_-~jd!k>LA3LUyi1AUfm(lp(! zQl)CGP^}jJ`Mf``ITU}%=jplOE%dGj3?7<$|MUMy-`CIIwg)@+|F$VO=GUL=!M6TK z@O{Me^LqR155(a4>5!x!euJM=anlF+zaRaV@A}x^4wU-)`)T;|4z}SphF#|Ygc*Vl z;;-E${=u16yl49U{(1a;c|N`CU*z}_fBwUP{d0Bv^T6`y53Y(9yqgf-iS<_<9#i1w zKmVuxez8!0znUoK@4syP{mb8<^0!M?`E!N*`#Jpl>*4?NqJRFaaTtH$?ZY)URQc(& zRTn(>Z|8Iz!&&&p53s3)m-ye{FE}O4pH2PaLn1kd`s|WUcUDktl9C9wv@$8Zk`_KF zV%3qJmqX7fL_#mgwaDG=ahT1`VzFrgZwDg8csr9_TqPj}Z#5R1t%i6Q1W>5E2#;)n z?_hY-p4a7!_e6hWblZAn9`$`=9sXvGK>!-%jHzx85U_k1$aTK^ z_1_y~`ILqb?A=)vDcL^b>(6m`UCrNHe$+`0)(O^VgbKzu&?P9dO?hvG%luEfq6yEhaVoxG=dFy*sg% zKB4^S?Yx__N`3sJ0A_i$Qx)3c$8qx1alp(W*kwxSXLWZ!cHjo77dyTaXroj82F9CK z@ZBKH=r${N&}4Mb^=5{xU5>~%!-wGHi^!QcrGx?27&RxlbjWWRW>)PdfyNcbhgu%d zA!Wtk4$}10qxU5-OWNX+lJ-BMy<2b%hhHw}Z2scqr`xy4P>-AG%07@Nq6iD30XMrrjNX9MI|=H<@P0mZ_Y$YlkNR$c!n1IR$DCZJ+!Wf3ewO zS1ub+ZGDq)N!QPhTRFRyNBXYhBjV|c&2!sF`Ek7fopVjk%^Jf0)Y|~2=~Z=q;AUE| zSuP2t-Q674(_T0L{~wSaE-U$aHTsj&wb5(>DrjBC`%KScpFrO~|5~Gdf#vPDxOhY6 z2m5BCedRptlDDH0yr4f|m#>G40P~Wa^h2X{-FhRP+nFD-TIk9`z38cf4$?)F8+dQP>)a_KxbFRI!8^)6p?o#ye74`~hOd%%$AD0Do9`=%`ddQP82s=Z>4Gr1R&gF;T;H7l;+doL^xD$P zodQ_eo-p3TUmrCECl^d56p& zW~M-vU&cULYLB-FqJ8~?cQWBFH@i{nMDViif!x(<*#iAllp!!)8=vEf!kHIJ9rusy z_@?TQ&xeuki|fHnn=I{M^<<@~wef(>BeNPaKXGDJEA~>RibK!(w_PDZ_CVOu{n*vBXc z%q90G=9f4@1CA`KgIr`&lGK1Yr&PjQfgswt38+os?>H)Lw7&qO2U+Ha*Qn@FO+~l|+9(-|Hg&VItX&f>yd8mD%IcAMLjM$;#3OPeT{7GnQ z)SDVTm+D&kL@< zMVZ}NC&-kqEZfOlf_#L{W~hz8>JoK9KfTOCm_>9zw4F4Zf27{wYelTxt}>d`UvJiT z2%v=BI0cu*bN@P`l$WP4W7Ob7pU9%(Zd@v44 zR}h^|o2%y%c3Z5JP)TBq?SC~b{xc`}Z_Xj8Ce{2;bBNSm?mZ0ctS0@i1Qs+pQ+Ajs zgoi+KGPFJ^^4Fuz*djz$vV8z+7>wKwV{wAy>PmZZdvpGyFIGJ3fotL+#swHEg*_3od}fEFN=&PKc%)gwpGfCk0h#Wf4EK33S3{*5MQ}3#2&+~Pezn1) z;l~-VdhmZJA#bNx+0tq~Qb3c#W;liWY$M(u$~WFhTITlsC1LeagAetC5SlmQGh#Lz zJ{qslY3G-_5_39JnnOY)H>~lUDgc!xwT3F>#V2E5-iWuoHaB-BcU>;YYPqCl)PQPi zb9-QmoOWgEG?Y<4?2PsLHP=YW_%7XhIX$YGRC)R-x0uGL)UFnpdhfDKm(38OSS{M= zz22KRn_{hcVKmxIXGcx*P-z6ftG5z)#VKzUAe}um6_L7(~0hajurJ>9oVNUYcWXRSg{N366q=|KkQ?9Bq6q>cG~>1F%- zk8VHjyvrIPq(dB<>Z@YjP)K-13Y+b>%vD}iwhqRQLA^50hS#j9x#9{fRs7TSMB`nI zl&!@a(gAc%&z!T}R`(cTQ#Ix$-BC?k46JaqRc(JC^07mi8BmL*h z+NS#H)7Dcgl$!m>78;+i66*e>I+@IP96HvJ8|~?E##+Ms>)AgJlDYNUExzMIeB5To z&#oT0@9VsC8hf>;I=B{oJFV*!W<~j!&HMB2Z8TV{u}<#O7v`oQo;m6@nK<2NDR3_d zL2uUOKO2yh*QfW26=xTp*D&R0kKe)1C`0Jv`BeMOm$&ys?2Uh=+ms#mRKYFb5Vv0E zRo(1M#LFtY8v3bp5ea$qs7!h$ZxFvJTh^1!lYnyes|aww0(LW3Xfl#H7XK2$d7vO zLjmRbZNb4t6LWoLA8#!Gy3T~Q*=yDGIshQm@#bo2)_h#fw|BYIxXlM^&-V--S9Z^F zTf_9}CD2)eFYnrOURuS-eU4HT`>8{#4{!&3dCj@EkDm6lO^J43f&H2_D>ZKRL`gCqx zZXjW<|By+u@Jg%YKBV)KoIULE281cBynC6Z6dN1z5n!JC8I(T}6OS3%%)PaCA4LJ^ z>?cSVop)IvC;{1DoufUcle0>(-ZgI&h%!&+!9Px-F~#6L^$|L%ZTuTuYEK+KR>aLYH# zXvY{FPOb2_C_cK+38u+`BF@!fKdi5IXSJu*0#&f){0Dtl*r0@X2k+<@0FZrid0aEFz^1-AolHox!BU{gFubbQD{ zXP#?=McwYKn*k-3-}$-ysivKwDVLMfBdQp!E{>W^;@NZGP_##vMt=*4Er=(+R|b|B zvS6$$BRtxnusV2QFBuE2Uf$LN8(TJ1P3dPVmm<>ATQ~qFA2ZsIsmnM3{Fyfq+!26R zD+dvmeD@GiaYMT7HYsV3H)IQH;((Ox#FdiV@g{{~a;maUa$0x8uGS!`gi<)W!_0T} zsb{Jvx3;90KbjY^X8Ce{MBe7~j>$>iig$;P_<86RY2_Y*OYJ5I@=aZIS-l4V0Q*SS zUbTbVlY&+I?V7Hx6bgP`NsrKF1VW=5COe)Az(wQDkDM~_Aas9xv{ z#q+WG0p_kOy4dgesxCi7+EGi8oi(GR%jhp^nyWo@b z>l1ajdux*7+07_?&w?)y1|N&w++8pw@DjItvoDsGosNhN@5jd{K;4hCaT!d zw)rd^l359;u0LamAgv&(gb@rKtke?w>N`D>N4b+JUt&zG-F;?0hhj86eCOF|HXyV3 zOC9@h^)6<;QY!(pQtk!F7WkAw(7mnhh2u!v#hb{i51J+#Tr;8=;j1!KlzNFus!&lr z7B?9Lbvx@lJ{jFx`D8~L^F@U3FS@jXFl2fA+@3wpuPz?s_6mgMhrCQzYOVgGx5)@p zVu`pfOu=sC-A=O?V@I!*U1PS*;y7TFt^K&R-E7AewQZs46ntdTP3D<-CtdUB6E&61 z>Un?8xl6(fCb?Qy^A1=K94$kA=%X1;q}CfOdS;)*?fHrhy*yf-?$IULp>yj!c*+it zvC|kI#Uzuf#zR=j#E()g`{+EngICp;JtW0_+@LBIs~fko6|R@3jUFJ@%;PUvPxs&5r@)uE zPncwsHb0Bwx=~t(v+n!PEve5mt-vhV_`C>ced{~hVMMp=%|AANQXX}(;!li`u^*(! zy{tSiZ7HKbVZRm0g*(~w@ zt={=TV@=7q!iQO)#}Rgdhz$q{_^$?z=Kr68gQ@>N4jeY{qnaZxgoq}vPC&g3vDKev zg*RR!$TvrwuO9Bj=0UBte&x)W^19O;$z)DD2rnnH^^$#OTMO}p_tLJn!6;JCM(p|d z7+i;g8{LWbkINn-QJ7S0(u=A451fG{2aKF}RiwKZZhU#BZ^?USv5xcAdoJgC^&O~C z-0p`7X2M(BJ;C0GA{YdBkn2WjFRtg;&O>PXEK4JKV8hzzQ_9tG=Fs2&TCdMmIqfrr z+2Xt{C%Ru;u}V9g)bguBX&mvxtQBP*&DUeO7kvF7WX@4~se2DCmzkT0x>k(WM==NU5mS#uCf4xi6)4bp=cvNEp{Guy+mwQTqH5@lzYHG!YRcKl^+ zoA3`VJ>7woX!-Ps0`}@05iT3~>p+LUWh2&SqxL$RRcsm{H}WCG;9VfNkyr@An{U1s za+0;fD;MH9_~bi+u&_o}A9%;@G3Rz5D%}xoqzbwm1o6f)Gkn>5sqxN4085)z#S}Mp z&%GkR7;;Q*hw5j%UN`7Rfa~zU+X$7-$L$s@eJmH#AG1cLNs4MH80I4T*O7K4O6!zJQn>Z67s>`VDu|jlj^Z zIlA3j_@hWY-}~<=*zn|yNu2rD+_vIF+c^06>)L9sC*E(j~_qSEi2R?M=(?vo+Vn zvSN3@LW%w8te_^ZXZgy;p1G0@@o%}ubr`k9-2-%qK=2gkJ0w$?%dU0Ev6~vkmh-ts zT|!Zgqae$Dl|P48W6$^+OBF}ro}RW3F@~_sqglIg3i%{wec?pGk$&fH4#LAqR^?v^gH>I8ffkDlHb@Z4VG^ zKSb=?wn&S113e<=6Ec;j0bM zVKcr<`(eCY^mgU}O4s8#8Dqc~%nfccJU7yoNj5(PurAQ*+ew`puNKD-HQe-zpC(yo zLbUTBGkx!*gSI$Zr{6-&MW?2*}_HRVz`ROY+ z?Ez8wJ_)XOzIht_Be^V=EirOj$K1vrvbf!&@Ovj=4IP0E2@VUpg|(TaD7VE)`P zVTd=|C0L|(vrpG}(@S-553TJmepOiGwMJht1-fjC<~FV z?eXy7J&$E0Xvhb;CYwiw?#~zwWN<)OE z-dg@t*Ch~k&^7P$Xr;QH%DFmssFS^lr4$CL1a@n_K ze&xj1Dj!9k9^_XojmcoTeEDPEq|$5J-vmlq@(zqn9@!>A2={_tKB%3XHcbT8&?C2} zDxd8KLZ6QO2E?-E$OnzT0j9HB2BKj<8zm|A-;biQ+jlmo>ddG_Jj$)Rj|IMC-O9Z= z+5mCnlpWj#<%jRdc|ZXU<7u~|+U|fnoF4H`?n?dr^fc;>jkToL&v3vA=DT`X60FgLl(Wt^#l zo*LqV5 z=NQLmrgW^RIbb%)N#!>6QnPuSxa*aeo|w)NwdI4;ItPpprXx ze|+aIsmwa;TGdtqP7;%959u_zpPx(6DN@;vqYwl`=HmAIp z!4eEAsqwT)Wzn0${U(U#*6`(w`-o;V(%vlSJ%-fFMwdOk>9#fJtMrjR*4P13@fU9= z_oklgAf-MEujpoqDNI+g4yweF5T;rG552&E~b)WM6+2u_H$dO?v<>!y5$;)T?$|P zQ`8Kgj7i`eOz)Q2NqKEJX>dH+(%x9ue9=@og1~54Z1;{$_GY}B^S#VWDjA%pm+DQw zljn9>yEqF^v$%?Vuy5q3V(S=*8OGy|KY+5TX`}wBO~+13;O5xqUNYHkv$yY(huwUa zFMzwQ8JRYFXA!%mHIYjS)b9pAv3i%fULPMMCnH5XG)P9t@p8WFV=9~tHxg8r;7-$R zoX>C{nm3M^!!-@COwE>A_A!H8_|U194T&o^*arUf=}_i=65VI*Z}&uCG$@ZOp7(K6O@;QNKL?ANC3KSOtT`Le`tHvt^< zM=3g^-vf}y%Z-vA*;K2(R(Xy+T(61N8a+vMa=2LoctWUmOlmjm3GvSdKJgYD{%I_6ec5w! zO=b6Pl9%CQ8l2VkBi=JPtYX$ZRT#K71VuCoMhL<`Y&uW9?}dCThhx84c@G8tM9R(A z{gf$f<^?xnrU|n$2H!jJ&LD9jkl1WlwY(&M%J-DrK?Ecke&=YA2U$Y5`bjS_gvz_7 z(s+<7&~$Q6rUGeBwgM@M} z`%u|q*+Qw^BTFlQXuUM^a}r%hP7=0>OYSlvfx1v3clka>EFQuE>11?!%<|YC>3#h~ zo|}ZX#Ug;DCe6~jLx|oEVj)J`!iQoZ{MOi+DyYr-ayxh#1p|ZF6!WOw4qlQ}N6TK} zao>%6N-f#Lu|*yiPMnGrOn3JzcKajXxLmTe(Z1!@hZW{acP(!ynlJc6?4oA?r66}~ z+#imKN#Wd6<{oSgk{sFV`p|Zs{`x9UCu4IogABw`X?{8^B{40|rVgka931V)9W~)5P-Lp~hv0!m zdF)!3the9QA(~{ighck`kAXP5OLAjK2<-kd^rfxVEaSU zKpZa$w;(8;fO9D35DN3XRaQ^k(rL;jL*XyA@8 z4bXU4j!Gvxdl;cc!S8 z^L7tPnQkMiThYf+|C z>WybXm&dY|8B@Gm7fRHLTP2&^^urQzBRhJWHx{OmrNSgPzVC-~p^_dCAHq8O*B-dq z!h$J7u-#N2blziKt1j~+PJ1Aw%q881`bqJpU;C;_rTYF>MaKD7tLi#ZyOb~J?3m#T zSAd1C>Y{c#Hv<0|J&!r?@htW^$M2@h)75WDly?MZ??^^a9Mqv+DBy74VXf z<0_tCw%H~5E?sXc&`a)_7*Oo3R=Q!%?Kv>5hvBk#`~?tDwqA4=l?+R+K<1Sl{9l!w z*^;VS5{B>VDau)-P-X;F6cwCtz;YH8Q31gLjNQ>s-&xh&JI=OFL`Qp>CK@aP)*@Ga z|KFi5Cr#IAty@+(Pdw`KgOoFhoO+a!vD8sC5}+T%NZD;Xz2p-_>zF`{RX&2t=u}+Z zDu5XBB-I%XIpc&}6amV-XG!%0ptvwRK?p%&ep3dznpTJ^($z;?c z&=yQYG>z24di*5SR`F?lb%@RK)EXqzroq+?Eum2!>Gc(X4jSdsgj&T)-HOf_AKhZB zrOX8X+@wCyBgJxo)M$uzw~Zd_x{*qP>>ik1U-uoDM>g@P z^=Qeaqpicuafe>sug4VnOs4i}`)Hdp^Q&A}QuGuM8!C)1lCiG1GMy3~jD6maK|I~|x z?e$sn!L!g_+oh=6xeS~HNt=$@uGAj}0 zE~LUS4s=B}Xj5i2jD_++64HM+cl;HV_d4(CInTiD*@@ ztD#@l(55KWhl#d6JUWm2LK}i=XgOZrG}*Ye^cdOVR#DGxX0u6&-(Z)X*BAL5fZW3} zES!ziAoRU(u44+6DzR}ZHv2@#ksRyLD`6~c@K`WNHgW~$zUVLzC`7|LVViA^|djEOA;)2@6zeePyZM`5sd22O5v8Rxk% z_KX>$l8C3+v-#)*i5|}H&iFOc>@dNDqD$I$mw4iS)`wNRwVk?9NG&hTTDuICWuX8L zr`-@-*YTTjw^%A_7f$C!I||Va&TiDHd7d`Y`g$#0GlIGBZ5;Kj!SGh< z=ab3YOG8KF zZbQ>I{PpcIpBFa%wNTjak4Wod*(=@EK?!6lZpH+b?52OM-U$0*-jHMQ-W9a7a9jBK z^_GM$u1bSCFokpeI%;7Ap`07C)!uH?2YAy&Ft&dB7$nmdHDmRVk2tXM`Tj@y(2C;4 zgNgE9%LFI4X=vqFr{o=BgJpukF18%h)bXZ2&vxgUu`N&4o&{FdC}{bjn$}z<*L|Tt zAcfiu{0-(ry%ifuzFJ#}X=R?99SJ+z%{O+g-hv5!Q;t2dM{#d92{i3L(6dZy<5&*_ zcKD~WNt#dpxtZK6K@}}g*g720&n1-O3N;WE5togKv%E+Ua>{ZwCbD=f4YtCl{;7?s zeYF;xy)3B1ro#zkB{-T-m)-G%nad5<$r{yrzN>g?rxTXbDR+c$y|ta!M&jd0`h8)a znxvlxf3S}Wxe?p#RN@Fcu5w9NmnrNSb(MZUR&l0QJM8dCkKThI{5I>JJ@Xzg4Q8WF zC$5>C^Gc%-G)^3N5`dCRwI2#`sol+612aCcuEW;E>|^axMjpz`@?G~j#paAa@6!;; zW$^QJU5|FlL2n{O0q+9RpmO)xiO+REH|*6>ge?L~kHu_OC$}p^UJWenF}FVAi`K$c zTOi9HTo$gETP@mczh=PV9iMN6)#DCo$5*GzRUPnBCqJctuT9Jp=RI#stWJx~jo(F8 zDVdqLT)@U|qjG{pGq9y7#;LmEg?tgQs-Bf5_x<<=&>O;nm*z*dE@#odc|iW-VISY{ zcZz(&e}CRthM}1E)yYc=8 z<&*s$w>fB6*dIvBwrP$gj>Ut;vJB0@X0=`U-x-^?)PK0Y-fsVXvIF}8K;7Z}3++5y zt*8G5g<{zI!8zGs^q&2K4uLuR_3Kyu@r?^!cHihB^7d9}2gmC>`9)2R-+@(yR`rS diff --git a/report_examples/time_complexity_report.pdf b/report_examples/time_complexity_report.pdf deleted file mode 100644 index 2bb517ed510d83f603ec1e67a72d45500985af2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153624 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 ap2S~xml3^xomP^rkQMs3R7#r2zx@vroTSVE From 11ec38d65d703f578422c96f3fadfe36f15db358 Mon Sep 17 00:00:00 2001 From: Alexey Mironov Date: Wed, 1 Oct 2025 12:43:49 +0300 Subject: [PATCH 5/8] Remove graph_norm_experiment.py --- graph_norm_experiment.py | 95 ---------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 graph_norm_experiment.py diff --git a/graph_norm_experiment.py b/graph_norm_experiment.py deleted file mode 100644 index 6747722..0000000 --- a/graph_norm_experiment.py +++ /dev/null @@ -1,95 +0,0 @@ -import multiprocessing - -from numpy import random as rd - -from pysatl_criterion.statistics.normal import ( - GraphEdgesNumberNormalityGofStatistic, - GraphMaxDegreeNormalityGofStatistic, - KolmogorovSmirnovNormalityGofStatistic, -) -from pysatl_experiment.experiment import Experiment -from pysatl_experiment.experiment.configuration.configuration import ( - AlternativeConfiguration, - ExperimentConfiguration, - ReportConfiguration, - TestConfiguration, -) -from pysatl_experiment.experiment.generator.generators import ( - Chi2Generator, - ExponentialGenerator, - GammaGenerator, - LaplaceRVSGenerator, - WeibullGenerator, -) -from pysatl_experiment.experiment.hypothesis import NormalHypothesis -from pysatl_experiment.experiment.listener.listeners import TimeEstimationListener -from pysatl_experiment.experiment.report.model import PdfPowerReportBuilder -from pysatl_experiment.experiment.test.worker import PowerCalculationWorker -from pysatl_experiment.persistence.db_store import CriticalValueDbStore, ResultDbStore, RvsDbStore - - -if __name__ == "__main__": - print("Start graph normal experiment") - - # Configuring experiment - test_data_tel = TimeEstimationListener() - generate_data_tel = TimeEstimationListener() - - db_url = "sqlite:///graph_norm_experiment_two_sided.sqlite" - listeners = [generate_data_tel] - hypothesis = NormalHypothesis(rd.random() * 10, rd.random() * 30) - test_threads = multiprocessing.cpu_count() - generation_threads = multiprocessing.cpu_count() - sizes = [10, 20, 30, 40, 50] - - critical_value_store = CriticalValueDbStore(db_url=db_url) - rvs_store = RvsDbStore(db_url=db_url) - result_store = ResultDbStore(db_url=db_url) - - alternatives = [ - GammaGenerator(alfa=1, beta=2), - GammaGenerator(alfa=0.5, beta=1), - ExponentialGenerator(2), - WeibullGenerator(a=1, k=2), - Chi2Generator(df=5), - LaplaceRVSGenerator(t=0, s=1), - ] - - edges_two_tailed = GraphEdgesNumberNormalityGofStatistic() - edges_two_tailed.two_tailed = True - - max_degree_two_tailed = GraphMaxDegreeNormalityGofStatistic() - max_degree_two_tailed.two_tailed = True - - tests = [ - edges_two_tailed, - max_degree_two_tailed, - KolmogorovSmirnovNormalityGofStatistic(), - ] - - alternatives_configuration = AlternativeConfiguration( - alternatives, sizes, count=1_000, threads=generation_threads, listeners=listeners - ) - - power_calculation_worker = PowerCalculationWorker(0.05, 1_000_000, critical_value_store, hypothesis=hypothesis) - test_configuration = TestConfiguration( - tests, - threads=test_threads, - worker=power_calculation_worker, - listeners=[test_data_tel], - ) - - report_builder = PdfPowerReportBuilder() - report_configuration = ReportConfiguration(report_builder) - - experiment_configuration = ExperimentConfiguration( - alternatives_configuration, - test_configuration, - report_configuration, - rvs_store=rvs_store, - result_store=result_store, - ) - experiment = Experiment(experiment_configuration) - - # Execute experiment - experiment.execute() From 081bc683713c96a17acf1fbcd149a6fda798a65f Mon Sep 17 00:00:00 2001 From: Alexey Mironov Date: Wed, 1 Oct 2025 12:51:01 +0300 Subject: [PATCH 6/8] Remove unused old experiment data --- pysatl_experiment/experiment/__init__.py | 4 - .../experiment/configuration/__init__.py | 22 -- .../experiment/configuration/config_schema.py | 24 -- .../experiment/configuration/config_setup.py | 20 -- .../configuration/config_validation.py | 61 ---- .../experiment/configuration/configuration.py | 112 ------ .../experiment/configuration/load_config.py | 104 ------ pysatl_experiment/experiment/experiment.py | 32 -- .../experiment/experiment.py | 0 .../experiment_steps/experiment_steps.py | 0 .../experiment/generator/__init__.py | 100 ------ .../experiment/generator/generator_step.py | 116 ------- .../experiment/generator/generators.py | 322 ------------------ .../experiment/generator/model.py | 14 - .../experiment/hypothesis/__init__.py | 5 - .../experiment/hypothesis/hypothesis.py | 20 -- .../experiment/hypothesis/model.py | 7 - .../experiment/listener/listeners.py | 16 - .../experiment/listener/model.py | 0 .../model/experiment_step/experiment_step.py | 0 pysatl_experiment/experiment/pipeline.py | 48 --- pysatl_experiment/experiment/report/model.py | 202 ----------- .../experiment/report/report_step.py | 21 -- .../execution_step_data.py | 0 .../hypothesis_generator_data.py | 0 .../step/execution/common/utils/utils.py | 0 .../critical_value/critical_value.py | 0 .../step/execution/power/power.py | 0 .../time_complexity/time_complexity.py | 0 .../step/generation/generation.py | 0 .../critical_value/critical_value.py | 0 .../step/report_building/power/power.py | 0 .../time_complexity/time_complexity.py | 0 pysatl_experiment/experiment/test/__init__.py | 0 .../experiment/test/critical_value.py | 93 ----- .../experiment/test/power_calculation.py | 52 --- .../experiment/test/test_step.py | 124 ------- pysatl_experiment/experiment/test/worker.py | 49 --- pysatl_experiment/experiment_new/__init__.py | 0 pysatl_experiment/persistence/__init__.py | 4 - .../persistence/db_store/__init__.py | 16 - .../persistence/db_store/base.py | 8 - .../db_store/critical_value_store.py | 91 ----- .../persistence/db_store/db_init.py | 70 ---- .../persistence/db_store/model.py | 28 -- .../persistence/db_store/result_store.py | 78 ----- .../persistence/db_store/rvs_store.py | 97 ------ .../persistence/file_store/__init__.py | 5 - .../file_store/critical_value_store.py | 136 -------- .../persistence/file_store/rvs_store.py | 87 ----- .../persistence/file_store/store.py | 144 -------- pysatl_experiment/persistence/models.py | 161 --------- pysatl_experiment/resolvers/__init__.py | 0 .../resolvers/generator_resolver.py | 111 ------ .../resolvers/hypothesis_resolver.py | 93 ----- pysatl_experiment/resolvers/iresolver.py | 297 ---------------- .../experiment/listener => tests}/__init__.py | 0 .../core/distribution}/__init__.py | 0 .../distribution/distribution_test.py | 0 tests/core/store_test.py | 34 -- tests/distribution/__init__.py | 0 tests/listener_test.py | 15 - tests/resolvers/__init__.py | 0 tests/store/__init__.py | 0 tests/store/benchmark_result_db_test.py | 0 tests/store/critical_value_db_test.py | 41 --- tests/store/critical_value_file_store_test.py | 40 --- tests/store/result_sql_lite_test.py | 53 --- tests/store/rvs_db_test.py | 53 --- tests/store/rvs_file_store_test.py | 52 --- 70 files changed, 3282 deletions(-) delete mode 100644 pysatl_experiment/experiment/configuration/__init__.py delete mode 100644 pysatl_experiment/experiment/configuration/config_schema.py delete mode 100644 pysatl_experiment/experiment/configuration/config_setup.py delete mode 100644 pysatl_experiment/experiment/configuration/config_validation.py delete mode 100644 pysatl_experiment/experiment/configuration/configuration.py delete mode 100644 pysatl_experiment/experiment/configuration/load_config.py delete mode 100644 pysatl_experiment/experiment/experiment.py rename pysatl_experiment/{experiment_new => experiment}/experiment/experiment.py (100%) rename pysatl_experiment/{experiment_new => experiment}/experiment_steps/experiment_steps.py (100%) delete mode 100644 pysatl_experiment/experiment/generator/__init__.py delete mode 100644 pysatl_experiment/experiment/generator/generator_step.py delete mode 100644 pysatl_experiment/experiment/generator/generators.py delete mode 100644 pysatl_experiment/experiment/generator/model.py delete mode 100644 pysatl_experiment/experiment/hypothesis/__init__.py delete mode 100644 pysatl_experiment/experiment/hypothesis/hypothesis.py delete mode 100644 pysatl_experiment/experiment/hypothesis/model.py delete mode 100644 pysatl_experiment/experiment/listener/listeners.py delete mode 100644 pysatl_experiment/experiment/listener/model.py rename pysatl_experiment/{experiment_new => experiment}/model/experiment_step/experiment_step.py (100%) delete mode 100644 pysatl_experiment/experiment/pipeline.py delete mode 100644 pysatl_experiment/experiment/report/model.py delete mode 100644 pysatl_experiment/experiment/report/report_step.py rename pysatl_experiment/{experiment_new => experiment}/step/execution/common/execution_step_data/execution_step_data.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/execution/common/hypothesis_generator_data/hypothesis_generator_data.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/execution/common/utils/utils.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/execution/critical_value/critical_value.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/execution/power/power.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/execution/time_complexity/time_complexity.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/generation/generation.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/report_building/critical_value/critical_value.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/report_building/power/power.py (100%) rename pysatl_experiment/{experiment_new => experiment}/step/report_building/time_complexity/time_complexity.py (100%) delete mode 100644 pysatl_experiment/experiment/test/__init__.py delete mode 100644 pysatl_experiment/experiment/test/critical_value.py delete mode 100644 pysatl_experiment/experiment/test/power_calculation.py delete mode 100644 pysatl_experiment/experiment/test/test_step.py delete mode 100644 pysatl_experiment/experiment/test/worker.py delete mode 100644 pysatl_experiment/experiment_new/__init__.py delete mode 100644 pysatl_experiment/persistence/db_store/__init__.py delete mode 100644 pysatl_experiment/persistence/db_store/base.py delete mode 100644 pysatl_experiment/persistence/db_store/critical_value_store.py delete mode 100644 pysatl_experiment/persistence/db_store/db_init.py delete mode 100644 pysatl_experiment/persistence/db_store/model.py delete mode 100644 pysatl_experiment/persistence/db_store/result_store.py delete mode 100644 pysatl_experiment/persistence/db_store/rvs_store.py delete mode 100644 pysatl_experiment/persistence/file_store/__init__.py delete mode 100644 pysatl_experiment/persistence/file_store/critical_value_store.py delete mode 100644 pysatl_experiment/persistence/file_store/rvs_store.py delete mode 100644 pysatl_experiment/persistence/file_store/store.py delete mode 100644 pysatl_experiment/persistence/models.py delete mode 100644 pysatl_experiment/resolvers/__init__.py delete mode 100644 pysatl_experiment/resolvers/generator_resolver.py delete mode 100644 pysatl_experiment/resolvers/hypothesis_resolver.py delete mode 100644 pysatl_experiment/resolvers/iresolver.py rename {pysatl_experiment/experiment/listener => tests}/__init__.py (100%) rename {pysatl_experiment/experiment/report => tests/core/distribution}/__init__.py (100%) rename tests/{ => core}/distribution/distribution_test.py (100%) delete mode 100644 tests/core/store_test.py delete mode 100644 tests/distribution/__init__.py delete mode 100644 tests/listener_test.py delete mode 100644 tests/resolvers/__init__.py delete mode 100644 tests/store/__init__.py delete mode 100644 tests/store/benchmark_result_db_test.py delete mode 100644 tests/store/critical_value_db_test.py delete mode 100644 tests/store/critical_value_file_store_test.py delete mode 100644 tests/store/result_sql_lite_test.py delete mode 100644 tests/store/rvs_db_test.py delete mode 100644 tests/store/rvs_file_store_test.py diff --git a/pysatl_experiment/experiment/__init__.py b/pysatl_experiment/experiment/__init__.py index 751a9bc..e69de29 100644 --- a/pysatl_experiment/experiment/__init__.py +++ b/pysatl_experiment/experiment/__init__.py @@ -1,4 +0,0 @@ -from pysatl_experiment.experiment.experiment import Experiment - - -__all__ = ["Experiment"] diff --git a/pysatl_experiment/experiment/configuration/__init__.py b/pysatl_experiment/experiment/configuration/__init__.py deleted file mode 100644 index d34c812..0000000 --- a/pysatl_experiment/experiment/configuration/__init__.py +++ /dev/null @@ -1,22 +0,0 @@ -from pysatl_experiment.experiment.configuration.configuration import ( - AlternativeConfiguration, - ExperimentConfiguration, - ReportBuilder, - ReportConfiguration, - StepListener, - TestConfiguration, - TestWorker, - TestWorkerResult, -) - - -__all__ = [ - "AlternativeConfiguration", - "ExperimentConfiguration", - "ReportBuilder", - "ReportConfiguration", - "StepListener", - "TestConfiguration", - "TestWorker", - "TestWorkerResult", -] diff --git a/pysatl_experiment/experiment/configuration/config_schema.py b/pysatl_experiment/experiment/configuration/config_schema.py deleted file mode 100644 index a9961f2..0000000 --- a/pysatl_experiment/experiment/configuration/config_schema.py +++ /dev/null @@ -1,24 +0,0 @@ -CONF_SCHEMA = { - "type": "object", - "properties": { - "max_open_trades": { - "description": "Maximum number of open trades. -1 for unlimited.", - "type": ["integer", "number"], - "minimum": -1, - }, - "timeframe": { - "description": ("The timeframe to use (e.g `1m`, `5m`, `15m`, `30m`, `1h` ...)."), - "type": "string", - }, - "stake_currency": { - "description": "Currency used for staking.", - "type": "string", - }, - "stake_amount": { - "description": "Amount to stake per trade.", - "type": ["number", "string"], - "minimum": 0.0001, - "pattern": "", - }, - }, -} diff --git a/pysatl_experiment/experiment/configuration/config_setup.py b/pysatl_experiment/experiment/configuration/config_setup.py deleted file mode 100644 index 6aff2c6..0000000 --- a/pysatl_experiment/experiment/configuration/config_setup.py +++ /dev/null @@ -1,20 +0,0 @@ -import logging -from typing import Any - -from .config_validation import validate_config_consistency -from .load_config import load_from_files - - -logger = logging.getLogger(__name__) - - -def setup_utils_configuration(files: list[str]) -> dict[str, Any]: - """ - Prepare the configuration for utils subcommands - :param files: - :return: Configuration - """ - config = load_from_files(files) - validate_config_consistency(config, preliminary=True) - - return config diff --git a/pysatl_experiment/experiment/configuration/config_validation.py b/pysatl_experiment/experiment/configuration/config_validation.py deleted file mode 100644 index 5043ccb..0000000 --- a/pysatl_experiment/experiment/configuration/config_validation.py +++ /dev/null @@ -1,61 +0,0 @@ -import logging -from copy import deepcopy -from typing import Any - -from jsonschema import Draft4Validator, validators -from jsonschema.exceptions import ValidationError, best_match - -from pysatl_experiment.experiment.configuration.config_schema import CONF_SCHEMA - - -logger = logging.getLogger(__name__) - - -def _extend_validator(validator_class): - """ - Extended validator for the Freqtrade configuration JSON Schema. - Currently, it only handles defaults for subschemas. - """ - validate_properties = validator_class.VALIDATORS["properties"] - - def set_defaults(validator, properties, instance, schema): - for prop, subschema in properties.items(): - if "default" in subschema: - instance.setdefault(prop, subschema["default"]) - - yield from validate_properties(validator, properties, instance, schema) - - return validators.extend(validator_class, {"properties": set_defaults}) - - -FreqtradeValidator = _extend_validator(Draft4Validator) - - -def validate_config_schema(conf: dict[str, Any], preliminary: bool = False) -> dict[str, Any]: - """ - Validate the configuration follow the Config Schema - :param preliminary: preliminary - :param conf: Config in JSON format - :return: Returns the config if valid, otherwise throw an exception - """ - conf_schema = deepcopy(CONF_SCHEMA) - try: - FreqtradeValidator(conf_schema).validate(conf) - return conf - except ValidationError as e: - logger.critical(f"Invalid configuration. Reason: {e}") - raise ValidationError(best_match(Draft4Validator(conf_schema).iter_errors(conf)).message) - - -def validate_config_consistency(conf: dict[str, Any], *, preliminary: bool = False) -> None: - """ - Validate the configuration consistency. - Should be run after loading both configuration and strategy, - since strategies can set certain configuration settings too. - :param conf: Config in JSON format - :return: Returns None if everything is ok, otherwise throw an ConfigurationError - """ - - # validate configuration before returning - logger.info("Validating configuration ...") - validate_config_schema(conf, preliminary=preliminary) diff --git a/pysatl_experiment/experiment/configuration/configuration.py b/pysatl_experiment/experiment/configuration/configuration.py deleted file mode 100644 index a64615c..0000000 --- a/pysatl_experiment/experiment/configuration/configuration.py +++ /dev/null @@ -1,112 +0,0 @@ -from collections.abc import Sequence - -from pysatl_criterion.statistics import AbstractStatistic -from pysatl_experiment.experiment.generator import AbstractRVSGenerator -from pysatl_experiment.persistence import IRvsStore -from pysatl_experiment.persistence.models import IResultStore - - -class TestWorkerResult: - pass - - -class ReportBuilder: - def process(self, data: TestWorkerResult): - pass - - def build(self): - pass - - -class StepListener: - def before(self) -> None: - pass - - def after(self) -> None: - pass - - -class TestWorker: - def init(self): - pass - - def execute(self, test: AbstractStatistic, data: list[list[float]], code, size: int) -> TestWorkerResult: - raise NotImplementedError("Method is not implemented") - - def build_id(self, test: AbstractStatistic, data: list[list[float]], code, size: int) -> str: - raise NotImplementedError("Method is not implemented") - - -class ReportConfiguration: - def __init__(self, report_builder: ReportBuilder, listeners: Sequence[StepListener] | None = None): - """ - Report configuration provides configuration for report. - - :param report_builder: type of report or ReportBuilder - """ - if listeners is None: - listeners = [] - self.report_builder = report_builder - self.listeners = listeners - - -class AlternativeConfiguration: - def __init__( - self, - alternatives: Sequence[AbstractRVSGenerator], - sizes: Sequence[int], - count=1_000, - threads=4, - skip_if_exists: bool = True, - clear_before: bool = False, - skip_step: bool = False, - show_progress: bool = False, - listeners: Sequence[StepListener] | None = None, - ): - if listeners is None: - listeners = [] - self.alternatives = alternatives - self.sizes = sizes - self.count = count - self.threads = threads - self.skip_step = skip_step - self.skip_if_exists = skip_if_exists - self.clear_before = clear_before - self.listeners = listeners - self.show_progress = show_progress - - -class TestConfiguration: - __test__ = False - - def __init__( - self, - tests: Sequence[AbstractStatistic], - worker: TestWorker, - threads=4, - listeners: Sequence[StepListener] | None = None, - skip_step: bool = False, - ): - if listeners is None: - listeners = [] - self.tests = tests - self.threads = threads - self.listeners = listeners - self.worker = worker - self.skip_step = skip_step - - -class ExperimentConfiguration: - def __init__( - self, - alternative_configuration: AlternativeConfiguration, - test_configuration: TestConfiguration, - report_configuration: ReportConfiguration, - rvs_store: IRvsStore, - result_store: IResultStore, - ): - self.alternative_configuration = alternative_configuration - self.test_configuration = test_configuration - self.report_configuration = report_configuration - self.rvs_store = rvs_store - self.result_store = result_store diff --git a/pysatl_experiment/experiment/configuration/load_config.py b/pysatl_experiment/experiment/configuration/load_config.py deleted file mode 100644 index d88eb13..0000000 --- a/pysatl_experiment/experiment/configuration/load_config.py +++ /dev/null @@ -1,104 +0,0 @@ -""" -This module contain functions to load the configuration file -""" - -import logging -import re -import sys -from pathlib import Path -from typing import Any - -import rapidjson - -from pysatl_experiment.constants import Config -from pysatl_experiment.exceptions import ConfigurationError, OperationalException -from pysatl_experiment.misc import deep_merge_dicts - - -logger = logging.getLogger(__name__) - -CONFIG_PARSE_MODE = rapidjson.PM_COMMENTS | rapidjson.PM_TRAILING_COMMAS - - -def log_config_error_range(path: str, errmsg: str) -> str: - """ - Parses configuration file and prints range around error - """ - if path != "-": - offsetlist = re.findall(r"(?<=Parse\serror\sat\soffset\s)\d+", errmsg) - if offsetlist: - offset = int(offsetlist[0]) - text = Path(path).read_text() - # Fetch an offset of 80 characters around the error line - subtext = text[offset - min(80, offset) : offset + 80] - segments = subtext.split("\n") - if len(segments) > 3: - # Remove first and last lines, to avoid odd truncations - return "\n".join(segments[1:-1]) - else: - return subtext - return "" - - -def load_config_file(path: str) -> dict[str, Any]: - """ - Loads a config file from the given path - :param path: path as str - :return: configuration as dictionary - """ - try: - # Read config from stdin if requested in the options - with Path(path).open() if path != "-" else sys.stdin as file: - config = rapidjson.load(file, parse_mode=CONFIG_PARSE_MODE) - except FileNotFoundError: - raise OperationalException( - f'Config file "{path}" not found!\nPlease, create a config file or check whether it exists.' - ) from None - except rapidjson.JSONDecodeError as e: - err_range = log_config_error_range(path, str(e)) - raise ConfigurationError( - f"{e}\nPlease verify the following segment of your configuration:\n{err_range}" - if err_range - else "Please verify your configuration file for syntax errors." - ) - - return config - - -def load_from_files(files: list[str], base_path: Path | None = None, level: int = 0) -> dict[str, Any]: - """ - Recursively load configuration files if specified. - Sub-files are assumed to be relative to the initial config. - """ - config: Config = {} - if level > 5: - raise ConfigurationError("Config loop detected.") - - if not files: - raise ConfigurationError("No configuration file found.") - files_loaded = [] - # We expect here a list of config filenames - for filename in files: - logger.info(f"Using config: {filename} ...") - if filename == "-": - # Immediately load stdin and return - return load_config_file(filename) - file = Path(filename) - if base_path: - # Prepend base path to allow for relative assignments - file = base_path / file - - config_tmp = load_config_file(str(file)) - if "add_config_files" in config_tmp: - config_sub = load_from_files(config_tmp["add_config_files"], file.resolve().parent, level + 1) - files_loaded.extend(config_sub.get("config_files", [])) - config_tmp = deep_merge_dicts(config_tmp, config_sub) - - files_loaded.insert(0, str(file)) - - # Merge config options, overwriting prior values - config = deep_merge_dicts(config_tmp, config) - - config["config_files"] = files_loaded - - return config diff --git a/pysatl_experiment/experiment/experiment.py b/pysatl_experiment/experiment/experiment.py deleted file mode 100644 index ac6d6ca..0000000 --- a/pysatl_experiment/experiment/experiment.py +++ /dev/null @@ -1,32 +0,0 @@ -from pysatl_experiment.experiment.configuration.configuration import ExperimentConfiguration -from pysatl_experiment.experiment.generator.generator_step import data_generation_step -from pysatl_experiment.experiment.report.report_step import execute_report_step -from pysatl_experiment.experiment.test.test_step import execute_test_step - - -class Experiment: - def __init__(self, configuration: ExperimentConfiguration): - self.__configuration = configuration - - def execute(self): - """ - - Execute experiment. - - """ - - rvs_store = self.__configuration.rvs_store - result_store = self.__configuration.result_store - rvs_store.init() - - worker = self.__configuration.test_configuration.worker - worker.init() - - # Generate data for alternatives - data_generation_step(self.__configuration.alternative_configuration, rvs_store) - - # Test hypothesis - execute_test_step(self.__configuration.test_configuration, rvs_store, result_store) - - # Generate reports - execute_report_step(self.__configuration.report_configuration, result_store) diff --git a/pysatl_experiment/experiment_new/experiment/experiment.py b/pysatl_experiment/experiment/experiment/experiment.py similarity index 100% rename from pysatl_experiment/experiment_new/experiment/experiment.py rename to pysatl_experiment/experiment/experiment/experiment.py diff --git a/pysatl_experiment/experiment_new/experiment_steps/experiment_steps.py b/pysatl_experiment/experiment/experiment_steps/experiment_steps.py similarity index 100% rename from pysatl_experiment/experiment_new/experiment_steps/experiment_steps.py rename to pysatl_experiment/experiment/experiment_steps/experiment_steps.py diff --git a/pysatl_experiment/experiment/generator/__init__.py b/pysatl_experiment/experiment/generator/__init__.py deleted file mode 100644 index 1302594..0000000 --- a/pysatl_experiment/experiment/generator/__init__.py +++ /dev/null @@ -1,100 +0,0 @@ -from pysatl_experiment.experiment.generator.generators import ( - BetaRVSGenerator, - CauchyRVSGenerator, - Chi2Generator, - GammaGenerator, - GumbelGenerator, - LaplaceRVSGenerator, - LoConNormGenerator, - LogisticRVSGenerator, - LognormGenerator, - MixConNormGenerator, - ScConNormGenerator, - TruncnormGenerator, - TRVSGenerator, - TukeyRVSGenerator, - WeibullGenerator, -) -from pysatl_experiment.experiment.generator.model import AbstractRVSGenerator - - -symmetric_generators = [ - BetaRVSGenerator(a=0.5, b=0.5), - BetaRVSGenerator(a=1, b=1), - BetaRVSGenerator(a=2, b=2), - CauchyRVSGenerator(t=0, s=0.5), - CauchyRVSGenerator(t=0, s=1), - CauchyRVSGenerator(t=0, s=2), - LaplaceRVSGenerator(t=0, s=1), - LogisticRVSGenerator(t=2, s=2), - TRVSGenerator(df=1), - TRVSGenerator(df=2), - TRVSGenerator(df=4), - TRVSGenerator(df=10), - TukeyRVSGenerator(lam=0.14), - TukeyRVSGenerator(lam=0.5), - TukeyRVSGenerator(lam=2), - TukeyRVSGenerator(lam=5), - TukeyRVSGenerator(lam=10), -] -asymmetric_generators = [ - BetaRVSGenerator(a=2, b=1), - BetaRVSGenerator(a=2, b=5), - BetaRVSGenerator(a=4, b=0.5), - BetaRVSGenerator(a=5, b=1), - Chi2Generator(df=1), - Chi2Generator(df=2), - Chi2Generator(df=4), - Chi2Generator(df=10), - GammaGenerator(alfa=2, beta=2), - GammaGenerator(alfa=3, beta=2), - GammaGenerator(alfa=5, beta=1), - GammaGenerator(alfa=9, beta=1), - GammaGenerator(alfa=15, beta=1), - GammaGenerator(alfa=100, beta=1), - GumbelGenerator(mu=1, beta=2), - LognormGenerator(s=1, mu=0), - WeibullGenerator(a=0.5, k=1), - WeibullGenerator(a=1, k=2), - WeibullGenerator(a=2, k=3.4), - WeibullGenerator(a=3, k=4), -] -modified_generators = [ - TruncnormGenerator(a=-1, b=1), - TruncnormGenerator(a=-2, b=2), - TruncnormGenerator(a=-3, b=3), - TruncnormGenerator(a=-3, b=1), - TruncnormGenerator(a=-3, b=2), - LoConNormGenerator(p=0.3, a=1), - LoConNormGenerator(p=0.4, a=1), - LoConNormGenerator(p=0.5, a=1), - LoConNormGenerator(p=0.3, a=3), - LoConNormGenerator(p=0.4, a=3), - LoConNormGenerator(p=0.5, a=3), - LoConNormGenerator(p=0.3, a=5), - LoConNormGenerator(p=0.4, a=5), - LoConNormGenerator(p=0.5, a=5), - ScConNormGenerator(p=0.05, b=0.25), - ScConNormGenerator(p=0.10, b=0.25), - ScConNormGenerator(p=0.20, b=0.25), - ScConNormGenerator(p=0.05, b=2), - ScConNormGenerator(p=0.10, b=2), - ScConNormGenerator(p=0.20, b=2), - ScConNormGenerator(p=0.05, b=4), - ScConNormGenerator(p=0.10, b=4), - ScConNormGenerator(p=0.20, b=4), - MixConNormGenerator(p=0.3, a=1, b=0.25), - MixConNormGenerator(p=0.4, a=1, b=0.25), - MixConNormGenerator(p=0.5, a=1, b=0.25), - MixConNormGenerator(p=0.3, a=3, b=0.25), - MixConNormGenerator(p=0.4, a=3, b=0.25), - MixConNormGenerator(p=0.5, a=3, b=0.25), - MixConNormGenerator(p=0.3, a=1, b=4), - MixConNormGenerator(p=0.4, a=1, b=4), - MixConNormGenerator(p=0.5, a=1, b=4), - MixConNormGenerator(p=0.3, a=3, b=4), - MixConNormGenerator(p=0.4, a=3, b=4), - MixConNormGenerator(p=0.5, a=3, b=4), -] - -__all__ = ["AbstractRVSGenerator"] diff --git a/pysatl_experiment/experiment/generator/generator_step.py b/pysatl_experiment/experiment/generator/generator_step.py deleted file mode 100644 index 2cd66f3..0000000 --- a/pysatl_experiment/experiment/generator/generator_step.py +++ /dev/null @@ -1,116 +0,0 @@ -import logging -from multiprocessing import Queue -from multiprocessing.synchronize import Event as EventClass - -from pysatl_experiment.experiment.configuration.configuration import AlternativeConfiguration -from pysatl_experiment.experiment.generator import AbstractRVSGenerator -from pysatl_experiment.experiment.pipeline import start_pipeline -from pysatl_experiment.persistence.models import IRvsStore - - -logger = logging.getLogger(__name__) - - -def generate_rvs_data(rvs_generator: AbstractRVSGenerator, size, count): - """ - Generate data rvs - - :param rvs_generator: generator to generate rvs data - :param size: size of rvs vector - :param count: rvs count - :return: Data Frame, where rows is rvs - """ - - return [rvs_generator.generate(size) for _ in range(count)] - - -def process_entries( - generate_queue: Queue, - info_queue: Queue, - generate_shutdown_event: EventClass, - info_shutdown_event: EventClass, - kwargs, -): - store = kwargs["store"] - store.init() - - while not (generate_shutdown_event.is_set() and generate_queue.empty()): - if not generate_queue.empty(): - generator, size, count = generate_queue.get() - data = generate_rvs_data(generator, size, count) - store.insert_all_rvs(generator.code(), size, data) - info_queue.put(1) - - info_shutdown_event.set() - - -def fill_queue( - queue, - generate_shutdown_event, - kwargs, -): - sizes = kwargs["sizes"] - count = kwargs["count"] - store: IRvsStore = kwargs["store"] - rvs_generators: list[AbstractRVSGenerator] | None = kwargs["rvs_generators"] - - store.init() - - for size in sizes: - for generator in rvs_generators: - try: - code = generator.code() - data_count = store.get_rvs_count(code, size) - if data_count < count: - count = count - data_count - queue.put((generator, size, count)) - except Exception as e: - logger.warning(f"Error on generation ${generator.code()} with size ${size}", e) - - generate_shutdown_event.set() - - -def data_generation_step(alternative_configuration: AlternativeConfiguration, store: IRvsStore): - """ - - Generate data and save it to store. - - :param alternative_configuration: alternative configuration - :param store: RVS store - """ - - # Skip step - if alternative_configuration.skip_step: - logger.info("Skip data generation step") - return - - logger.info("Start data generation step") - # Execute before all listeners - for listener in alternative_configuration.listeners: - listener.before() - - # Clear all data - if alternative_configuration.clear_before: - store.clear_all_rvs() - - threads_count = alternative_configuration.threads - rvs_generators = alternative_configuration.alternatives - sizes = alternative_configuration.sizes - - start_pipeline( - fill_queue, - process_entries, - threads_count, - total_count=len(sizes) * len(rvs_generators), - queue_size=2000, - sizes=sizes, - count=alternative_configuration.count, - rvs_generators=rvs_generators, - store=store, - ) - - # Execute after all listeners - for listener in alternative_configuration.listeners: - listener.after() - - logger.info("End data generation step") diff --git a/pysatl_experiment/experiment/generator/generators.py b/pysatl_experiment/experiment/generator/generators.py deleted file mode 100644 index f752517..0000000 --- a/pysatl_experiment/experiment/generator/generators.py +++ /dev/null @@ -1,322 +0,0 @@ -from typing_extensions import override - -from pysatl_experiment.core.distribution.beta import generate_beta -from pysatl_experiment.core.distribution.cauchy import generate_cauchy -from pysatl_experiment.core.distribution.chi2 import generate_chi2 -from pysatl_experiment.core.distribution.expon import generate_expon -from pysatl_experiment.core.distribution.gamma import generate_gamma -from pysatl_experiment.core.distribution.gompertz import generate_gompertz -from pysatl_experiment.core.distribution.gumbel import generate_gumbel -from pysatl_experiment.core.distribution.invgauss import generate_invgauss -from pysatl_experiment.core.distribution.laplace import generate_laplace -from pysatl_experiment.core.distribution.lo_con_norm import generate_lo_con_norm -from pysatl_experiment.core.distribution.logistic import generate_logistic -from pysatl_experiment.core.distribution.lognormal import generate_lognorm -from pysatl_experiment.core.distribution.mix_con_norm import generate_mix_con_norm -from pysatl_experiment.core.distribution.norm import generate_norm -from pysatl_experiment.core.distribution.rice import generate_rice -from pysatl_experiment.core.distribution.scale_con_norm import generate_scale_con_norm -from pysatl_experiment.core.distribution.student import generate_t -from pysatl_experiment.core.distribution.truncnormal import generate_truncnorm -from pysatl_experiment.core.distribution.tukey import generate_tukey -from pysatl_experiment.core.distribution.weibull import generate_weibull -from pysatl_experiment.experiment.generator.model import AbstractRVSGenerator - - -class BetaRVSGenerator(AbstractRVSGenerator): - def __init__(self, a, b, **kwargs): - super().__init__(**kwargs) - self.a = a - self.b = b - - @override - def code(self): - return super()._convert_to_code(["beta", self.a, self.b]) - - @override - def generate(self, size): - return generate_beta(size=size, a=self.a, b=self.b) - - -class CauchyRVSGenerator(AbstractRVSGenerator): - def __init__(self, t, s, **kwargs): - super().__init__(**kwargs) - self.t = t - self.s = s - - @override - def code(self): - return super()._convert_to_code(["cauchy", self.t, self.s]) - - @override - def generate(self, size): - return generate_cauchy(size=size, t=self.t, s=self.s) - - -class LaplaceRVSGenerator(AbstractRVSGenerator): - def __init__(self, t, s, **kwargs): - super().__init__(**kwargs) - self.t = t - self.s = s - - @override - def code(self): - return super()._convert_to_code(["laplace", self.t, self.s]) - - @override - def generate(self, size): - return generate_laplace(size=size, t=self.t, s=self.s) - - -class LogisticRVSGenerator(AbstractRVSGenerator): - def __init__(self, t, s, **kwargs): - super().__init__(**kwargs) - self.t = t - self.s = s - - @override - def code(self): - return super()._convert_to_code(["logistic", self.t, self.s]) - - @override - def generate(self, size): - return generate_logistic(size=size, t=self.t, s=self.s) - - -class TRVSGenerator(AbstractRVSGenerator): - def __init__(self, df, **kwargs): - super().__init__(**kwargs) - self.df = df - - @override - def code(self): - return super()._convert_to_code(["student", self.df]) - - @override - def generate(self, size): - return generate_t(size=size, df=self.df) - - -class TukeyRVSGenerator(AbstractRVSGenerator): - def __init__(self, lam, **kwargs): - super().__init__(**kwargs) - self.lam = lam - - @override - def code(self): - return super()._convert_to_code(["tukey", self.lam]) - - @override - def generate(self, size): - return generate_tukey(size=size, lam=self.lam) - - -class LognormGenerator(AbstractRVSGenerator): - def __init__(self, s=1, mu=0, **kwargs): - super().__init__(**kwargs) - self.s = s - self.mu = mu - - @override - def code(self): - return super()._convert_to_code(["lognorm", self.s, self.mu]) - - @override - def generate(self, size): - return generate_lognorm(size=size, s=self.s, mu=self.mu) - - -class GammaGenerator(AbstractRVSGenerator): - def __init__(self, alfa=1, beta=0, **kwargs): - super().__init__(**kwargs) - self.alfa = alfa - self.beta = beta - - @override - def code(self): - return super()._convert_to_code(["gamma", self.alfa, self.beta]) - - @override - def generate(self, size): - return generate_gamma(size=size, alfa=self.alfa, beta=self.beta) - - -class TruncnormGenerator(AbstractRVSGenerator): - def __init__(self, mean=0, var=1, a=-10, b=10, **kwargs): - super().__init__(**kwargs) - self.mean = mean - self.var = var - self.a = a - self.b = b - - @override - def code(self): - return super()._convert_to_code(["truncnorm", self.mean, self.var, self.a, self.b]) - - @override - def generate(self, size): - return generate_truncnorm(size=size, mean=self.mean, var=self.var, a=self.a, b=self.b) - - -class Chi2Generator(AbstractRVSGenerator): - def __init__(self, df=2, **kwargs): - super().__init__(**kwargs) - self.df = df - - @override - def code(self): - return super()._convert_to_code(["chi2", self.df]) - - @override - def generate(self, size): - return generate_chi2(size=size, df=self.df) - - -class GumbelGenerator(AbstractRVSGenerator): - def __init__(self, mu=0, beta=1, **kwargs): - super().__init__(**kwargs) - self.mu = mu - self.beta = beta - - @override - def code(self): - return super()._convert_to_code(["gumbel", self.mu, self.beta]) - - @override - def generate(self, size): - return generate_gumbel(size=size, mu=self.mu, beta=self.beta) - - -class WeibullGenerator(AbstractRVSGenerator): - def __init__(self, a=1, k=5, **kwargs): - super().__init__(**kwargs) - self.a = a - self.k = k - - @override - def code(self): - return super()._convert_to_code(["weibull", self.a, self.k]) - - @override - def generate(self, size): - return generate_weibull(size=size, a=self.a, k=self.k) - - -class LoConNormGenerator(AbstractRVSGenerator): - def __init__(self, p=0.5, a=0, **kwargs): - super().__init__(**kwargs) - self.p = p - self.a = a - - @override - def code(self): - return super()._convert_to_code(["lo_con_norm", self.p, self.a]) - - @override - def generate(self, size): - return generate_lo_con_norm(size=size, p=self.p, a=self.a) - - -class ScConNormGenerator(AbstractRVSGenerator): - def __init__(self, p=0.5, b=1, **kwargs): - super().__init__(**kwargs) - self.p = p - self.b = b - - @override - def code(self): - return super()._convert_to_code(["scale_con_norm", self.p, self.b]) - - @override - def generate(self, size): - return generate_scale_con_norm(size=size, p=self.p, b=self.b) - - -class MixConNormGenerator(AbstractRVSGenerator): - def __init__(self, p=0.5, a=0, b=1, **kwargs): - super().__init__(**kwargs) - self.p = p - self.a = a - self.b = b - - @override - def code(self): - return super()._convert_to_code(["mix_con_norm", self.p, self.a, self.b]) - - @override - def generate(self, size): - return generate_mix_con_norm(size=size, p=self.p, a=self.a, b=self.b) - - -class ExponentialGenerator(AbstractRVSGenerator): - def __init__(self, lam=0.5, **kwargs): - super().__init__(**kwargs) - self.lam = lam - - @override - def code(self): - return super()._convert_to_code(["exponential", self.lam]) - - @override - def generate(self, size): - return generate_expon(size=size, lam=self.lam) - - -class InvGaussGenerator(AbstractRVSGenerator): - def __init__(self, mu=0, lam=1, **kwargs): - super().__init__(**kwargs) - self.mu = mu - self.lam = lam - - @override - def code(self): - return super()._convert_to_code(["invgauss", self.mu, self.lam]) - - @override - def generate(self, size): - return generate_invgauss(size=size, mu=self.mu, lam=self.lam) - - -class RiceGenerator(AbstractRVSGenerator): - def __init__(self, nu=0, sigma=1, **kwargs): - super().__init__(**kwargs) - self.nu = nu - self.sigma = sigma - - @override - def code(self): - return super()._convert_to_code(["rice", self.nu, self.sigma]) - - @override - def generate(self, size): - return generate_rice(size=size, nu=self.nu, sigma=self.sigma) - - -class GompertzGenerator(AbstractRVSGenerator): - def __init__(self, eta=0, b=1, **kwargs): - super().__init__(**kwargs) - self.eta = eta - self.b = b - - @override - def code(self): - return super()._convert_to_code(["gompertz", self.eta, self.b]) - - @override - def generate(self, size): - return generate_gompertz(size=size, eta=self.eta, b=self.b) - - -class NormalGenerator(AbstractRVSGenerator): - def __init__(self, mean=0, var=1, **kwargs): - super().__init__(**kwargs) - self.mean = mean - self.var = var - - @override - def code(self): - return super()._convert_to_code(["normal", self.mean, self.var]) - - @override - def generate(self, size): - return generate_norm(size=size, mean=self.mean, var=self.var) diff --git a/pysatl_experiment/experiment/generator/model.py b/pysatl_experiment/experiment/generator/model.py deleted file mode 100644 index a945e82..0000000 --- a/pysatl_experiment/experiment/generator/model.py +++ /dev/null @@ -1,14 +0,0 @@ -class AbstractRVSGenerator: - def __init__(self, **kwargs): - pass - - def code(self): - return NotImplementedError("Method is not implemented") - - @staticmethod - def _convert_to_code(items: list): - return "_".join(str(x) for x in items) - - @staticmethod - def generate(size): - raise NotImplementedError("Method is not implemented") diff --git a/pysatl_experiment/experiment/hypothesis/__init__.py b/pysatl_experiment/experiment/hypothesis/__init__.py deleted file mode 100644 index cc92580..0000000 --- a/pysatl_experiment/experiment/hypothesis/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from pysatl_experiment.experiment.hypothesis.hypothesis import NormalHypothesis, WeibullHypothesis -from pysatl_experiment.experiment.hypothesis.model import AbstractHypothesis - - -__all__ = ["NormalHypothesis", "WeibullHypothesis", "AbstractHypothesis"] diff --git a/pysatl_experiment/experiment/hypothesis/hypothesis.py b/pysatl_experiment/experiment/hypothesis/hypothesis.py deleted file mode 100644 index 6af1e9b..0000000 --- a/pysatl_experiment/experiment/hypothesis/hypothesis.py +++ /dev/null @@ -1,20 +0,0 @@ -from pysatl_experiment.core.distribution import norm, weibull -from pysatl_experiment.experiment.hypothesis.model import AbstractHypothesis - - -class NormalHypothesis(AbstractHypothesis): - def __init__(self, mean=0, var=1): - self.mean = mean - self.var = var - - def generate(self, size, **kwargs): - return norm.generate_norm(size, self.mean, self.var) - - -class WeibullHypothesis(AbstractHypothesis): - def __init__(self, a=1, k=5): - self.a = a - self.k = k - - def generate(self, size, **kwargs): - return weibull.generate_weibull(size, self.a, self.k) diff --git a/pysatl_experiment/experiment/hypothesis/model.py b/pysatl_experiment/experiment/hypothesis/model.py deleted file mode 100644 index 3918e5a..0000000 --- a/pysatl_experiment/experiment/hypothesis/model.py +++ /dev/null @@ -1,7 +0,0 @@ -from abc import ABC, abstractmethod - - -class AbstractHypothesis(ABC): - @abstractmethod - def generate(self, size, **kwargs): - raise NotImplementedError("Method is not implemented") diff --git a/pysatl_experiment/experiment/listener/listeners.py b/pysatl_experiment/experiment/listener/listeners.py deleted file mode 100644 index d3506e2..0000000 --- a/pysatl_experiment/experiment/listener/listeners.py +++ /dev/null @@ -1,16 +0,0 @@ -import timeit - -from pysatl_experiment.experiment.configuration.configuration import StepListener - - -class TimeEstimationListener(StepListener): - def __init__(self): - self.start_time = None - self.end_time = None - - def before(self) -> None: - self.start_time = timeit.default_timer() - - def after(self) -> None: - self.end_time = timeit.default_timer() - print("Generation time (s)", self.end_time - self.start_time) diff --git a/pysatl_experiment/experiment/listener/model.py b/pysatl_experiment/experiment/listener/model.py deleted file mode 100644 index e69de29..0000000 diff --git a/pysatl_experiment/experiment_new/model/experiment_step/experiment_step.py b/pysatl_experiment/experiment/model/experiment_step/experiment_step.py similarity index 100% rename from pysatl_experiment/experiment_new/model/experiment_step/experiment_step.py rename to pysatl_experiment/experiment/model/experiment_step/experiment_step.py diff --git a/pysatl_experiment/experiment/pipeline.py b/pysatl_experiment/experiment/pipeline.py deleted file mode 100644 index 3d891be..0000000 --- a/pysatl_experiment/experiment/pipeline.py +++ /dev/null @@ -1,48 +0,0 @@ -from multiprocessing import Event, Manager, Process, Queue - -from tqdm import tqdm - - -def __show_prog(queue: Queue, shutdown_event, total): - prog = tqdm(total=total, desc="Processing data", unit_scale=True) - while not (shutdown_event.is_set() and queue.empty()): - try: - to_add = queue.get(timeout=1) - prog.update(to_add) - if prog.n >= total: - break - except: # noqa: E722, S110 - pass - prog.update(total - prog.n) - - -def start_pipeline(fill_queue, process_entries, num_workers, total_count=0, queue_size=2000, **kwargs): - queue_manager = Manager() - queue = queue_manager.Queue(maxsize=queue_size) - info_queue = queue_manager.Queue(maxsize=2000) - shutdown_event = Event() - info_shutdown_event = Event() - - process_fill_queue = Process( - target=fill_queue, - args=(queue, shutdown_event, kwargs), - ) - process_fill_queue.start() - - processes = [] - for p in range(num_workers): - p = Process( - target=process_entries, - args=(queue, info_queue, shutdown_event, info_shutdown_event, kwargs), - ) - p.start() - processes.append(p) - - if total_count > 0: - progress = Process(target=__show_prog, args=(info_queue, info_shutdown_event, total_count)) - progress.start() - progress.join() - - process_fill_queue.join() - for p in processes: - p.join() diff --git a/pysatl_experiment/experiment/report/model.py b/pysatl_experiment/experiment/report/model.py deleted file mode 100644 index 13cca77..0000000 --- a/pysatl_experiment/experiment/report/model.py +++ /dev/null @@ -1,202 +0,0 @@ -from typing import Any - -from fpdf import FPDF -from matplotlib import pyplot as plt - -from pysatl_experiment.experiment.configuration import TestWorkerResult -from pysatl_experiment.experiment.configuration.configuration import ReportBuilder -from pysatl_experiment.experiment.test.worker import PowerWorkerResult -from pysatl_experiment.persistence.models import IResultStore - - -""" -class ChartBenchmarkMeanReportBuilder(ReportBuilder): - def __init__(self): - self.data = {} - self.sizes = set() - self.codes = set() - - def process(self, result: BenchmarkWorkerResult): - key = result.test_code # ChartBenchmarkMeanReportBuilder.__build_path(result) - point = (result.size, np.mean(result.benchmark)) - self.sizes.add(result.size) - self.codes.add(result.test_code) - if key in self.data.keys(): - self.data[key].append(point) - else: - self.data[key] = [point] - - def build(self): - sizes = [f"{i}" for i in sorted(self.sizes)] - x = np.arange(len(sizes)) - width = 0.1 - fig, ax = plt.subplots() - i = 1 - for key in self.data: - value = self.data[key] - sorted_value = sorted(value, key=lambda tup: tup[0]) - p = [x[1] for x in sorted_value] - - ax.bar(x + i * width, p, width, label=key) - i += 1 - ax.set_title('Пример групповой диаграммы') - ax.set_xticks(x) - ax.set_xticklabels(sizes) - ax.legend() - plt.show() - - @staticmethod - def __build_path(result: BenchmarkWorkerResult): - return '_'.join([result.test_code, str(result.size)]) -""" - - -class ChartPowerReportBuilder(ReportBuilder): - def __init__(self): - self.data = {} - - def process(self, result: TestWorkerResult): - if not isinstance(result, PowerWorkerResult): - raise TypeError(f"Type {type(result)} is not instance of PowerWorkerResult") - - key = ChartPowerReportBuilder.__build_path(result) - point = (result.size, result.power) - if key in self.data.keys(): - self.data[key].append(point) - else: - self.data[key] = [point] - - def build(self): - for key in self.data: - value = self.data[key] - sorted_value = sorted(value, key=lambda tup: tup[0]) - s = [x[0] for x in sorted_value] - p = [x[1] for x in sorted_value] - - fig, ax = plt.subplots() - ax.plot(s, p) - - ax.set( - xlabel="time (s)", - ylabel="voltage (mV)", - title="About as simple as it gets, folks", - ) - ax.grid() - - fig.savefig("test.png") - plt.show() - - @staticmethod - def __build_path(result: PowerWorkerResult): - return "_".join([result.test_code, str(result.alternative_code), str(result.alpha)]) - - -class PdfPowerReportBuilder(ReportBuilder): - def __init__(self): - self.data = {} - self.sizes = set() - self.tests = set() - self.font = "helvetica" - self.border = 1 - self.align = "C" - self.col_width = 30 - self.header_font_size = 12 - self.entry_font_size = 10 - self.output_filename = "power_report.pdf" - - def process(self, result: TestWorkerResult): - if not isinstance(result, PowerWorkerResult): - raise TypeError(f"Type {type(result)} is not an instance of PowerWorkerResult") - - key = PdfPowerReportBuilder.__build_path(result) - self.sizes.add(result.size) - self.tests.add(result.test_code) - - if key not in self.data: - self.data[key] = {} - - if result.test_code not in self.data[key]: - self.data[key][result.test_code] = {} - - self.data[key][result.test_code][result.size] = result.power - - def build(self): - pdf = FPDF(orientation="L") - pdf.set_auto_page_break(auto=True, margin=15) - pdf.add_page() - pdf.set_font(self.font, size=self.entry_font_size) - - sorted_sizes = sorted(self.sizes) - sorted_tests = sorted(self.tests) - table_width = (len(sorted_sizes) + 1) * self.col_width - margin_x = (pdf.w - table_width) / 2 - - for key, results in self.data.items(): - pdf.set_font(self.font, "B", self.header_font_size) - pdf.cell(0, self.entry_font_size, f"{key}", ln=True, align="C") - pdf.ln(5) - - pdf.set_x(margin_x) - pdf.set_font(self.font, "B", self.entry_font_size) - pdf.cell(self.col_width, self.entry_font_size, "Test", border=self.border, align=self.align) - for size in sorted_sizes: - pdf.cell( - self.col_width, - self.entry_font_size, - str(size), - border=self.border, - align=self.align, - ) - pdf.ln() - - pdf.set_font(self.font, size=self.entry_font_size) - for test in sorted_tests: - test_name = test.split("_")[0] - pdf.set_x(margin_x) - pdf.cell( - self.col_width, - self.entry_font_size, - test_name, - border=self.border, - align=self.align, - ) - for size in sorted_sizes: - power = results.get(test, {}).get(size, "N/A") - pdf.cell( - self.col_width, - self.entry_font_size, - f"{power:.3f}" if isinstance(power, float) else str(power), - border=self.border, - align=self.align, - ) - pdf.ln() - pdf.ln(self.entry_font_size) - - pdf.output(self.output_filename) - print(f"PDF report saved as: {self.output_filename}") - - @staticmethod - def __build_path(result: PowerWorkerResult): - return f"Alternative: {result.alternative_code} alpha: {result.alpha}" - - -class ResultReader: - def __init__(self, result_store: IResultStore, batch_size=100): - self.result_store = result_store - self.batch_size = batch_size - self.offset = 0 - self.items: list[Any] = [] - self.i = 0 - - def __iter__(self): - return self - - def __next__(self): - self.i += 1 - if self.i >= len(self.items): - self.items = self.result_store.get_results(offset=self.offset, limit=self.batch_size) - self.i = 0 - self.offset += self.batch_size - if len(self.items) == 0: - raise StopIteration - return self.items[self.i] diff --git a/pysatl_experiment/experiment/report/report_step.py b/pysatl_experiment/experiment/report/report_step.py deleted file mode 100644 index 9fafbb2..0000000 --- a/pysatl_experiment/experiment/report/report_step.py +++ /dev/null @@ -1,21 +0,0 @@ -from pysatl_experiment.experiment.report.model import ResultReader -from pysatl_experiment.persistence.models import IResultStore - - -def execute_report_step(configuration, result_store: IResultStore): - data_reader = ResultReader(result_store) - # Execute before all listeners - for listener in configuration.listeners: - listener.before() - - # Process data - report_builder = configuration.report_builder - for data in data_reader: - report_builder.process(data) - - # Build report - report_builder.build() - - # Execute after all listeners - for listener in configuration.listeners: - listener.after() diff --git a/pysatl_experiment/experiment_new/step/execution/common/execution_step_data/execution_step_data.py b/pysatl_experiment/experiment/step/execution/common/execution_step_data/execution_step_data.py similarity index 100% rename from pysatl_experiment/experiment_new/step/execution/common/execution_step_data/execution_step_data.py rename to pysatl_experiment/experiment/step/execution/common/execution_step_data/execution_step_data.py diff --git a/pysatl_experiment/experiment_new/step/execution/common/hypothesis_generator_data/hypothesis_generator_data.py b/pysatl_experiment/experiment/step/execution/common/hypothesis_generator_data/hypothesis_generator_data.py similarity index 100% rename from pysatl_experiment/experiment_new/step/execution/common/hypothesis_generator_data/hypothesis_generator_data.py rename to pysatl_experiment/experiment/step/execution/common/hypothesis_generator_data/hypothesis_generator_data.py diff --git a/pysatl_experiment/experiment_new/step/execution/common/utils/utils.py b/pysatl_experiment/experiment/step/execution/common/utils/utils.py similarity index 100% rename from pysatl_experiment/experiment_new/step/execution/common/utils/utils.py rename to pysatl_experiment/experiment/step/execution/common/utils/utils.py diff --git a/pysatl_experiment/experiment_new/step/execution/critical_value/critical_value.py b/pysatl_experiment/experiment/step/execution/critical_value/critical_value.py similarity index 100% rename from pysatl_experiment/experiment_new/step/execution/critical_value/critical_value.py rename to pysatl_experiment/experiment/step/execution/critical_value/critical_value.py diff --git a/pysatl_experiment/experiment_new/step/execution/power/power.py b/pysatl_experiment/experiment/step/execution/power/power.py similarity index 100% rename from pysatl_experiment/experiment_new/step/execution/power/power.py rename to pysatl_experiment/experiment/step/execution/power/power.py diff --git a/pysatl_experiment/experiment_new/step/execution/time_complexity/time_complexity.py b/pysatl_experiment/experiment/step/execution/time_complexity/time_complexity.py similarity index 100% rename from pysatl_experiment/experiment_new/step/execution/time_complexity/time_complexity.py rename to pysatl_experiment/experiment/step/execution/time_complexity/time_complexity.py diff --git a/pysatl_experiment/experiment_new/step/generation/generation.py b/pysatl_experiment/experiment/step/generation/generation.py similarity index 100% rename from pysatl_experiment/experiment_new/step/generation/generation.py rename to pysatl_experiment/experiment/step/generation/generation.py diff --git a/pysatl_experiment/experiment_new/step/report_building/critical_value/critical_value.py b/pysatl_experiment/experiment/step/report_building/critical_value/critical_value.py similarity index 100% rename from pysatl_experiment/experiment_new/step/report_building/critical_value/critical_value.py rename to pysatl_experiment/experiment/step/report_building/critical_value/critical_value.py diff --git a/pysatl_experiment/experiment_new/step/report_building/power/power.py b/pysatl_experiment/experiment/step/report_building/power/power.py similarity index 100% rename from pysatl_experiment/experiment_new/step/report_building/power/power.py rename to pysatl_experiment/experiment/step/report_building/power/power.py diff --git a/pysatl_experiment/experiment_new/step/report_building/time_complexity/time_complexity.py b/pysatl_experiment/experiment/step/report_building/time_complexity/time_complexity.py similarity index 100% rename from pysatl_experiment/experiment_new/step/report_building/time_complexity/time_complexity.py rename to pysatl_experiment/experiment/step/report_building/time_complexity/time_complexity.py diff --git a/pysatl_experiment/experiment/test/__init__.py b/pysatl_experiment/experiment/test/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/pysatl_experiment/experiment/test/critical_value.py b/pysatl_experiment/experiment/test/critical_value.py deleted file mode 100644 index 444f4d9..0000000 --- a/pysatl_experiment/experiment/test/critical_value.py +++ /dev/null @@ -1,93 +0,0 @@ -import numpy as np -import scipy.stats as scipy_stats - -from pysatl_criterion.statistics import AbstractStatistic -from pysatl_experiment.experiment.hypothesis import AbstractHypothesis -from pysatl_experiment.persistence.models import ICriticalValueStore - - -def calculate_critical_value( - test: AbstractStatistic, - hypothesis: AbstractHypothesis, - size: int, - alpha: float, - count, -) -> tuple[float, list[float]]: - # Calculate critical value - distribution = np.zeros(count) - - for i in range(count): - x = hypothesis.generate(size=size) - distribution[i] = test.execute_statistic(x) - - distribution.sort() - - ecdf = scipy_stats.ecdf(distribution) - critical_value = float(np.quantile(ecdf.cdf.quantiles, q=1 - alpha)) - return critical_value, distribution.tolist() - - -def calculate_two_tailed_critical_value( - test: AbstractStatistic, - hypothesis: AbstractHypothesis, - size: int, - alpha: float, - count: int, -) -> tuple[tuple[float, float], list[float]]: - distribution = np.zeros(count) - - for i in range(count): - x = hypothesis.generate(size=size) - distribution[i] = test.execute_statistic(x) - - distribution.sort() - - ecdf = scipy_stats.ecdf(distribution) - lower_critical = float(np.quantile(ecdf.cdf.quantiles, q=alpha / 2)) - upper_critical = float(np.quantile(ecdf.cdf.quantiles, q=1 - alpha / 2)) - - return (lower_critical, upper_critical), distribution.tolist() - - -def get_or_calculate_critical_value( - test: AbstractStatistic, - hypothesis: AbstractHypothesis, - size: int, - alpha: float, - store: ICriticalValueStore, - count: int, -) -> float | tuple[float, float]: - critical_values_from_common_criterion = test.calculate_two_tailed_critical_values(size, alpha) - if critical_values_from_common_criterion is not None: - return critical_values_from_common_criterion - - critical_value_from_common_criterion = test.calculate_critical_value(size, alpha) - if critical_value_from_common_criterion is not None: - return critical_value_from_common_criterion - - critical_value = store.get_critical_value(test.code(), size, alpha) - if critical_value is not None: - return critical_value - - distribution = store.get_distribution(test.code(), size) - if distribution is not None: - ecdf = scipy_stats.ecdf(distribution) - if test.two_tailed: - lower_critical = float(np.quantile(ecdf.cdf.quantiles, q=alpha / 2)) - upper_critical = float(np.quantile(ecdf.cdf.quantiles, q=1 - alpha / 2)) - critical_value = (lower_critical, upper_critical) - else: - critical_value = float(np.quantile(ecdf.cdf.quantiles, q=1 - alpha)) - - store.insert_critical_value(test.code(), size, alpha, critical_value) - return critical_value - - if test.two_tailed: - critical_value, distribution = calculate_two_tailed_critical_value(test, hypothesis, size, alpha, count) - else: - critical_value, distribution = calculate_critical_value(test, hypothesis, size, alpha, count) - - store.insert_critical_value(test.code(), size, alpha, critical_value) - store.insert_distribution(test.code(), size, distribution) - - return critical_value diff --git a/pysatl_experiment/experiment/test/power_calculation.py b/pysatl_experiment/experiment/test/power_calculation.py deleted file mode 100644 index e4d6363..0000000 --- a/pysatl_experiment/experiment/test/power_calculation.py +++ /dev/null @@ -1,52 +0,0 @@ -from pysatl_criterion.statistics import AbstractStatistic -from pysatl_experiment.experiment.hypothesis import AbstractHypothesis -from pysatl_experiment.experiment.test.critical_value import get_or_calculate_critical_value -from pysatl_experiment.persistence.models import ICriticalValueStore - - -def execute_test( - test: AbstractStatistic, - hypothesis: AbstractHypothesis, - rvs: list[float], - alpha: float, - store: ICriticalValueStore, - count: int, -): - critical_values = get_or_calculate_critical_value(test, hypothesis, len(rvs), alpha, store, count) - - statistic = test.execute_statistic(rvs) - - if isinstance(critical_values, tuple): - lower_critical, upper_critical = critical_values - return not (lower_critical > statistic or statistic > upper_critical) - else: - return not (statistic > critical_values) - - -def calculate_test_power( - test: AbstractStatistic, - data: list[list[float]], - hypothesis: AbstractHypothesis, - alpha: float, - store: ICriticalValueStore, - count: int, -): - """ - Calculate statistic test power. - - :param hypothesis: hypothesis to test - :param store: critical value store - :param test: statistic test - :param data: alternative data - :param alpha: significant level - :param count: count of test execution - :return: - """ - - k = 0 - for rvs in data: - x = execute_test(test, hypothesis, rvs, alpha, store, count) - if x is False: - k = k + 1 - - return k / len(data) diff --git a/pysatl_experiment/experiment/test/test_step.py b/pysatl_experiment/experiment/test/test_step.py deleted file mode 100644 index 6ea4a64..0000000 --- a/pysatl_experiment/experiment/test/test_step.py +++ /dev/null @@ -1,124 +0,0 @@ -import logging -from collections.abc import Sequence -from multiprocessing import Queue -from multiprocessing.synchronize import Event as EventClass - -from tqdm import tqdm - -from pysatl_criterion.statistics import AbstractStatistic -from pysatl_experiment.experiment.configuration.configuration import TestConfiguration, TestWorker -from pysatl_experiment.experiment.pipeline import start_pipeline -from pysatl_experiment.persistence import IRvsStore -from pysatl_experiment.persistence.models import IResultStore - - -logger = logging.getLogger(__name__) - - -def execute_tests( - worker: TestWorker, - tests: list[AbstractStatistic], - rvs_store: IRvsStore, - result_store: IResultStore, - thread_count: int = 0, -): - rvs_store.init() - result_store.init() - worker.init() - - stat = rvs_store.get_rvs_stat() - text = f"#{thread_count}" - pbar = tqdm(total=len(stat) * len(tests), desc=text, position=thread_count) - for code, size, _ in stat: - data = rvs_store.get_rvs(code, size) - for test in tests: - result_id = worker.build_id(test, data, code, size) - result = result_store.get_result(result_id) - if result is None: - result = worker.execute(test, data, code, size) - result_store.insert_result(result_id, result) - pbar.update(1) - - -def process_entries( - generate_queue: Queue, - info_queue: Queue, - generate_shutdown_event: EventClass, - info_shutdown_event: EventClass, - kwargs, -): - worker: TestWorker = kwargs["worker"] - result_store: IResultStore = kwargs["result_store"] - worker.init() - - while not (generate_shutdown_event.is_set() and generate_queue.empty()): - if not generate_queue.empty(): - test, data, code, size = generate_queue.get() - result_id = worker.build_id(test, data, code, size) - result = result_store.get_result(result_id) - - if result is None: - result = worker.execute(test, data, code, size) - result_store.insert_result(result_id, result) - - info_queue.put(1) - - info_shutdown_event.set() - - -def fill_queue(queue, generate_shutdown_event, kwargs): - tests: list[AbstractStatistic] = kwargs["tests"] - store: IRvsStore = kwargs["store"] - - store.init() - stat = store.get_rvs_stat() - - for code, size, _ in stat: - data = store.get_rvs(code, size) - for test in tests: - queue.put((test, data, code, size)) - - generate_shutdown_event.set() - - return len(stat) * len(tests) - - -def get_total_count(tests: Sequence[AbstractStatistic], store: IRvsStore): - store.init() - stat = store.get_rvs_stat() - return len(stat) * len(tests) - - -def execute_test_step(configuration: TestConfiguration, rvs_store: IRvsStore, result_store: IResultStore): - threads_count = configuration.threads - worker = configuration.worker - tests = configuration.tests - - # Skip step - if configuration.skip_step: - logger.info("Skip test step") - return - - logger.info("Start test step") - - # Execute before all listeners - for listener in configuration.listeners: - listener.before() - - start_pipeline( - fill_queue, - process_entries, - threads_count, - total_count=get_total_count(tests, rvs_store), - queue_size=10, - worker=worker, - tests=tests, - store=rvs_store, - result_store=result_store, - ) - - # Execute after all listeners - for listener in configuration.listeners: - listener.after() - - logger.info("End test step") diff --git a/pysatl_experiment/experiment/test/worker.py b/pysatl_experiment/experiment/test/worker.py deleted file mode 100644 index c1c9484..0000000 --- a/pysatl_experiment/experiment/test/worker.py +++ /dev/null @@ -1,49 +0,0 @@ -from typing_extensions import override - -from pysatl_criterion.statistics import AbstractStatistic -from pysatl_experiment.experiment.configuration.configuration import TestWorker, TestWorkerResult -from pysatl_experiment.experiment.hypothesis import AbstractHypothesis -from pysatl_experiment.experiment.test.power_calculation import calculate_test_power -from pysatl_experiment.persistence.models import ICriticalValueStore - - -class PowerWorkerResult(TestWorkerResult): - def __init__(self, test_code, alternative_code, size, alpha, power): - self.test_code = test_code - self.alpha = alpha - self.size = size - self.power = power - self.alternative_code = alternative_code - - -class BenchmarkWorkerResult(TestWorkerResult): - def __init__(self, size: int, test_code: str, benchmark: list[float]): - self.size = size - self.benchmark = benchmark - self.test_code = test_code - - -class PowerCalculationWorker(TestWorker): - def __init__( - self, - alpha: float, - monte_carlo_count: int, - cv_store: ICriticalValueStore, - hypothesis: AbstractHypothesis, - ): - self.alpha = alpha - self.monte_carlo_count = monte_carlo_count - self.cv_store = cv_store - self.hypothesis = hypothesis - - @override - def init(self): - self.cv_store.init() - - def build_id(self, test: AbstractStatistic, data: list[list[float]], code: str, size: int) -> str: - return "_".join([str(self.alpha), str(size), test.code(), code]) - - @override - def execute(self, test: AbstractStatistic, data: list[list[float]], code: str, size: int) -> PowerWorkerResult: - power = calculate_test_power(test, data, self.hypothesis, self.alpha, self.cv_store, self.monte_carlo_count) - return PowerWorkerResult(test.code(), code, size, self.alpha, power) diff --git a/pysatl_experiment/experiment_new/__init__.py b/pysatl_experiment/experiment_new/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/pysatl_experiment/persistence/__init__.py b/pysatl_experiment/persistence/__init__.py index bfd4adf..e69de29 100644 --- a/pysatl_experiment/persistence/__init__.py +++ b/pysatl_experiment/persistence/__init__.py @@ -1,4 +0,0 @@ -from pysatl_experiment.persistence.models import ICriticalValueStore, IRvsStore, IStore - - -__all__ = ["ICriticalValueStore", "IRvsStore", "IStore"] diff --git a/pysatl_experiment/persistence/db_store/__init__.py b/pysatl_experiment/persistence/db_store/__init__.py deleted file mode 100644 index 99620c6..0000000 --- a/pysatl_experiment/persistence/db_store/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -from pysatl_experiment.persistence.db_store.base import ModelBase, SessionType -from pysatl_experiment.persistence.db_store.critical_value_store import CriticalValueDbStore -from pysatl_experiment.persistence.db_store.db_init import get_request_or_thread_id, init_db -from pysatl_experiment.persistence.db_store.result_store import ResultDbStore -from pysatl_experiment.persistence.db_store.rvs_store import RvsDbStore - - -__all__ = [ - "RvsDbStore", - "get_request_or_thread_id", - "init_db", - "CriticalValueDbStore", - "ModelBase", - "SessionType", - "ResultDbStore", -] diff --git a/pysatl_experiment/persistence/db_store/base.py b/pysatl_experiment/persistence/db_store/base.py deleted file mode 100644 index 5f5c40d..0000000 --- a/pysatl_experiment/persistence/db_store/base.py +++ /dev/null @@ -1,8 +0,0 @@ -from sqlalchemy.orm import DeclarativeBase, Session, scoped_session - - -SessionType = scoped_session[Session] - - -class ModelBase(DeclarativeBase): - pass diff --git a/pysatl_experiment/persistence/db_store/critical_value_store.py b/pysatl_experiment/persistence/db_store/critical_value_store.py deleted file mode 100644 index 8f60f3b..0000000 --- a/pysatl_experiment/persistence/db_store/critical_value_store.py +++ /dev/null @@ -1,91 +0,0 @@ -from typing import ClassVar - -from sqlalchemy import Float, Integer, String -from sqlalchemy.exc import IntegrityError -from sqlalchemy.orm import Mapped, mapped_column -from typing_extensions import override - -from pysatl_experiment.persistence.db_store.base import ModelBase, SessionType -from pysatl_experiment.persistence.db_store.model import AbstractDbStore -from pysatl_experiment.persistence.models import ICriticalValueStore - - -class Distribution(ModelBase): - """ - Distribution data database model. - - """ - - __tablename__ = "distribution" - code: Mapped[str] = mapped_column(String(50), primary_key=True) # type: ignore - size: Mapped[int] = mapped_column(Integer, primary_key=True) # type: ignore - data: Mapped[str] = mapped_column(String(), nullable=False) # type: ignore - - -class CriticalValue(ModelBase): - """ - Critical value data database model. - - """ - - __tablename__ = "critical_value" - - code: Mapped[str] = mapped_column(String(50), primary_key=True) # type: ignore - size: Mapped[int] = mapped_column(Integer, primary_key=True) # type: ignore - sl: Mapped[float] = mapped_column(Float, primary_key=True) # type: ignore - lower_value: Mapped[float] = mapped_column(Float, nullable=True) - upper_value: Mapped[float] = mapped_column(Float, nullable=True) - - -class CriticalValueDbStore(AbstractDbStore, ICriticalValueStore): - session: ClassVar[SessionType] - __separator = ";" - - @override - def insert_critical_value(self, code: str, size: int, sl: float, value: float | tuple[float, float]): - if isinstance(value, tuple): - lower_value, upper_value = value - else: - lower_value, upper_value = value, None - - try: - CriticalValueDbStore.session.add( - CriticalValue( - code=code, - size=int(size), - sl=sl, - lower_value=lower_value, - upper_value=upper_value, - ) - ) - CriticalValueDbStore.session.commit() - except IntegrityError: - CriticalValueDbStore.session.rollback() - - @override - def insert_distribution(self, code: str, size: int, data: list[float]): - data_to_insert = CriticalValueDbStore.__separator.join(map(str, data)) - try: - CriticalValueDbStore.session.add(Distribution(code=code, size=int(size), data=data_to_insert)) - CriticalValueDbStore.session.commit() - except IntegrityError: - CriticalValueDbStore.session.rollback() - - @override - def get_critical_value(self, code: str, size: int, sl: float) -> float | tuple[float, float] | None: - critical_value = CriticalValueDbStore.session.get(CriticalValue, (code, size, sl)) - if critical_value is not None: - if critical_value.upper_value is not None: - return critical_value.lower_value, critical_value.upper_value - else: - return critical_value.lower_value - else: - return None - - @override - def get_distribution(self, code: str, size: int) -> list[float] | None: - distribution = CriticalValueDbStore.session.get(Distribution, (code, size)) - if distribution is not None: - return [float(x) for x in distribution.data.split(CriticalValueDbStore.__separator)] - else: - return None diff --git a/pysatl_experiment/persistence/db_store/db_init.py b/pysatl_experiment/persistence/db_store/db_init.py deleted file mode 100644 index b78fd30..0000000 --- a/pysatl_experiment/persistence/db_store/db_init.py +++ /dev/null @@ -1,70 +0,0 @@ -""" -This module contains the class to persist trades into SQLite -""" - -import logging -import threading -from contextvars import ContextVar -from typing import Any, Final - -from sqlalchemy import Engine, create_engine -from sqlalchemy.exc import NoSuchModuleError -from sqlalchemy.pool import StaticPool - -from pysatl_experiment.exceptions import OperationalException - - -logger = logging.getLogger(__name__) - -REQUEST_ID_CTX_KEY: Final[str] = "request_id" -_request_id_ctx_var: ContextVar[str | None] = ContextVar(REQUEST_ID_CTX_KEY, default=None) - - -def get_request_or_thread_id() -> str | None: - """ - Helper method to get either async context, or thread id - """ - request_id = _request_id_ctx_var.get() - if request_id is None: - # when not in request context - use thread id - request_id = str(threading.current_thread().ident) - - return request_id - - -_SQL_DOCS_URL = "http://docs.sqlalchemy.org/en/latest/core/engines.html#database-urls" - - -def init_db(db_url: str) -> Engine: - """ - Initializes this module with the given config, - registers all known command handlers - and starts polling for message updates - :param db_url: Database to use - :return: None - """ - kwargs: dict[str, Any] = {} - - if db_url == "sqlite:///": - raise OperationalException(f"Bad db-url {db_url}. For in-memory database, please use `sqlite://`.") - if db_url == "sqlite://": - kwargs.update( - { - "poolclass": StaticPool, - } - ) - # Take care of thread ownership - if db_url.startswith("sqlite://"): - kwargs.update( - { - "connect_args": {"check_same_thread": False}, - } - ) - - try: - engine = create_engine(db_url, future=True, **kwargs) - except NoSuchModuleError: - raise OperationalException( - f"Given value for db_url: '{db_url}' is no valid database URL! (See {_SQL_DOCS_URL})" - ) - return engine diff --git a/pysatl_experiment/persistence/db_store/model.py b/pysatl_experiment/persistence/db_store/model.py deleted file mode 100644 index 2ae995c..0000000 --- a/pysatl_experiment/persistence/db_store/model.py +++ /dev/null @@ -1,28 +0,0 @@ -import sqlite3 -from abc import ABC -from typing import ClassVar - -import numpy as np -from sqlalchemy.orm import scoped_session, sessionmaker -from typing_extensions import override - -from pysatl_experiment.persistence import IStore -from pysatl_experiment.persistence.db_store.base import ModelBase, SessionType -from pysatl_experiment.persistence.db_store.db_init import get_request_or_thread_id, init_db - - -class AbstractDbStore(IStore, ABC): - session: ClassVar[SessionType] - - def __init__(self, db_url="sqlite:///pysatl.sqlite"): - super().__init__() - self.db_url = db_url - - @override - def init(self): - sqlite3.register_adapter(np.int64, lambda val: int(val)) - engine = init_db(self.db_url) - AbstractDbStore.session = scoped_session( - sessionmaker(bind=engine, autoflush=False), scopefunc=get_request_or_thread_id - ) - ModelBase.metadata.create_all(engine) diff --git a/pysatl_experiment/persistence/db_store/result_store.py b/pysatl_experiment/persistence/db_store/result_store.py deleted file mode 100644 index 2cd4de6..0000000 --- a/pysatl_experiment/persistence/db_store/result_store.py +++ /dev/null @@ -1,78 +0,0 @@ -import importlib -import json -from typing import Any, ClassVar - -from sqlalchemy import String -from sqlalchemy.orm import Mapped, mapped_column -from typing_extensions import override - -from pysatl_experiment.persistence.db_store import ModelBase, SessionType -from pysatl_experiment.persistence.db_store.model import AbstractDbStore -from pysatl_experiment.persistence.models import IResultStore - - -class ResultModel(ModelBase): - """ - Result database model. - """ - - __tablename__ = "result" - - id: Mapped[str] = mapped_column(String, primary_key=True) - module: Mapped[str] = mapped_column(String) - className: Mapped[str] = mapped_column(String) - data: Mapped[str] = mapped_column(String, nullable=False) - - -class ResultDbStore(AbstractDbStore, IResultStore): - session: ClassVar[SessionType] - __separator = ";" - - @override - def insert_result(self, result_id: str, result: Any): - """ - Insert benchmark to store. - - :param test_code: test code - :param benchmark: benchmark - """ - - json_data = json.dumps(result.__dict__) - data = ResultModel( - id=result_id, - module=result.__module__, - className=result.__class__.__name__, - data=json_data, - ) - ResultDbStore.session.add(data) - ResultDbStore.session.commit() - - @override - def get_result(self, result_id: str) -> Any: - """ - Get benchmark from store. - - :param result_id: test code - - :return benchmark on None - """ - result = ResultDbStore.session.get(ResultModel, result_id) - if not result: - return None - - module = importlib.import_module(result.module) - return getattr(module, result.className)(**json.loads(result.data)) - - @override - def get_results(self, offset: int, limit: int): # -> [PowerResultModel]: - """ - Get several powers from store. - - :param offset: offset - :param limit: limit - - :return list of PowerResultModel - """ - result = (ResultDbStore.session.query(ResultModel).order_by(ResultModel.id).offset(offset).limit(limit)).all() - result = [getattr(importlib.import_module(r.module), r.className)(**json.loads(r.data)) for r in result] - return result diff --git a/pysatl_experiment/persistence/db_store/rvs_store.py b/pysatl_experiment/persistence/db_store/rvs_store.py deleted file mode 100644 index 4b12712..0000000 --- a/pysatl_experiment/persistence/db_store/rvs_store.py +++ /dev/null @@ -1,97 +0,0 @@ -from typing import ClassVar - -from sqlalchemy import Integer, Row, String, func, text -from sqlalchemy.orm import Mapped, mapped_column -from typing_extensions import override - -from pysatl_experiment.persistence import IRvsStore -from pysatl_experiment.persistence.db_store.base import ModelBase, SessionType -from pysatl_experiment.persistence.db_store.model import AbstractDbStore - - -class RVS(ModelBase): - """ - RVS data database model. - - """ - - __tablename__ = "rvs_data" - - id: Mapped[int] = mapped_column(Integer, primary_key=True) # type: ignore - code: Mapped[str] = mapped_column(String(50), nullable=False, index=True) # type: ignore - size: Mapped[int] = mapped_column(Integer, nullable=False, index=True) # type: ignore - data: Mapped[str] = mapped_column(String(), nullable=False) # type: ignore - - -class RVSStat(ModelBase): - """ - RVS stat data database model. - - """ - - __tablename__ = "rvs_stat" - - code: Mapped[str] = mapped_column(String(50), primary_key=True) # type: ignore - size: Mapped[int] = mapped_column(Integer, primary_key=True) # type: ignore - count: Mapped[int] = mapped_column(Integer) # type: ignore - - -class RvsDbStore(AbstractDbStore, IRvsStore): - session: ClassVar[SessionType] - __separator = ";" - - @override - def insert_all_rvs(self, generator_code: str, size: int, data: list[list[float]]): - if len(data) == 0: - return - - data_to_insert = [ - { - "code": generator_code, - "size": int(size), - "data": RvsDbStore.__separator.join(map(str, d)), - } - for d in data - ] - statement = text("INSERT INTO rvs_data (code, size, data) VALUES (:code, :size, :data)") - RvsDbStore.session.execute(statement, data_to_insert) - RvsDbStore.session.commit() - - @override - def insert_rvs(self, code: str, size: int, data: list[float]): - data_str = RvsDbStore.__separator.join(map(str, data)) - RvsDbStore.session.add(RVS(code=code, size=int(size), data=data_str)) - RvsDbStore.session.commit() - - @override - def get_rvs_count(self, code: str, size: int): - data = self.get_rvs(code, size) - return len(data) - - @override - def get_rvs(self, code: str, size: int) -> list[list[float]]: - samples = ( - RvsDbStore.session.query(RVS) - .filter( - RVS.code == code, - RVS.size == size, - ) - .all() - ) - - if not samples: - return [] - - return [[float(x) for x in sample.data.split(RvsDbStore.__separator)] for sample in samples] - - @override - def get_rvs_stat(self) -> list[tuple[str, int, int]]: - query_result: list[Row[tuple[str, int, int]]] = ( - RvsDbStore.session.query(RVS.code, RVS.size, func.count(RVS.code)).group_by(RVS.code, RVS.size).all() - ) - - return [tuple(row) for row in query_result] - - @override - def clear_all_rvs(self): - RvsDbStore.session.query(RVS).delete() diff --git a/pysatl_experiment/persistence/file_store/__init__.py b/pysatl_experiment/persistence/file_store/__init__.py deleted file mode 100644 index 97225da..0000000 --- a/pysatl_experiment/persistence/file_store/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from pysatl_experiment.persistence.file_store.critical_value_store import CriticalValueFileStore -from pysatl_experiment.persistence.file_store.rvs_store import RvsFileStore - - -__all__ = ["CriticalValueFileStore", "RvsFileStore"] diff --git a/pysatl_experiment/persistence/file_store/critical_value_store.py b/pysatl_experiment/persistence/file_store/critical_value_store.py deleted file mode 100644 index 32b4c1f..0000000 --- a/pysatl_experiment/persistence/file_store/critical_value_store.py +++ /dev/null @@ -1,136 +0,0 @@ -import csv -from pathlib import Path - -from typing_extensions import override - -from pysatl_experiment.persistence import ICriticalValueStore -from pysatl_experiment.persistence.file_store.store import read_json, write_json - - -class CriticalValueFileStore(ICriticalValueStore): - csv_delimiter = ";" - separator = ":" - - def __init__(self, path="test_distribution"): - super().__init__() - self.path = path - self.filename = Path(path, "critical_value.json") - self.cache = {} - - @override - def init(self): - if not Path(self.path).exists(): - Path(self.path).mkdir(parents=True) - mem_cache = {} - if Path(self.filename).is_file(): - mem_cache = read_json(self.filename) - self.cache = mem_cache - - @override - def insert_critical_value(self, code: str, size: int, sl: float, value: float | tuple[float, float]): - """ - Insert critical value to store. - - :param code: test code - :param size: rvs size - :param sl: significant level - :param value: critical value - """ - - key = self._create_key([code, str(size), str(sl)]) - self.cache[key] = value - write_json(self.filename, self.cache) - - def insert_distribution(self, code: str, size: int, data: list[float]): - """ - Save distribution to csv file. Name generated by {test_code}_{size}.scv - - :param code: statistic test code - :param size: sample size - :param data: distribution data to save - """ - - file_path = self.__build_file_path(code, size) - with Path(file_path).open("w", newline="") as csvfile: - writer = csv.writer(csvfile, delimiter=self.csv_delimiter, quoting=csv.QUOTE_NONNUMERIC) - writer.writerow(data) - - def get_critical_value(self, code: str, size: int, sl: float) -> tuple[float, float] | float | None: - """ - Get critical value from store. - :param code: test code - :param size: rvs size - :param sl: significant level - """ - - key = self._create_key([code, str(size), str(sl)]) - if key not in self.cache.keys(): - return None - - return self.cache[key] - - def get_distribution(self, code: str, size: int) -> list[float] | None: - """ - Return distribution cached value or None. - - :param code: statistic test code - :param size: sample size - """ - - file_path = self.__build_file_path(code, size) - if Path(file_path).exists(): - with Path(file_path).open(newline="") as f: - reader = csv.reader(f, delimiter=self.csv_delimiter, quoting=csv.QUOTE_NONNUMERIC) - return [float(x) for x in list(reader)[0]] - else: - return None - - def __build_file_path(self, test_code: str, size: int): - file_name = test_code + "_" + str(size) + ".csv" - return Path(self.path, file_name) - - def _create_key(self, keys: list[str]): - return self.separator.join(keys) - - -class ThreadSafeMonteCarloCacheService(CriticalValueFileStore): - def __init__( - self, - lock, - filename="cache.json", - separator=":", - csv_delimiter=";", - dir_path="test_distribution", - ): - super().__init__(filename, separator, csv_delimiter, dir_path) - self.lock = lock - - def flush(self): - """ - Flush data to persisted store. - """ - - with self.lock: - write_json(self.filename, self.cache) - - def put(self, key: str, value): - """ - Put object to cache. - - :param key: cache key - :param value: cache value - """ - with self.lock: - self.cache[key] = value - - def put_with_level(self, keys: list[str], value): - """ - Put JSON value by keys chain in 'keys' param. - - :param value: value to put - :param keys: keys chain param - """ - - key = self._create_key(keys) - with self.lock: - self.cache[key] = value diff --git a/pysatl_experiment/persistence/file_store/rvs_store.py b/pysatl_experiment/persistence/file_store/rvs_store.py deleted file mode 100644 index c7ec9aa..0000000 --- a/pysatl_experiment/persistence/file_store/rvs_store.py +++ /dev/null @@ -1,87 +0,0 @@ -import csv -import os -import shutil -from pathlib import Path - -from typing_extensions import override - -from pysatl_experiment.persistence import IRvsStore - - -class RvsFileStore(IRvsStore): - __separator = ";" - __file_separator = "_" - - def __init__(self, path="data"): - super().__init__() - self.path = path - - @override - def init(self): - if not Path(self.path).exists(): - Path(self.path).mkdir(parents=True) - - @override - def insert_all_rvs(self, generator_code: str, size: int, data: list[list[float]]): - file_path = Path(self.path, RvsFileStore.build_rvs_file_name(generator_code, size) + ".csv") - with Path(file_path).open("w", newline="") as csvfile: - writer = csv.writer( - csvfile, - delimiter=RvsFileStore.__separator, - quoting=csv.QUOTE_NONNUMERIC, - ) - writer.writerows(data) - - @override - def get_rvs_stat(self): - filenames = next(os.walk(self.path), (None, None, []))[2] # [] if no file - result = [] - for filename in filenames: - rvs_code, size = RvsFileStore.parse_rvs_file_name(filename) - file_path = Path(self.path, RvsFileStore.build_rvs_file_name(rvs_code, size) + ".csv") - with Path(file_path).open(newline="") as f: - reader = csv.reader(f, delimiter=RvsFileStore.__separator, quoting=csv.QUOTE_NONNUMERIC) - result.append((rvs_code, size, len(list(reader)))) - - return result - - @override - def insert_rvs(self, code: str, size: int, data: list[float]): - file_path = Path(self.path, RvsFileStore.build_rvs_file_name(code, size) + ".csv") - with Path(file_path).open("w", newline="") as csvfile: - writer = csv.writer( - csvfile, - delimiter=RvsFileStore.__separator, - quoting=csv.QUOTE_NONNUMERIC, - ) - writer.writerow(data) - - @override - def get_rvs_count(self, code: str, size: int) -> int: - data = self.get_rvs(code, size) - if data is None: - return 0 - return len(data) - - @override - def get_rvs(self, code: str, size: int) -> list[list[float]]: - file_path = Path(self.path, RvsFileStore.build_rvs_file_name(code, size) + ".csv") - if not Path(file_path).exists(): - return [] - with Path(file_path).open(newline="") as f: - reader = csv.reader(f, delimiter=RvsFileStore.__separator, quoting=csv.QUOTE_NONNUMERIC) - return [[float(x) for x in e] for e in reader] - - @override - def clear_all_rvs(self): - shutil.rmtree(self.path) - - @staticmethod - def parse_rvs_file_name(name: str) -> tuple: - split = name.split(RvsFileStore.__file_separator) - size = int(split[-2]) - return RvsFileStore.__file_separator.join(split[:-2]), size - - @staticmethod - def build_rvs_file_name(generator_code: str, size: int) -> str: - return generator_code + RvsFileStore.__file_separator + str(size) + RvsFileStore.__file_separator diff --git a/pysatl_experiment/persistence/file_store/store.py b/pysatl_experiment/persistence/file_store/store.py deleted file mode 100644 index 0fd7de2..0000000 --- a/pysatl_experiment/persistence/file_store/store.py +++ /dev/null @@ -1,144 +0,0 @@ -import json -from pathlib import Path - - -def read_json(filename: str): - with Path(filename).open("w") as f_in: - return json.load(f_in) - - -def write_json(filename: str, value): - with Path(filename).open("w") as fp: - json.dump(value, fp) - - -class StoreService: - def get(self, key: str): - """ - Get cached value if exists, else return None. - - :param key: cache_services key - """ - raise NotImplementedError("Method is not implemented") - - def put(self, key: str, value): - """ - Put object to cache_services. - - :param key: cache_services key - :param value: cache_services value - """ - raise NotImplementedError("Method is not implemented") - - -class InMemoryStoreService(StoreService): - def __init__(self, cache=None, separator="."): - if cache is None: - cache = {} - self.cache = cache - self.separator = separator - - def get(self, key: str): - """ - Get cached value if exists, else return None. - - :param key: cache_services key - """ - - if key not in self.cache.keys(): - return None - - return self.cache[key] - - def get_with_level(self, keys: list[str]): - """ - Get JSON value by keys chain in 'keys' param. - - :param keys: keys chain param - """ - - key = self._create_key(keys) - return self.get(key) - - def put(self, key: str, value): - """ - Put object to cache_services. - - :param key: cache_services key - :param value: cache_services value - """ - - self.cache[key] = value - - def put_with_level(self, keys: list[str], value): - """ - Put JSON value by keys chain in 'keys' param. - - :param value: value to put - :param keys: keys chain param - """ - - key = self._create_key(keys) - self.put(key, value) - - def _create_key(self, keys: list[str]): - return self.separator.join(keys) - - -class JsonStoreService(InMemoryStoreService): - def __init__(self, filename="cache.json", separator="."): - super().__init__(separator=separator) - mem_cache = {} - if Path(filename).is_file(): - mem_cache = read_json(filename) - self.cache = mem_cache - self.filename = filename - self.separator = separator - - def put(self, key: str, value): - """ - Put object to cache_services. - - :param key: cache_services key - :param value: cache_services value - """ - super().put(key, value) - write_json(self.filename, self.cache) - - def put_with_level(self, keys: list[str], value): - """ - Put JSON value by keys chain in 'keys' param. - - :param value: value to put - :param keys: keys chain param - """ - - super().put_with_level(keys, value) - write_json(self.filename, self.cache) - - -class FastStoreService(InMemoryStoreService): - def flush(self): - """ - Flush data to persisted store. - """ - - raise NotImplementedError("Method is not implemented") - - -class FastJsonStoreService(FastStoreService): - def __init__(self, filename="cache.json", separator="."): - super().__init__(separator=separator) - mem_cache = {} - if Path(filename).is_file(): - mem_cache = read_json(filename) - self.cache = mem_cache - self.filename = filename - self.separator = separator - - def flush(self): - """ - Flush data to persisted store. - """ - - write_json(self.filename, self.cache) diff --git a/pysatl_experiment/persistence/models.py b/pysatl_experiment/persistence/models.py deleted file mode 100644 index 33da85c..0000000 --- a/pysatl_experiment/persistence/models.py +++ /dev/null @@ -1,161 +0,0 @@ -from abc import ABC, abstractmethod -from typing import Any - - -class IStore: - def migrate(self): - """ - Migrate store. - """ - pass - - def init(self): - """ - Initialize store. - """ - pass - - -class IRvsStore(IStore, ABC): - def insert_all_rvs(self, generator_code: str, size: int, data: list[list[float]]): - """ - Insert several rvs data to store. - By default use single rvs insert. - - :param generator_code: generator unique code - :param size: rvs size - :param data: list of lists rvs data - """ - for d in data: - self.insert_rvs(generator_code, size, d) - - @abstractmethod - def insert_rvs(self, generator_code: str, size: int, data: list[float]): - """ - Insert one rvs data to store. - - :param generator_code: generator unique code - :param size: rvs size - :param data: list of lists rvs data - """ - pass - - def get_rvs_count(self, generator_code: str, size: int) -> int: - """ - Get rvs count from store. - By default use get rvs data. - - :param generator_code: generator unique code - :param size: rvs size - - Return rvs data count - """ - return len(self.get_rvs(generator_code, size)) - - @abstractmethod - def get_rvs(self, generator_code: str, size: int) -> list[list[float]]: - """ - Get rvs data from store. - - :param generator_code: generator unique code - :param size: rvs size - - Return list of lists rvs data - """ - pass - - @abstractmethod - def get_rvs_stat(self) -> list[tuple[str, int, int]]: - """ - Get rvs data statistics. - - Return list of tuples (generator code, size, count) - """ - pass - - @abstractmethod - def clear_all_rvs(self): - """ - Clear ALL data in store. - """ - pass - - -class ICriticalValueStore(IStore, ABC): - @abstractmethod - def insert_critical_value(self, code: str, size: int, sl: float, value: float | tuple[float, float]): - """ - Insert critical value to store. - - :param code: test code - :param size: rvs size - :param sl: significant level - :param value: critical value - """ - pass - - @abstractmethod - def insert_distribution(self, code: str, size: int, data: list[float]): - """ - Insert distribution to store. - - :param code: test code - :param size: rvs size - :param data: distribution data - """ - pass - - @abstractmethod - def get_critical_value(self, code: str, size: int, sl: float) -> float | tuple[float, float] | None: - """ - Get critical value from store. - :param code: test code - :param size: rvs size - :param sl: significant level - """ - pass - - @abstractmethod - def get_distribution(self, code: str, size: int) -> list[float] | None: - """ - Get distribution from store. - - :param code: test code - :param size: rvs size - """ - pass - - -class IResultStore(IStore): - @abstractmethod - def insert_result(self, result_id: str, result: Any): - """ - Insert benchmark to store. - - :param result_id: result id - :param result: the result - """ - pass - - @abstractmethod - def get_result(self, result_id: str) -> Any: - """ - Get benchmark from store. - - :param result_id: result id - - :return: result or None - """ - pass - - @abstractmethod - def get_results(self, offset: int, limit: int): # -> [PowerResultModel]: - """ - Get several powers from store. - - :param offset: offset - :param limit: limit - - :return: list of results - """ - pass diff --git a/pysatl_experiment/resolvers/__init__.py b/pysatl_experiment/resolvers/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/pysatl_experiment/resolvers/generator_resolver.py b/pysatl_experiment/resolvers/generator_resolver.py deleted file mode 100644 index 929108f..0000000 --- a/pysatl_experiment/resolvers/generator_resolver.py +++ /dev/null @@ -1,111 +0,0 @@ -# pragma pylint: disable=attribute-defined-outside-init - -""" -This module load custom RVS generators -""" - -import logging -from typing import Any - -from pysatl_experiment.constants import USERPATH_GENERATORS, Config -from pysatl_experiment.exceptions import OperationalException -from pysatl_experiment.experiment.generator import AbstractRVSGenerator -from pysatl_experiment.resolvers.iresolver import IResolver - - -logger = logging.getLogger(__name__) - - -class GeneratorResolver(IResolver): - """ - This class contains the logic to load custom RVS generator class - """ - - object_type = AbstractRVSGenerator - object_type_str = "AbstractRVSGenerator" - user_subdir = USERPATH_GENERATORS - initial_search_path = None - extra_path = "generator_path" - module_names = ["pysatl_experiment.experiment.generator"] - - @staticmethod - def load_generators(config: Config | None) -> list[AbstractRVSGenerator]: - if not config: - raise OperationalException("No configuration set. Please specify configuration.") - - if not config.get("alternatives_configuration"): - raise OperationalException("No alternatives configuration set.") - - alternatives_configuration = config["alternatives_configuration"] - if not alternatives_configuration.get("alternatives"): - raise OperationalException("No alternatives set.") - - alternatives = alternatives_configuration["alternatives"] - generators = [] - for generator_conf in alternatives: - generator = GeneratorResolver.load_generator(generator_conf["name"], generator_conf["params"]) - generators.append(generator) - - return generators - - @staticmethod - def load_generator( - generator_name: str, path: str | None = None, params: dict[str, Any] | None = None - ) -> AbstractRVSGenerator: - """ - Load the custom class from config parameter - :param params: - :param path: - :param generator_name: - """ - - generator: AbstractRVSGenerator = GeneratorResolver._load_generator( - generator_name, params=params, extra_dir=path - ) - - return generator - - @staticmethod - def validate_generator(generator: AbstractRVSGenerator) -> AbstractRVSGenerator: - # Validation can be added - return generator - - @staticmethod - def _load_generator( - generator_name: str, - params: dict[str, Any] | None, - extra_dir: str | None = None, - ) -> AbstractRVSGenerator: - """ - Search and loads the specified strategy. - :param generator_name: name of the module to import - :param config: configuration for the strategy - :param extra_dir: additional directory to search for the given strategy - :return: Strategy instance or None - """ - extra_dirs = [] - - if extra_dir: - extra_dirs.append(extra_dir) - - abs_paths = GeneratorResolver.build_search_paths( - user_data_dir=None, user_subdir=USERPATH_GENERATORS, extra_dirs=extra_dirs - ) - - generator = GeneratorResolver._load_object( - paths=abs_paths, - object_name=generator_name, - add_source=True, - kwargs=params, - ) - - if not generator: - generator = GeneratorResolver._load_modules_object(object_name=generator_name, kwargs=params) - - if generator: - return GeneratorResolver.validate_generator(generator) - - raise OperationalException( - f"Impossible to load RVS generator '{generator_name}'. This class does not exist " - "or contains Python code errors." - ) diff --git a/pysatl_experiment/resolvers/hypothesis_resolver.py b/pysatl_experiment/resolvers/hypothesis_resolver.py deleted file mode 100644 index 44130c1..0000000 --- a/pysatl_experiment/resolvers/hypothesis_resolver.py +++ /dev/null @@ -1,93 +0,0 @@ -# pragma pylint: disable=attribute-defined-outside-init - -""" -This module load custom RVS generators -""" - -import logging -from typing import Any - -from pysatl_experiment.constants import USERPATH_GENERATORS -from pysatl_experiment.exceptions import OperationalException -from pysatl_experiment.experiment.hypothesis import AbstractHypothesis -from pysatl_experiment.resolvers.iresolver import IResolver - - -logger = logging.getLogger(__name__) - - -class HypothesisResolver(IResolver): - """ - This class contains the logic to load custom RVS generator class - """ - - object_type = AbstractHypothesis - object_type_str = "AbstractHypothesis" - user_subdir = USERPATH_GENERATORS - initial_search_path = None - extra_path = "hypothesis_path" - module_name = "pysatl_experiment.experiment.hypothesis" - - @staticmethod - def load_hypothesis( - hypothesis_name: str, path: str | None = None, params: dict[str, Any] | None = None - ) -> AbstractHypothesis: - """ - Load the custom class from config parameter - :param params: - :param path: - :param hypothesis_name: - """ - - hypothesis: AbstractHypothesis = HypothesisResolver._load_hypothesis( - hypothesis_name, params=params, extra_dir=path - ) - - return hypothesis - - @staticmethod - def validate_hypothesis(generator: AbstractHypothesis) -> AbstractHypothesis: - # Validation can be added - return generator - - @staticmethod - def _load_hypothesis( - hypothesis_name: str, - params: dict[str, Any] | None, - extra_dir: str | None = None, - ) -> AbstractHypothesis: - """ - Search and loads the specified strategy. - :param hypothesis_name: name of the module to import - :param config: configuration for the strategy - :param extra_dir: additional directory to search for the given strategy - :return: Strategy instance or None - """ - extra_dirs = [] - - if extra_dir: - extra_dirs.append(extra_dir) - - abs_paths = HypothesisResolver.build_search_paths( - user_data_dir=None, user_subdir=USERPATH_GENERATORS, extra_dirs=extra_dirs - ) - - hypothesis = HypothesisResolver._load_object( - paths=abs_paths, - object_name=hypothesis_name, - add_source=True, - kwargs=params, - ) - - if not hypothesis: - hypothesis = HypothesisResolver._load_module_object( - object_name=hypothesis_name, kwargs=params, module_name="" - ) - - if hypothesis: - return HypothesisResolver.validate_hypothesis(hypothesis) - - raise OperationalException( - f"Impossible to load RVS hypothesis '{hypothesis_name}'. This class does not exist " - "or contains Python code errors." - ) diff --git a/pysatl_experiment/resolvers/iresolver.py b/pysatl_experiment/resolvers/iresolver.py deleted file mode 100644 index 7a6f9e6..0000000 --- a/pysatl_experiment/resolvers/iresolver.py +++ /dev/null @@ -1,297 +0,0 @@ -# pragma pylint: disable=attribute-defined-outside-init - -""" -This module load custom objects -""" - -import importlib.util -import inspect -import logging -import sys -from collections.abc import Iterator -from pathlib import Path -from typing import Any - -from pysatl_experiment.constants import Config -from pysatl_experiment.exceptions import OperationalException - - -logger = logging.getLogger(__name__) - - -class PathModifier: - def __init__(self, path: Path): - self.path = path - - def __enter__(self): - """Inject path to allow importing with relative imports.""" - sys.path.insert(0, str(self.path)) - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - """Undo insertion of local path.""" - str_path = str(self.path) - if str_path in sys.path: - sys.path.remove(str_path) - - -class IResolver: - """ - This class contains all the logic to load custom classes - """ - - # Child classes need to override this - object_type: type[Any] - object_type_str: str - user_subdir: str | None = None - initial_search_path: Path | None = None - # Optional a path (generator_path, report_generator_path) - extra_path: str | None = None - module_names: list[str] | None = None - - @classmethod - def build_search_paths( - cls, - user_data_dir: Path | None = None, - user_subdir: str | None = None, - extra_dirs: list[str] | None = None, - ) -> list[Path]: - abs_paths: list[Path] = [] - if cls.initial_search_path: - abs_paths.append(cls.initial_search_path) - - if user_subdir and user_data_dir: - abs_paths.insert(0, user_data_dir.joinpath(user_subdir)) - - # Add extra directory to the top of the search paths - if extra_dirs: - for directory in extra_dirs: - abs_paths.insert(0, Path(directory).resolve()) - - if cls.extra_path: - abs_paths.insert(0, Path(cls.extra_path).resolve()) - - return abs_paths - - @classmethod - def _get_valid_object(cls, module_path: Path, object_name: str | None, enum_failed: bool = False) -> Iterator[Any]: - """ - Generator returning objects with matching object_type and object_name in the path given. - :param module_path: absolute path to the module - :param object_name: Class name of the object - :param enum_failed: If True, will return None for modules which fail. - Otherwise, failing modules are skipped. - :return: generator containing tuple of matching objects - Tuple format: [Object, source] - """ - - # Generate spec based on absolute path - # Pass object_name as first argument to have logging print a reasonable name. - with PathModifier(module_path.parent): - module_name = module_path.stem or "" - spec = importlib.util.spec_from_file_location(module_name, str(module_path)) - if not spec: - return iter([None]) - - module = importlib.util.module_from_spec(spec) - try: - spec.loader.exec_module(module) # type: ignore # importlib does not use typehints - except ( - AttributeError, - ModuleNotFoundError, - SyntaxError, - ImportError, - NameError, - ) as err: - # Catch errors in case a specific module is not installed - logger.warning(f"Could not import {module_path} due to '{err}'") - if enum_failed: - return iter([None]) - - def is_valid_class(obj): - try: - return ( - inspect.isclass(obj) - and issubclass(obj, cls.object_type) - and obj is not cls.object_type - and obj.__module__ == module_name - ) - except TypeError: - return False - - valid_objects_gen = ( - (obj, inspect.getsource(module)) - for name, obj in inspect.getmembers(module, is_valid_class) - if (object_name is None or object_name == name) - ) - # The __module__ check ensures we only use strategies that are defined in this folder. - return valid_objects_gen - - @classmethod - def _search_object( - cls, directory: Path, *, object_name: str, add_source: bool = False - ) -> tuple[Any, Path] | tuple[None, None]: - """ - Search for the objectname in the given directory - :param directory: relative or absolute directory path - :param object_name: ClassName of the object to load - :return: object class - """ - logger.debug(f"Searching for {cls.object_type.__name__} {object_name} in '{directory}'") - for entry in directory.iterdir(): - # Only consider python files - if entry.suffix != ".py": - logger.debug("Ignoring %s", entry) - continue - if entry.is_symlink() and not entry.is_file(): - logger.debug("Ignoring broken symlink %s", entry) - continue - module_path = entry.resolve() - - obj = next(cls._get_valid_object(module_path, object_name), None) - - if obj: - obj[0].__file__ = str(entry) - if add_source: - obj[0].__source__ = obj[1] - return obj[0], module_path - return None, None - - @classmethod - def _load_object( - cls, - paths: list[Path], - *, - object_name: str, - add_source: bool = False, - kwargs: dict[str, Any] | None, - ) -> Any | None: - """ - Try to load object from path list. - """ - - for _path in paths: - try: - (module, module_path) = cls._search_object( - directory=_path, object_name=object_name, add_source=add_source - ) - if module: - logger.info( - f"Using resolved {cls.object_type.__name__.lower()[1:]} {object_name} from '{module_path}'..." - ) - return module(**kwargs) - except FileNotFoundError: - logger.warning('Path "%s" does not exist.', _path.resolve()) - - return None - - @classmethod - def _load_modules_object(cls, *, object_name: str, kwargs: dict[str, Any] | None) -> Any | None: - """ - Try to load object from path list. - """ - if cls.module_names is None: - return None - - for module_name in cls.module_names: - module_object = cls._load_module_object(object_name=object_name, kwargs=kwargs, module_name=module_name) - if module_object is not None: - return module_object - return None - - @classmethod - def _load_module_object(cls, *, object_name: str, kwargs: dict[str, Any] | None, module_name: str) -> Any | None: - """ - Try to load object from path list. - """ - - try: - module = getattr(importlib.import_module(module_name), object_name) - if module: - logger.info( - f"Using resolved {cls.object_type.__name__.lower()[1:]} {object_name} from '{module_name}'..." - ) - return module(**kwargs) - except FileNotFoundError: - logger.warning('Object "%s" does not exist.', object_name) - - return None - - @classmethod - def load_object( - cls, - object_name: str, - config: Config, - *, - kwargs: dict, - extra_dir: str | None = None, - ) -> Any: - """ - Search and loads the specified object as configured in the child class. - :param object_name: name of the module to import - :param config: configuration dictionary - :param extra_dir: additional directory to search for the given pairlist - :raises: OperationalException if the class is invalid or does not exist. - :return: Object instance or None - """ - - extra_dirs: list[str] = [] - if extra_dir: - extra_dirs.append(extra_dir) - - # TODO: fix - abs_paths = cls.build_search_paths(None, user_subdir=cls.user_subdir, extra_dirs=extra_dirs) - - found_object = cls._load_object(paths=abs_paths, object_name=object_name, kwargs=kwargs) - if found_object: - return found_object - raise OperationalException( - f"Impossible to load {cls.object_type_str} '{object_name}'. This class does not exist " - "or contains Python code errors." - ) - - @classmethod - def _build_rel_location(cls, directory: Path, entry: Path) -> str: - builtin = cls.initial_search_path == directory - return f"/{entry.relative_to(directory)}" if builtin else str(entry.relative_to(directory)) - - @classmethod - def _search_all_objects( - cls, - directory: Path, - enum_failed: bool, - recursive: bool = False, - basedir: Path | None = None, - ) -> list[dict[str, Any]]: - """ - Searches a directory for valid objects - :param directory: Path to search - :param enum_failed: If True, will return None for modules which fail. - Otherwise, failing modules are skipped. - :param recursive: Recursively walk directory tree searching for strategies - :return: List of dicts containing 'name', 'class' and 'location' entries - """ - logger.debug(f"Searching for {cls.object_type.__name__} '{directory}'") - objects: list[dict[str, Any]] = [] - if not directory.is_dir(): - logger.info(f"'{directory}' is not a directory, skipping.") - return objects - for entry in directory.iterdir(): - if recursive and entry.is_dir() and not entry.name.startswith("__") and not entry.name.startswith("."): - objects.extend(cls._search_all_objects(entry, enum_failed, recursive, basedir or directory)) - # Only consider python files - if entry.suffix != ".py": - logger.debug("Ignoring %s", entry) - continue - module_path = entry.resolve() - logger.debug(f"Path {module_path}") - for obj in cls._get_valid_object(module_path, object_name=None, enum_failed=enum_failed): - objects.append( - { - "name": obj[0].__name__ if obj is not None else "", - "class": obj[0] if obj is not None else None, - "location": entry, - "location_rel": cls._build_rel_location(basedir or directory, entry), - } - ) - return objects diff --git a/pysatl_experiment/experiment/listener/__init__.py b/tests/__init__.py similarity index 100% rename from pysatl_experiment/experiment/listener/__init__.py rename to tests/__init__.py diff --git a/pysatl_experiment/experiment/report/__init__.py b/tests/core/distribution/__init__.py similarity index 100% rename from pysatl_experiment/experiment/report/__init__.py rename to tests/core/distribution/__init__.py diff --git a/tests/distribution/distribution_test.py b/tests/core/distribution/distribution_test.py similarity index 100% rename from tests/distribution/distribution_test.py rename to tests/core/distribution/distribution_test.py diff --git a/tests/core/store_test.py b/tests/core/store_test.py deleted file mode 100644 index 2710aca..0000000 --- a/tests/core/store_test.py +++ /dev/null @@ -1,34 +0,0 @@ -from pathlib import Path - -import pytest - -from pysatl_experiment.persistence.file_store.store import JsonStoreService - - -filename = "cache.json" - - -class TestJsonStoreService: - @pytest.fixture - def store(self): - return JsonStoreService(filename=filename) - - def teardown_method(self, method): - try: - Path(filename).unlink() - except OSError: - pass - - def test_get_empty(self, store): - assert store.get("a") is None - - def test_get_with_level_empty(self, store): - assert store.get_with_level(["a", "b", "c"]) is None - - def test_put(self, store): - store.put("a", 1) - assert store.get("a") == 1 - - def test_put_with_level(self, store): - store.put_with_level(["a", "b"], 2) - assert store.get_with_level(["a", "b"]) == 2 diff --git a/tests/distribution/__init__.py b/tests/distribution/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/listener_test.py b/tests/listener_test.py deleted file mode 100644 index 66043cc..0000000 --- a/tests/listener_test.py +++ /dev/null @@ -1,15 +0,0 @@ -from pysatl_experiment.experiment.listener.listeners import TimeEstimationListener - - -def test_time_estimation_before(): - listener = TimeEstimationListener() - listener.before() - assert listener.start_time is not None - - -def test_time_estimation_after(): - listener = TimeEstimationListener() - listener.before() - listener.after() - assert listener.start_time is not None - assert listener.end_time is not None diff --git a/tests/resolvers/__init__.py b/tests/resolvers/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/store/__init__.py b/tests/store/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/store/benchmark_result_db_test.py b/tests/store/benchmark_result_db_test.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/store/critical_value_db_test.py b/tests/store/critical_value_db_test.py deleted file mode 100644 index dc7c395..0000000 --- a/tests/store/critical_value_db_test.py +++ /dev/null @@ -1,41 +0,0 @@ -from pathlib import Path - -import numpy as np -import pytest - -from pysatl_experiment.persistence.db_store import CriticalValueDbStore - - -store_name = "pysatl.sqlite" - - -class TestCriticalValueSqLiteStoreService: - @pytest.fixture - def store(self): - store = CriticalValueDbStore(db_url="sqlite:///" + store_name) - store.init() - return store - - def teardown_method(self, method): - try: - Path(store_name).unlink() - Path(store_name + "-journal").unlink() - except OSError: - pass - - def test_get_critical_value_empty(self, store): - assert store.get_critical_value("", 5, 0.05) is None - - def test_get_distribution_empty(self, store): - assert store.get_distribution("", 5) is None - - def test_get_critical_value(self, store): - store.insert_critical_value("test", 2, 0.05, 1.5) - value = store.get_critical_value("test", 2, 0.05) - assert value == 1.5 - - def test_get_distribution(self, store): - store.insert_distribution("gen_code1", 4, [0.1, 0.2, 0.3, 0.4]) - ar = np.array(store.get_distribution("gen_code1", 4)) - expected = np.array([0.1, 0.2, 0.3, 0.4]) - assert np.array_equal(ar, expected) diff --git a/tests/store/critical_value_file_store_test.py b/tests/store/critical_value_file_store_test.py deleted file mode 100644 index af45506..0000000 --- a/tests/store/critical_value_file_store_test.py +++ /dev/null @@ -1,40 +0,0 @@ -import shutil - -import numpy as np -import pytest - -from pysatl_experiment.persistence.file_store import CriticalValueFileStore - - -store_name = "data5" - - -class TestCriticalValueFileStoreService: - @pytest.fixture - def store(self): - store = CriticalValueFileStore(path=store_name) - store.init() - return store - - def teardown_method(self, method): - try: - shutil.rmtree(store_name) - except OSError: - pass - - def test_get_critical_value_empty(self, store): - assert store.get_critical_value("", 5, 0.05) is None - - def test_get_distribution_empty(self, store): - assert store.get_distribution("", 5) is None - - def test_get_critical_value(self, store): - store.insert_critical_value("test", 2, 0.05, 1.5) - value = store.get_critical_value("test", 2, 0.05) - assert value == 1.5 - - def test_get_distribution(self, store): - store.insert_distribution("gen_code1", 4, [0.1, 0.2, 0.3, 0.4]) - ar = np.array(store.get_distribution("gen_code1", 4)) - expected = np.array([0.1, 0.2, 0.3, 0.4]) - assert np.array_equal(ar, expected) diff --git a/tests/store/result_sql_lite_test.py b/tests/store/result_sql_lite_test.py deleted file mode 100644 index dc35252..0000000 --- a/tests/store/result_sql_lite_test.py +++ /dev/null @@ -1,53 +0,0 @@ -from pathlib import Path - -import numpy as np -import pytest - -from pysatl_experiment.experiment.configuration import TestWorkerResult -from pysatl_experiment.persistence.db_store import ResultDbStore - - -store_name = "pysatl.sqlite" - - -class TestResult(TestWorkerResult): - __test__ = False - - def __init__(self, name, values): - self.name = name - self.values = values - - -class TestBenchmarkResultSqLiteStoreService: - @pytest.fixture - def store(self): - store = ResultDbStore(db_url="sqlite:///" + store_name) - store.init() - return store - - def teardown_method(self): - try: - Path(store_name).unlink() - Path(store_name + "-journal").unlink() - except OSError: - pass - - def test_get_results_empty(self, store): - assert len(store.get_results(0, 5)) == 0 - - def test_get_result_empty(self, store): - assert store.get_result("test") is None - - def test_get_result_value(self, store): - store.insert_result("test", TestResult("name", [0.1, 0.5])) - result = store.get_result("test") - assert result.name == "name" - assert np.array_equal(result.values, [0.1, 0.5]) - - def test_get_results_value(self, store): - store.insert_result("test", TestResult("name1", [0.1, 0.5])) - store.insert_result("test1", TestResult("name", [0.3, 0.2])) - result = store.get_results(0, 5) - result = sorted(list(map(lambda x: x.name, result))) - assert result[0] == "name" - assert result[1] == "name1" diff --git a/tests/store/rvs_db_test.py b/tests/store/rvs_db_test.py deleted file mode 100644 index 7d1cfd7..0000000 --- a/tests/store/rvs_db_test.py +++ /dev/null @@ -1,53 +0,0 @@ -from pathlib import Path - -import numpy as np -import pytest - -from pysatl_experiment.persistence.db_store import RvsDbStore - - -store_name = "pysatl.sqlite" - - -class TestRvsSqLiteStoreService: - @pytest.fixture - def store(self): - store = RvsDbStore(db_url="sqlite:///" + store_name) - store.init() - return store - - def teardown_method(self): - try: - Path(store_name).unlink() - Path(store_name + "-journal").unlink() - except OSError: - pass - - def test_get_rvs_stat_empty(self, store): - assert len(store.get_rvs_stat()) == 0 - - def test_get_rvs_empty(self, store): - assert len(store.get_rvs("test", 2)) == 0 - - def test_insert_rvs(self, store): - store.insert_rvs("gen_code", 10, [0.1, 0.2]) - ar = np.array(store.get_rvs_stat()) - expected = np.array([("gen_code", 10, 1)]) - assert np.array_equal(ar, expected) - - def test_insert_all_rvs(self, store): - store.insert_all_rvs("gen_code1", 2, [[0.1, 0.2], [0.3, 0.4]]) - ar = np.array(store.get_rvs_stat()) - expected = np.array([("gen_code1", 2, 2)]) - assert np.array_equal(ar, expected) - - def test_get_rvs(self, store): - store.insert_all_rvs("gen_code2", 2, [[0.1, 0.2], [0.3, 0.4]]) - ar = np.array(store.get_rvs("gen_code2", 2)) - expected = np.array([[0.1, 0.2], [0.3, 0.4]]) - assert np.array_equal(ar, expected) - - def test_clear_rvs(self, store): - store.insert_all_rvs("gen_code2", 2, [[0.1, 0.2], [0.3, 0.4]]) - store.clear_all_rvs() - assert len(store.get_rvs("gen_code2", 2)) == 0 diff --git a/tests/store/rvs_file_store_test.py b/tests/store/rvs_file_store_test.py deleted file mode 100644 index 80c9ca9..0000000 --- a/tests/store/rvs_file_store_test.py +++ /dev/null @@ -1,52 +0,0 @@ -import shutil - -import numpy as np -import pytest - -from pysatl_experiment.persistence.file_store.rvs_store import RvsFileStore - - -store_name = "data5" - - -class TestRvsSqlLiteStoreService: - @pytest.fixture - def store(self): - store = RvsFileStore(path=store_name) - store.init() - return store - - def teardown_method(self, method): - try: - shutil.rmtree(store_name) - except OSError: - pass - - def test_get_rvs_stat_empty(self, store): - assert len(store.get_rvs_stat()) == 0 - - def test_get_rvs_empty(self, store): - assert len(store.get_rvs("test", 2)) == 0 - - def test_insert_rvs(self, store): - store.insert_rvs("gen_code", 10, [0.1, 0.2]) - ar = np.array(store.get_rvs_stat()) - expected = np.array([("gen_code", 10, 1)]) - assert np.array_equal(ar, expected) - - def test_insert_all_rvs(self, store): - store.insert_all_rvs("gen_code1", 2, [[0.1, 0.2], [0.3, 0.4]]) - ar = np.array(store.get_rvs_stat()) - expected = np.array([("gen_code1", 2, 2)]) - assert np.array_equal(ar, expected) - - def test_get_rvs(self, store): - store.insert_all_rvs("gen_code2", 2, [[0.1, 0.2], [0.3, 0.4]]) - ar = np.array(store.get_rvs("gen_code2", 2)) - expected = np.array([[0.1, 0.2], [0.3, 0.4]]) - assert np.array_equal(ar, expected) - - def test_clear_rvs(self, store): - store.insert_all_rvs("gen_code2", 2, [[0.1, 0.2], [0.3, 0.4]]) - store.clear_all_rvs() - assert len(store.get_rvs("gen_code2", 2)) == 0 From e6edae3e8b968ba6a89d560eebd6052bef4280f4 Mon Sep 17 00:00:00 2001 From: Alexey Mironov Date: Wed, 1 Oct 2025 14:16:48 +0300 Subject: [PATCH 7/8] Add cairo to deps --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 167b138..10cf2a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,6 +43,7 @@ ruff = "0.11.12" pytest-mock = "3.14.1" pre-commit = "4.2.0" mypy = "^1.15.0" +pycairo = "1.28.0" [tool.poetry.scripts] experiment = "pysatl_experiment.cli.cli.cli:cli" From 9d0fa2b16a6c039dd2cc0260d53e048882ef4db3 Mon Sep 17 00:00:00 2001 From: Alexey Mironov Date: Wed, 1 Oct 2025 14:25:48 +0300 Subject: [PATCH 8/8] Fix cairo --- .github/workflows/ci.yaml | 5 +++++ pyproject.toml | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6aacfcc..ca92f4a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,6 +27,11 @@ jobs: with: submodules: recursive + - name: Install system dependencies (Cairo) + run: | + sudo apt-get update + sudo apt-get install -y libcairo2-dev pkg-config + - name: Install Poetry run: pip install poetry==2.1.1 diff --git a/pyproject.toml b/pyproject.toml index 10cf2a7..167b138 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,7 +43,6 @@ ruff = "0.11.12" pytest-mock = "3.14.1" pre-commit = "4.2.0" mypy = "^1.15.0" -pycairo = "1.28.0" [tool.poetry.scripts] experiment = "pysatl_experiment.cli.cli.cli:cli"