From 7164a8bdf967b9eea78461033abac18c007eca04 Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Thu, 21 Dec 2023 11:10:07 +0100 Subject: [PATCH 01/28] Update version-number for next develop version 2.6.0-alpha --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index 437459cd9..4599360c6 100644 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.5.0 +2.6.0-alpha From 599a11f9769a36bde75047dfc9560bdaec5719a0 Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Thu, 28 Dec 2023 16:59:02 +0100 Subject: [PATCH 02/28] fix youtube-dl package (#2185) * fix youtube-dl version * fix url for installation tests --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index e15872843..eba1cdd62 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ # related libraries. evdev git+https://github.com/lthiery/SPI-Py.git#egg=spi-py -youtube-dl +git+https://github.com/ytdl-org/youtube-dl@master#egg=youtube-dl pyserial RPi.GPIO From d24bca4e8f66c85e4d9ae0df1e9014ebf787c7fd Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Fri, 29 Dec 2023 19:49:15 +0100 Subject: [PATCH 03/28] Der Neue 2024 Kalender ist da... (#2188) --- docs/2024-Phoniebox-Calendar.jpg | Bin 0 -> 518794 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/2024-Phoniebox-Calendar.jpg diff --git a/docs/2024-Phoniebox-Calendar.jpg b/docs/2024-Phoniebox-Calendar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..17cc8a31f80e13851cd02a6a24f2838dfbcbedbd GIT binary patch literal 518794 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≪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 z zg^f)d>uwkCmyOMX!^v=!TK^&W$zM}kRns-K}zn?|) z0&q13;*Vc0`U+lbh;Z>lTrYnA3SR7@w9g=&zt+&0G~!vS^j?RBb>2sk4HK)1M=0c6 z)zO_7N;aRGvScCx8J-9MmBdfX8>wv}b*8S^XU>>FHjQDi^q$Uh=T&`YImZUXQ<2 zq>A`4DS&Y`V_nOc#2AAG&PXYKZ#-$yAVFq#BovY!p=00%GIab;593qMM}XHm{`t{K_PGJ=obW!r=@Yk1oH+^|A%BQ69yn#vQS zE@1&D0AblkTj{_|`)}YgViV5us%}?MAi_4O;5+-x3rHaC!D)W|55W#zi`vZf$NDI0 zFd6?%bC@g6wLvE1T<^7nGwemx7U^=k3@p|o`#4xXmpCkim&I3n_ft6dQL&QE`;pG+ zwfDogi>R_!KHp_b1rLE&}jUFo=h2u8Tm3jgGgGnd+4Ok>~8BOhF z0i&$wN4i^%rM-rrHs&&wWCnuHHvDj!mH~0vJ$ZDa)t3@|H(#8_VtG)Ym>4jSUogKM z>n*_zh44HZtC&(xtC0D2lVZaMW6|2B|C(YiD7O?bW*i9MsAL=rB&HzL}g zfK?%ExPXSbUykX*=MsPEM^fZBlKn8)OhONnuxa!wrY!$^W_YH)I7#ZgXwOYXLOm+^ zgRr;1UiaKszqxT@m#}1#76d@szZ3nbg+cfl|AVvM{2fw@pEC8CI%)4FUshHik!(J*M;Yi!nNMu zg8<2cTZ1N=TcX^Tx+MYz)qU(OQhwT{%TJ@O^DCztXH>?f-*L9L!VIGs->;=OiTN3( z@u7Eg+C1qHJq?8Mn#c0Y1c_Hql4`;SIsZG3XQIR^7=9exi*cEDJch`S5Y})EF}Kbh zCM>^(E{o?#6zEEh7QkJaUHcuWZ)#*hZv2%_u}4HZ)EU4Nr=a<|!Lu}%%Nux2!xQN` z3L2*}Kmt~0T4!w)B^-au=28#^j84cJt;flZ=st12-ouWluVU5ut7=IEJ(KW)2Gi@s?m_tq2Gk;4o3<_YK>iSo%GvR>6qOLQm8B3DVA zjCFd6+Qh<8-tTN^#%HHi@5kfr_`l~XxLl*`F%|VV*-q|d%ZWZya}+5N^eB@zkILJe zZD&7Q>gITTT;YWGoBPgyCn(#b4475%^wOj{Kb&Zu zbfb=}_NFRQMk|$b-3tKt7)NfK#)x4;^kOB{lDmx6|OY|%XU z@s$ID$u|~V>k6fD74DaT6ZL|Lq7}bxf>1@wicJ+gSzq3N=-J*xe}&dPw;Ku1W$-b* zK-nd|2*)MU_n1I9EA4${*`qwDaoDm6)bmI52|9tNwAS3Bbh2%qgij-{5-{xE0nMvS z+jTB3zX-8c#avOgZzaV;_F75YK3IKZOIcB$-Ya$}yW5%j*|w8yXg^m|_Ke>N_BK}~ zOhB=-Y385$C4+1bS*vCIY!b9u#9yJ6G#YL|I=7g^I>`~US(wlkIN3s$N!;Z-_{+H7 zQatncr*_lwI^Gx3{O_BA7O88ApSwvGWneOQ;v+uXjtBxcVxa789r=<>Gqdcfo zz6CU5qebXZ&MBdk72oQk(j;f+kX*0YTyS;t2yZ*+9)|n;K|q_mPYbBK(S#!wJr&BL zlPMlOEN~4w!tX|0wVW^Ah3rM{4Cxb!dbQZN7k3_Hy~&t!?b9Q|Tciwo-r8$wJxg3w zP4Np%o43vKf^w!e-Q#fC@C2k=4$o!vE8T?ldHf!${NKngIs!TjGRjU`009ftIoiez zi$q6DzX3jM_O}XI@O${&jC!FuqlTrS_P#@_y0QHZc)vo?H$#g`?64{oowg=cG5YIQ zSNa)yT#GPK3D>$Uo4at`)Yv@;#F%e)>sJj2;kb`?7ihHq8VKabxVrRT_`gj|rnb{_ zd_HCvkUK@OxeGw5T=ak+AHN3{_U~0pWq^(3V)LhiJdT`Je>4^AW@Cpv)(BIg{Q|m+ zV_!iI{3&;RrtT$1uJbQ~zV1tHz!&O?$e!o_AGc$=K0b$)5ZZ3%-J;D{&iOUT#&sAW z(mb*lEks+DUz7Fc!HL+>!`YCmD^~@xn?@$I}oKy6(}~~o~ghu z_U2=r%N7%WKihhRT!E3#(E}lGr}S<6oJ+g|pQ9)FNDceD))XM0fVXXBRrVABHk*|I zz;#^aAj~$j5QOXctFi9^P~p>~`NEKC^c9}UJJ+bK*P%pJSk6g1#>3qhw##{Qox91x z+Zp?W&XY0~zreqrk3}W52}67P`LpKo8g&%+yy1Jt^Ts!$th%T3Cp0VQ$0vaR!lfE= z%Tqm3863)};L?RQ!+_>L2+O>E!_0=|F2%NeEL!S>{9-9cq;XoP}yNl5rI*By5x#_90) z{ef5J6q#?TLg#VO+Re0+@1a1asz)O?U~rDgJwv~I4sc{px;&b9<6K5o-mY>EpuemB z>^EPuB8pwkC=N29SPLIv|LnK$Z~vF`zXS+9w+%R$MVs5)GuPl9G-NH19+W^@;{g?V z1KVB*xVb2WI>ysPZ`6^L`Z6b6guebesG@Z6dcX~9M$aZwq?w!HyEcPH-->@la!*|L zaP(55er@U=a_2;58=HVe5 z7j3TMSLB`gWuv3w%xU0uVaKBt!yUlF&48Uuq2M|ykQ1^+8OI?Qxs5(Sb^pWP3W`t0 zH1n$dsYIkFRoGN|V0n2#nsFf-MLlW0S%K=ubq-;c)Mfbon@3YPiYt-cad*=uF}b~c zvPNp|yKZ{v6=f}(5{`d({bio+J43KtgLzR*X>0w-+vg%ITdRg3t%9m-o$T9x4g9Je z9c1oJ=mngk0oZ_5td+YYH8N;hKs1h2;3T+@pXIM$f0@NOHug&mZ;D0yD`Q=zve_wn ztEiT`PoD%4&;@${2UPm0F^2pigVO0csfrXije5c85H1O=|4&4 zkWdc1F>L{UvLsGwRQ1=H@7s5;?rgoQsBDxO`~0qq*{a@V^@J1a`0^}g>W-iDIP{>5 zPSGOuNrZ^D3zZ#>6;DHY>!66V2_9yKV5NmM&vzC8@}g?sp~~vg%P>-b%_tvu8j@Pm zdvV`l!pP+YWO(xzU!)-7X?;lxU27#>>_Kgpcx>HKX&3m?rElLodi}J&Nz=?LF@j2-;QJO_7N!5pgrSx1 z2C0(`iK)W%P!JzJr~lCmnZ=Ln`^@B-x2^+D%9SYA_=?D@J?|Ho?=X(-|8k<0x) zjg$z6^EOXEVw!!(iFaJke>Au)I2tJPCwfE@ygB*(kMzY0kMg7DSdcM!`X*9Lk4h1P z6C14mB?SKfR#~f7#)1VOJOevea=ztguzYnPsmlj4XKER?flkT_+=J>&>`R~NhkJT% z_Vm)!d7>_4f+cmP_Z83dQ93Lm*On{oYabE4NvAq0-auIFCa{TZ5etegBcmbSqO=q`~_bzFEu9 zy^y`cG+#Ltug4XpPN7nR4bcmxE_jk-^+edq#ZSK=n66i-axk71ZZT0hr3fS15lXtftCmQPYnq!8hfrCPC6yM>7mp3A47=SCO;TMdy2zc{6s;rckR})YY!x zDY39E3^!h($WX4m-dJp%Z2LKftRPp6==@4DR45igSa+dKJvQ1Q&)n1kC$xJOkMeoj z*?Xoc%KMc>;}!HaT`tTNb}Sq?`sxBqx}Ug&Gr)Xjf>c&mD#j3)sTyOoX8JLFai+j0 z9*KWrb@faVekk<_vm8sx9}@~~aS4CI{q=4>rgZ}eI}yzQ%R1F+rtoY2n5U^QD;$89 ztCplkmkdGj`&kEJHdeBfEU(s=LqM3T&5o$n_oGa@_%Yt7EQL~bqDvk9t`+%hq-&!S zIZh-On>+@NRUN}mq_vF{tASex_;f_+q;X;V!LhWqph)DB69;xNLk4x+of0n@b&Gg5 z?=kY&B+ky&&^8t&@}UzzIM}bD@B^y1F_Cy}$qbp zH@3G|f-o?{pXaWX(+Yy0rgHbRKP3gkOkSC%trz2$p{Q4I#lo?8mECBMlE4m7K$ z5ujr{uu_dX2PSc>Z-u;jhMKvrnZAGoe2PS3psJ`Z4Yf!LYBALG^Trz)V{SN0} zWeBBmII@m$Y)f^rtR*H@%5p`-1lju07$med=qe_o*d{+!%ldAJEhOCQpox^0i!H?S z4pv|a@4o(`I-*=-Sjv~BUTRVUxt<2k;FbJnr0 zo8%G~n|fRU8)AZlRe4|Pr}^WNc9upjHXI%L-V0XfE@6C`kNj@<%N|*AJGo`N20|OX zuPdc?(b|LSO;BT$U}#nl77qwZacgn83kFXFjNe( z2-s_P^${sDCKXP=roo+UNS4y^m6}Y?B>oJQZDDRJZ(5d}8SkBK7DhBg>^B)a@4Lvd zWZX++*FZo&<2Kcc;?V>v2>2rWIQec^Ia8GsDZRqq37eqf)6o8QQlI_!3!eA-WpslET%MFv z4VEz=nw;gMt54UYU4ATwve3X+;+INcmcbrhx9DsOMl*FR%fMHe@gH36 zJ;NP@_grAN_I@s9e$TcfehqXZJ3BcEuT`lCb9~ybFNSAcXi>U$QVo2;!$YwBPFz?= zN*B7FrsCL{|D$YL-brjJJIwWqb72TR3NSGa1pz4-GeUmiv&skBJx`Kb5_mvyEapIC zM&bbK>`7ZS+uGrqDfAB2iLSd(qwMAM>v@>g>St>-D#g8QraC!2 zr39hvY-a$}JN7WY#*PM=vZpX*7hhKEv6D&c*T5O{Co6TCQ_PCXgd2>}OAjVVJZhf* zwg?&jvj{<@lCSl|5g_x}!5n<>op~H?x?qOK!{Js)nDYG4lvGMYcH7K8TnC+b9YI$8 zWdPCf=03bO-+4Mn`%1^@ts|)l#@3(pruMTkn6vKOv+O+WugFGS;B4J|NNn4vE-v>M z7V2*0RkwYu(=P=N@?`bpB7$z?1&F+;VRx5mH(HO4ODp4jhm8W6h%?0dlzX0mP{E>V zB5W;Ndkm2}>y`Y(K7p)Ecy&F|iO6v#m>pKyFFC|T!j#khv&zL4Q%ZzOzxyRz*}`47!G{bUtt|2^7TskX zkyetYf3bAulHaC-RwZwYHi=coYDpfrPWRZdcX*>${rp-liECUDFwitnDC?cGgIcQP z7;0#c;H8sP?E(@^WR9}T66YR(Rx>2-6vhY|l2uW>Jruec>|gqWQ1QH7Jh7k@U4yb) z{OjGtkGr_o%Ng3z;?I8W27YMKURJU4$0UGxXaj>*P}+)BVDMgjPriQeIyD|v%z=ieLV=4XCfGI@HRUS=I9MdnSm(+MZvIh&n7cEBQXU7L&T1JEE@RHq&F4$ zPkozd2!i*uyHUYn_N0Ao_2bRbiaf0@Y1-=QP4usN7 zbyA|2b4G_40UXzLJZaOGwwA!N_6__(gXLumgPwa7+5VDiqr*?Co^lSOgXDrSF)L$4j?kGk3MRv)h8;Zr=$e(MeK+PE&)O$9LOTQ z`a4^5YS=k_wc7#He6Tsy9CFL8A21cpGQ7!@{vzS7w<3iQs%kJbDY1zF*XRpXBnZ6L z!2AK$XdNO?E?Mx;;7)Ib5vXhiBJjPY@<&e$`VRZpt) zxjFt_=N%+BSZ4gk*oHp{x=({n`Xaq@b6RHuYq4-`Le18q7HN@OLodYsQ6IUfFLm+F zGJr#@iFfL3{Ov#h{}b<^tUwp&&NwuHPDsaND>9@kO=CyZP7& z3!ob{;d+%50}2`RCy-YGy){laCV%|BccanS46PQd%5bT6s1V;R9?wO99=)CJ%Wq5u zc`Ici$knS#lR^VV)ZWe1g7aj5?!EQgC=iXU8~8n&MWaXF9|XtGcz8T;_epG)-FCcc ztk9n0-C_LpRA8obc07sg5hwQK^%P0B5*XnHeWUt(!h`$KR$&!dWO>#vGNU^y)tF&$ zRZH;kOw6@+AVN9orS2k$Eei?U&9ChPkwEx(x&p@#iqAM@_vI^wS5wKG|K->I%htTe z;TAa-q*yA0Tbld}-yIT(8C4|2wK+0F*7Lgz;7_nO15cneiNhhY$8d041ZBJ|Bw6(h z$KADgCz5N`p8y9Tu`-me2;+Irw%By2;XZX`z|A~l*x9O>3Ljl@_5S- z6Y(>=$gjL~e$_2!1i8Y|W4n%T!)u%MH4O{xTe>fW=p!!(*uFuX<-R3NU*e32`{57 z&APA@g&{n8TAKO3hYx*3u8Q@0`OmUCqWQih3w#TUjIXTujbJW~k29tT{!p39o{*b0 z4dR?3gFz#@n?u(gqIE?u4LDWtkQnbh4Dx&bOoQ({KF$P-8#f$F9*v+?5D3alB7r04 z!K2vS>R&}%TbTD7>|Lry+xnb*R|Woi5}+#)I>O|pEWh#uZ~m?tq7!R;ohUoh{#(X4 z{mic|n?I+gD2UZwKOiI@mO+!=Ry)TpOVaeCP!iN{;7mohlwld0IL2)84bkQ3gOW`f zWm#W225L0@XZlaSD5qV@;O7E`+ku!YQ!kb88K6bG1v9MP|3j(&U!yD-s-eX-JTrFK zsL5vDRd%bJMG0Ah2>?21eA%T{h&zrk8UdjKVjx<$Iwi2N)z_X&5PI6!yTr5&1XB_9 z|7u&E2;C>)HB)q>{V_?8aWv!0wYda6K3e%VY@cNSoV9lb$WSIww)~lWRCTnFlhW4K zI7_d%n#EEeZ~QqFe)mdQj?*{2pM%KF3d>9Y!r384Ym5a5X!F72NzR7g>CNCq3i0aC zn3=wT40AFQW$@5xo*<6vOSs+!EG-_Ujh>n8F6X0KHQR=pTk_l;x<#Bgpn2cw#2WGz zFpgHov1nwCj(e=J36cxY+_moD)s5TYqzIqCO=6`d{#{c51g>;2 zbD60VF5a2Yr_6VJiHg^{Zr^n7NJSG<(L46zT^$oqE#>EXSxWr;SzA=*!BRKMO)v@T zxybcRrA&;*D7qA{*L}ze7{?L?O?-Wu$QL4*Ohj3aFqBW;m`vUqY+WxVl0Q~bok`Ueve|3@`nkD zaBIpR4GEk2gBRb-66=q%r8-I&Bo*6c`OpQQ@f5aOMCdRcXbKsCYog!$yjk8v@OO>7 z1!`upOb?>S^4_YwT7JY!ThL-yMy3|F`Li~ zM+Un~MRb`6LGlQ(2N1KXF0V(w=@dtmna@Pit09s+VJU)pbUDLmH}eZLQ(_55vm)Cz z=Tf>`oFq5xlBY`(zMRrZY$=|5uk)b!_$e-6@WSJytacNR-F?#WF^fnD#qq@YX$2#P z5kQx}Rk=&FzuYxz$|Ky7baTzD65!FaRwL1xA=I7I1W`DhiCK5?a_kqR^63lt>dEC- zwp_g?;A8K;z6S0`UPZI(IXl;Op}jdQG}>I$KAz~DC@-2lgt?H%2K3!l`U7%*e?Jqp zyamHbYi%hs5=APamMX6h0)TV`JUu-}*QYatjl8+`_ULqZ z=RwWegBAbdM4GxtLA~&}5TJI89VJkN74&UPvEt60oWON@iP{A;ApLICI_&fOPem-- z7ZfxW&6JoNI+DZ;9{T~jaPtpI;!L!${iE_m&wSQ?M(dVpgbIbj<~X-ryuoJvn0JK{ z;|JCW9=L;SJav)OGj~_yupn>h6LoWDvU3np?IPFGP;$^`&3_Km3c{>Ukw>08x2kig zD(QO=uzhJG5=Suaw35NL@&UoNQU_{3(e(CQ0r&+uuMO=DON+{xmf@+JpKL$8 z)cO1y$TZ7W*>1?->)i+t(Yoq*>;k|m8~?cET-crvwf$gQ+OaXiTJnw{RhpLX$E~EH z6d4W2*IvW^juC9}fH4_|*qn0sMd7=d zXJp9qFniOTip|Lv_2(%c_s@zeAxlk=j~dO=qf!1Nr)k?3_Sfkx|Bv-zlgx>)uyI=kIeqmN*>+plj%g5HjxkD4r zZ~A-W4b$Yw!pkC_WSNZ_w@_FIWS|u`Qe->VtZt3P$33-B7dX`@%`S>+^qpEu4&z%5QZay+TUhc4^kZw<9lys#+X4h2?NY6 z1)uJ!7V{~#zFD(ThM{OiFTSuM%<5?U+t#3MkKLNtUdsfYr2o$Y-Ti<&jjvGGS4yM? zP@mC`(CbvM7yCnYcV?;)gJe5gt%&dcj`|-8%0BxU`UGJ0zu2kzjT>!i=+vXZg82Ri z>96pR-QypVG=qlCk1uMhO%0dZ#7drHhx)G#3+O%hynS*uM3_}{_ zjg_0(CArMq3gD9b9q%PSlff$PFtd8@g=qg>M5Q zzn(U|FhvRv=U@t4poyDF+~dqLyl+pO|H!g#Tcgki&D}Qx$&}5;$d9@7_rSsub@bwj zl)iP`2Fc73>9&{&?FLp4BXmf9{$1Ah)%t-iKaprvIk^3t?DvIEM6G(u)k7FyXwHC~ zRmBg!tO%rtzP36rCt`0Z42D+CMP{h!MjBWoE~O13Yw8jL&kfQ{aX2$42AZaa(O;yh zIDP>xBGc2~*8ieY)JG>~T@>5cFVfO-mF^l^`I#p$ao#3{&q!0#)q%sUMDsFE&8d~~ zQ!Tfg%oJ^IhI>N)1fQ_JbwGLzNX6GetF&p}N|^h&TkGs$rYL~f$9dW;gI? zRWg6OKqKd1V%|vf7n^^ii%8Xu_oHBME0!ZAqKOfY{eVUN#m33G^m$b9XbV@U1ptQz zRxWY@5iu??L3js|E9brH(t&65N>{VC^wAX36j zOPjcQjnb5K_CeB{(8KRWiT=)#6e!go$-+n=Q&I%CU}luL(BXVtrCXWG&R{#Nwm4#d5 z#t03WNPEo~*DV`FW!YmQ1HbY1qMv1sL4=tmeJZl-K0fb`^L{$EAse{DFV@bOWDIQf z4D%N$G^&N8ghfOZ&W+N*X53U>mAWOWP{Db$3AXP+&P^;}2DzvRMpw1zV`}Nur`g}* z^F8WYZyM1`ljmi>I2?e!)GZ@&d78lL4dHn&6~ z)tD>NkoJD_{YvDr0pX2Yg`giVw`6FFz|%>gQ@&G{>7ijWUI#Urerf2sJOJM_y5U79 z`YG@Um zfVR4GLaCAom7-Z0ucA|np-@cb8W%H*?s~0q(&7em66n@mBHGK5RyTHk8{x*vs}*1E zvV)=xzzFteESDV=ea6w=yY@%X5zN_~oztiBlhZ3bOLuVnB_aYk*8%yPd+I=8->(lU zBYsRDa+r4*aj7Xen(NzrmmEhlF>%-RZ7^<74hdaQuk1K8ev%mec-nFN068&Du7I)) z8{0s(L{e&hdlQsuMo-f;>Bv7hQfUqS7zE$Y*W`Q8G{}57BqtL|Vnd2o^t`l(T~)*<$W%C&8@A7e`L=Y74c)SbF zy&}ChFn~aMOr}#i&x5n-R9@xQWiT@6*dA79;4t4%6_6vg44&&VoOe2Bqz2pwmG`uId$p^mKoQ`CnS9lgl zY5H$<-{>?Lj00FPD zRCar&bhD1voHewEtfAns!Qa&6A!NKQb>yWu$yAGEQOmDSaKyS@iqU*46UDQ&T=QSf z(30J1_meME6njjFX&VuMsB00;etV+C1D4xtO*WvVF&=|Lv%PCIY1O*XG82a)Tr%$h zmO}uWT8n)JS+=2Xh12qSp+lm+jKWIo^DcI_n8jF3V?WdX`PxGLcg8XMLbSm~w|q@b z%s5&HZ0vYH(yYpe*7xvV%?o@^@ol+s{m#;>KTe=813h-prZ1KG|pj_mt?1 zg5$*O`CD=N%$_jb2kB~@LDyp^D!5m8OBv>I#LHrF<_#985AFaf{Xyubz7HB{ma1~B z9d2id9u^;d`0#$AfvCup=I%Z9Bo$hjPh7;VH=ZRQ%TpEeV*qMD#lSwF!_E)9j^1z|1i))SSFv?O~d6)vR!{IV8um!^E} zWP#5~OjV*dpn9h9pbF`uJr~Jt^gi~ge>S#{3ik(Y+OI1_8t(<()CkU2;=>GETKBc~ zg_R1SWNKJ0?`#TX6d{ksKcN7Uq4;6(Z^veZtvJaCbruu5y>06ISp7APrbI(-+Ct7G zGVZ=C{1tQfdZvuOD(%XDe5k0Ctq>!K^gyh$@}icFen4G7p}!SSRVe*j-eN!i3ejsa zS8F#lt%Glp_I4W%`};CG60ICmPjHj!4&{Hm6?oo&tUrXpuO`ulf}DX)|2EqDgRn}N z`3K?u(gRuj{Pv!7h^V`G_iy|5i48vY?#uEfAhISd2bLxA&KyCA4>Tl-{2NZv%xwbF z-gFClqTf-*{EW`Qr!X^fvH4ZLUikVH{B8BNQE2AqaIVCbRI#oorbLOq?2-i7KK-&h zQGd+d!s>MY^=xVL`xi;=$7LlZ^bG?<4|zhZPg+UQCYIf6pWSLY1-niSww7CH7D_di zs3Se|hFJXSjFW;@5}lB|nY%(|lNS)jZ0*^S8OvAT2naVQq)NoMk?qGWuv7KsDZN{H z$4Fj{NSVSFasK!ju>4$~5U%@7s6br6fg%|y@w?>^=>_3)OEteRl@m@Q$M9H5(UB^h z`@4!o8<;Ii!Pz-Ju16$l9AnM(6iZKqS0k&7o=Z0v1!*GWAa_`xK^25ad>FKK^xpA~ z<93eB5Ln#ftc^vO()4o>rMJ@;Zdr;fhqB@3VV zC%Vy5#aN!#n{SsNqUFe`CJyDD{8Cs(1}~YzwCRME*GU*oNYJwrfmmOU4Xd4g*1Y^B zwriremajLc+Mm5P*Wq3%dB--@8a_>Dk_j}hfSVf$2O`{^o%FSdvE$-U!`!(Z{j@>U zq5GSJ0B(cmEJ~l2j3Z5032NVQ_!XdvrMsk`C-Yt6+XY1B4-s-dvzD{jI5mC+;9)h) z1cINlB-E-{g}A!0Hj5Mc=_?5c-9dd!OMDdf-E1`IbG=7RSBgs{tH9C5-U{VpPH1mJ zr}C|#d0O2kXddJ0sF9{vpZ7Zy)l`C*M9$a31~h&Ns?_W$`JNeRhgEkcoX6Yq3xP=N zP^I!j88XKgaEoT z@+e*l&Y4?NT+$H2QFwvY>2>-=X>&8G2!Tw7dVuk-Z1}moeU8Pzg~V+USt_jHdkosi zPoRqS)D|QJC^^hqPHVR3GL^ zu(kb*B}Mkge29X%zH?F{>Y&oe4O_jSxUiRJuPMb`k22~}OcA=sE9zm>z0neSd}J8e z>BRexf(LEiS%4vYjh=!|nyL2uTzn2|V09QDr{cSds6L<#6js-V5nDA2-Z-K$pw#3X zP_-D$Z>w;oIRfMFTH*!q=o*a(;h|Jq<1)BqK2;?orX4E7$njcLkhR3Q8(!h^scS{~ z4LJ|qdK+o0IJQEVj8LN>h!(-omv`9CYL1_0+D)O1Jj0mOR#W*wtI`tDOYML`eUOx?Wa_LOM$u7yCIZUWbQZy9wl;|k?slThh9vW zS+ckCPU-_+n0EJmCV1?>`3HCp6AtmyO`{tWVojv^Ki=trd}+em2hhCHom>grTf@h!m$@9!%226g5{)9*l9oEibf zNEPwd8C8V^66`iy8syj5HUSp_1mzJBk;T%zPu{Bxb5op(G16cM-A z>f!{inYM$4X>Q#c{!#W$+|@xh6rZv6w<%L>+(+Aad_Kw&_EhKi<`@yzsafNf9KxAf zKsSLt$evU5-)3;^T)KT8f29el`_B&8IaYN8q1AjW@W1|PEc9>V%;&~vvX$`!J*PL2 zBd2(uS$MxPct1^l1@MEd<+Uu@kXI6@iU)~PWOSnBej!`s?>O5kF(T6a6OVTC*>)+{ zWCk`@|LIHu@62nkV!qy z77SY_or9zDX> z{UkP=ADsn_H2h?&^X42Y6&YliE>6Vp+rWGwP-Y z;D(e`g}_z%!UzUU+bb;007)%JV{Y~f%PUb4BWIs??=N*kMY=e5U$lO;W@N^aqf z;EoI*V%)7)ezD;1JSQj3(DD=|smL(Iq6jSOpG%=uOMRz4h2B%o<(^G<-9Bskb-Ooi zowIzlB9N~o$2Hz^esznDX*3oQdsIJKb(0(94_5FdZM&wJ29Z@FkyiSl5Y%hlVSaro zd+uZQ*s2b1&D2#p9+?T+)-46yoUMH~VU-0Obt#q1Iu#ny;cDGo7kCInEL3dFi&Nbl z%mtTd1hJb@&Gm>gj)TAed}ypin-akGs9j!nNXP9x7yKk zX|X<$*BW81WMln-?AHUcGP9g2eOdbr-&xC7?%SWfMQXtmxEI6IigC&!;U14TVWA0cChHp`8qTO zzxvnJcQ1gqGZ?rfeVr>Bp7!s3Oo}=`S(y2-O%KU!O}6okXA#87oQT_%+!?gtfZ;wb zty{vk6RSyVqh(IlP$G4{A`+&L08v0;txfOS8aUv-dPc7oh8(cxy$!AATIOLO?MGl= zcGzK~jI&Td_Z=!(zw;$;St(mC8$*A+6vbXxHrAXfgW2^f+dcgKIId4qcVqV5Av)bKv+ENfP@U$^0|nfgu!&!BFpf2Q0aW{$tt? z3Qb=EPq)xs?A0Q?#L64Rsr68Y{?G~CPVX+&W9QLy%_akRHdXiM*&VZ&4P0(6R{cMO zopn@H?c47O0i_h_7(nT+85*TiK%@r-=^DC2k&y0|A*6eTu3=CR7(zORM!JSZK}CGd zJiqrn>%=;1oxkSpz4o5H?|tvEXU)*;*fA)rxItx7SmO*C~1n3o#i@G$$4_EvqeD4p(M)EwU2kCl8XW z)&Eo{auA%;4kaAaZX08o%>3RKq`PnX{kBN~N13>!k^bo=4BjUdZ*!grus>epm=B5D z4>ob%9{3Ehq>y+rs(VI~sfIIpFSnJ6Tl_BGCtX-APi;(={Z!63S~IZ+-8vzu78GSN zx8g5*+C&S@)Elt7APU++z%X6DFPunisUbfj^d7QxCU@x69lbo>BQ+ih%N6K z)_x80goFo>5G{F*^I8Rm*Olb{`VVq@q8-O2#T7TO5 zx&_Ou0-{HdH=>Nr3fAA~yU(szN;1~PiIuwg^7xy-Fu1?+b}R34(sl}?$^7bYbV9%k61{ee?xx5%aj{ewnfk=Xzm3{^mVGn=cq!zB zr|Z}BYYk+GEv>Wn-v9@~^87o@(5udHuf;cwGSgNR#Ib1xB$=Jdc9S0y$SNTxwy1nk zy`v!S7qh}MA7B4(~^)LgR4PZ&H zm8Q=PsX#Rfi$dCR^cn_MR1pR16gsa_nsyHFhq=u9gJu35Rj$XhX zqh*=76XlBesePe!3x;Fmb!45TC8zs&{Aa~#M`trl98-c?UP7jf-3zZu69T@sd|f4% zr^szIpVB7c9Bd<)QuR%d_ za;q{K9d91(Eb%8=mvFEct{yCfN}ym@PEU(6y)Bxo%v24_y*L2#9BVHa`_W)I;*16< z(TMLcHWIM=F3GNIgP_HX22=S+!hhd2%NZ@&*zxYf34p6}4NlL^v48jJ$tg=a4iPM| zgl9h!$%0+IDqe!-5vrcJPo0PP?YB6l7n3Njlr=n`cP)-J`huNUhX;UYzTEx3&GMQp z-a5LT{k{le3Ra%A8bE&5fS`OklBq_dHDOm-HYFVGm(a5GqhuK!X(fK&wLE*`k6ZVz!{TxCUf-PEt^~?{&nZ6DHUM@;UGD zm<_(tsAuRzF$gT{^1sK#TcUdwz)Z_k1IIc+hklu(U;#y3=u!=N#!q5U1By8wVaEFv z5GKPMT$weqEeLA|n$}B(x^QC9V%kR7Icl+awO7CeJu!Z#171JqMGZpMR#mr%1 zk?%>HP!|XP8B*a*ltNSnJoIqHS{?N%suDNM^~YS zO}Kz=+!KtZV{W34i-GLi&CgdV9$ti`HBSTFfVc0Be?;C@usjB}JkuEiRd~y=g+$&) zo!}SI_AW5}g}FJ(tWdwldp!{oZP_*w_SV6?Cn#db?ixD6N~uBrFv#R{>*&yzv!{d+ zXq1dilQS(XMuPH(WBhwh6OGv-72Bm(M7I4~q$AhCPwBkmL0b}AAL|ZG16y=-;s~%U z*VeuMA^SyC6jv(DSfXrM^+`A+>1`2l8YD{Sr%lP9ZVAlm! zyVvFhjZ@IxR$;X$RHo;E=Bp)oT-UeyK%O?f8?nAv{Yc@w_gf|5FmjHt7Rlwqx3|qI zF%(&yAbZVGe1J%+2<&2(V+_SSt6g*04>0z7-sY!pLtPfYUOJ__9sXbiT^7za=1;a9 z1zt`ch~BaLN%x)V-Ha)CN^GMn6(i6j?LGCzfTlmgd$SAx<99C2ZLv1xTuyqls_?Zq zG*@ZuYiVe%>J3NtrAm>5W6OQwG}oi!hg8q4jhCubv#7g)a!X3B@ZVDDvM zb(LRxV2nhC{)1eNKgYnO6S{Y;nrr)Aclg5s5};|(ev?mEHPKLmab1BBVQ-F85h#25 zU`z^r7dvd%?@JG)AK%-@-_#H<@#gJe5!!Gf&sgyslBppJ;iXBVtz5 zE_8B}Ru6Z;2~SPpop6{`<3}??-C@|iTpF3t!8#|7{M-%nu=%50#Me_-XHyI_s?@+o z_VR{@wtc{K9Y=~w)7HmNq$RNwpd~+Cn!$=fh*qbd9|XoBfwVneDM}3*f0k%7992jjW??_N>>WJj8E7cnhSD=bF;!n=_2haF95U+1FC87>z zUAbgi?O5@vZ#2UE$p)W)-}`Nz9I?f7d>_DJ&2uZuDPaDBgf`Imubc|B=7(=Nztd|eYu@D?`V3;@HOilAd>l+52;*} z1~Xfj98lyl59TbS<*uM}V5rk`|Me_x4&;$(aKAY4HS$;XsMMf-G1{uGYvrY9H^?H& z;rQK&#(`t6U`!+_o6@D?7xz?T^>pOA4^*eI0mSi+lmZoOTL)n6Pp?Hw1qw{i;4|ua zfAw&yiFunyu`keC%<_oQu+)GYeR$|)v=(Ull_V4+Q=g-a0P>R4N77U}ms!#slHumq z?bVhimMAO=0XNnqeJJ$UFhXhXi2){}%lmKR)<@zF@2{hOvibY(1V-6C?Ws%0s78PQ zk`^b>fAhwa{2~vDW&qf7xdqKYMA{h+L8kQT+&p@QRGTViaC;_KeTTu503-21^l8*Gcb z1~ij^Tw{2?*g`Gh(!0@}*?0w7_3Zcc@o_#=sAQnHj>=cJCKj2@Vg3Z*i%U!5J{;n8 zv_E)4{`qK@Qr825AEy+akIPc{KWw>AZ4c>e#Z4oacXmj?ZYFYj(sn|^d(t?HxF3B! zH7=5WX+e`N1PkbnOz4NZi(t7jI!*G3$l~Kb4PF$`zTz)YIskxYRQGau#NJ({k4VJ9 z_79Ur>o?*}(LaQDdz0gNT9NH}i;7MLINI=W6~Uz%nmi^<1j7MYyAs3b)KFlAn!zTE~(_68Rmvh{$}Ue-A?*Ub))o^IOoY@ymw|D!g=K z^*fVm{8yq2{>FHlDiFC&Rvpr4<*iz;`~43pBzzw0?OVyeoEtIx@(>#BB84EtA47bF zJ&JVbD7IITggt&FA#1MPUPqIUU@8rGSfseQ+xO4~jR8=BbUoc>i6bH0#6phc_Yd2S zGJA?=wI}ic6#XhQ_v4R0VyGybLXf^LswtUbGxDl`4uBwBaE-6o9R(sf{1rYZL$wN=~I`PD7F|ki62yv@Xu0&l$lp2Yjc{UXeo&@|WUi zE_1}Wu8@GgK?M0+ch@^AinVAqlyTsT92782`z7!+T1e(vKUBH!}`IT^k7~o<_uo}|caU>UneVvh28{y9P!PvFT>xLUE zE^rSLyxhL8W+B+mrdYZ4^_z0kS2Nbv@gC@qcWl$PCWocxW$UySsQL7zwSNM8jObi`{a?x1)u^_XX83-0*A1~}6; zzAh1&qNUg|JyE5Q`S}coV)eyuZ<_kLSb%La?YAUloT?c6T?f#|^NebvSQ^YK3EO9~+gAo3YIkH)=}?1}V-!B&dWHeIqJ`vNMjjuJ~8Tu@4#Nz5{m;KzEa z@HVE2xy#t=K|^Z{8ryYc5d#N*9pK|?eU`kzk784LZFgEkqZfV0jxfP4yth&A=_4Db zINE9Cj_Zkfmj^}{{&oEx-S-b(oS^o(^%S|*1@-Lt9l^S-2exrE`uVHdm=6myn9lf) zW*Qm@aYx%|MG{UxR8%cw`>oATMp>-SlM~<*D(|6HB;~0&ZQK(-R*Rp?@ZR+mU(mYhJtQ21=ZT>Ub zgTNVqvrQxaj5)%>7UplQi!Vv!d#7KgQC@iQpqUr%;o z8tK87%3;X=?wX1pUE+j3fS@Sxd@_6_dJ_}Aop+I(8_`=iayS^(`tZ>mQT1xNmODW6jCT)c zH(#Xl@`~4v)p7`rBGe#_lpL?&<;?AG%*3%sBcamVNAK&H1dm}^-Cx!HB9_UmL`y|I zBJRbqu{=_e)r%O^(h6hJLb+=mQPD4J?_l3Se!nOQk)Z(*oT(&*^6lk*f`9}OlvzhV z_<7$pjz~mZg6!`$?h@J_jZa6d#?gFh%0Js8aC^nn@zjL4s)kNgSXDx;e0nsi7Wj7g zyjHwh7y$hOq|J;9HV%>`Tb-Y38o?8vPB?fkuR5MWT+lIT3*F0}mp)C(e#4P!t}pbZ zOYr-{mQ<3TCM9R6tDdpCnHxdl`|cqzyzLbRi0a?`Ice+8URWziTLt*$@7f^lFm~vr zzMYTzx7wS^$^f3Wu3EhZ@_+&U_Kb(W`m7i;5~}sEwtRKubi&>@rQU0_dLA@8hW>~$ zVt?LzvAR@J_U%D65yZEmTv2=Hcl%-E7(WfI)y#Wp;}pN@7CW=FT-={IH@}a_Q;cN^ zj-GKb5^^EcnVX9+NYSoRcr3psez9P+{Qf#->2r-ktG79XQ>^Grn(w zx+i9PO}#F{8+7fyL8UH{eb3{328$_qV8KueqdU7ql}1y0uI;GKdd?uyhPp{`&4|As z?n{VOpw6!P$rcL?J%geOEf^)*#XlZo>K3HxW_eF)OYG8gM5csB2$-q326eD=Hr*r+!|{zbhl_)}S+eGiem8`;dfEn@{H*{_)l=1l z2Z|?e>ygprqz-tiEb^_@J`c+)94Pgttg)Cf?Xn^4{!&@7cF-I^mxC;8(W+i-Q0D$# z^l8!wHEfZ-b=vm6!OC=pK8uYM{*))rbyNg4nEo;3l4DCBT87m8k#jl$O*nkBpovpZ z>t4tT47p4_vogR5Q(ZRv%y~R=LAz^zW@UVb9sS%x&!Tl99uyu_`;q2stMaZ2 z-%un)`Vb|QzN5#Wh-wv9$l1wCu~XXtFH~a`~Fa5H>0958rrt z^PR}6(bb&IKRVil2}SQtRC`GoczJ3X^cIk=*)c|oKBz!9aKbIb{>)F`!-;RZL>T3a zOWXY7V1F}{Gv%OWs;+RVD~p7Hh%b|~gvs6cMU}>U#rxU@JV`P<%y8Eakno}| zM}RQlSw?Lg(KDUk&7sV9#*hB+9F(8%D+r3=;giuKr_Tg}DDNmyqLul}p3ehV-z+R0 zuQW>K(ku`}?6=FCkO3GR%Ikp!QR^@!Pr3Muhqw7X-@4opgk`LNuD`E);U}}0>eY}1 z@g`abk$USr4bZ0+%+z7Pzfu$ZEj4a;u_o8GKViP}^z*|IUlP^)@u}&# z#1*iw<(FQfq1C2)0SAfSzU!YD+fs*1x!jJl2Yd0aGk|6gzL6*W@DpG|8VB~SXV{;8E`>}{)8ACEYOr#uQH(3C?ERS zM^ZXJ_;i?iKrFyRepFmEh@?Ok`8k4lrRuz%7E&4oO6UhA6f?$CpSRBUmk==v4*prpcN$E~5cDg4b7kD>2w^8ZbOtG1+#HTUQrGdaJ`-Ihk)Au$)T5;_7H{ZQ+Asvmb*b`$9 z5_JuA=wnmbL2pYFhFc6?Jw0u_#e_g=$mCuR=U!6d-B8E_mj1byF$?OWK7l087#&=! zE*I0Mov^ZZ(XUT_7Vg^(i;w_Fr0N|hj>(u+3$b5y)*B1|{y>3uH9S5(mXmi2MB?Tk z;oK3wPg<2XY|N+zd{Y(zuD$YOhb{5NNxd)u+Ke^ZAw9f|Ci+m53sm)BLWxm8L4def zcDAWXkH?hYcZV|EwA~oC%kAXZA2n$TJk;0VPEq-3{ui^h4C(f=83RKvQS=JJGD zp*c5|)itJ~>M1UChAU&l%aV?8w+!@g^?Y&FAq4a5)C`aAXyDkk+E`uZac6z2Lm7*o zt)Df$j_zLQmter_E_YqF)1koqfABtT28LRw7DWExi2S3W7<`#JP{@D>?5dzDeqt%F z(thC|O1CYC!7uTf?D7@h${0q(E2mV*2<-tI?$1oZR@19IDqcEPU6bAjsWp@we9piL zWP9&7WrS9^EA|RLb@H*ZgIaW3K9Y=?>)ePZ$ing+Czd`c&k8g%g9O^#=4#i`oh7rh zH)#Y}SFcC*KZ1c3iEN=&pxlr?+W=oPQ=C}DaPp_Pa?ZWx^~fPqqX}>+l@mU=1~R5^C?qkLWkB(|HUollTaD(5_eylN(uX=IFO7fj&Xa$>`%^AT>lSyOv@87_-c5^ZWTC_i* z&OR{2&nF@@75v5@Nc7UAur|6pr8xph6pEvYfA17b?G*GhP&!(xwYhQoQP10iSA4xc z;AR*W`ur_D3Z&YR(B#cUq5hUnb4vBtU^d?w=+MUCB8 zI+ofD&{LFNPtBlosTQb#ID#Gj{mZ0}8=+-uG|X5=+n?F{kC@+d({^9-ow;RrBur%s zVD(jLU;f?Y`lF{fEk#azp?>ZjGV766q2Ra3$^l@(7#VLE``K1cC)6d=>EL!P^p47^ zNx=2$Kcs~Yor^N1kGYXi*MbFzN>Wz12SnD{_plgXs8{&g#U-*M2HF6>!0{G#m7=Mm4@ zTS5pQAEuc(pL} zQPDW`6gB^)D~olAuG3yQvtMgdHgrw++qa49_DZ3NLo;W0*}3ci<6u!#rfH^YUx_^( zk*#r&p3s_#-@P+hKfl6aD1+6yl304vz&c$2p4l&9WL8Zkd(;R5*!RN>=(>`;Lq{gw zA|T!}EswCX+?&abHslt!3(dioU%v-)q}@Y-R% zP0gbMxUcn!n8cR8s;!)LkJhFmqcYCZ+txmCw-t9V!D?8JSoqX}9s|~6z>V?p0VGL- z5V&%gH}AJ`yE57s7;4%Bz#y<1GF!-2l?PH0x%3aa{JHS!Y8UE7ZHhxUgQ#Y-&pGV7%SG%9D%p-X#6OH<6=?k!>aS9mm zMg808D4g`{h{kyX7uy$9);m&6KJ|O69yI)Abaq!*hZ^s{WtRqj{%ul~qde`spbMt9 zS|kE+*Ly_ol>Ic#NZr&=pK4B`M?R6TuoENMVA*T`$Z3}_0{0Cu1&f}U=21(O5PgXJ z?{WCmhipVTvE|`&2TL|0LU=IZO(V-iFt1129_jyV!#f1X1fTPJwA!pEml>@TJNU8= zEHRVu2GJ$a;|}-l>9{UAU`BN2pz4I{ZLsv2E}y+0rc)(lZFq*JihuYUe5`Yv9h)$QkfWuA2y9>QF`4b565KilwoG(L1@+L(c(k9x zm8x| zJA>3IOrtf(HD6ua8JTYgNqM}Um8G zr7tDAG_6u70UdQf$Q#LKp|zzC`aUs%-_p~y-vYLlU$vTe6KUF=bMT)(}?( z>Jd~~f2S7qN3BPVIAhhs-Mr0lKHr4gD9yl;&c@46x z8$jx}4eK-eA*{oC<4 z^t)|`gvD?E>Hslw>t?h1N0p>lfIn)gC-Gr99j~lBrnNoh2L-j+5RlEJt6CLaR;PVs zCft)7+Wx%wc!G&vhmv(?5dqLDANVmV{F~MxZyJ@X2j3vKIMw|iHlCa$MD!&$e%3Jv zy2>o1i&=;;80HA&h(`==WpgPm5U?<(&*F6lLDfR3VS94DYsnuRMUq0R;qN2yy{fDZ zW?7;$WMCaq-qEYdt-}oFCT;bUUs^$WkUB(?Q@tUf>(tWyqe5qyj81diS+#B~NU(^%2wetmiIK!a z1wMQ5*)d_7qO`QWq-$ZW(k&^i?d;QnSVzl7W%>!y;Vrf*-0+?L!jRZUCl@5&jFsEB zc*rep&uDGT*thuLmN2fplb^Zy9a~l&xNP_TFRS9{{A}hb;E&Gu%7uuO=KyNy^W(Dm zV%BEV+ULjrTX{!)aX|L}HS+5g$)f+GFRn{<^XBq@ch%N%(K+qWe>96}04{_#06Dz))4jTZIaYETmh3>Ws~9Ev3o7yBrI)6Wk; zw~NlWyfDp(-7DC<7if`J(#PDWenh%KdinCt0eT|ITgSS`_6c$1h;Cu ze0jq*4@sG1E*u7C2k6MV2l4=;|5r^gZ)oaK_@e=>9n$i4N6|}P&HoHtrNZeQ)1Cb$ zlmgu~k7u><*|lqOUh=}D)lsVXrM&Fz3+0TEyH7ybZL1)wO$_|?m>lhU6J_BPTU3_l zi#vys_qj}%v&}{5GQJRKP#&8!`H=GMnM#XIy>nfBvB?K!@+=z{k$(L2G|~*LG1w)>5&~0Ol(iSr;zHhQnjhJg*#VxnVkVB z6O_t%i>my^f}-NFsh0UuE+fu8l1?!8Yg|9J>%b49Dtw=k7ESf0PF0{{rIQ zW){2fjRibS6bZ8GFjMN+lMAk&zp>4a1%tLem*Cd$(#~?MKXMAFTxea4k!K;$6erq< zl~QMc3`${Fxow~TM?^U^wC{|g8S6lx*h^J5f%F|m>ZM{Ej^RJ`l$P!!H?$8 zh<^K|>2c75=^+|#5E{{C8DO8#_OJpv-`ro9G}h0ei&7Fj{Yd=Bw%NWa)njWQ=%{L7TiZZ{| zsquI56DMtnrp`~+(dENb1X?dAX|gLsqr)R4$C2(?;1tTZ|~v*=F(FV z4~=xBTRT3Vk*61OGxt6Am3wRnrMOTDZd2(S7!66T?9GtSxQBt*aS(Ty@e15L;?6Xg z%sV#OA7(k&c-uSWJ8*HsYoBnQVzQ3E3LMz)lkXVZXSl;l7Gt?)rryZVvh;eY9j3MQ zHPlGF0T5qs-L;!so!r$06feCZOa$bIw6no`d?e}fyI|a4Yv_lWtuG5q+l~IshJ@IzT9lOSwUwu|UiPb4Vz`k^dr6wL z1G7pB-Hn31bLoTAfM6WvnmfBqr;&_SYSy!STQi83&Dh5{c>C8z#Q4X6(0G;3uc3dGHPgH z-3Z}g)`2xve=As+{(TVR?VP9QBniub?hAHzT;lYji-pW1>j?IL@HQ2W53EV7X>ihB zNqy@NAt61+uVlLDsT=pl*{O)7iY}0%O22>ZZZP#KI$!9XER`ojac+)rV5+BIbyQO& zMDMlf**chMs@FU2!PZYyWt+5qswtlv``-ERsfB67&Pjh1i4Hx~Zd2`=4=5VXal?6l zWS;%5`Ug+Q_$${-F^!A2#zcD;%4M`8qMe&y{&kru>CAxE$|MPmZrcL-PTqI>L?o_G zO-*OZ-ZHd)+^zg9nPrTQkIW7RZAu!R77HzqUh*Zm%N}mksqXtzr1@5XTrvHW&5C@A z-h)cd+D`oZgdGH4$HUpzSA%Xt=RA;1g zBuFKO!y+Er>36entpRnCpOlA`BIuz(Cbj1Jm0M?>((MOOU*AH-Bva?TM06FYFAlQJ zkPu0s#Dv>5^iQRaGPJ~2AV$Xh)dzeOTHUg{G4FSRo??rC979ik3M@b|ZLuc!?#K4D zRgME0pzieV36$0z*A#W(J&R4VK6L9cbz@?7SWN=ISAHu+vKB1v!ni0Ab+R(k8O|vp zA0?HdG-A#&qHp(!G!a@IhZ^>Ku&Ay4l{PK8?^8~Ljxj+g5ALdKE7M0zXDqhhTOB^K z-U5A16UU^mx*iA5f_d2&JGJM8DgJ%0WLXuT?mL=Y(*)B7gPm8nOebk7z?J*`-ZA6 zakKhHv$pz9inAY|*Zz$@gM^T}AE&@%jMpCd74@hl#7<_+|dk-#qC@){h69m9J zMU9FGZE)=R3I3OsXh{wYnIR(o?*m4Uyf`#*pxqQjo?eewQ7dl*9`{_^I8KCbHD$oo z#(&cNh}R*_pc!*I;H$X;Pdi-zVlVrGyPB`%h-WM`>$Hn_nWw+`dbZ1+Q8fuHt_`mQ zPw?e(M_x6%1n`YlOX>1I+rXX)wusK}H?+VyEZwItq9Bw9K|S7gMCWaT^Fy1m7&UW$ zwTY~yzDeprBadWcdo!2{ybheyHI6zFpSjvW-GpYwGs1zx@S(lUfY>~zZ=bG9 z;H^;I+cKPMlHP}Y7BI_ol%90MvVJ-e4HeFD7}zQf!jWd^&5x3$%Dkan(JqwGf}t;j ziM|8}gXSxM?M)UXuL>XBtTC-!-?|t6CITU!F8KDhukjQbxYe|sP)sWj45T#*OTaSh z7gZ#q-z-F@pC0#lp!u7pP5dG+#RH9l>2C+=E~pyFI0`}I8a&7Dbm$eO|<37?9gp`Q&_76^LC88ka=h*rThC$*Mf%xd3z zh$5o#U=k2}?Y6C=UD^4&`Z^2v_%u$fq&`&npvjK`Nddt_QdsHMjkHm{7&j#d+Ad?2 zwLSKU9<%#u4u;vsHcCFPbBh{EkXixPep#gj^TiCa1T$W$V@-?X(bn*C4 z#M`mdXON9`i=<|GJlyy2RQkMBN>@?#iNm%Rvh_wFH~DJ@(>tZbc(^zIq`QW^adpNf zA*&7|;bJ5DU`!Y4(Nq;aYa-pzq+3UiXhLv&K+>k)fFSG~n|dKCA2hv&qpc;YreO)N zZOFcWe9Y7m;O#G9!funJ@AwVlT4Ji9ara4%qq-ScL(EJ{!!tR$x>N3yB+_%{ktE50 zeED=jcqOpAFr;0GTv$r=VX;Y~M&%na*}9Kku{Vzw9YgVl2-+&0us%JO#=k5rPn~oC zZx`~SbbVAH93NlQ1~AR&Vs>P3CozgC3?<5zdH|=Z9=o$Lg*I+1JYwMunYQ=osh7uJ zq_m3*6fKzA_FqZ~0Y}B$dwQ+8huVX}gwqEnuZEhVu|#! zar**~YH>;u;xBEYsblNKEh-ZqmpqRby>jJmMjq@ALZE>rMG2&|G{OMNfR_Zp&U`25l;|6075(xg&b#I;`>ZWZVYdxe2>$OW!hzxe zL|VXJc7A7ZW_nkb5#nbWU1jWg7DUA`Rx%ULu!eaAGx6cmPJuQl->Oy1#jS^hJH#0x zhO05nqFW3i&GO7|!A#TYu?57D`|6ziek^t4W`i|J)cKRXirpp=24FsiP&3Z>lM*`> zFHrw(MM`?dBBc<{_*^Qzs1s9(CDec2rF_7F1f|f*6c88qnB;NBNFUFY8#%*I87_=O z(JL%&=kHrhh2LNsnQW5VrI$9foX;9SG*awP=q4zOTW{b(nb$`iI7CszaAwjhb3$4D zCsG0e{|NEn{=Ild)9di&AaNa`a^LSP;9mPROEp}$#|fIxtbShSxe2EHJ|t%Z-kV3n zx88Gk7xgeLL9(>rX;4zXZL>=^I*{ZG>DA$7&`j2xMinod?+_H4^_oNAwT@Jev550)w#ct|y; zo0JBsg*FJyeW@HC*KMTm%-`|6RPwL{5eL?}6UqxWIr3xv@w3-c&lMQ!zo6A`>K$D# zKXO5?PL1946g5p8aL~S@*513 z+v&tN3?H-z8`p1xitYz8&F&O?cfY+LxJ7;MHu^f#O`cU(ajFmEu) zEgnxM;!A@_yX^gKPa1pDIq^CqPg=~Zki}LqN6s%)Lx*KAHXQ1Aq37S6Th9K4Pnm>z z5&l>Y(>w~cpyoUDsvNj{foUG{YD=oB_>ySkZ!7v`O-(Fq7Td&t96nBeNMR7w9Wv)5 zE1Rb^-}+lx3N(0zLj@yL$?kx2yRA1 zmG|SAj$&A~F1u%B1&5Y@*Dzgc)xWD8dO4esj?Dc~Al+%@V$dv^GssY;1d_G<#jr1% z<>GQscOm|2fnbSn4LmP-pJ@|--Ra!YPw;g0d|3-W`oSG*FV^?+LTy>h%)p*sbn0|q z#3<%P6k7j440|G}OqxS_npGC&w7 zLheI$pEc2HW`UB(GVBfTd5fdL#Amffe|WF6LX9z!7mQ`m^5#2hF#)uWdR5iWL0$D6 zUBsFy_9U|KTMaL>@h4_T!?V|?Z*+P`l~|jFvO7%)#AVqq^O1Xvze^XSr?pVY>i6do zYYOd8i~$?4MN7Kxi9wx+)Nv23^$&|HX3MDj?i@9{HeSCOm?b2Djgq+c@6 z37M8eCJPCL>R^LthD%dTskMM`Em;eJvd54O1EJ{gG*~X9h_MoYulAm45ol(p2ZnCN zoB{Xq<=Wow+1H{+l_<(wxG8Sj>>QpZBbRle-j2#VoA}nM&bzQcx$LG!c3j?8P+p-A zoLS-&lj1#tJ>AdPXBoMTDlf7~CeCuMO9*K8dP@G7#E_mahm?=w?ay*rm#496Z0yO! zMxE8W)ZH()zxD)d#fWfyYA6 zGd>N~sULzqGOQs?4n^1^EF5YPx^B4TyWBfOm+Sw-rRg8M*9)$YO%rGTn-u$M@EC$bw|Evt)xTL#^;Tv9`CCoD|p*oP^4k$zxp`%=9|^D6Yy$H0Cf zBb^qxpuIS=dT$Fv>6qY`fqCo3fdk+qZi%ca{`*TbLEV7k$E6mIps8w-O{=R?tH9~B z^?p*2OgN^9hY>2Ewl&HQ7UiipGd~D)bvfc6OKp}{vX6xGWA%dCQKrbaBndN8BIPOfOb{1iM%11i_24nt`;h5%6$H)K^J2}mK&^-`(B!q`iCFQ&;G=6 zQ>MCpgunw3x@Pl|Z5pN_`(#Up;(9kuifE_hicdEmJ}{|Gqp(Z&KziQy>^GIy;Ua!# zNK8_Uhk@q4PIY!04Z%6+<%dF{UqsjjLj1~%kvd2FYKT*4lzpy|e*x*6#ylyux~ED- zIgOp7)H*|v+1IASFYF25I9bx14|0s1M?wscE=2>&c~<*hRtD$R_!(Yv43;{sdoY)F z5#BhB-8PT|slHL5-l=iGQ>>99j}|&u6}hosw0M>s!-k4_V)SM*LHWG;N>U1bH?vBA z_jGb>-vG${#>L)d+$UNaek7FWm8B%jBU?&iwYQQ3XCXVGjt*PZNImEJ=ypN7ye zWZeCLy>CiafWx9c$Xwz~H3v(}=Jy;mQPqC(ZZP?{wEycPq|k3sRcg}!ish{y=eSOYFDV#qz+rN#6YbVS`{JZV8HxdG?uSf=fr6MPKYV`wWPlJpa zxc~0fhw{=fs~^<(jrTXw{Dd(pUZ=;(hs7hHjHc`EGOs>ws(Fc8`9l4ix*!Y)a0vh3 z^3_Ro9`&PO?=Tu>cnz1wSA92##aVJ$`)Ab!^z8{}QZ-D$Ms;+D)Zw^)XjV~Px+=i! zb7Qqa_6#(zFkZ0?umE4xWTT&uK&vC!$31E9pr7EL$#G-Da7XZD@QTxwHUR<5vdz7w#9KA@C#B ztGkt&R)Pb-djHrHuuRHeDxB=~39W)O-xtw5F@3nAa?KR)kU<-`L*I=HYz+>ljp{Y#X#HcOU8yqICQE z^Sq}I;ycWX)|Rh-5mdA@0Go5~fg$gS|D;YM9X5uU&LfiTVDy}7A@v`?L>k4e)ybdf zw%Aq!LXbl^9%yizKFiXfV<*<&h*JAYxh!onK=$n^b^Msn9gQnFWa^XYPmSqIDBEV{ zo5Ba<8d?y^?hYG+5W>dKP4`}xwvkp_gwSJ&*2dRgPv4bUo&IRT=AaPQoPp?v5OIJn z$8=zK?3ZYlX6dtGNo3(UPIv0Wub{tOiUC$Ih!!vbBMkLL++k<@x;Ro*ZWw&w)C-@F zI_Ozx{^KMY-Qu`Guj{{LyoAPNeO(nWT;kHUyooHQPZbiCCfzLD z+D}~9%9W$JnbZ6R-j;TUYZWBL8>$zGB$ZVe_t3^EVDT{kOpKzr_=sYj$^MY&5Lt|n z2PP1y94ZTK{X?mly#r}+1BzUgM@ix{mErgBGeJVE6D}hYyg`kr(o>t9c53oKu){dN zSuS;AY%5!1R%gMthP;ouDA6);Oi^Q2THGM)SHY!5*xy=$W6zxXdN2;D+M~O_&i&Y2 zfjwoX1ytwVGQ|=c>s2LZOUv?)-Om~&ijmH>lG}{Jf@ID%jwTfYQ$47OX^>}H3ze-B zDmsi4F~2mOZ5kviLA+-)v0o9sUCV2*aynwl|Lks3m7~)LYn1{VPW~|6DLC9F1HReb zWt|YpjmzIfGF`3P($E-lbd>hpFz`}`jTawj>^Q5YV08oPM+^9Nf96!fQtc(PXA_@6 zD>grjWYTAjzL9AHAA41=+jb4T=-2}PR>t-;>yI7rcBCevo0mEZF>`{YjhBnM@EJA> zcp%X(501{i>MZlCR-hwNg@eSU;~DSa4uQlbq(;fo)0eTT`TS69)lv|D1V*Gza~Kj= z<-_<%xquCe^%Udal87~a%;M}8?lN?ow+p&Gyk~yZ0>peCR7!JK-e5`N|JJ**kvB%_ zp!MqAyXC%p$7OUZ$#CSh?DnThdd?Zqo`K;){&Rdx^{Dx=dZsi127`?@C+A=m28S?O z`q~rL>B5k^`ELe^fInM>_osYG5y#qJ!djz~4L#dbCe?*FU!epCV5stzKq)g%J&Sz- ze|@WycN%{YtR^+Dw!1mv8uxzG?p0|Q?Z!7aj@#kF@8tcVKP%kCG#NPK-lNS{ z{uhB$I%n-fzXv6Z={@;EnM%ng9sIIXMico~todtg!;s%zKLA_SUpn2_Z3GlMbau>d zU6G|tLt}*wLVpyy2q`@IWu{G;u-2eMuJ$${b@ya%v%MzUsowD_bMbhRzrQ-iA*Wg zBQ{2&2c+HdsTGVH{VRCv;D}7ACNNXAt`!Z?FtD@c^`Si3+!AfURzr>o@7&tjd>k6M zc$d9=XjBPE^Q&xzp|S1bh3WE$-`c&|&|UYmrOh_a`dk6X#PUk*G}RxbuB~*m zY+4D1&FqK(lZOB_6GA|ZJ|wznBw_rek|%wGY0Mfpv9;62E@0-fagGcvI>ywYI4t2~ z)`{^Rw3S2V*3Ng%K(jiv(Np~B_#VoZ#ZpFp3+VE1<@a{tD0VJCn`hK>G$vFuCNsO1aK4uB9tlr}fOL7L%&{L_@Bb z&|2EOwf`uLj9lUahHjSLGk+0?jkJF4Tx#qQjnDv2C{@3hFVE{Hn*a-)f!g3};HrG| zZ%%Lj_th!Nk#4JNwIZ~c`7*D#wfPYEiaCg-pYg?Tqc$3WJ3np8oFMbbQvR~)T!S9M zi6Ox~+eNMLF(4R4g-O!C+>b60qi=U_$@ z87SWuL|y+O(pHd3TqI~sdO~^{ zEQ?|Bi4i}c4)aX19l$B@GHr;PC(JY;B$*|kj{2idf|)#_z6Vb<%#kvExoCO@3E_Hj zZ8rQF>d&p^-~XiXlmB8tT9Gz$w0{PW~le;5R5S^!*SAG4F)4dVD9e zFyBLweEA;zDW_)Yfr1K&6N9c}NI1XE0dARJYT*D?Z!-r4-*KaVC$pm7HQ`Da?gu*h*JEomRna;VL{3g##kt(He(aGtW z8oylWkwCsq&bQwxzt8I5!S0z<{v79o5Y)`rTF`;;q@9}doc$YM3r3IYUwr!@WKC8Q z07`kBp{+-J*DGJ=dxKKm5zD5Q#+m}q4geAaTrusA{}xQEN8Veqwk`hIcM^1JQ2PFB z%#})j@~j@gF-`|cy6hMqA>U?o@Px%04WqI1y{c(&Ij5nxikX}0Vh&%jqC|{4Yn>89 zi1(L=Murg!Zf%Gx#iyokl>}iS-acq$@2eru;R$fHcn;%ev_i$?jc%xDS@r^}PmR|4*#&C4U+ zc_jmEQpF7kViZwU)xTZ!D>2HwbgXK0nZ@9V8(B1b9SHcSTuOV?KJUO?jg3<~_4+ZJf%;E}WCoBv-{}?!Qq)wCpVjQE6%J%d zD83{14hSBPMW}Oy#OgtFB3O+gdXtG~qO(L*Y1=BTd(8X#$8ycMrl{0N8yKgzKn;zH zpdwKFL(7mi&pjK>M5s62X9k{6p`R+SUZE>@6YQ|vqkz>+fqqP4R1S5tOByZndG?kG&v za^WomLKd6b`FFuXT!4#y9`jc>Cpgq!X~&9654kTMDQ}vc=Cq7V5`HpEPB~s zfJH2+L_)D|F$a68*=6+_kQL=bs}qlDREMktr4ik_HIqw8_XEa4x~eJ`Z^%t~!S<+} z1pxS?lKxr=(nl_ZpW}}+%E)kX0*N6qcG}jMSDDL1(6EfRAK9>18vYAS5*U|uO2ojH z4jcCTz`T6uM#j8*{ZK_&5C-`OJZV!PxRrOoxhF!ugumD`Lc8K4_HKe>n+T;G^>;Pk zl5w7c$HQWizwC1>7$9XgUo~e?+2$9mXXDXOl5X*JV?U65l!DQhqArNk(WuDVzr$^Q z$(E9=)_dnQ>ng+vf(jyiS1bCEZ5U!*H#_I)S#^!^C7f$(9y3G8&VN$BUeg+6Ay_AJ zky{buDFAbG)HLZB?))>mG>dTaD2+9lwS7pEN1iZ5z`j+6rfH_>XCd@$Gp>^DTWmf*58;d%WIy?J~l zV>P9JLQkl7wh(X>Vb-UX4aTG z^VOU$#)i-JGFwnC^WdCG94J#!g$dgCF2kA$nvU?oYvZGL&c!^{whfs$d9Ex**l2=F zTsi`L;hPvI`}(JBFZOGpjbPx;%R?2pfY!)aHaByhAfOq&sdNlA>kAwJNnppL})Y1Uzq3+tew}e_Gm%-^r_6 zwB!({Dx$s@!b$jM*M>Z%E1LQj;Z92ZU7bH5FJrq>O;tbDl51Jkw0|}R5M}S0Aao@$ zo-HMeX$T)7GGcbm6YoYJPL2xuao46tS>#_fCEikVtO5jF5m|riE8c=uZ=JQwT-+N#8^$(UaLxK zWhN6G25ub^3_gICr15jgyX(C;?>HYujQ&tJiQdEegQC>Av;hpl%c8JmP7rJ4c3pR{F-!SUG#zq3&meGF*r=(0hcA>49+A2~v5HB)yinY7XM; z)<3R>(QMcHx9X_DN@vJbY>TSd4DhHQ@l}%4L5CC{=82(U4VlVPbc=T1b6@uLZZeFN1!9UCaS1-BCy`xki|RoOetVsPhTEma6WyE3m{ZL{Ee*z# zxV0nAc7fosjPbt6SZ^6NhS^;tU?OW;c!ZZt&ds11MWb8%$erMc0t= zB5k4JNI6LYEBGZbtQ=|_Rfn~ezVMxYGq)15s!}GLQU6ELDw|ec=takz_Ym5kEnvYq zw}Gciu+FXa7l9q<5c5P~`!?=-syyKI$crDF5kNBYi+}HM_{z`j|}GjIU%H zW5d+le6FGo8~6d2U-N{nXdy_fwaT}i-d}r&u>NBWZV_9!M-rN0{-9EqYV?g{rtC@#B?54^Xp;Lp-pSmbV_m8V;Z?GD0$6b&}cC2+HoI zk?^v8cq&Rh(+0~ONgehTT4-SjkL0Oz!lDq6H4x#_gkaDq!x}Z!52=PX#zP9{i+M%; zOdM4tF3tQ+j@gXQn^VOt}b@^ps{je)Xj)Q=(jV`Og--an3!DDi!c2K>`k9L%;&{u~r!zPO#s; z`~Ry!WOk#!TFi=` zvFRTsNXzZNdH!j633tqk3?R_J!XW~!Baf}+UD|a3P&2>?S$(MF{U-xE44)5c->hN? z@cUuo%ej*vn@+&-JSt2fs%TXUyWIa*6e9PFtGePubT4X_i3yf65wIUVB(TeEnrz8` z0qU4468OwO=s-5(GoHPeZnShFa^||$bh=i&C-}{|fo}Oj(e$4NKRhYK^45`zV@(L# zRrADY5ylMhPJK(;!k?R^TfOw=?deL&@&Ic)hgB_QHLN<=nGmAR!3MUK=@(e9Ra<^o05{NA+7RjtQoK zN1M24?Q5KQ;8+wFYTpcA?Q?uDW5RfSqk z7~9kY>7Nd9C#{c4xx(M5kbsd^6E+^D14=@Z;&sz2^%e~M$(om!w^2uIM*Sgw5lYGf zrqm7izBqJnUHIBIxWFSTZHH2yhT|NBlpu()u9EKL%flCb^DaA;H<5a?z^v>sFwl0=&{+l`V2Al~{T*t%uQ=uf3 zGNpR{a3r|)5m}MhL+Kk*dH^45xUXmDpLW~j(}rhwkwBUkp`S#90M?#?iQgJscP1-~`@uGMI<3bf`XvgEvKOY| zh%N8E714Yg7&}W5|K~#@XWphEc7=v2!4TPUa)-Nj3pYine`RX>LXMK3!D`$*@uOhac zQL9qwoG|~V8i7NnR$EW?j8~O{obG&8jf5nbv(uj4%?`g*ID)tMRzb`q&8$(Jl=aE( z4{8lwtm)7AKr_OAR!~#B+m>!T>3@H3hEj0Z3^Yt*iZgFNQAkqIO}I^gHmzt9N*;~< z>9iH5JSMkX5U0m}NiRO-D;t;M@mrf*!>^d@y}ipJ!xEMeE;dwx$tbFgv}Plwt0mk+ z>-y#8JYvEgPb=xi{Vp#BNyI2Y2Qy2N5d@8v$F-F4OLD6$wfwkDwHPvCnhWGhh#EjB`REY& z&oQXa;A}s|t1aQM`B3p?wddCGWlQ)`Gp;Aj?CXPF%I7x^(4)fg5BmAEWglB>XB!zR z1~6kB>8emB(;NNEa(SJeG-<cq~zJ{Gk&>)vT^!R;p z{#WpmwuIvsprxYSqM9%QYqW=@pR-u@nSi5vr{)V+#FO}0IZXR+{4=BOzpgi=Y8&AV z)p$=D$q|Gr6gY6muQI`UvkykYZ6V=o?dwsONqWdxXJaW6%-fnSHG?MuoLh^_c@eQy z;b!-2F85#(QeR;{uGc=Z4sg+iPw=o+9(EmOXDRnz=Zj+^37?~6uZGY~xKdIJ1KxVG z@g;2;+Y-t5c-Z<#ra3v=cdyK*Ircc+#Rd-c8F(>{OC|b*(Cm>NHX_lc=Lk~rF&eRz zd*yqQIAfe#zT|VVOi_xXNNx!d6R zY@HXG3FUgQD7=gEpOcS`xvK==$*$TVCM3KoNQG(d18{3J>jn*f$;c-4?{?o0OSr!irBm!HF5hf>gD;R z-Rab+Q1hJO$ZI#>)FvRk_*iV)w>px)UPXW+*dVLc!-c(u5e`zuBM5M+c`LeDJPOsE zITgzowHwGHVTs+x_l+6~xb1lKc=w?z-;H9ng;Lp9;k@dOZWX&M?bAS%U+3Ic$>hyL zjXx>Ay-w#C-VE?CKVKq-u9r_PWqW1xp2hrMf>Bh36rjzM&VEyIzX2l(B}4juAB%St z`jbIU0@SXJMZVLI0W{XA<<3z5aecgUAYccv)Ot+w`OV5o)uk6WXUxp6%lb?QdH@}> z%9{McK)|Y#Ng30fStD>=Kt!6KRy#sX!zqD)$46oj9cM9rkH>}AL}a~U$ehT-uwm^)izt`wYVh)2>U;XBx5Y409;~~ZK&Y}7%<5MYF;0u- z?l9c8hV*y1z=2ypo`KPq^O!0X?{hd^$C|E9_&MbOOBXheZ-@p¬jam{}5z;Evs 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
1pH*bxtg%TA+ZMjL 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 kha(@dP=C8wH8PXS=i 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 literal 0 HcmV?d00001 From 914a86068a0a0e21fb4ea9a612816e709bf0a6e8 Mon Sep 17 00:00:00 2001 From: Micz Flor Date: Fri, 29 Dec 2023 19:49:26 +0100 Subject: [PATCH 04/28] Update README.md to include calendar 2024 (#2187) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 49cb2752b..b9e55cf52 100644 --- a/README.md +++ b/README.md @@ -27,11 +27,11 @@ We are working to provide an integrated solution. For Version 2 there is a possible fix to reactivate spotify with a manual installation described [here](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1815#issuecomment-1666535983). For Version 3 [#2164](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/2164) is laying the groundwork. Help is greatly appreciated. -## The Phoniebox Calendar 2023 is here +## The Phoniebox Calendar 2024 is here -Another bunch of wonderful designs! 2023 is the fifth Phoniebox calendar. If you are interested, you can see the [2019, 2020, 2021 and 2022 calendars in the docs folder](docs). Download [the printable PDF of 2023 here](https://mi.cz/static/2023-Phoniebox-Calendar.pdf). +Another bunch of wonderful designs! 2024 is the sixth Phoniebox calendar. If you are interested, you can see the [2019 to 2023 calendars in the docs folder](docs). Download [the printable PDF of 2024 here](https://drive.google.com/file/d/1IX03wabELmhx6YbUtYOFlpDe-Dd7kTx0/). -![The 2023 Phoniebox Calendar](docs/2023-Phoniebox-Calendar.jpg "The 2023 Phoniebox Calendar") +![The 2024 Phoniebox Calendar](docs/2024-Phoniebox-Calendar.jpg "The 2024 Phoniebox Calendar") If you want to be featured on next years calendar, please make sure to add your Phoniebox pics to the [design thread here on github](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/2115). From f5858a4c429062b9eaafb40107019bfcd344aaee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:18:13 +0100 Subject: [PATCH 05/28] Bump actions/setup-python from 4 to 5 (#2196) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pythonpackage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 6b9a3722c..421c20970 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 0fdb1c014d66dbcdeec3bc32975b6bd5bd3a472b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 10:18:40 +0100 Subject: [PATCH 06/28] Bump actions/checkout from 3 to 4 (#2192) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3d9fcf52b..4370e2d29 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ jobs: check_abort: ${{ steps.vars.outputs.check_abort }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set Output vars id: vars From 359524b9efa5c3d33fb93ad632a22b3bd0d7d5fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 13:23:40 +0100 Subject: [PATCH 07/28] Bump github/codeql-action from 2 to 3 (#2194) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index f895114ef..5ed98fe1b 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -50,7 +50,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v2 + uses: github/codeql-action/autobuild@v3 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -64,4 +64,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 From 430c6226e8017020afce34cbafac0292d5ed0a52 Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Wed, 3 Jan 2024 21:51:26 +0100 Subject: [PATCH 08/28] add workflow file to paths to trigger run (#2197) --- .github/workflows/test_docker_debian.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test_docker_debian.yml b/.github/workflows/test_docker_debian.yml index d559b40a6..1395137a0 100644 --- a/.github/workflows/test_docker_debian.yml +++ b/.github/workflows/test_docker_debian.yml @@ -8,6 +8,7 @@ on: branches-ignore: - 'future3/**' paths: + - '.github/workflows/test_docker_debian*.yml' - 'ci/**' - 'misc/sampleconfigs/**' - 'scripts/helperscripts/setup_*' @@ -21,6 +22,7 @@ on: - develop - main paths: + - '.github/workflows/test_docker_debian*.yml' - 'ci/**' - 'misc/sampleconfigs/**' - 'scripts/helperscripts/setup_*' From 9bb656b1371dd150e60c356e64c9a751d04081e9 Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Tue, 9 Jan 2024 08:57:03 +0100 Subject: [PATCH 09/28] update v3 refs (#2212) --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b9e55cf52..e32387cd6 100644 --- a/README.md +++ b/README.md @@ -50,11 +50,11 @@ While Version 3 is still under development, it is becoming a lot more stable! Al If you seek the adventure, your support will be more then welcome. Before contributing, check out the following references. * ⭐ **[Releases](https://github.com/MiczFlor/RPi-Jukebox-RFID/releases?q=v3&expanded=true)** -* 🚀 **[Install Jukebox Version 3 Beta](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/develop/documentation/builders/installation.md)** +* 🚀 **[Install Jukebox Version 3](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/builders/installation.md)** * 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=future3%2C+bug%2C+needs+triage&template=future3.md&title=ISSUE+SUMMARY+on+future3) -* ☑️ [Feature Status](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/develop/documentation/developers/status.md) -* 📖 [Documentation](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/develop/documentation/README.md) -* 👩‍💻 [Development](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/develop/documentation/developers/README.md) +* ☑️ [Feature Status](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/developers/status.md) +* 📖 [Documentation](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/README.md) +* 👩‍💻 [Development](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/developers/README.md) * 🦄 Code: [Release Branch](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/future3/main), [Development Branch](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/future3/develop) --- From 01734deb7c872c2ef241eb6b5c1990231aeee062 Mon Sep 17 00:00:00 2001 From: miohna <50060359+miohna@users.noreply.github.com> Date: Tue, 30 Jan 2024 21:29:54 +0100 Subject: [PATCH 10/28] Bugfix: re-enable Mifare Ultralight C support (#2214) * Bugfix: reenable Mifare Ultralight C support Make use of read_id function from pirc552 package to reenable Mifare Ultralight C support. ATTENTION: Previously a non-standard representation of NFC card uid was returned by the Mfrc522Reader class. With this change a standard representation of the NFCs uid is return which breaks all currently stored links between cards and actions. * Add legacy mode option Add a legacy mode similar to 'future3' implementation. Use the legacy mode to allow correction of card uid read with Mfrc522 while keeping the class backward compatibil, cf. 'future3' handling. * Add error handling for missing `Mode_Legacy` file. * Change legacy mode to UID option for rc522 Modified general legacy mode to a specific option of the rc522 reader that allows to change between the read of the usual UID and the read of the previous custom implementation of card ID. * Changed error handling of non-existing `Rfidreader_Rc522_Readmode_UID` file. * Allow rc522 readmode UID setting during setup Extend rc522 setup script to question user for the usage of UID mode rather than the old custom card ID. * Bugfix: restart rfid service properly during setup of rc522. * add installation test parameter --------- Co-authored-by: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> --- components/rfid-reader/RC522/setup_rc522.sh | 9 ++++++- scripts/Reader.py.experimental | 24 ++++++++++++++++--- scripts/inc.writeGlobalConfig.sh | 12 ++++++++++ .../tests/run_installation_tests2.sh | 5 ++-- 4 files changed, 44 insertions(+), 6 deletions(-) diff --git a/components/rfid-reader/RC522/setup_rc522.sh b/components/rfid-reader/RC522/setup_rc522.sh index ece9a9144..3c0e406ae 100644 --- a/components/rfid-reader/RC522/setup_rc522.sh +++ b/components/rfid-reader/RC522/setup_rc522.sh @@ -16,6 +16,13 @@ question() { printf "Please make sure that the RC522 reader is wired up correctly to the GPIO ports before continuing...\n" question "Continue" +printf "Use backward-compatible card ID (not suggested for new installations)?\n" +read -p "(y/n) " choice +case "$choice" in + y|Y ) printf "OFF" > "${JUKEBOX_HOME_DIR}"/settings/Rfidreader_Rc522_Readmode_UID;; + * ) printf "ON" > "${JUKEBOX_HOME_DIR}"/settings/Rfidreader_Rc522_Readmode_UID;; +esac + printf "Installing Python requirements for RC522...\n" sudo python3 -m pip install --upgrade --force-reinstall -q -r "${JUKEBOX_HOME_DIR}"/components/rfid-reader/RC522/requirements.txt @@ -29,6 +36,6 @@ sudo chown pi:www-data "${JUKEBOX_HOME_DIR}"/scripts/deviceName.txt sudo chmod 644 "${JUKEBOX_HOME_DIR}"/scripts/deviceName.txt printf "Restarting phoniebox-rfid-reader service...\n" -sudo systemctl start phoniebox-rfid-reader.service +sudo systemctl restart phoniebox-rfid-reader.service printf "Done.\n" diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index b34479565..9e8a32d45 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -50,11 +50,13 @@ class UsbReader(object): class Mfrc522Reader(object): - def __init__(self): + def __init__(self, readmode_uid=False): import pirc522 self.device = pirc522.RFID() + self.readmode_uid = readmode_uid + self.readCard = self.readCard_normal if self.readmode_uid else self.readCard_legacy - def readCard(self): + def readCard_legacy(self): # Scan for cards self.device.wait_for_tag() (error, tag_type) = self.device.request() @@ -70,6 +72,17 @@ class Mfrc522Reader(object): logger.debug("No Device ID found.") return None + def readCard_normal(self): + # Scan for cards + uid = self.device.read_id(as_number=True) + if not uid: + logger.debug("No Device ID found.") + return None + card_id = str(uid) + logger.info("Card detected.") + logger.info(card_id) + return card_id + @staticmethod def cleanup(): GPIO.cleanup() @@ -188,9 +201,14 @@ class Reader(object): else: with open(path + '/deviceName.txt', 'r') as f: device_name = f.read().rstrip().split(';', 1)[0] + if os.path.isfile(path + '/../settings/Rfidreader_Rc522_Readmode_UID'): + with open(path + '/../settings/Rfidreader_Rc522_Readmode_UID', 'r') as f: + readmode_uid = f.read().rstrip().split(';', 1)[0] == 'ON' + else: + readmode_uid = False if device_name == 'MFRC522': - self.reader = Mfrc522Reader() + self.reader = Mfrc522Reader(readmode_uid) elif device_name == 'RDM6300': # The Rdm6300Reader supports 2 Additional Number Formats which can bee choosen by an optional parameter dictionary: # {'numberformat':'card_id_float'} or {'numberformat':'card_id_dec'} diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index 856c54fb4..84aa559ef 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -109,6 +109,16 @@ fi # 2. then|or read value from file SECONDSWIPEPAUSECONTROLS=`cat $PATHDATA/../settings/Second_Swipe_Pause_Controls` +############################################## +# RFID reader rc522 readmode UID +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/Rfidreader_Rc522_Readmode_UID ]; then + echo "OFF" > $PATHDATA/../settings/Rfidreader_Rc522_Readmode_UID + chmod 777 $PATHDATA/../settings/Rfidreader_Rc522_Readmode_UID +fi +# 2. then|or read value from file +RFIDREADERRC522READMODEUID=`cat $PATHDATA/../settings/Rfidreader_Rc522_Readmode_UID` + ############################################## # Audio_iFace_Name # 1. create a default if file does not exist @@ -332,6 +342,7 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai # SECONDSWIPE # SECONDSWIPEPAUSE # SECONDSWIPEPAUSECONTROLS +# RFIDREADERRC522READMODEUID # AUDIOIFACENAME # AUDIOIFACEACTIVE # VOLUMEMANAGER @@ -369,6 +380,7 @@ echo "SWIPEORPLACE=\"${SWIPEORPLACE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPE=\"${SECONDSWIPE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPEPAUSE=\"${SECONDSWIPEPAUSE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPEPAUSECONTROLS=\"${SECONDSWIPEPAUSECONTROLS}\"" >> "${PATHDATA}/../settings/global.conf" +echo "RFIDREADERRC522READMODEUID=\"${RFIDREADERRC522READMODEUID}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOIFACENAME=\"${AUDIOIFACENAME}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOIFACEACTIVE=\"${AUDIOIFACEACTIVE}\"" >> "${PATHDATA}/../settings/global.conf" echo "VOLUMEMANAGER=\"${VOLUMEMANAGER}\"" >> "${PATHDATA}/../settings/global.conf" diff --git a/scripts/installscripts/tests/run_installation_tests2.sh b/scripts/installscripts/tests/run_installation_tests2.sh index 17b51f893..da2521ebc 100644 --- a/scripts/installscripts/tests/run_installation_tests2.sh +++ b/scripts/installscripts/tests/run_installation_tests2.sh @@ -24,10 +24,11 @@ echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selecti # y use gpio # y RFID registration # 2 use RC522 reader -# yes, reader is connected +# y, reader is connected +# y, use legacy readermode # n No reboot -./../install-jukebox.sh <<< $'y\nn\n\nn\n\ny\n\nn\n\ny\n\ny\n\ny\n\ny\ny\n2\ny\nn\n' +./../install-jukebox.sh <<< $'y\nn\n\nn\n\ny\n\nn\n\ny\n\ny\n\ny\n\ny\ny\n2\ny\ny\nn\n' INSTALLATION_EXITCODE=$? # Test installation From 76b4a8c7b328e329b4c9a3f291421b7f3e71b9a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 21:31:39 +0100 Subject: [PATCH 11/28] Bump actions/cache from 3 to 4 (#2231) Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/php.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 128334e9c..65d7e7cbb 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -29,7 +29,7 @@ jobs: - name: Cache Composer packages id: composer-cache - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: vendor key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} From 2ceef1b60ce6f90ea4b130f4c81ebfeb32f67344 Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Wed, 7 Feb 2024 21:00:21 +0100 Subject: [PATCH 12/28] update workflow with improvements from v3 (#2246) * update workflow with improvements from v3 * dont run all tests for user "hans" * fix order for readability --- .github/workflows/test_docker_debian.yml | 57 ++++++++++++++----- .../test_docker_debian_codename_sub.yml | 50 +++++++++------- 2 files changed, 72 insertions(+), 35 deletions(-) diff --git a/.github/workflows/test_docker_debian.yml b/.github/workflows/test_docker_debian.yml index 1395137a0..7c929ae76 100644 --- a/.github/workflows/test_docker_debian.yml +++ b/.github/workflows/test_docker_debian.yml @@ -20,7 +20,7 @@ on: # The branches below must be a subset of the branches above branches: - develop - - main + - master paths: - '.github/workflows/test_docker_debian*.yml' - 'ci/**' @@ -39,19 +39,48 @@ concurrency: jobs: - # Build container and run tests - run: - name: ${{ matrix.debian_codename }} - strategy: - fail-fast: false - matrix: - debian_codename: ['bookworm', 'bullseye', 'buster'] + # Build container and run tests. Duplication of job intended for better visualization. + run_bookworm_armv7: + name: 'bookworm armv7' uses: ./.github/workflows/test_docker_debian_codename_sub.yml with: - runs_on: ubuntu-latest + debian_codename: 'bookworm' platform: linux/arm/v7 - docker_image_name: rpi-jukebox-rfid - cache_scope: ${{ github.ref }}-test-debian - matrix_usernames: "['pi', 'hans']" - matrix_test_scripts: "['run_installation_tests.sh', 'run_installation_tests2.sh', 'run_installation_tests3.sh']" - debian_codename: ${{ matrix.debian_codename }} + + # # can be activate on test branches + # run_bookworm_armv6: + # name: 'bookworm armv6' + # uses: ./.github/workflows/test_docker_debian_codename_sub.yml + # with: + # debian_codename: 'bookworm' + # platform: linux/arm/v6 + + run_bullseye_armv7: + name: 'bullseye armv7' + uses: ./.github/workflows/test_docker_debian_codename_sub.yml + with: + debian_codename: 'bullseye' + platform: linux/arm/v7 + + # # can be activate on test branches, currently failing + # run_bullseye_armv6: + # name: 'bullseye armv6' + # uses: ./.github/workflows/test_docker_debian_codename_sub.yml + # with: + # debian_codename: 'bullseye' + # platform: linux/arm/v6 + + run_buster_armv7: + name: 'buster armv7' + uses: ./.github/workflows/test_docker_debian_codename_sub.yml + with: + debian_codename: 'buster' + platform: linux/arm/v7 + + # # can be activate on test branches, currently failing + # run_buster_armv6: + # name: 'buster armv6' + # uses: ./.github/workflows/test_docker_debian_codename_sub.yml + # with: + # debian_codename: 'buster' + # platform: linux/arm/v6 diff --git a/.github/workflows/test_docker_debian_codename_sub.yml b/.github/workflows/test_docker_debian_codename_sub.yml index b018afaf5..6f2bdbfaa 100644 --- a/.github/workflows/test_docker_debian_codename_sub.yml +++ b/.github/workflows/test_docker_debian_codename_sub.yml @@ -3,36 +3,33 @@ name: Subworkflow Test Install Scripts Debian on: workflow_call: inputs: - runs_on: - required: true - type: string - platform: - required: true - type: string debian_codename: required: true type: string - cache_scope: + platform: required: true type: string docker_image_name: - required: true - type: string - matrix_usernames: - required: true + required: false type: string - matrix_test_scripts: - required: true + default: rpi-jukebox-rfid + cache_scope: + required: false type: string + default: ${{ github.ref }}-test-debian local_registry_port: required: false type: number default: 5000 + runs_on: + required: false + type: string + default: ubuntu-latest # let only one instance run the test so cache is not corrupted. # cancel already running instances as only the last run will be relevant concurrency: - group: ${{ inputs.cache_scope }}-${{ inputs.debian_codename }} + group: ${{ inputs.cache_scope }}-${{ inputs.debian_codename }}-${{ inputs.platform }} cancel-in-progress: true jobs: @@ -45,6 +42,7 @@ jobs: cache_key: ${{ steps.vars.outputs.cache_key }} image_file_name: ${{ steps.vars.outputs.image_file_name }} image_tag_name: ${{ steps.vars.outputs.image_tag_name }} + docker_run_options: ${{ steps.vars.outputs.docker_run_options }} # create local docker registry to use locally build images services: @@ -71,15 +69,18 @@ jobs: DEBIAN_CODENAME: ${{ inputs.debian_codename }} DOCKER_IMAGE_NAME: ${{ inputs.docker_image_name }} CACHE_SCOPE: ${{ inputs.cache_scope }} + PLATFORM: ${{ inputs.platform }} run: | - echo "image_tag_name=${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEBIAN_CODENAME }}-test" >> $GITHUB_OUTPUT - echo "image_file_name=${{ env.DOCKER_IMAGE_NAME }}-${{ env.DEBIAN_CODENAME }}.tar" >> $GITHUB_OUTPUT - echo "cache_scope=${{ env.CACHE_SCOPE }}-${{ env.DEBIAN_CODENAME }}" >> $GITHUB_OUTPUT + PLATFORM=${PLATFORM////_} + echo "image_tag_name=${{ env.DOCKER_IMAGE_NAME }}:${{ env.DEBIAN_CODENAME }}-${PLATFORM}-test" >> $GITHUB_OUTPUT + echo "image_file_name=${{ env.DOCKER_IMAGE_NAME }}-${{ env.DEBIAN_CODENAME }}-${PLATFORM}.tar" >> $GITHUB_OUTPUT + echo "cache_scope=${{ env.CACHE_SCOPE }}-${{ env.DEBIAN_CODENAME }}-${PLATFORM}" >> $GITHUB_OUTPUT - name: Set Output vars id: vars env: LOCAL_REGISTRY_PORT: ${{ inputs.local_registry_port }} + PLATFORM: ${{ inputs.platform }} run: | echo "image_tag_name=${{ steps.pre-vars.outputs.image_tag_name }}" >> $GITHUB_OUTPUT echo "image_tag_name_local_base=localhost:${{ env.LOCAL_REGISTRY_PORT }}/${{ steps.pre-vars.outputs.image_tag_name }}-base" >> $GITHUB_OUTPUT @@ -87,6 +88,9 @@ jobs: echo "image_file_path=./${{ steps.pre-vars.outputs.image_file_name }}" >> $GITHUB_OUTPUT echo "cache_scope=${{ steps.pre-vars.outputs.cache_scope }}" >> $GITHUB_OUTPUT echo "cache_key=${{ steps.pre-vars.outputs.cache_scope }}-${{ github.sha }}#${{ github.run_attempt }}" >> $GITHUB_OUTPUT + if [ "${{ env.PLATFORM }}" == "linux/arm/v6" ] ; then + echo "docker_run_options=-e QEMU_CPU=arm1176" >> $GITHUB_OUTPUT + fi # Build base image for debian version name. Layers will be cached and image pushes to local registry - name: Build Image - Base @@ -128,7 +132,7 @@ jobs: with: name: ${{ steps.vars.outputs.image_file_name }} path: ${{ steps.vars.outputs.image_file_path }} - retention-days: 2 + retention-days: 1 # Run tests with build image @@ -139,8 +143,12 @@ jobs: strategy: fail-fast: false matrix: - username: ${{ fromJSON(inputs.matrix_usernames) }} - test_script: ${{ fromJSON(inputs.matrix_test_scripts) }} + username: ['pi'] + test_script: ['run_installation_tests.sh', 'run_installation_tests2.sh', 'run_installation_tests3.sh'] + include: + - username: 'hans' + test_script: 'run_installation_tests.sh' + steps: - name: Set up QEMU @@ -163,7 +171,7 @@ jobs: uses: tj-actions/docker-run@v2 with: image: ${{ needs.build.outputs.image_tag_name }} - options: --platform ${{inputs.platform }} --user ${{ matrix.username }} + options: ${{ needs.build.outputs.docker_run_options }} --platform ${{ inputs.platform }} --user ${{ matrix.username }} --init name: ${{ matrix.test_script }} args: | ./${{ matrix.test_script }} From 5dca35fda75991e9fde8b27a2f44be4e75484a3c Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Sat, 10 Feb 2024 20:27:07 +0100 Subject: [PATCH 13/28] Fixes for rfid reader (#2250) * fix wait_for_tag for both modes * fix function names * move rc522 settings init * fix reader readCard indirection (#551) access readCard function of Reader class itself. readCard added for "experimental" * moved rc522 reader initialization * updated rc522 implementation in "experimental.multi" * highlight default setting --- components/rfid-reader/RC522/setup_rc522.sh | 2 +- scripts/Reader.py | 2 -- scripts/Reader.py.Multi | 2 -- scripts/Reader.py.experimental | 30 ++++++++++++--------- scripts/Reader.py.experimental.Multi | 27 ++++++++++++++++--- scripts/Reader.py.original | 2 -- scripts/Reader.py.pcsc | 4 +-- scripts/daemon_rfid_reader.py | 9 +------ 8 files changed, 45 insertions(+), 33 deletions(-) diff --git a/components/rfid-reader/RC522/setup_rc522.sh b/components/rfid-reader/RC522/setup_rc522.sh index 3c0e406ae..43ab60fa6 100644 --- a/components/rfid-reader/RC522/setup_rc522.sh +++ b/components/rfid-reader/RC522/setup_rc522.sh @@ -17,7 +17,7 @@ printf "Please make sure that the RC522 reader is wired up correctly to the GPIO question "Continue" printf "Use backward-compatible card ID (not suggested for new installations)?\n" -read -p "(y/n) " choice +read -p "(y/N) " choice case "$choice" in y|Y ) printf "OFF" > "${JUKEBOX_HOME_DIR}"/settings/Rfidreader_Rc522_Readmode_UID;; * ) printf "ON" > "${JUKEBOX_HOME_DIR}"/settings/Rfidreader_Rc522_Readmode_UID;; diff --git a/scripts/Reader.py b/scripts/Reader.py index 3b583da4b..d3c09f2b6 100755 --- a/scripts/Reader.py +++ b/scripts/Reader.py @@ -29,10 +29,8 @@ def get_devices(): class Reader: - reader = None def __init__(self): - self.reader = self path = os.path.dirname(os.path.realpath(__file__)) self.keys = "X^1234567890XXXXqwertzuiopXXXXasdfghjklXXXXXyxcvbnmXXXXXXXXXXXXXXXXXXXXXXX" if not os.path.isfile(path + '/deviceName.txt'): diff --git a/scripts/Reader.py.Multi b/scripts/Reader.py.Multi index e727d7b5d..5e98b4d0f 100644 --- a/scripts/Reader.py.Multi +++ b/scripts/Reader.py.Multi @@ -29,10 +29,8 @@ def get_devices(): class Reader: - reader = None def __init__(self): - self.reader = self devs = list() path = os.path.dirname(os.path.realpath(__file__)) self.keys = "X^1234567890XXXXqwertzuiopXXXXasdfghjklXXXXXyxcvbnmXXXXXXXXXXXXXXXXXXXXXXX" diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index 9e8a32d45..e3854f629 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -50,15 +50,18 @@ class UsbReader(object): class Mfrc522Reader(object): - def __init__(self, readmode_uid=False): + def __init__(self): import pirc522 self.device = pirc522.RFID() - self.readmode_uid = readmode_uid - self.readCard = self.readCard_normal if self.readmode_uid else self.readCard_legacy + path = os.path.dirname(os.path.realpath(__file__)) + readmode_uid = False + if os.path.isfile(path + '/../settings/Rfidreader_Rc522_Readmode_UID'): + with open(path + '/../settings/Rfidreader_Rc522_Readmode_UID', 'r') as f: + readmode_uid = f.read().rstrip().split(';', 1)[0] == 'ON' + self._read_function = self._readCard_normal if readmode_uid else self._readCard_legacy - def readCard_legacy(self): + def _readCard_legacy(self): # Scan for cards - self.device.wait_for_tag() (error, tag_type) = self.device.request() if not error: @@ -72,7 +75,7 @@ class Mfrc522Reader(object): logger.debug("No Device ID found.") return None - def readCard_normal(self): + def _readCard_normal(self): # Scan for cards uid = self.device.read_id(as_number=True) if not uid: @@ -83,6 +86,11 @@ class Mfrc522Reader(object): logger.info(card_id) return card_id + def readCard(self): + # Scan for cards + self.device.wait_for_tag() + return self._read_function() + @staticmethod def cleanup(): GPIO.cleanup() @@ -201,14 +209,9 @@ class Reader(object): else: with open(path + '/deviceName.txt', 'r') as f: device_name = f.read().rstrip().split(';', 1)[0] - if os.path.isfile(path + '/../settings/Rfidreader_Rc522_Readmode_UID'): - with open(path + '/../settings/Rfidreader_Rc522_Readmode_UID', 'r') as f: - readmode_uid = f.read().rstrip().split(';', 1)[0] == 'ON' - else: - readmode_uid = False if device_name == 'MFRC522': - self.reader = Mfrc522Reader(readmode_uid) + self.reader = Mfrc522Reader() elif device_name == 'RDM6300': # The Rdm6300Reader supports 2 Additional Number Formats which can bee choosen by an optional parameter dictionary: # {'numberformat':'card_id_float'} or {'numberformat':'card_id_dec'} @@ -221,3 +224,6 @@ class Reader(object): self.reader = UsbReader(device) except IndexError: sys.exit('Could not find the device %s.\n Make sure it is connected' % device_name) + + def readCard(self): + return self.reader.readCard() diff --git a/scripts/Reader.py.experimental.Multi b/scripts/Reader.py.experimental.Multi index a4626eb5f..b7c4fcb5f 100644 --- a/scripts/Reader.py.experimental.Multi +++ b/scripts/Reader.py.experimental.Multi @@ -70,11 +70,17 @@ class UsbReader(object): class Mfrc522Reader(object): def __init__(self): + import pirc522 self.device = pirc522.RFID() + path = os.path.dirname(os.path.realpath(__file__)) + readmode_uid = False + if os.path.isfile(path + '/../settings/Rfidreader_Rc522_Readmode_UID'): + with open(path + '/../settings/Rfidreader_Rc522_Readmode_UID', 'r') as f: + readmode_uid = f.read().rstrip().split(';', 1)[0] == 'ON' + self._read_function = self._readCard_normal if readmode_uid else self._readCard_legacy - def readCard(self): + def _readCard_legacy(self): # Scan for cards - self.device.wait_for_tag() (error, tag_type) = self.device.request() if not error: @@ -88,6 +94,22 @@ class Mfrc522Reader(object): logger.debug("No Device ID found.") return None + def _readCard_normal(self): + # Scan for cards + uid = self.device.read_id(as_number=True) + if not uid: + logger.debug("No Device ID found.") + return None + card_id = str(uid) + logger.info("Card detected.") + logger.info(card_id) + return card_id + + def readCard(self): + # Scan for cards + self.device.wait_for_tag() + return self._read_function() + @staticmethod def cleanup(): GPIO.cleanup() @@ -158,7 +180,6 @@ class Pn532Reader: class Reader(object): def __init__(self): - self.reader = self self.devs = list() path = os.path.dirname(os.path.realpath(__file__)) if not os.path.isfile(path + '/deviceName.txt'): diff --git a/scripts/Reader.py.original b/scripts/Reader.py.original index 49f1957bc..80a4fabf3 100755 --- a/scripts/Reader.py.original +++ b/scripts/Reader.py.original @@ -30,11 +30,9 @@ def get_devices(): class Reader: - reader = None def __init__(self): logger.debug('Initialize Reader') - self.reader = self path = os.path.dirname(os.path.realpath(__file__)) self.keys = "X^1234567890XXXXqwertzuiopXXXXasdfghjklXXXXXyxcvbnmXXXXXXXXXXXXXXXXXXXXXXX" deviceNameFile = os.path.join(path, 'deviceName.txt') diff --git a/scripts/Reader.py.pcsc b/scripts/Reader.py.pcsc index e0d2cc374..792b29f01 100644 --- a/scripts/Reader.py.pcsc +++ b/scripts/Reader.py.pcsc @@ -12,10 +12,8 @@ from smartcard.util import * class Reader: - reader = None - def __init__(self): - self.reader = self + pass def readCard(self): diff --git a/scripts/daemon_rfid_reader.py b/scripts/daemon_rfid_reader.py index cc643f26d..b37c96bba 100755 --- a/scripts/daemon_rfid_reader.py +++ b/scripts/daemon_rfid_reader.py @@ -85,14 +85,7 @@ def handler(signum, frame): signal.alarm(1) # reading the card id - # NOTE: it's been reported that KKMOON Reader might need the following line altered. - # Instead of: - # cardid = reader.reader.readCard() - # change the line to: - # cardid = reader.readCard() - # See here for (German ;) details: - # https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/551 - cardid = reader.reader.readCard() + cardid = reader.readCard() # disable the alarm after a successful read signal.alarm(0) From 0b452b6d51352bd67dffff6bc68b7f9982c598ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Feb 2024 17:11:49 +0100 Subject: [PATCH 14/28] Bump mopidy-iris from 3.69.2 to 3.69.3 (#2229) Bumps [mopidy-iris](https://github.com/jaedb/iris) from 3.69.2 to 3.69.3. - [Release notes](https://github.com/jaedb/iris/releases) - [Commits](https://github.com/jaedb/iris/compare/3.69.2...3.69.3) --- updated-dependencies: - dependency-name: mopidy-iris dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements-spotify.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-spotify.txt b/requirements-spotify.txt index b521b6ac6..83c411544 100644 --- a/requirements-spotify.txt +++ b/requirements-spotify.txt @@ -1,3 +1,3 @@ # Spotify related requirements # You need to install these with `sudo pip install --upgrade --force-reinstall -r requirements-spotify.txt` - Mopidy-Iris==3.69.2 + Mopidy-Iris==3.69.3 From d345db1402591175f98258e370475d831a729660 Mon Sep 17 00:00:00 2001 From: s-martin Date: Tue, 13 Feb 2024 22:27:22 +0100 Subject: [PATCH 15/28] Update phpunit (#2253) * fixed markdown warnings * fix flake warnings * Bump coverallsapp/github-action from 1 to 2 Bumps [coverallsapp/github-action](https://github.com/coverallsapp/github-action) from 1 to 2. - [Release notes](https://github.com/coverallsapp/github-action/releases) - [Upgrade guide](https://github.com/coverallsapp/github-action/blob/main/UPGRADE.md) - [Commits](https://github.com/coverallsapp/github-action/compare/v1...v2) --- updated-dependencies: - dependency-name: coverallsapp/github-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump github/codeql-action from 2 to 3 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump php-mock/php-mock-phpunit from 2.8.0 to 2.9.0 Bumps [php-mock/php-mock-phpunit](https://github.com/php-mock/php-mock-phpunit) from 2.8.0 to 2.9.0. - [Release notes](https://github.com/php-mock/php-mock-phpunit/releases) - [Commits](https://github.com/php-mock/php-mock-phpunit/compare/2.8.0...2.9.0) --- updated-dependencies: - dependency-name: php-mock/php-mock-phpunit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump phpunit/phpunit from 9.6.13 to 9.6.15 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.13 to 9.6.15. - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.15/ChangeLog-9.6.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.13...9.6.15) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update phpunit * dont enforce php version in action * explicitly set used version 7.4 * pin instantiator version to 1.5 * test usage of 7.3 * revert last change * update to latest phpunit 11 and remove patch for serialize * use php 10 instead of 11 * update to latest phpunit an php 8.x for github action * fix phpunit command line option * remove unnecessary package * pin php-mock-phpunit only to major version --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/php.yml | 2 +- composer.json | 7 +- composer.lock | 724 +++++++++++++++----------------------- 3 files changed, 286 insertions(+), 447 deletions(-) diff --git a/.github/workflows/php.yml b/.github/workflows/php.yml index 65d7e7cbb..e2e056b57 100644 --- a/.github/workflows/php.yml +++ b/.github/workflows/php.yml @@ -20,7 +20,7 @@ jobs: - name: Setup PHP with XDebug uses: shivammathur/setup-php@v2 with: - php-version: 7.3 + php-version: 8.x coverage: xdebug tools: composer diff --git a/composer.json b/composer.json index b0661a42f..dbe854805 100644 --- a/composer.json +++ b/composer.json @@ -3,9 +3,8 @@ "description": "A Raspberry Pi jukebox, playing local music, podcasts, web radio and streams triggered by RFID cards, web app or home automation. All plug and play via USB. GPIO scripts available.", "type": "project", "require-dev": { - "phpunit/phpunit": "^9", - "php-mock/php-mock-phpunit": "^2.6", - "mpyw/phpunit-patch-serializable-comparison": "^0.0.2" + "phpunit/phpunit": "^11", + "php-mock/php-mock-phpunit": "^2" }, "license": "MIT", "authors": [ @@ -15,7 +14,7 @@ ], "minimum-stability": "stable", "scripts": { - "test": "vendor/bin/phpunit ./tests/htdocs --exclude real-env", + "test": "vendor/bin/phpunit ./tests/htdocs --exclude-group real-env", "test-all": "vendor/bin/phpunit ./tests/htdocs" } } diff --git a/composer.lock b/composer.lock index 41ff99f13..c93e6544e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,131 +4,9 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "890e6b393f255fb50b55d3866c724feb", + "content-hash": "171f8f92901ab01411dbb172c150ccee", "packages": [], "packages-dev": [ - { - "name": "doctrine/instantiator", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "doctrine/coding-standard": "^9 || ^11", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" - }, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2022-12-30T00:15:36+00:00" - }, - { - "name": "mpyw/phpunit-patch-serializable-comparison", - "version": "v0.0.2", - "source": { - "type": "git", - "url": "https://github.com/mpyw/phpunit-patch-serializable-comparison.git", - "reference": "262180fb1fc529b3735f147f754d5ba1f05e541b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mpyw/phpunit-patch-serializable-comparison/zipball/262180fb1fc529b3735f147f754d5ba1f05e541b", - "reference": "262180fb1fc529b3735f147f754d5ba1f05e541b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sebastian/comparator": "^1.0 || ^2.0 || ^3.0 || ^4.0" - }, - "type": "library", - "autoload": { - "files": [ - "./files/ComparisonFailure.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "mpyw", - "email": "ryosuke_i_628@yahoo.co.jp" - } - ], - "description": "Fixes assertSame/assertEquals serialization errors running in separate processes.", - "keywords": [ - "bug", - "fix", - "isolation", - "patch", - "phpunit", - "process", - "processes", - "separate", - "serialization" - ], - "support": { - "issues": "https://github.com/mpyw/phpunit-patch-serializable-comparison/issues", - "source": "https://github.com/mpyw/phpunit-patch-serializable-comparison/tree/v0.0.2" - }, - "time": "2021-07-04T05:15:38+00:00" - }, { "name": "myclabs/deep-copy", "version": "1.11.1", @@ -190,25 +68,27 @@ }, { "name": "nikic/php-parser", - "version": "v4.17.1", + "version": "v5.0.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d" + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", - "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc", + "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -216,7 +96,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -240,9 +120,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0" }, - "time": "2023-08-13T19:53:39+00:00" + "time": "2024-01-07T17:17:35+00:00" }, { "name": "phar-io/manifest", @@ -357,28 +237,28 @@ }, { "name": "php-mock/php-mock", - "version": "2.4.1", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock.git", - "reference": "6240b6f0a76d7b9d1ee4d70e686a7cc711619a9d" + "reference": "fff1a621ebe54100fa3bd852e7be57773a0c0127" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock/zipball/6240b6f0a76d7b9d1ee4d70e686a7cc711619a9d", - "reference": "6240b6f0a76d7b9d1ee4d70e686a7cc711619a9d", + "url": "https://api.github.com/repos/php-mock/php-mock/zipball/fff1a621ebe54100fa3bd852e7be57773a0c0127", + "reference": "fff1a621ebe54100fa3bd852e7be57773a0c0127", "shasum": "" }, "require": { "php": "^5.6 || ^7.0 || ^8.0", - "phpunit/php-text-template": "^1 || ^2 || ^3" + "phpunit/php-text-template": "^1 || ^2 || ^3 || ^4" }, "replace": { "malkusch/php-mock": "*" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.0 || ^9.0 || ^10.0", - "squizlabs/php_codesniffer": "^3.5" + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.0 || ^9.0 || ^10.0 || ^11.0", + "squizlabs/php_codesniffer": "^3.8" }, "suggest": { "php-mock/php-mock-phpunit": "Allows integration into PHPUnit testcase with the trait PHPMock." @@ -421,7 +301,7 @@ ], "support": { "issues": "https://github.com/php-mock/php-mock/issues", - "source": "https://github.com/php-mock/php-mock/tree/2.4.1" + "source": "https://github.com/php-mock/php-mock/tree/2.5.0" }, "funding": [ { @@ -429,29 +309,29 @@ "type": "github" } ], - "time": "2023-06-12T20:48:52+00:00" + "time": "2024-02-10T21:07:01+00:00" }, { "name": "php-mock/php-mock-integration", - "version": "2.2.1", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock-integration.git", - "reference": "04f4a8d5442ca457b102b5204673f77323e3edb5" + "reference": "ec6a00a8129d50ed0f07907c91e3274ca4ade877" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock-integration/zipball/04f4a8d5442ca457b102b5204673f77323e3edb5", - "reference": "04f4a8d5442ca457b102b5204673f77323e3edb5", + "url": "https://api.github.com/repos/php-mock/php-mock-integration/zipball/ec6a00a8129d50ed0f07907c91e3274ca4ade877", + "reference": "ec6a00a8129d50ed0f07907c91e3274ca4ade877", "shasum": "" }, "require": { "php": ">=5.6", - "php-mock/php-mock": "^2.4", - "phpunit/php-text-template": "^1 || ^2 || ^3" + "php-mock/php-mock": "^2.5", + "phpunit/php-text-template": "^1 || ^2 || ^3 || ^4" }, "require-dev": { - "phpunit/phpunit": "^5.7.27 || ^6 || ^7 || ^8 || ^9 || ^10" + "phpunit/phpunit": "^5.7.27 || ^6 || ^7 || ^8 || ^9 || ^10 || ^11" }, "type": "library", "autoload": { @@ -484,7 +364,7 @@ ], "support": { "issues": "https://github.com/php-mock/php-mock-integration/issues", - "source": "https://github.com/php-mock/php-mock-integration/tree/2.2.1" + "source": "https://github.com/php-mock/php-mock-integration/tree/2.3.0" }, "funding": [ { @@ -492,26 +372,26 @@ "type": "github" } ], - "time": "2023-02-13T09:51:29+00:00" + "time": "2024-02-10T21:37:25+00:00" }, { "name": "php-mock/php-mock-phpunit", - "version": "2.9.0", + "version": "2.10.0", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock-phpunit.git", - "reference": "3dabfd474d43da4d1d2fee5260c634457c5da344" + "reference": "e1f7e795990b00937376e345883ea68ca3bda7e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock-phpunit/zipball/3dabfd474d43da4d1d2fee5260c634457c5da344", - "reference": "3dabfd474d43da4d1d2fee5260c634457c5da344", + "url": "https://api.github.com/repos/php-mock/php-mock-phpunit/zipball/e1f7e795990b00937376e345883ea68ca3bda7e0", + "reference": "e1f7e795990b00937376e345883ea68ca3bda7e0", "shasum": "" }, "require": { "php": ">=7", - "php-mock/php-mock-integration": "^2.2.1", - "phpunit/phpunit": "^6 || ^7 || ^8 || ^9 || ^10.0.17" + "php-mock/php-mock-integration": "^2.3", + "phpunit/phpunit": "^6 || ^7 || ^8 || ^9 || ^10.0.17 || ^11" }, "require-dev": { "mockery/mockery": "^1.3.6" @@ -552,7 +432,7 @@ ], "support": { "issues": "https://github.com/php-mock/php-mock-phpunit/issues", - "source": "https://github.com/php-mock/php-mock-phpunit/tree/2.9.0" + "source": "https://github.com/php-mock/php-mock-phpunit/tree/2.10.0" }, "funding": [ { @@ -560,39 +440,39 @@ "type": "github" } ], - "time": "2023-12-01T21:50:22+00:00" + "time": "2024-02-11T07:24:16+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "9.2.29", + "version": "11.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76" + "reference": "5e238e4b982cb272bf9faeee6f33af83d465d0e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/6a3a87ac2bbe33b25042753df8195ba4aa534c76", - "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5e238e4b982cb272bf9faeee6f33af83d465d0e2", + "reference": "5e238e4b982cb272bf9faeee6f33af83d465d0e2", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.15", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", + "nikic/php-parser": "^5.0", + "php": ">=8.2", + "phpunit/php-file-iterator": "^5.0", + "phpunit/php-text-template": "^4.0", + "sebastian/code-unit-reverse-lookup": "^4.0", + "sebastian/complexity": "^4.0", + "sebastian/environment": "^7.0", + "sebastian/lines-of-code": "^3.0", + "sebastian/version": "^5.0", "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -601,7 +481,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "11.0-dev" } }, "autoload": { @@ -630,7 +510,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/11.0.0" }, "funding": [ { @@ -638,32 +518,32 @@ "type": "github" } ], - "time": "2023-09-19T04:57:46+00:00" + "time": "2024-02-02T06:03:46+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "3.0.6", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + "reference": "99e95c94ad9500daca992354fa09d7b99abe2210" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", - "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/99e95c94ad9500daca992354fa09d7b99abe2210", + "reference": "99e95c94ad9500daca992354fa09d7b99abe2210", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -690,7 +570,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + "security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/5.0.0" }, "funding": [ { @@ -698,28 +579,28 @@ "type": "github" } ], - "time": "2021-12-02T12:48:52+00:00" + "time": "2024-02-02T06:05:04+00:00" }, { "name": "phpunit/php-invoker", - "version": "3.1.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + "reference": "5d8d9355a16d8cc5a1305b0a85342cfa420612be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5d8d9355a16d8cc5a1305b0a85342cfa420612be", + "reference": "5d8d9355a16d8cc5a1305b0a85342cfa420612be", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-pcntl": "*" @@ -727,7 +608,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -753,7 +634,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + "security": "https://github.com/sebastianbergmann/php-invoker/security/policy", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/5.0.0" }, "funding": [ { @@ -761,32 +643,32 @@ "type": "github" } ], - "time": "2020-09-28T05:58:55+00:00" + "time": "2024-02-02T06:05:50+00:00" }, { "name": "phpunit/php-text-template", - "version": "2.0.4", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + "reference": "d38f6cbff1cdb6f40b03c9811421561668cc133e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/d38f6cbff1cdb6f40b03c9811421561668cc133e", + "reference": "d38f6cbff1cdb6f40b03c9811421561668cc133e", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -812,7 +694,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/php-text-template/security/policy", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/4.0.0" }, "funding": [ { @@ -820,32 +703,32 @@ "type": "github" } ], - "time": "2020-10-26T05:33:50+00:00" + "time": "2024-02-02T06:06:56+00:00" }, { "name": "phpunit/php-timer", - "version": "5.0.3", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + "reference": "8a59d9e25720482ee7fcdf296595e08795b84dc5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/8a59d9e25720482ee7fcdf296595e08795b84dc5", + "reference": "8a59d9e25720482ee7fcdf296595e08795b84dc5", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -871,7 +754,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + "security": "https://github.com/sebastianbergmann/php-timer/security/policy", + "source": "https://github.com/sebastianbergmann/php-timer/tree/7.0.0" }, "funding": [ { @@ -879,24 +763,23 @@ "type": "github" } ], - "time": "2020-10-26T13:16:10+00:00" + "time": "2024-02-02T06:08:01+00:00" }, { "name": "phpunit/phpunit", - "version": "9.6.15", + "version": "11.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1" + "reference": "de24e7e7c67fbf437f7b6cd7bc919f2dc6fd89d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/05017b80304e0eb3f31d90194a563fd53a6021f1", - "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de24e7e7c67fbf437f7b6cd7bc919f2dc6fd89d4", + "reference": "de24e7e7c67fbf437f7b6cd7bc919f2dc6fd89d4", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", @@ -906,27 +789,25 @@ "myclabs/deep-copy": "^1.10.1", "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" + "php": ">=8.2", + "phpunit/php-code-coverage": "^11.0", + "phpunit/php-file-iterator": "^5.0", + "phpunit/php-invoker": "^5.0", + "phpunit/php-text-template": "^4.0", + "phpunit/php-timer": "^7.0", + "sebastian/cli-parser": "^3.0", + "sebastian/code-unit": "^3.0", + "sebastian/comparator": "^6.0", + "sebastian/diff": "^6.0", + "sebastian/environment": "^7.0", + "sebastian/exporter": "^6.0", + "sebastian/global-state": "^7.0", + "sebastian/object-enumerator": "^6.0", + "sebastian/type": "^5.0", + "sebastian/version": "^5.0" }, "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + "ext-soap": "To be able to generate mocks based on WSDL files" }, "bin": [ "phpunit" @@ -934,7 +815,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.6-dev" + "dev-main": "11.0-dev" } }, "autoload": { @@ -966,7 +847,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.15" + "source": "https://github.com/sebastianbergmann/phpunit/tree/11.0.3" }, "funding": [ { @@ -982,32 +863,32 @@ "type": "tidelift" } ], - "time": "2023-12-01T16:55:19+00:00" + "time": "2024-02-10T06:31:16+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "efd6ce5bb8131fe981e2f879dbd47605fbe0cc6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/efd6ce5bb8131fe981e2f879dbd47605fbe0cc6f", + "reference": "efd6ce5bb8131fe981e2f879dbd47605fbe0cc6f", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -1030,7 +911,8 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/3.0.0" }, "funding": [ { @@ -1038,32 +920,32 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-02-02T05:48:04+00:00" }, { "name": "sebastian/code-unit", - "version": "1.0.8", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + "reference": "6634549cb8d702282a04a774e36a7477d2bd9015" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/6634549cb8d702282a04a774e36a7477d2bd9015", + "reference": "6634549cb8d702282a04a774e36a7477d2bd9015", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -1086,7 +968,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit", "support": { "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + "security": "https://github.com/sebastianbergmann/code-unit/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit/tree/3.0.0" }, "funding": [ { @@ -1094,32 +977,32 @@ "type": "github" } ], - "time": "2020-10-26T13:08:54+00:00" + "time": "2024-02-02T05:50:41+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + "reference": "df80c875d3e459b45c6039e4d9b71d4fbccae25d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/df80c875d3e459b45c6039e4d9b71d4fbccae25d", + "reference": "df80c875d3e459b45c6039e4d9b71d4fbccae25d", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -1141,7 +1024,8 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + "security": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/security/policy", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/4.0.0" }, "funding": [ { @@ -1149,34 +1033,36 @@ "type": "github" } ], - "time": "2020-09-28T05:30:19+00:00" + "time": "2024-02-02T05:52:17+00:00" }, { "name": "sebastian/comparator", - "version": "4.0.8", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + "reference": "bd0f2fa5b9257c69903537b266ccb80fcf940db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", - "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/bd0f2fa5b9257c69903537b266ccb80fcf940db8", + "reference": "bd0f2fa5b9257c69903537b266ccb80fcf940db8", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" + "ext-dom": "*", + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/diff": "^6.0", + "sebastian/exporter": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1215,7 +1101,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + "security": "https://github.com/sebastianbergmann/comparator/security/policy", + "source": "https://github.com/sebastianbergmann/comparator/tree/6.0.0" }, "funding": [ { @@ -1223,33 +1110,33 @@ "type": "github" } ], - "time": "2022-09-14T12:41:17+00:00" + "time": "2024-02-02T05:53:45+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "88a434ad86150e11a606ac4866b09130712671f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/88a434ad86150e11a606ac4866b09130712671f0", + "reference": "88a434ad86150e11a606ac4866b09130712671f0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.7", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -1272,7 +1159,8 @@ "homepage": "https://github.com/sebastianbergmann/complexity", "support": { "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + "security": "https://github.com/sebastianbergmann/complexity/security/policy", + "source": "https://github.com/sebastianbergmann/complexity/tree/4.0.0" }, "funding": [ { @@ -1280,33 +1168,33 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2024-02-02T05:55:19+00:00" }, { "name": "sebastian/diff", - "version": "4.0.5", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131" + "reference": "3e3f502419518897a923aa1c64d51f9def2e0aff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131", - "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3e3f502419518897a923aa1c64d51f9def2e0aff", + "reference": "3e3f502419518897a923aa1c64d51f9def2e0aff", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3", + "phpunit/phpunit": "^11.0", "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1338,7 +1226,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/diff/security/policy", + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.0" }, "funding": [ { @@ -1346,27 +1235,27 @@ "type": "github" } ], - "time": "2023-05-07T05:35:17+00:00" + "time": "2024-02-02T05:56:35+00:00" }, { "name": "sebastian/environment", - "version": "5.1.5", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + "reference": "100d8b855d7180f79f9a9a5c483f2d960581c3ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/100d8b855d7180f79f9a9a5c483f2d960581c3ea", + "reference": "100d8b855d7180f79f9a9a5c483f2d960581c3ea", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "suggest": { "ext-posix": "*" @@ -1374,7 +1263,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.1-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -1393,7 +1282,7 @@ } ], "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", + "homepage": "https://github.com/sebastianbergmann/environment", "keywords": [ "Xdebug", "environment", @@ -1401,7 +1290,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" + "security": "https://github.com/sebastianbergmann/environment/security/policy", + "source": "https://github.com/sebastianbergmann/environment/tree/7.0.0" }, "funding": [ { @@ -1409,34 +1299,34 @@ "type": "github" } ], - "time": "2023-02-03T06:03:51+00:00" + "time": "2024-02-02T05:57:54+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.5", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + "reference": "d0c0a93fc746b0c066037f1e7d09104129e868ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", - "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d0c0a93fc746b0c066037f1e7d09104129e868ff", + "reference": "d0c0a93fc746b0c066037f1e7d09104129e868ff", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" + "ext-mbstring": "*", + "php": ">=8.2", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1478,7 +1368,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + "security": "https://github.com/sebastianbergmann/exporter/security/policy", + "source": "https://github.com/sebastianbergmann/exporter/tree/6.0.0" }, "funding": [ { @@ -1486,38 +1377,35 @@ "type": "github" } ], - "time": "2022-09-14T06:03:37+00:00" + "time": "2024-02-02T05:58:52+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.6", + "version": "7.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bde739e7565280bda77be70044ac1047bc007e34" + "reference": "590e7cbc6565fa2e26c3df4e629a34bb0bc00c17" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34", - "reference": "bde739e7565280bda77be70044ac1047bc007e34", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/590e7cbc6565fa2e26c3df4e629a34bb0bc00c17", + "reference": "590e7cbc6565fa2e26c3df4e629a34bb0bc00c17", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-main": "7.0-dev" } }, "autoload": { @@ -1536,13 +1424,14 @@ } ], "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", + "homepage": "https://www.github.com/sebastianbergmann/global-state", "keywords": [ "global state" ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.6" + "security": "https://github.com/sebastianbergmann/global-state/security/policy", + "source": "https://github.com/sebastianbergmann/global-state/tree/7.0.0" }, "funding": [ { @@ -1550,33 +1439,33 @@ "type": "github" } ], - "time": "2023-08-02T09:26:13+00:00" + "time": "2024-02-02T05:59:33+00:00" }, { "name": "sebastian/lines-of-code", - "version": "1.0.3", + "version": "3.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "376c5b3f6b43c78fdc049740bca76a7c846706c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/376c5b3f6b43c78fdc049740bca76a7c846706c0", + "reference": "376c5b3f6b43c78fdc049740bca76a7c846706c0", "shasum": "" }, "require": { - "nikic/php-parser": "^4.6", - "php": ">=7.3" + "nikic/php-parser": "^5.0", + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -1599,7 +1488,8 @@ "homepage": "https://github.com/sebastianbergmann/lines-of-code", "support": { "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + "security": "https://github.com/sebastianbergmann/lines-of-code/security/policy", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/3.0.0" }, "funding": [ { @@ -1607,34 +1497,34 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2024-02-02T06:00:36+00:00" }, { "name": "sebastian/object-enumerator", - "version": "4.0.4", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + "reference": "f75f6c460da0bbd9668f43a3dde0ec0ba7faa678" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/f75f6c460da0bbd9668f43a3dde0ec0ba7faa678", + "reference": "f75f6c460da0bbd9668f43a3dde0ec0ba7faa678", "shasum": "" }, "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" + "php": ">=8.2", + "sebastian/object-reflector": "^4.0", + "sebastian/recursion-context": "^6.0" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1656,7 +1546,8 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + "security": "https://github.com/sebastianbergmann/object-enumerator/security/policy", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/6.0.0" }, "funding": [ { @@ -1664,32 +1555,32 @@ "type": "github" } ], - "time": "2020-10-26T13:12:34+00:00" + "time": "2024-02-02T06:01:29+00:00" }, { "name": "sebastian/object-reflector", - "version": "2.0.4", + "version": "4.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + "reference": "bb2a6255d30853425fd38f032eb64ced9f7f132d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/bb2a6255d30853425fd38f032eb64ced9f7f132d", + "reference": "bb2a6255d30853425fd38f032eb64ced9f7f132d", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-main": "4.0-dev" } }, "autoload": { @@ -1711,7 +1602,8 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + "security": "https://github.com/sebastianbergmann/object-reflector/security/policy", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/4.0.0" }, "funding": [ { @@ -1719,32 +1611,32 @@ "type": "github" } ], - "time": "2020-10-26T13:14:26+00:00" + "time": "2024-02-02T06:02:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "4.0.5", + "version": "6.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + "reference": "b75224967b5a466925c6d54e68edd0edf8dd4ed4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b75224967b5a466925c6d54e68edd0edf8dd4ed4", + "reference": "b75224967b5a466925c6d54e68edd0edf8dd4ed4", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-main": "6.0-dev" } }, "autoload": { @@ -1774,62 +1666,8 @@ "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:07:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "3.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "security": "https://github.com/sebastianbergmann/recursion-context/security/policy", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/6.0.0" }, "funding": [ { @@ -1837,32 +1675,32 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-02-02T06:08:48+00:00" }, { "name": "sebastian/type", - "version": "3.2.1", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + "reference": "b8502785eb3523ca0dd4afe9ca62235590020f3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8502785eb3523ca0dd4afe9ca62235590020f3f", + "reference": "b8502785eb3523ca0dd4afe9ca62235590020f3f", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "^9.5" + "phpunit/phpunit": "^11.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.2-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -1885,7 +1723,8 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" + "security": "https://github.com/sebastianbergmann/type/security/policy", + "source": "https://github.com/sebastianbergmann/type/tree/5.0.0" }, "funding": [ { @@ -1893,29 +1732,29 @@ "type": "github" } ], - "time": "2023-02-03T06:13:03+00:00" + "time": "2024-02-02T06:09:34+00:00" }, { "name": "sebastian/version", - "version": "3.0.2", + "version": "5.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" + "reference": "13999475d2cb1ab33cb73403ba356a814fdbb001" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/13999475d2cb1ab33cb73403ba356a814fdbb001", + "reference": "13999475d2cb1ab33cb73403ba356a814fdbb001", "shasum": "" }, "require": { - "php": ">=7.3" + "php": ">=8.2" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "5.0-dev" } }, "autoload": { @@ -1938,7 +1777,8 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + "security": "https://github.com/sebastianbergmann/version/security/policy", + "source": "https://github.com/sebastianbergmann/version/tree/5.0.0" }, "funding": [ { @@ -1946,7 +1786,7 @@ "type": "github" } ], - "time": "2020-09-28T06:39:44+00:00" + "time": "2024-02-02T06:10:47+00:00" }, { "name": "theseer/tokenizer", From b41c57fadba368c0819537d78b429573f901510b Mon Sep 17 00:00:00 2001 From: s-martin Date: Wed, 14 Feb 2024 09:23:13 +0100 Subject: [PATCH 16/28] Fix links in docs and message boxes (#2255) * fixed markdown warnings * fix flake warnings * Bump coverallsapp/github-action from 1 to 2 Bumps [coverallsapp/github-action](https://github.com/coverallsapp/github-action) from 1 to 2. - [Release notes](https://github.com/coverallsapp/github-action/releases) - [Upgrade guide](https://github.com/coverallsapp/github-action/blob/main/UPGRADE.md) - [Commits](https://github.com/coverallsapp/github-action/compare/v1...v2) --- updated-dependencies: - dependency-name: coverallsapp/github-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump github/codeql-action from 2 to 3 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump php-mock/php-mock-phpunit from 2.8.0 to 2.9.0 Bumps [php-mock/php-mock-phpunit](https://github.com/php-mock/php-mock-phpunit) from 2.8.0 to 2.9.0. - [Release notes](https://github.com/php-mock/php-mock-phpunit/releases) - [Commits](https://github.com/php-mock/php-mock-phpunit/compare/2.8.0...2.9.0) --- updated-dependencies: - dependency-name: php-mock/php-mock-phpunit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump phpunit/phpunit from 9.6.13 to 9.6.15 Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.13 to 9.6.15. - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.15/ChangeLog-9.6.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.13...9.6.15) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * fix formatting and link to future3 docs * fix wrong composer.lock --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- CODE_OF_CONDUCT.md | 3 ++- CONTRIBUTING.md | 3 ++- README.md | 13 ++++++------- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index dfd857be8..61119ba88 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,6 +1,7 @@ # Contributor Covenant Code of Conduct -> 📝**NOTE:** Dear Phonieboxians, as the Phoniebox community is growing, somebody suggested a pull request with the below document. I was hesitant to include it right away, but at the same time I thought: it might be good to have some kind of document to formulate the foundation this project is built on. To tell you the truth, this document is not it. However, it is a start and I thought: why not open this in the spirit of open source, sharing and pull requests and see if and how you or you or you want to change or add parts of this very *standard and corporate* document. Like most of you, I also have a small kid and my time is scarce, I might find some time though to add a bit. **All the best, Micz**, 2018-08-21 +> [!NOTE] +> Dear Phonieboxians, as the Phoniebox community is growing, somebody suggested a pull request with the below document. I was hesitant to include it right away, but at the same time I thought: it might be good to have some kind of document to formulate the foundation this project is built on. To tell you the truth, this document is not it. However, it is a start and I thought: why not open this in the spirit of open source, sharing and pull requests and see if and how you or you or you want to change or add parts of this very *standard and corporate* document. Like most of you, I also have a small kid and my time is scarce, I might find some time though to add a bit. **All the best, Micz**, 2018-08-21 This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 889233f70..6ac2d37c6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,7 @@ # Contributing -> 📝**NOTE:** This describes contributing for **version 2.x**. For Version 3 please see +> [!NOTE] +> This describes contributing for **version 2.x**. For Version 3 please see ## How to contribute diff --git a/README.md b/README.md index e32387cd6..d2ace6f73 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,6 @@ [![Gitter chat](https://badges.gitter.im/join_chat.svg)](https://matrix.to/#/#phoniebox_community:gitter.im) [![Matrix chat](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#phoniebox_community:gitter.im) - ## Introduction Phoniebox is a contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. It also features GPIO buttons control support. @@ -39,7 +38,7 @@ If you want to be featured on next years calendar, please make sure to add your ### 🔥 Version 3 is coming -The goal for Version 3 was to tidy up the codebase, focus on a single programming language for the core (Python), establish a solid plugin system and build a responsive web client. [Read on here if you want to learn about more reasons](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/develop/documentation/README.md). +The goal for Version 3 was to tidy up the codebase, focus on a single programming language for the core (Python), establish a solid plugin system and build a responsive web client. [Read on here if you want to learn about more reasons](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/README.md). #### 👋 Looking for adopters, testers and contributors @@ -66,11 +65,11 @@ If you seek the adventure, your support will be more then welcome. Before contri Check out the following references. - * ⭐ **[Releases](https://github.com/MiczFlor/RPi-Jukebox-RFID/releases?q=v2&expanded=true)** - * 🚀 **[Install Jukebox Version 2](#quick-install-version-2)** - * 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=bug%2C+needs+triage&projects=&template=bug_template.md&title=%F0%9F%90%9B+%7C+BUG+SUMMARY) - * ☑️ [Features](#features-version-2) - * 📖 [Documentation](#documentation) +* ⭐ **[Releases](https://github.com/MiczFlor/RPi-Jukebox-RFID/releases?q=v2&expanded=true)** +* 🚀 **[Install Jukebox Version 2](#quick-install-version-2)** +* 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=bug%2C+needs+triage&projects=&template=bug_template.md&title=%F0%9F%90%9B+%7C+BUG+SUMMARY) +* ☑️ [Features](#features-version-2) +* 📖 [Documentation](#documentation) #### Features Version 2 From 78d465d909c46bac8cfac16cd9b982a1f74b7b17 Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Wed, 14 Feb 2024 09:46:54 +0100 Subject: [PATCH 17/28] github actions update (#2240) * Bump actions/download-artifact from 3 to 4 Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v3...v4) * Bump geekyeggo/delete-artifact from 2 to 4 * add write permission for artifact deletion * ignore fails for artifact deletion * REVERT: ignore fails for artifact deletion * REVERT: add write permission for artifact deletion * remove cleanup stage for now --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../test_docker_debian_codename_sub.yml | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test_docker_debian_codename_sub.yml b/.github/workflows/test_docker_debian_codename_sub.yml index 6f2bdbfaa..8bc5db9d4 100644 --- a/.github/workflows/test_docker_debian_codename_sub.yml +++ b/.github/workflows/test_docker_debian_codename_sub.yml @@ -128,7 +128,7 @@ jobs: BASE_TEST_IMAGE=${{ steps.vars.outputs.image_tag_name_local_base }} - name: Artifact Upload Docker Image - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.vars.outputs.image_file_name }} path: ${{ steps.vars.outputs.image_file_path }} @@ -158,7 +158,7 @@ jobs: uses: docker/setup-buildx-action@v3.0.0 - name: Artifact Download Docker Image - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ needs.build.outputs.image_file_name }} @@ -176,15 +176,15 @@ jobs: args: | ./${{ matrix.test_script }} - # cleanup after test execution - cleanup: - # run only if tests didn't fail: keep the artifact to make job reruns possible - if: ${{ !failure() }} - needs: [build, test] - runs-on: ${{ inputs.runs_on }} - - steps: - - name: Artifact Delete Docker Image - uses: geekyeggo/delete-artifact@v2 - with: - name: ${{ needs.build.outputs.image_file_name }} + ## cleanup after test execution + # cleanup: + ## run only if tests didn't fail: keep the artifact to make job reruns possible + #if: ${{ !failure() }} + #needs: [build, test] + #runs-on: ${{ inputs.runs_on }} + # + #steps: + # - name: Artifact Delete Docker Image + # uses: geekyeggo/delete-artifact@v4 + # with: + # name: ${{ needs.build.outputs.image_file_name }} From c89b6fcca987eb365bb4d00769dc5c24548974fd Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Mon, 19 Feb 2024 23:25:29 +0100 Subject: [PATCH 18/28] add api version for new version 2.0.0 compatibility (#2265) --- .../smart-home-automation/MQTT-protocol/daemon_mqtt_client.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 6ffe2e1ad..583ad0c9b 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -10,6 +10,7 @@ import inotify.adapters import paho.mqtt.client as mqtt +import paho.mqtt.enums as mqtt_enum # ---------------------------------------------------------- # Prerequisites @@ -590,7 +591,7 @@ def fetchData(): # create client instance -client = mqtt.Client(config.get("mqttClientId")) +client = mqtt.Client(callback_api_version=mqtt_enum.CallbackAPIVersion.VERSION1, client_id=config.get("mqttClientId")) # configure authentication if config.get("mqttUsername") and config.get("mqttPassword"): From 8f47e6172c16c4e51e4cb2ae884f7efc9606daa2 Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Fri, 23 Feb 2024 09:12:12 +0100 Subject: [PATCH 19/28] fix audio interface name in setup (#2276) * read out scontrol for audio iface names. set first as default or PCM * update Readme for amixer (sudo) * improve readability --- components/bluetooth-sink-switch/README.md | 4 ++-- scripts/installscripts/install-jukebox.sh | 19 +++++++++++++------ .../tests/run_installation_tests.sh | 2 +- .../tests/run_installation_tests2.sh | 2 +- .../tests/run_installation_tests3.sh | 2 +- 5 files changed, 18 insertions(+), 11 deletions(-) diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md index 8e5c9cec3..572bde2a1 100644 --- a/components/bluetooth-sink-switch/README.md +++ b/components/bluetooth-sink-switch/README.md @@ -148,7 +148,7 @@ CMDBLUETOOTHTOGGLE="1364237231134" Speakers and Headphones can have very different maximum volume levels. This sometimes leads to very strong volume level changes when switching between speakers and headphones. Restricting the maximum volume with the Phoniebox-integrated max-volume setting does no yield the desired effect, as this is a single setting and does not differentiate between different audio sinks. -The solution is adding a `softvol` component to the /etc/asound.conf. You may already have one set up, if your soundcard does not have a hardware volume control. Then it is easy! The `softvol` copmonent adds a systemwide ALSA-based volume control for a hardware soundcard. You will need to give it a name, that does **not** exist! Check with `$ amixer scontrols` first, which names are already taken. Here, I have choosen *Master*. This will work even if your soundcard has a hardware volume control. +The solution is adding a `softvol` component to the /etc/asound.conf. You may already have one set up, if your soundcard does not have a hardware volume control. Then it is easy! The `softvol` copmonent adds a systemwide ALSA-based volume control for a hardware soundcard. You will need to give it a name, that does **not** exist! Check with `$ sudo amixer scontrols` first, which names are already taken. Here, I have choosen *Master*. This will work even if your soundcard has a hardware volume control. The `softvol` component has a feature called *max_db* to limit the maximum volume, which we are going to utilize here. With that we are limiting the maximum volume of the speakers systemwide and independent of MPD or other Phoniebox settings. @@ -204,7 +204,7 @@ $ speaker-test -D hifiberry and changing the default volume control in another console ~~~bash -$ alsamixer +$ sudo alsamixer ~~~ If you are experimenting with a softvol and want to get rid of it again - that is not an easy task. Most promising approach is to insert the SD-Card into a different Linux machine delete the file `/var/lib/alsa/asound.state`. This must be done from a different computer, as this file gets written during shutdown. More infos about the softvol may be found [here](https://alsa.opensrc.org/Softvol) diff --git a/scripts/installscripts/install-jukebox.sh b/scripts/installscripts/install-jukebox.sh index 54da685e3..648755693 100644 --- a/scripts/installscripts/install-jukebox.sh +++ b/scripts/installscripts/install-jukebox.sh @@ -535,23 +535,30 @@ config_audio_interface() { clear + local amixer_scontrols=$(sudo amixer scontrols) + local audio_interfaces=$(echo "${amixer_scontrols}" | sed "s|.*'\(.*\)'.*|\1|g") + local first_audio_interface=$(echo "${audio_interfaces}" | head -1) + local default_audio_interface="${first_audio_interface:-PCM}" + echo "##################################################### # # CONFIGURE AUDIO INTERFACE (iFace) # -# The default RPi audio interface is 'Headphone'. -# But this does not work for every setup. Here a list of -# available iFace names: +# The default RPi audio interface is '${default_audio_interface}'. +# But this does not work for every setup. +# Here a list of available iFace names: + +${audio_interfaces} " - amixer scontrols + echo " " - read -rp "Use Headphone as iFace? [Y/n] " response + read -rp "Use '${default_audio_interface}' as iFace? [Y/n] " response case "$response" in [nN][oO]|[nN]) read -rp "Type the iFace name you want to use:" AUDIOiFace ;; *) - AUDIOiFace="Headphone" + AUDIOiFace="${default_audio_interface}" ;; esac # append variables to config file diff --git a/scripts/installscripts/tests/run_installation_tests.sh b/scripts/installscripts/tests/run_installation_tests.sh index 2f75d063a..83462a63f 100644 --- a/scripts/installscripts/tests/run_installation_tests.sh +++ b/scripts/installscripts/tests/run_installation_tests.sh @@ -18,7 +18,7 @@ echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selecti # n dont configure wifi # y configure autohotspot # y use autohotspot default config -# y Headphone as iface +# y use default audio iface # n no spotify # y configure mpd # y audio default location diff --git a/scripts/installscripts/tests/run_installation_tests2.sh b/scripts/installscripts/tests/run_installation_tests2.sh index da2521ebc..e6d2a3189 100644 --- a/scripts/installscripts/tests/run_installation_tests2.sh +++ b/scripts/installscripts/tests/run_installation_tests2.sh @@ -17,7 +17,7 @@ echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selecti # y confirm interactive # n dont configure wifi # n dont configure autohotspot -# y PCM as iface +# y use default audio iface # n no spotify # y configure mpd # y audio default location diff --git a/scripts/installscripts/tests/run_installation_tests3.sh b/scripts/installscripts/tests/run_installation_tests3.sh index dc7e889d6..b61690662 100644 --- a/scripts/installscripts/tests/run_installation_tests3.sh +++ b/scripts/installscripts/tests/run_installation_tests3.sh @@ -17,7 +17,7 @@ echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selecti # y confirm interactive # n dont configure wifi # n dont configure autohotspot -# y Headphone as iface +# y use default audio iface # y spotify with myuser, mypassword, myclient_id, myclient_secret # y configure mpd # y audio default location From 6682c5c41debbc1e851bfa4600a3bac3cca8f58b Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Fri, 1 Mar 2024 20:02:28 +0100 Subject: [PATCH 20/28] add arguments for buttons functions (#2266) * added trigger play function to gpio. added function args to control actions * update function calls with possible arguments * updated readme * added args for usb button mapping * Update README.md * fix parameter name * update parameter names * update examples * fix args for shutdownButton handler * update doc * Apply suggestions from code review Co-authored-by: s-martin * commented test main functions * change default to yes * refactor to markdown links * updated pytest and coverage paths. ignore test dirs * removed source and omit scripts folder * upload coverage html * add shutdown_button coverage * add two_button_control coverage * imports harmonized * add two_button_control coverage * Revert "upload coverage html" This reverts commit 0729e1b97ef3a744eca575f2d5bcdd137651f3a6. * fix flake8 * add simple_button coverage * fix flake8 warnings * add gpio_control coverage * add test for additional type names * update example configs * update flake8 config * add Todo * add led coverage * fix var name * fix test ini location * fix test error on destruction * fix import paths and class name * remove unused code --------- Co-authored-by: s-martin --- .coveragerc | 4 + .flake8 | 7 +- .github/workflows/pythonpackage.yml | 7 +- .../controls/buttons_usb_encoder/README.md | 22 +- .../buttons_usb_encoder.py | 3 +- .../map_buttons_usb_encoder.py | 12 +- .../gpio_control/GPIODevices/__init__.py | 3 +- components/gpio_control/GPIODevices/led.py | 3 +- .../GPIODevices/rotary_encoder.py | 26 +- .../GPIODevices/shutdown_button.py | 18 +- .../gpio_control/GPIODevices/simple_button.py | 45 +-- .../GPIODevices/two_button_control.py | 29 +- components/gpio_control/README.md | 89 ++++-- .../gpio_setting_rotary_vol_prevnext.ini | 1 + .../example_configs/gpio_settings.ini | 36 ++- .../gpio_settings_rotary_and_led.ini | 1 - .../example_configs/gpio_settings_test.ini | 85 ------ components/gpio_control/function_calls.py | 42 ++- components/gpio_control/gpio_control.py | 50 ++-- components/gpio_control/test/conftest.py | 5 +- .../gpio_control/test/gpio_settings_test.ini | 13 +- components/gpio_control/test/test_LED.py | 72 +++++ .../gpio_control/test/test_RotaryEncoder.py | 8 +- .../gpio_control/test/test_SimpleButton.py | 154 +++++++++- .../test/test_TwoButtonControl.py | 162 ++++++++--- .../gpio_control/test/test_gpio_control.py | 272 ++++++++++++++++-- .../gpio_control/test/test_shutdown_button.py | 38 ++- misc/sampleconfigs/gpio_settings.ini.sample | 24 ++ 28 files changed, 889 insertions(+), 342 deletions(-) create mode 100644 .coveragerc delete mode 100644 components/gpio_control/example_configs/gpio_settings_test.ini create mode 100644 components/gpio_control/test/test_LED.py diff --git a/.coveragerc b/.coveragerc new file mode 100644 index 000000000..41332ffe2 --- /dev/null +++ b/.coveragerc @@ -0,0 +1,4 @@ +[run] +omit = + **/test/* + scripts/* diff --git a/.flake8 b/.flake8 index 70f83a4a0..d1b156813 100644 --- a/.flake8 +++ b/.flake8 @@ -4,4 +4,9 @@ ignore = # continuation line over-indented for visual indent E127, # continuation line under-indented for visual indent - E128 \ No newline at end of file + E128 +per-file-ignores = + # Only in __init__files ignore imported but unused + # Not necessary, if __all__ is declared in __init__ file + # https://www.python.org/dev/peps/pep-0008/#id48 + __init__.py:F401 diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 421c20970..7b60f2c04 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -29,6 +29,7 @@ jobs: pip install wheel pip install spidev pip install -r requirements.txt + pip install -r requirements-GPIO.txt - name: Lint with flake8 run: | pip install flake8 @@ -37,15 +38,13 @@ jobs: # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --filename=*.py,*.py.* - name: Test with pytest - working-directory: ./components/gpio_control run: | - pip install -r requirements.txt - pytest --cov --cov-report xml + pytest --cov --cov-config=.coveragerc --cov-report xml - name: Report to Coveralls (parallel) uses: coverallsapp/github-action@v2 with: github-token: ${{ secrets.GITHUB_TOKEN }} - file: ./components/gpio_control/coverage.xml + file: coverage.xml format: cobertura parallel: true diff --git a/components/controls/buttons_usb_encoder/README.md b/components/controls/buttons_usb_encoder/README.md index 586850e8a..6ef670e25 100644 --- a/components/controls/buttons_usb_encoder/README.md +++ b/components/controls/buttons_usb_encoder/README.md @@ -27,27 +27,7 @@ If you make a mistake at the first install you can "remap" the buttons: ### Possible Button Mappings -* 'BluetoothToggle': Turn bluetooth on or off -* 'PlayerNext': Play Next -* 'PlayerPause': Pause -* 'PlayerPauseForce': Force Pause? -* 'PlayerPrev': Previous track -* 'PlayerRandomCard': Activate (play?) random card? -* 'PlayerRandomFolder': Play random folder -* 'PlayerRandomTrack': Play random track -* 'PlayerSeekBack': Seek backwards on playing track (x seconds) -* 'PlayerSeekFarBack': Seek backwards on playing track (x seconds) -* 'PlayerSeekFarFwd': Seek forwards on playing track (x seconds) -* 'PlayerSeekFwd': Seek forwards on playing track (x seconds) -* 'PlayerStop': Stop playing -* 'RecordPlayLatest': Play latest recording -* 'RecordStart': Start recording -* 'RecordStop': Stop recording -* 'Shutdown': Shut down the Phoniebox -* 'ToggleWifi': Turn Wifi on or off -* 'Vol0': Volume mute? -* 'VolD': Volume down -* 'VolU': Volume up +See the [GPIO documentation](../../gpio_control/README.md#functions) for possible mappings of functions and args. ## Schematics diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py index 33d13657c..e8fa807a9 100644 --- a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -25,8 +25,9 @@ button_string = '-'.join(sorted(button_string)) try: function_name = button_map[button_string] + function_args = button_map[button_string + "_args"] try: - getattr(function_calls, function_name)() + getattr(function_calls, function_name)(function_args) except: logger.warning( "Function " + function_name + " not found in function_calls.py (mapped from button: " + button_string + ")") diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py index 6cf0bcb28..394564de6 100644 --- a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -21,13 +21,13 @@ print("During the next step you can map your buttons to one of the following available functions:") print(list(map(lambda function_name: function_name.replace("functionCall", ""), functions))) print("") - if input('Ready to continue? (y/n)') != 'y': + if input('Ready to continue? (Y/n)') == 'n': sys.exit("Aborted mapping buttons to functions") for function_name in functions: function_name_short = function_name.replace("functionCall", "") print("") - print("Press button to map " + function_name_short + " or press ctrl+c to skip this function") + print("Press button to map '" + function_name_short + "' or press ctrl+c to skip this function") try: for event in current_device().read_loop(): if event.type == ecodes.EV_KEY: @@ -36,8 +36,14 @@ button_string = keyevent.keycode if type(button_string) is list: button_string = '-'.join(sorted(button_string)) + + function_args = input('Type argument for function (just enter for none): ').strip() + if not function_args: + function_args = None + button_map[button_string] = function_name - print("Button " + button_string + " is now mapped to " + function_name_short) + button_map[button_string + "_args"] = function_args + print("Button '" + button_string + "' is now mapped to '" + function_name_short + "' with argument '" + str(function_args) + "'") break except KeyboardInterrupt: continue diff --git a/components/gpio_control/GPIODevices/__init__.py b/components/gpio_control/GPIODevices/__init__.py index 5eaad3009..efdd6b5c5 100644 --- a/components/gpio_control/GPIODevices/__init__.py +++ b/components/gpio_control/GPIODevices/__init__.py @@ -2,5 +2,4 @@ from .two_button_control import TwoButtonControl from .shutdown_button import ShutdownButton from .simple_button import SimpleButton -from .two_button_control import TwoButtonControl -from .led import * +from .led import LED, StatusLED diff --git a/components/gpio_control/GPIODevices/led.py b/components/gpio_control/GPIODevices/led.py index 01d2d34ef..b6a51eb4c 100644 --- a/components/gpio_control/GPIODevices/led.py +++ b/components/gpio_control/GPIODevices/led.py @@ -13,9 +13,10 @@ class LED: def __init__(self, pin, initial_value=True, name='LED'): self.pin = pin self.name = name + self.initial_value = initial_value logger.debug('initialize {}(pin={}) to off'.format(self.name, self.pin)) GPIO.setup(self.pin, GPIO.OUT) - GPIO.output(self.pin, initial_value) + GPIO.output(self.pin, self.initial_value) def on(self): logger.debug('Set Output of {}(pin={}) to on'.format(self.name, self.pin)) diff --git a/components/gpio_control/GPIODevices/rotary_encoder.py b/components/gpio_control/GPIODevices/rotary_encoder.py index d3455622f..8254a37b0 100755 --- a/components/gpio_control/GPIODevices/rotary_encoder.py +++ b/components/gpio_control/GPIODevices/rotary_encoder.py @@ -1,11 +1,7 @@ -#!/usr/bin/env python3 -# rotary volume knob - import RPi.GPIO as GPIO from timeit import default_timer as timer import ctypes import logging -from signal import pause logger = logging.getLogger(__name__) @@ -131,14 +127,16 @@ def _Callback(self, pin): logger.debug('Ignoring encoderState: "{}"'.format(self.encoderState.asByte)) -if __name__ == "__main__": - logging.basicConfig(level='INFO') - GPIO.setmode(GPIO.BCM) - pin1 = int(input('please enter first pin')) - pin2 = int(input('please enter second pin')) - func1 = lambda *args: print('Function Incr executed with {}'.format(args)) - func2 = lambda *args: print('Function Decr executed with {}'.format(args)) - rotarty_encoder = RotaryEncoder(pin1, pin2, func1, func2) +# Umcomment for manual tests +# if __name__ == "__main__": +# from signal import pause +# logging.basicConfig(level='INFO') +# GPIO.setmode(GPIO.BCM) +# pin1 = int(input('please enter first pin')) +# pin2 = int(input('please enter second pin')) +# func1 = lambda *args: print('Function Incr executed with {}'.format(args)) +# func2 = lambda *args: print('Function Decr executed with {}'.format(args)) +# rotarty_encoder = RotaryEncoder(pin1, pin2, func1, func2) - print('running') - pause() +# print('running') +# pause() diff --git a/components/gpio_control/GPIODevices/shutdown_button.py b/components/gpio_control/GPIODevices/shutdown_button.py index 3f9eec341..bd28547eb 100644 --- a/components/gpio_control/GPIODevices/shutdown_button.py +++ b/components/gpio_control/GPIODevices/shutdown_button.py @@ -34,6 +34,17 @@ def set_led(self, status): logger.debug('cannot set LED to {}: no LED pin defined'.format(status)) def callbackFunctionHandler(self, *args): + if len(args) > 0 and args[0] == self.pin and not self.callback_with_pin_argument: + logger.debug('Remove pin argument by callbackFunctionHandler - args before: {}'.format(args)) + args = args[1:] + logger.debug('args after: {}'.format(args)) + + if self.antibouncehack: + time.sleep(0.1) + inval = GPIO.input(self.pin) + if inval != GPIO.LOW: + return None + if self.is_pressed: # Should not be necessary, but handler gets called on rising edge too logger.debug('ShutdownButton pressed, ensuring long press for {} seconds, checking each {}s'.format( self.hold_time, self.iteration_time @@ -58,6 +69,7 @@ def callbackFunctionHandler(self, *args): self.set_led(GPIO.LOW) def __repr__(self): - return ''.format( - self.name, self.pin, self.hold_time, self.iteration_time, self.led_pin, print_edge_key(self.edge), self.bouncetime, self.antibouncehack, print_pull_up_down(self.pull_up_down) - ) + return ('').format( + self.name, self.pin, self.hold_time, self.iteration_time, self.led_pin, print_edge_key(self.edge), + self.bouncetime, self.antibouncehack, print_pull_up_down(self.pull_up_down)) diff --git a/components/gpio_control/GPIODevices/simple_button.py b/components/gpio_control/GPIODevices/simple_button.py index 4b7149e7e..a022a812f 100644 --- a/components/gpio_control/GPIODevices/simple_button.py +++ b/components/gpio_control/GPIODevices/simple_button.py @@ -1,5 +1,4 @@ import time -from signal import pause import logging import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) @@ -60,7 +59,8 @@ def checkGpioStaysInState(holdingTime, gpioChannel, gpioHoldingState): while True: time.sleep(0.1) currentState = GPIO.input(gpioChannel) - if holdingTime < (time.perf_counter() - startTime): + endTime = time.perf_counter() - startTime + if holdingTime < endTime: break # Return if state does not match holding state if (gpioHoldingState != currentState): @@ -74,15 +74,17 @@ def checkGpioStaysInState(holdingTime, gpioChannel, gpioHoldingState): class SimpleButton: def __init__(self, pin, action=lambda *args: None, action2=lambda *args: None, name=None, - bouncetime=500, antibouncehack=False, edge='falling', hold_time=.3, hold_mode=None, pull_up_down='pull_up'): + bouncetime=500, antibouncehack=False, edge='falling', + hold_time=.3, hold_mode=None, pull_up_down='pull_up'): + self.pin = pin + self.name = name self.edge = parse_edge_key(edge) self.hold_time = hold_time self.hold_mode = hold_mode + # TODO is pull_up always true a bug? self.pull_up = True self.pull_up_down = parse_pull_up_down(pull_up_down) - self.pin = pin - self.name = name self.bouncetime = bouncetime self.antibouncehack = antibouncehack GPIO.setup(self.pin, GPIO.IN, pull_up_down=self.pull_up_down) @@ -122,13 +124,15 @@ def when_held(self): @when_pressed.setter def when_pressed(self, func): - logger.info('{}: set when_pressed') + logger.info('{}: set when_pressed'.format(self.name)) self._action = func GPIO.remove_event_detect(self.pin) logger.info('add new action') - GPIO.add_event_detect(self.pin, edge=self.edge, callback=self.callbackFunctionHandler, bouncetime=self.bouncetime) + GPIO.add_event_detect(self.pin, edge=self.edge, callback=self.callbackFunctionHandler, + bouncetime=self.bouncetime) + @DeprecationWarning def set_callbackFunction(self, callbackFunction): self.when_pressed = callbackFunction @@ -169,19 +173,24 @@ def __del__(self): @property def is_pressed(self): + # TODO should this be 'if pull_up_down == GPIO.PUD_UP'? pull_up is always true! if self.pull_up: return not GPIO.input(self.pin) return GPIO.input(self.pin) def __repr__(self): - return ''.format( - self.name, self.pin, print_edge_key(self.edge), self.hold_mode, self.hold_time, self.bouncetime, self.antibouncehack, print_pull_up_down(self.pull_up_down) - ) - - -if __name__ == "__main__": - print('please enter pin no to test') - pin = int(input()) - func = lambda *args: print('FunctionCall with {}'.format(args)) - btn = SimpleButton(pin=pin, action=func, hold_mode='Repeat') - pause() + return ('').format( + self.name, self.pin, print_edge_key(self.edge), self.hold_mode, self.hold_time, + self.bouncetime, self.antibouncehack, print_pull_up_down(self.pull_up_down)) + +# Uncomment for manual tests +# if __name__ == "__main__": +# from signal import pause +# print('please enter pin no to test') +# pin = int(input()) +# func = lambda *args: print('FunctionCall with {}'.format(args)) +# btn = SimpleButton(pin=pin, action=func, hold_mode='Repeat') + +# print('running') +# pause() diff --git a/components/gpio_control/GPIODevices/two_button_control.py b/components/gpio_control/GPIODevices/two_button_control.py index e93584cd1..c7a1cb190 100644 --- a/components/gpio_control/GPIODevices/two_button_control.py +++ b/components/gpio_control/GPIODevices/two_button_control.py @@ -111,23 +111,24 @@ def __init__(self, def __repr__(self): two_btns_action = self.functionCallTwoBtns is not None - return ''.format( + return ('').format( self.name, self.bcmPin1, self.bcmPin2, two_btns_action, self.hold_mode, self.hold_time, print_edge_key(self.edge), self.bouncetime, self.antibouncehack, - print_pull_up_down(self.pull_up_down) - ) + print_pull_up_down(self.pull_up_down)) -if __name__ == "__main__": - logging.basicConfig(level='INFO') - pin1 = int(input('please enter first pin')) - pin2 = int(input('please enter second pin')) - func1 = lambda *args: print('Function Btn1 executed with {}'.format(args)) - func2 = lambda *args: print('Function Btn2 executed with {}'.format(args)) - func3 = lambda *args: print('Function BothBtns executed with {}'.format(args)) - two_btn_control = TwoButtonControl(pin1, pin2, func1, func2, func3) +# Uncomment for manual tests +# if __name__ == "__main__": +# from signal import pause +# logging.basicConfig(level='INFO') +# pin1 = int(input('please enter first pin')) +# pin2 = int(input('please enter second pin')) +# func1 = lambda *args: print('Function Btn1 executed with {}'.format(args)) +# func2 = lambda *args: print('Function Btn2 executed with {}'.format(args)) +# func3 = lambda *args: print('Function BothBtns executed with {}'.format(args)) +# two_btn_control = TwoButtonControl(pin1, pin2, func1, func2, func3) - print('running') - while True: - pass +# print('running') +# pause() diff --git a/components/gpio_control/README.md b/components/gpio_control/README.md index 229d120a8..8661e8d27 100644 --- a/components/gpio_control/README.md +++ b/components/gpio_control/README.md @@ -19,20 +19,20 @@ Up to now the following input devices are implemented: * **Button**: A simple button with optional long-press actions like hold and repeat functionality or delayed action. - Its main parameters are: `Pin` (use GPIO number here) and `functionCall`. For additional options, see [extended documentation below](#doc_button). + Its main parameters are: `Pin` (use GPIO number here) and `functionCall`. For additional options, see [extended documentation below](#button). * **ShutdownButton**: - A specialized implementation for a shutdown button with integrated (but optional) LED support. It initializes a shutdown if the button is pressed more than `time_pressed` seconds and a (optional) LED on GPIO `led_pin` is flashing until that time is reached. For additional information, see [extended documentation below](#doc_sdbutton). + A specialized implementation for a shutdown button with integrated (but optional) LED support. It initializes a shutdown if the button is pressed more than `time_pressed` seconds and a (optional) LED on GPIO `led_pin` is flashing until that time is reached. For additional information, see [extended documentation below](#shutdownbutton). * **RotaryEncoder**: Control of a rotary encoder, for example KY040, see also in [Wiki](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Audio-RotaryKnobVolume). - It can be configured using `pinUp` and `PiNDown` (use GPIO numbers here), `functionCallUp`, `functionCallDown`, and `timeBase` see [extended documentation below](#doc_rotary). + It can be configured using `pinUp` and `PiNDown` (use GPIO numbers here), `functionCallUp`, `functionCallDown`, and `timeBase` see [extended documentation below](#rotaryencoder). * **TwoButtonControl**: - This Device uses two Buttons and implements a third action if both buttons are pressed together. See [extended documentation below](#doc_twobutton). + This Device uses two Buttons and implements a third action if both buttons are pressed together. See [extended documentation below](#twobuttoncontrol). * **StatusLED**: - A LED which will light up once the Phoniebox has fully booted up and is ready to be used. For additional information, see [extended documentation below](#doc_sled). + A LED which will light up once the Phoniebox has fully booted up and is ready to be used. For additional information, see [extended documentation below](#statusled). Each section needs to be activated by setting `enabled: True`. @@ -42,7 +42,7 @@ Many example files are located in `~/RPi-Jukebox-RFID/components/gpio_control/ex This section provides some extended documentation and guideline. Especially some exemplary configurations are introduced showing how these controls can be set up in the configuration file `~/RPi-Jukebox-RFID/settings/gpio_settings.ini`. -### Button
+### Button At the most basic level, a button can be created using an `ini` entry like this: @@ -56,15 +56,16 @@ functionCall: functionCallPlayerPause * **enabled**: This needs to be `True` for the button to work. * **Pin**: GPIO number -* **functionCall**: The function that you want to be called on a button press. See [function documentation below](#doc_funcs). +* **functionCall**: Primary function that you want to be called on a button press. See [function documentation below](#functions). However, a button has more parameters than these. In the following comprehensive list you can also find the default values which are used automatically if you leave out these settings: +* **functionCallArgs**: Arguments for primary function, defaults to `None`. Arguments are ignored, if `functionCall` does not take any. * **hold_mode**: Specifies what shall happen if the button is held pressed for longer than `hold_time`: * `None` (Default): Nothing special will happen. * `Repeat`: The configured `functionCall` is repeated after each `hold_time` interval. * `Postpone`: The function will not be called before `hold_time`, i.e. the button needs to be pressed this long to activate the function - * `SecondFunc`: Holding the button for at least `hold_time` will additionally execute the function `functionCall2`. + * `SecondFunc`: Holding the button for at least `hold_time` will additionally execute the function `functionCall2` with `functionCall2Args`. * `SecondFuncRepeat`: Like SecondFunc, but `functionCall2` is repeated after each `hold_time` interval. In every `hold_mode` except `Postpone`, the main action `functionCall` gets executed instantly. @@ -72,7 +73,8 @@ However, a button has more parameters than these. In the following comprehensive Holding the button even longer than `hold_time` will cause no further action unless you are in the `Repeat` or `SecondFuncRepeat` mode. * **hold_time**: Reference time for this buttons `hold_mode` feature in seconds. Default is `0.3`. This setting is ignored if `hold_mode` is unset or `None` -* **functionCall2**: Secondary function; default is `None`. This setting is ignored unless `hold_mode` is set to `SecondFunc` or `SecondFuncRepeat`. +* **functionCall2**: Secondary function, default is `None`. This setting is ignored unless `hold_mode` is set to `SecondFunc` or `SecondFuncRepeat`. +* **functionCall2Args**: Arguments for secondary function, default is `None`. Arguments are ignored, if `functionCall2` does not take any. * **pull_up_down**: Configures the internal Pull up/down resistors. Valid settings: * `pull_up` (Default). Internal pull-up resistors are activated. Use this if you attached a button to `GND` to the GPIO pin without any external pull-up resistor. * `pull_down`. Use this if you need the internal pull-down resistor activated. @@ -82,11 +84,11 @@ However, a button has more parameters than these. In the following comprehensive * `rising`. Trigegrs only if the GPIO voltage goes up. * `both`. Triggers in both cases. * **bouncetime**: This is a setting of the GPIO library to limit bouncing effects during button usage. Default is `500` ms. -* **antibouncehack**: Despite the integrated bounce reduction of the GPIO library some users may notice false triggers of their buttons (e.g. unrequested / double actions when releasing the button. If you encounter such problems, try setting this setting to `True` to activate an additional countermeasure. +* **antibouncehack**: Despite the integrated bounce reduction of the GPIO library some users may notice false triggers of their buttons (e.g. unrequested / double actions when releasing the button). If you encounter such problems, try setting this setting to `True` to activate an additional countermeasure. Note: If you prefer, you may also use `Type: SimpleButton` instead of `Type: Button` - this makes no difference. -### ShutdownButton +### ShutdownButton An extended ShutdownButton can be created using an `ini` entry like these: @@ -111,9 +113,9 @@ Again, there are more parameters than these. In the following comprehensive list * **hold_time**: This parameter controls how many seconds (default: `3.0`) the button has to be hold until shutdown will be initiated. * **iteration_time**: This parameter determines the flashing speed of the LED indicator. Default value is `0.2` seconds. -* **functionCall**: While the default action is `functionCallShutdown`, you might use this button type even with other functions than system shutdown (again, see [function documentation below](#doc_funcs) for a list of available functions). +* **functionCall**: While the default action is `functionCallShutdown`, you might use this button type even with other functions than system shutdown (again, see [function documentation below](#functions) for a list of available functions). -Furthermore, the following settings can be used as described for the [regular buttons](#doc_button): **pull_up_down**, **edge**, **bouncetime**, **antibouncehack** +Furthermore, the following settings can be used as described for the [regular buttons](#doc_button): **pull_up_down**, **edge**, **bouncetime**, **antibouncehack**, **functionCallArgs** Note that using a ShutdownButton without a LED can also be implemented with a normal button like this: @@ -127,7 +129,7 @@ hold_time: 3.0 functionCall: functionCallShutdown ``` -### TwoButtonControl +### TwoButtonControl A TwoButtonControl can be created using an `ini` entry like this: @@ -161,9 +163,11 @@ functionCallTwoButtons: functionCallVol0 In this example, the volume will be in-/decreased step-wise using intervals of 0.3 seconds while the respective button is held. If both buttons are pushed simultaneously, the player is muted (volume 0). In this example, Pin1 is used for increasing the volume, while Pin2 decreases it. -Furthermore, the following settings can be used as described for the [regular buttons](#doc_button): **pull_up_down**, **edge**, **bouncetime**, **antibouncehack** +Function arguments can also be passed to this control with the settings **functionCall1Args**, **functionCall2Args**, **functionCallTwoButtonsArgs** -### RotaryEncoder +Furthermore, the following settings can be used as described for the [regular buttons](#button): **pull_up_down**, **edge**, **bouncetime**, **antibouncehack** + +### RotaryEncoder A RotaryEncoder can be created using an `ini` entry like this: @@ -181,7 +185,7 @@ functionCall2: functionCallVolD Pin1 and FunctionCall1 correspond to rotary direction "up", while Pin2 and FunctionCall2 correspond to "down". Note that the old configuration entries PinUp/PinDown and functionCallUp/functionCallDown are deprecated and might stop working in future. -### StatusLED +### StatusLED A StatusLED can be created using an `ini` entry like this: @@ -239,19 +243,47 @@ pull_up_down: pull_up hold_time: 5.0 hold_mode: SecondFuncRepeat functionCall: functionCallPlayerSeekFwd +functionCallArgs: 5 functionCall2: functionCallPlayerSeekFarFwd +functionCall2Args: 30 ``` -In this example, a short press initiates a short jump forward by 10 seconds (functionCallPlayerSeekFwd) while holding the button will cause further, longer jumps. In this case it will cause a jump of 1 minute forward (functionCallPlayerSeekFarFwd) every 5 seconds. If you wish, you can adjust these values in `components/gpio_control/function_calls.py`. -For jumping backwards, this can be done equivalently (see [function list below](#doc_funcs)). +In this example, a short press initiates a short jump forward by customized 5 seconds (functionCallPlayerSeekFwd) while holding the button will cause further, longer jumps. In this case it will cause a jump of customized 30 seconds forward (functionCallPlayerSeekFarFwd) every 5 seconds. +For jumping backwards, this can be done equivalently (see [function list below](#functions)). + +#### Use Buttons to start playlists +To use GPIO-Pins to play music, you can emulate a card scan with the function `functionCallTriggerPlayCardId`. Supply the `cardid` as `functionCallArgs`. +This behaves like a card scan, so you must link a folder to the id (on first press it will show up in the Web App as new card). + +```bash +[TriggerPlayCard1] +enabled: False +Type: Button +Pin: 4 +pull_up_down: pull_up +functionCall: functionCallTriggerPlayCardId +functionCallArgs: 1 +``` + +You can also directly link a folder to the button with `functionCallTriggerPlayFolder`. Supply the `folder` as `functionCallArgs`. + +```bash +[TriggerPlayFolderSomeRelativeFolderName] +enabled: False +Type: Button +Pin: 4 +pull_up_down: pull_up +functionCall: functionCallTriggerPlayFolder +functionCallArgs: someRelativeFolderName +``` -### Functions +### Functions The available functions are defined/implemented in `components/gpio_control/function_calls.py`: * **functionCallShutdown**: System shutdown -* **functionCallVolU**: Volume up -* **functionCallVolD**: Volume down +* **functionCallVolU**: Volume up (custom steps as optional argument) +* **functionCallVolD**: Volume down (custom steps as optional argument) * **functionCallVol0**: Mute * **functionCallPlayerNext**: Next track * **functionCallPlayerPrev**: Previous track @@ -262,15 +294,18 @@ The available functions are defined/implemented in `components/gpio_control/func * **functionCallRecordPlayLatest**: Play latest recording * **functionCallToggleWifi**: Toggle WIFI * **functionCallPlayerStop**: Stop Player -* **functionCallPlayerSeekFwd**: Seek 10 seconds forward -* **functionCallPlayerSeekBack**: Seek 10 seconds backward -* **functionCallPlayerSeekFarFwd**: Seek 1 minute forward -* **functionCallPlayerSeekFarBack**: Seek 1 minute backward +* **functionCallPlayerSeekFwd**: Seek 10 seconds forward (custom seconds as optional argument) +* **functionCallPlayerSeekBack**: Seek 10 seconds backward (custom seconds as optional argument) +* **functionCallPlayerSeekFarFwd**: Seek 1 minute forward (custom seconds as optional argument) +* **functionCallPlayerSeekFarBack**: Seek 1 minute backward (custom seconds as optional argument) * **functionCallPlayerRandomTrack**: Jumps to random track (within current playlist) * **functionCallPlayerRandomCard**: Activate a random card * **functionCallPlayerRandomFolder**: Play a random folder +* **functionCallBluetoothToggle**: Switches to the audio device (e.g. speaker, bluetooth headphones), default 'toggle' (mode as optional argument) +* **functionCallTriggerPlayCardId**: Trigger play for cardid given as argument +* **functionCallTriggerPlayFolder**: Trigger play for folder given as argument -### Troubleshooting +### Troubleshooting If you encounter bouncing effects with your buttons like unrequested/double actions after releasing a button, you can try to set `antibouncehack` to True: diff --git a/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini b/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini index 31d2df340..3e829d55e 100755 --- a/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini +++ b/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini @@ -1,5 +1,6 @@ [DEFAULT] enabled: True + [VolumeControl] enabled: True Type: RotaryEncoder diff --git a/components/gpio_control/example_configs/gpio_settings.ini b/components/gpio_control/example_configs/gpio_settings.ini index b05004c7a..4f84ba01b 100755 --- a/components/gpio_control/example_configs/gpio_settings.ini +++ b/components/gpio_control/example_configs/gpio_settings.ini @@ -3,7 +3,7 @@ enabled: True antibouncehack: False [VolumeControl] -enabled: True +enabled: False Type: TwoButtonControl ;or RotaryEncoder Pin1: 5 Pin2: 6 @@ -14,9 +14,12 @@ timeBase: 0.1 ;only for RotaryEncoder functionCall1: functionCallVolU functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl +;functionCall1Args: 1 +;functionCall2Args: 1 +;functionCallTwoButtonsArgs: x [PrevNextControl] -enabled: True +enabled: False Type: TwoButtonControl Pin1: 22 Pin2: 23 @@ -28,7 +31,7 @@ hold_time: 0.3 hold_mode: None [PlayPause] -enabled: True +enabled: False Type: Button Pin: 27 pull_up_down: pull_up @@ -68,6 +71,7 @@ pull_up_down: pull_up hold_time: 0.3 hold_mode: Repeat functionCall: functionCallVolU +;functionCallArgs: 1 [VolumeDown] enabled: False @@ -77,6 +81,7 @@ pull_up_down: pull_up hold_time: 0.3 hold_mode: Repeat functionCall: functionCallVolD +;functionCallArgs: 1 [NextSong] enabled: False @@ -93,18 +98,20 @@ pull_up_down: pull_up functionCall: functionCallPlayerPrev [FastForward] -enabled: false +enabled: False Type: Button Pin: 7 pull_up_down: pull_up functionCall: functionCallPlayerSeekFwd +;functionCallArgs: 10 [Rewind] -enabled: false +enabled: False Type: Button Pin: 8 pull_up_down: pull_up functionCall: functionCallPlayerSeekBack +;functionCallArgs: 10 [Halt] enabled: False @@ -114,8 +121,25 @@ pull_up_down: pull_up functionCall: functionCallPlayerPauseForce [RFIDDevice] -enabled: True +enabled: False Type: Button Pin: 21 pull_up_down: pull_up functionCall: functionCallPlayerStop + +[TriggerPlayCard1] +enabled: False +Type: Button +Pin: 4 +pull_up_down: pull_up +functionCall: functionCallTriggerPlayCardId +functionCallArgs: 1 + +[TriggerPlayFolderSomeRelativeFolderName] +enabled: False +Type: Button +Pin: 4 +pull_up_down: pull_up +functionCall: functionCallTriggerPlayFolder +functionCallArgs: someRelativeFolderName + diff --git a/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini b/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini index 303d0888d..f636adbcf 100644 --- a/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini +++ b/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini @@ -1,6 +1,5 @@ [DEFAULT] enabled: True -used_pinds = [13] [VolumeControl] enabled: True diff --git a/components/gpio_control/example_configs/gpio_settings_test.ini b/components/gpio_control/example_configs/gpio_settings_test.ini deleted file mode 100644 index 79e365f61..000000000 --- a/components/gpio_control/example_configs/gpio_settings_test.ini +++ /dev/null @@ -1,85 +0,0 @@ -[DEFAULT] -enabled: True - -; The following Types exist: -; RotaryEncoder -; TwoButtonControl -; SimpleButton = Button -[VolumeControl] -enabled: True -Type: RotaryEncoder -PinUp: 16 -PinDown: 19 -pull_up: True -hold_time: 0.3 -hold_repeat: True -timeBase: 0.1 -; timeBase only for rotary encoder -functionCallDown: functionCallVolD -functionCallUp: functionCallVolU -functionCallTwoButtons: functionCallVol0 -; functionCallTwoButtons only for TwoButtonControl -; functionCallButton: functionCallPlayerPause ; only for RotaryEncoderClickable - -[PrevNextControl] -Type: TwoButtonControl -Pin1: 4 -Pin2: 3 -functionCall1: functionCallPlayerPrev -functionCall2: functionCallPlayerNext -functionCallTwoButtons: None -pull_up_down: pull_up -hold_time: 0.3 -hold_mode: None - - -[Shutdown] -enabled: True -Type: ShutdownButton -Pin: 3 -hold_time: 2 -iteration_time: 0.2 -; led_pin: , if LED used -functionCall: functionCallShutdown - -[Volume0] -enabled: False -Type: Button -Pin: 13 -pull_up_down: pull_up -functionCall: functionCallVol0 - -[VolumeUp] -enabled: False -Type: Button -Pin: 16 -pull_up_down: pull_up -hold_time: 0.3 -hold_mode: Repeat -functionCall: functionCallVolU - -[VolumeDown] -enabled: False -Type: Button -Pin: 19 -pull_up_down: pull_up -hold_time: 0.3 -hold_mode: Repeat - -[NextSong] -enabled: False -Type: Button -Pin: 26 -pull_up_down: pull_up - -[PrevSong] -enabled: False -Type: Button -Pin: 20 -pull_up_down: pull_up - -[Halt] -enabled: False -Type: Button -Pin: 21 -pull_up_down: pull_up diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index 5f6deb1ff..e293282c0 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -12,6 +12,8 @@ def __init__(self): playout_control_relative_path = "../../scripts/playout_controls.sh" function_calls_absolute_path = str(pathlib.Path(__file__).parent.absolute()) self.playout_control = os.path.abspath(os.path.join(function_calls_absolute_path, playout_control_relative_path)) + rfid_trigger_relative_path = "../../scripts/rfid_trigger_play.sh" + self.rfid_trigger = os.path.abspath(os.path.join(function_calls_absolute_path, rfid_trigger_relative_path)) def functionCallShutdown(self, *args): function_call("{command} -c=shutdown".format(command=self.playout_control), shell=True) @@ -20,7 +22,7 @@ def functionCallVolU(self, steps=None): if steps is None: function_call("{command} -c=volumeup".format(command=self.playout_control), shell=True) else: - function_call("{command} -c=volumeup -v={steps}".format(steps=steps, + function_call("{command} -c=volumeup -v={value}".format(value=steps, command=self.playout_control), shell=True) @@ -28,7 +30,7 @@ def functionCallVolD(self, steps=None): if steps is None: function_call("{command} -c=volumedown".format(command=self.playout_control), shell=True) else: - function_call("{command} -c=volumedown -v={steps}".format(steps=steps, + function_call("{command} -c=volumedown -v={value}".format(value=steps, command=self.playout_control), shell=True) @@ -63,17 +65,25 @@ def functionCallPlayerStop(self, *args): function_call("{command} -c=playerstop".format(command=self.playout_control), shell=True) - def functionCallPlayerSeekFwd(self, *args): - function_call("{command} -c=playerseek -v=+10".format(command=self.playout_control), shell=True) + def functionCallPlayerSeekFwd(self, seconds=None): + if seconds is None: + seconds = 10 + function_call("{command} -c=playerseek -v=+{value}".format(command=self.playout_control, value=seconds), shell=True) - def functionCallPlayerSeekBack(self, *args): - function_call("{command} -c=playerseek -v=-10".format(command=self.playout_control), shell=True) + def functionCallPlayerSeekBack(self, seconds=None): + if seconds is None: + seconds = 10 + function_call("{command} -c=playerseek -v=-{value}".format(command=self.playout_control, value=seconds), shell=True) - def functionCallPlayerSeekFarFwd(self, *args): - function_call("{command} -c=playerseek -v=+60".format(command=self.playout_control), shell=True) + def functionCallPlayerSeekFarFwd(self, seconds=None): + if seconds is None: + seconds = 60 + function_call("{command} -c=playerseek -v=+{value}".format(command=self.playout_control, value=seconds), shell=True) - def functionCallPlayerSeekFarBack(self, *args): - function_call("{command} -c=playerseek -v=-60".format(command=self.playout_control), shell=True) + def functionCallPlayerSeekFarBack(self, seconds=None): + if seconds is None: + seconds = 60 + function_call("{command} -c=playerseek -v=-{value}".format(command=self.playout_control, value=seconds), shell=True) def functionCallPlayerRandomTrack(self, *args): function_call("{command} -c=randomtrack".format(command=self.playout_control), shell=True) @@ -84,8 +94,16 @@ def functionCallPlayerRandomCard(self, *args): def functionCallPlayerRandomFolder(self, *args): function_call("{command} -c=randomfolder".format(command=self.playout_control), shell=True) - def functionCallBluetoothToggle(self, *args): - function_call("{command} -c=bluetoothtoggle -v=toggle".format(command=self.playout_control), shell=True) + def functionCallBluetoothToggle(self, mode=None): + if mode is None: + mode = 'toggle' + function_call("{command} -c=bluetoothtoggle -v={value}".format(command=self.playout_control, value=mode), shell=True) + + def functionCallTriggerPlayCardId(self, cardid): + function_call("{command} --cardid={value}".format(command=self.rfid_trigger, value = cardid), shell=True) + + def functionCallTriggerPlayFolder(self, folder): + function_call("{command} --dir={value}".format(command=self.rfid_trigger, value = folder), shell=True) def getFunctionCall(self, functionName): self.logger.error('Get FunctionCall: {} {}'.format(functionName, functionName in locals())) diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index 113850431..45977b89b 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -3,14 +3,19 @@ import os import logging -from GPIODevices import * -import function_calls from signal import pause from RPi import GPIO +from GPIODevices import (RotaryEncoder, + TwoButtonControl, + ShutdownButton, + SimpleButton, + LED, + StatusLED) +from function_calls import phoniebox_function_calls from config_compatibility import ConfigCompatibilityChecks -class gpio_control(): +class GPIOControl(): def __init__(self, function_calls): self.devices = [] @@ -23,10 +28,11 @@ def __init__(self, function_calls): self.logger.setLevel('INFO') self.logger.info('GPIO Started') - def getFunctionCall(self, function_name): + def getFunctionCall(self, function_name, function_args): try: - if function_name != 'None': - return getattr(self.function_calls, function_name) + if function_name is not None and function_name != 'None': + functionCall = getattr(self.function_calls, function_name) + return (lambda *args: functionCall(*args, function_args)) except AttributeError: self.logger.error('Could not find FunctionCall {function_name}'.format(function_name=function_name)) return lambda *args: None @@ -35,13 +41,13 @@ def generate_device(self, config, deviceName): print(deviceName) device_type = config.get('Type') if device_type == 'TwoButtonControl': - self.logger.info('adding TwoButtonControl') return TwoButtonControl( config.getint('Pin1'), config.getint('Pin2'), - self.getFunctionCall(config.get('functionCall1')), - self.getFunctionCall(config.get('functionCall2')), - functionCallTwoBtns=self.getFunctionCall(config.get('functionCallTwoButtons')), + self.getFunctionCall(config.get('functionCall1'), config.get('functionCall1Args', fallback=None)), + self.getFunctionCall(config.get('functionCall2'), config.get('functionCall2Args', fallback=None)), + functionCallTwoBtns=self.getFunctionCall(config.get('functionCallTwoButtons'), + config.get('functionCallTwoButtonsArgs', fallback=None)), pull_up_down=config.get('pull_up_down', fallback='pull_up'), hold_mode=config.get('hold_mode', fallback=None), hold_time=config.getfloat('hold_time', fallback=0.3), @@ -51,8 +57,10 @@ def generate_device(self, config, deviceName): name=deviceName) elif device_type in ('Button', 'SimpleButton'): return SimpleButton(config.getint('Pin'), - action=self.getFunctionCall(config.get('functionCall')), - action2=self.getFunctionCall(config.get('functionCall2', fallback='None')), + action=self.getFunctionCall(config.get('functionCall'), + config.get('functionCallArgs', fallback=None)), + action2=self.getFunctionCall(config.get('functionCall2', fallback='None'), + config.get('functionCall2Args', fallback=None)), name=deviceName, bouncetime=config.getint('bouncetime', fallback=500), antibouncehack=config.getboolean('antibouncehack', fallback=False), @@ -69,13 +77,15 @@ def generate_device(self, config, deviceName): elif device_type == 'RotaryEncoder': return RotaryEncoder(config.getint('Pin1'), config.getint('Pin2'), - self.getFunctionCall(config.get('functionCall1')), - self.getFunctionCall(config.get('functionCall2')), + self.getFunctionCall(config.get('functionCall1'), None), + self.getFunctionCall(config.get('functionCall2'), None), config.getfloat('timeBase', fallback=0.1), name=deviceName) elif device_type == 'ShutdownButton': return ShutdownButton(pin=config.getint('Pin'), - action=self.getFunctionCall(config.get('functionCall', fallback='functionCallShutdown')), + action=self.getFunctionCall(config.get('functionCall', + fallback='functionCallShutdown'), + config.get('functionCallArgs', fallback=None)), name=deviceName, bouncetime=config.getint('bouncetime', fallback=500), antibouncehack=config.getboolean('antibouncehack', fallback=False), @@ -121,9 +131,9 @@ def gpio_loop(self): ConfigCompatibilityChecks(config, config_path) - phoniebox_function_calls = function_calls.phoniebox_function_calls() - gpio_controler = gpio_control(phoniebox_function_calls) + _phoniebox_function_calls = phoniebox_function_calls() + gpio_control_class = GPIOControl(_phoniebox_function_calls) - devices = gpio_controler.get_all_devices(config) - gpio_controler.print_all_devices() - gpio_controler.gpio_loop() + devices = gpio_control_class.get_all_devices(config) + gpio_control_class.print_all_devices() + gpio_control_class.gpio_loop() diff --git a/components/gpio_control/test/conftest.py b/components/gpio_control/test/conftest.py index 94c1cc67d..ba668a835 100644 --- a/components/gpio_control/test/conftest.py +++ b/components/gpio_control/test/conftest.py @@ -1,5 +1,8 @@ +import sys +import os from mock import MagicMock, patch - +# add absolute parent path, to harmonize imports with gpio_control.py __main__ usage for tests +sys.path.insert(1, "/".join(os.path.abspath(__file__).split("/")[0:-2])) MockRPi = MagicMock() modules = { diff --git a/components/gpio_control/test/gpio_settings_test.ini b/components/gpio_control/test/gpio_settings_test.ini index d1bb8ed93..79e365f61 100644 --- a/components/gpio_control/test/gpio_settings_test.ini +++ b/components/gpio_control/test/gpio_settings_test.ini @@ -5,16 +5,18 @@ enabled: True ; RotaryEncoder ; TwoButtonControl ; SimpleButton = Button -; StatusLED [VolumeControl] enabled: True Type: RotaryEncoder PinUp: 16 PinDown: 19 +pull_up: True +hold_time: 0.3 +hold_repeat: True timeBase: 0.1 ; timeBase only for rotary encoder -functionCall1: functionCallVolU -functionCall2: functionCallVolD +functionCallDown: functionCallVolD +functionCallUp: functionCallVolU functionCallTwoButtons: functionCallVol0 ; functionCallTwoButtons only for TwoButtonControl ; functionCallButton: functionCallPlayerPause ; only for RotaryEncoderClickable @@ -81,8 +83,3 @@ enabled: False Type: Button Pin: 21 pull_up_down: pull_up - -[StatusLED] -enabled: True -Type: StatusLED -Pin: 14 diff --git a/components/gpio_control/test/test_LED.py b/components/gpio_control/test/test_LED.py new file mode 100644 index 000000000..6a2030c1b --- /dev/null +++ b/components/gpio_control/test/test_LED.py @@ -0,0 +1,72 @@ +import pytest +from mock import patch, call +from GPIODevices.led import LED, StatusLED, GPIO + + +@pytest.fixture +def led_control(): + GPIO.reset_mock() + return LED(pin=1, initial_value=True, name='TestLED') + + +class TestLED: + + def test_led_init_default(self): + GPIO.reset_mock() + _led = LED(pin=1) + assert _led.pin == 1 + assert _led.initial_value is True + assert _led.name == 'LED' + GPIO.setup.assert_called_once_with(1, GPIO.OUT) + GPIO.output.assert_called_once_with(1, True) + + def test_led_init(self): + GPIO.reset_mock() + _led = LED(pin=2, initial_value=False, name='TestLED') + assert _led.pin == 2 + assert _led.initial_value is False + assert _led.name == 'TestLED' + GPIO.setup.assert_called_once_with(2, GPIO.OUT) + GPIO.output.assert_called_once_with(2, False) + + def test_led_on(self, led_control): + GPIO.reset_mock() + led_control.on() + GPIO.output.assert_called_once_with(1, GPIO.HIGH) + + def test_led_off(self, led_control): + GPIO.reset_mock() + led_control.off() + GPIO.output.assert_called_once_with(1, GPIO.LOW) + + def test_led_status(self, led_control): + GPIO.reset_mock() + GPIO.input.side_effect = [1] + _status = led_control.status() + assert _status == 1 + + def test_statusled_init_default(self): + GPIO.reset_mock() + with patch('GPIODevices.led.system') as mock_system: + with patch('time.sleep'): + mock_system.side_effect = [False] + _led = StatusLED(pin=1) + assert _led.pin == 1 + assert _led.initial_value is False + assert _led.name == 'StatusLED' + mock_system.assert_called_with('systemctl is-active --quiet phoniebox-startup-scripts.service') + GPIO.setup.assert_called_once_with(1, GPIO.OUT) + GPIO.output.assert_has_calls([call(1, False), call(1, GPIO.HIGH)]) + + def test_statusled_init(self): + GPIO.reset_mock() + with patch('GPIODevices.led.system') as mock_system: + with patch('time.sleep'): + mock_system.side_effect = [True, False, False] + _led = StatusLED(pin=2, name='TestStatusLED') + assert _led.pin == 2 + assert _led.initial_value is False + assert _led.name == 'TestStatusLED' + mock_system.assert_called_with('systemctl is-active --quiet phoniebox-startup-scripts.service') + GPIO.setup.assert_called_once_with(2, GPIO.OUT) + GPIO.output.assert_has_calls([call(2, False), call(2, GPIO.HIGH)]) diff --git a/components/gpio_control/test/test_RotaryEncoder.py b/components/gpio_control/test/test_RotaryEncoder.py index bae83d264..3d80c5ad0 100644 --- a/components/gpio_control/test/test_RotaryEncoder.py +++ b/components/gpio_control/test/test_RotaryEncoder.py @@ -1,8 +1,6 @@ import pytest from mock import MagicMock - -from ..GPIODevices.rotary_encoder import RotaryEncoder -from RPi import GPIO +from GPIODevices.rotary_encoder import RotaryEncoder, GPIO pinA = 1 @@ -33,9 +31,6 @@ def rotaryEncoder(functionCallIncr, functionCallDecr): name='MockedGPIOInteraction') -# -# @patch("RPi", autospec=True) -# @patch("RPi.GPIO", autospec=True) class TestRotaryEncoder: def test_init(self, functionCallIncr, functionCallDecr): @@ -47,7 +42,6 @@ def test_repr(self, rotaryEncoder): assert repr(rotaryEncoder) == expected def test_start_stop(self, rotaryEncoder): - calls = GPIO.add_event_detect.call_count assert rotaryEncoder.is_active is True GPIO.remove_event_detect.assert_not_called() rotaryEncoder.stop() diff --git a/components/gpio_control/test/test_SimpleButton.py b/components/gpio_control/test/test_SimpleButton.py index 7f118ebb4..d6f03acd3 100644 --- a/components/gpio_control/test/test_SimpleButton.py +++ b/components/gpio_control/test/test_SimpleButton.py @@ -1,45 +1,98 @@ -from mock import patch, MagicMock import pytest +from mock import MagicMock +from GPIODevices.simple_button import SimpleButton, GPIO -import RPi.GPIO as GPIO -from ..GPIODevices.simple_button import SimpleButton -pin = 1 mockedAction = MagicMock() +mockedSecAction = MagicMock() @pytest.fixture def simple_button(): mockedAction.reset_mock() + mockedSecAction.reset_mock() - return SimpleButton(pin, action=mockedAction, name='TestButton', - bouncetime=500, edge=GPIO.FALLING) + return SimpleButton(pin=1, action=mockedAction, action2=mockedSecAction, name='TestButton') class TestButton: - mockedFunction = MagicMock() def test_init(self): - SimpleButton(pin, action=self.mockedFunction, name='TestButton', - bouncetime=500, edge=GPIO.FALLING) + SimpleButton(pin=1) + + def test_init_edge_valid(self): + SimpleButton(pin=1, edge='falling') + SimpleButton(pin=1, edge='rising') + SimpleButton(pin=1, edge='both') + SimpleButton(pin=1, edge=GPIO.FALLING) + SimpleButton(pin=1, edge=GPIO.RISING) + SimpleButton(pin=1, edge=GPIO.BOTH) + + def test_init_edge_invalid(self): + with pytest.raises(KeyError) as e: + SimpleButton(pin=1, edge='invalid') + assert str(e.value) == "'Unknown Edge type invalid'" + + def test_init_pullUpDown_valid(self): + SimpleButton(pin=1, pull_up_down='pull_up') + SimpleButton(pin=1, pull_up_down='pull_down') + SimpleButton(pin=1, pull_up_down='pull_off') + SimpleButton(pin=1, pull_up_down=GPIO.PUD_UP) + SimpleButton(pin=1, pull_up_down=GPIO.PUD_DOWN) + SimpleButton(pin=1, pull_up_down=GPIO.PUD_OFF) + + def test_init_pullUpDown_invalid(self): + with pytest.raises(KeyError) as e: + SimpleButton(pin=1, pull_up_down="invalid") + assert str(e.value) == "'Unknown Pull Up/Down type invalid'" + + def test_is_pressed_pullUp(self): + simple_button = SimpleButton(pin=1, pull_up_down='pull_up') + GPIO.input.side_effect = [False] + is_pressed = simple_button.is_pressed + assert is_pressed is True + GPIO.input.side_effect = [True] + is_pressed = simple_button.is_pressed + assert is_pressed is False + + # TODO is pull_up always true a bug? + # def test_is_pressed_pullDown(self): + # simple_button = SimpleButton(pin=1, pull_up_down='pull_up') + # GPIO.input.side_effect = [False] + # is_pressed = simple_button.is_pressed + # assert is_pressed is False + # GPIO.input.side_effect = [True] + # is_pressed = simple_button.is_pressed + # assert is_pressed is True + + def test_antibounce(self, simple_button): + simple_button.antibouncehack = True + GPIO.input.side_effect = lambda *args: 1 + simple_button.callbackFunctionHandler() + mockedAction.assert_not_called() + mockedSecAction.assert_not_called() def test_callback(self, simple_button): simple_button.callbackFunctionHandler(simple_button.pin) mockedAction.assert_called_once_with() + mockedSecAction.assert_not_called() def test_callback_without_pin_argument(self, simple_button): simple_button.callbackFunctionHandler() mockedAction.assert_called_once_with() + mockedSecAction.assert_not_called() def test_callback_with_wrong_pin_argument(self, simple_button): simple_button.callbackFunctionHandler(simple_button.pin + 1) mockedAction.assert_called_once_with(simple_button.pin + 1) + mockedSecAction.assert_not_called() def test_callback_with_more_arguments(self, simple_button): simple_button.callbackFunctionHandler(simple_button.pin, 5) mockedAction.assert_called_once_with(5) + mockedSecAction.assert_not_called() - def test_change_when_pressed(self, simple_button): + def test_change_new_action(self, simple_button): simple_button.callbackFunctionHandler(simple_button.pin, 5) newMockedAction = MagicMock() @@ -48,8 +101,9 @@ def test_change_when_pressed(self, simple_button): newMockedAction.assert_called_once_with() mockedAction.assert_called_once_with(5) + mockedSecAction.assert_not_called() - def test_hold(self, simple_button): + def test_hold_Repeat_longer_holdtime(self, simple_button): GPIO.LOW = 0 GPIO.input.side_effect = [False, False, False, True] simple_button.hold_time = 0 @@ -57,3 +111,81 @@ def test_hold(self, simple_button): calls = mockedAction.call_count simple_button.callbackFunctionHandler(simple_button.pin) assert mockedAction.call_count - calls == 4 + mockedSecAction.assert_not_called() + + def test_hold_Repeat_shorter_holdtime(self, simple_button): + GPIO.LOW = 0 + GPIO.input.side_effect = [False, True] + simple_button.hold_time = 0.3 + simple_button.hold_mode = 'Repeat' + calls = mockedAction.call_count + simple_button.callbackFunctionHandler(simple_button.pin) + assert mockedAction.call_count - calls == 1 + mockedSecAction.assert_not_called() + + def test_hold_Postpone_longer_holdtime(self, simple_button): + GPIO.LOW = 0 + GPIO.input.side_effect = [False, False, False, True] + simple_button.hold_time = 0 + simple_button.hold_mode = 'Postpone' + calls = mockedAction.call_count + simple_button.callbackFunctionHandler(simple_button.pin) + assert mockedAction.call_count - calls == 1 + mockedSecAction.assert_not_called() + + def test_hold_Postpone_shorter_holdtime(self, simple_button): + GPIO.LOW = 0 + GPIO.input.side_effect = [False, True, True] + simple_button.hold_time = 0.3 + simple_button.hold_mode = 'Postpone' + calls = mockedAction.call_count + simple_button.callbackFunctionHandler(simple_button.pin) + assert mockedAction.call_count - calls == 0 + mockedSecAction.assert_not_called() + + def test_hold_SecondFunc_longer_holdtime(self, simple_button): + GPIO.LOW = 0 + GPIO.input.side_effect = [False, False, False, True] + simple_button.hold_time = 0 + simple_button.hold_mode = 'SecondFunc' + calls = mockedSecAction.call_count + simple_button.callbackFunctionHandler(simple_button.pin) + mockedAction.assert_called_once() + assert mockedSecAction.call_count - calls == 1 + + def test_hold_SecondFunc_shorter_holdtime(self, simple_button): + GPIO.LOW = 0 + GPIO.input.side_effect = [False, True, True] + simple_button.hold_time = 0.3 + simple_button.hold_mode = 'SecondFunc' + calls = mockedSecAction.call_count + simple_button.callbackFunctionHandler(simple_button.pin) + mockedAction.assert_called_once() + assert mockedSecAction.call_count - calls == 0 + + def test_hold_SecondFuncRepeat_longer_holdtime(self, simple_button): + GPIO.LOW = 0 + GPIO.input.side_effect = [False, False, False, True] + simple_button.hold_time = 0 + simple_button.hold_mode = 'SecondFuncRepeat' + calls = mockedSecAction.call_count + simple_button.callbackFunctionHandler(simple_button.pin) + mockedAction.assert_called_once() + assert mockedSecAction.call_count - calls == 3 + + def test_hold_SecondFuncRepeat_shorter_holdtime(self, simple_button): + GPIO.LOW = 0 + GPIO.input.side_effect = [False, True, True] + simple_button.hold_time = 0.3 + simple_button.hold_mode = 'SecondFuncRepeat' + calls = mockedSecAction.call_count + simple_button.callbackFunctionHandler(simple_button.pin) + mockedAction.assert_called_once() + assert mockedSecAction.call_count - calls == 0 + + def test_repr(self): + button = SimpleButton(name='test_repr', pin=1, edge='rising', hold_mode=None, hold_time=2.5, + bouncetime=500, antibouncehack=True, pull_up_down='pull_down') + expected = ('') + assert repr(button) == expected diff --git a/components/gpio_control/test/test_TwoButtonControl.py b/components/gpio_control/test/test_TwoButtonControl.py index 2741430d1..1f2ed7336 100644 --- a/components/gpio_control/test/test_TwoButtonControl.py +++ b/components/gpio_control/test/test_TwoButtonControl.py @@ -1,34 +1,35 @@ -import mock import pytest from mock import MagicMock - -from ..GPIODevices import two_button_control -from ..GPIODevices.two_button_control import functionCallTwoButtons, TwoButtonControl +from GPIODevices.two_button_control import functionCallTwoButtons, TwoButtonControl, GPIO @pytest.fixture def btn1Mock(): - return mock.MagicMock() + _mock = MagicMock() + _mock.pin = 1 + return _mock @pytest.fixture def btn2Mock(): - return mock.MagicMock() + _mock = MagicMock() + _mock.pin = 2 + return _mock @pytest.fixture def functionCall1Mock(): - return mock.MagicMock() + return MagicMock() @pytest.fixture def functionCall2Mock(): - return mock.MagicMock() + return MagicMock() @pytest.fixture def functionCallBothPressedMock(): - return mock.MagicMock() + return MagicMock() def test_functionCallTwoButtonsOnlyBtn1Pressed(btn1Mock, @@ -39,16 +40,34 @@ def test_functionCallTwoButtonsOnlyBtn1Pressed(btn1Mock, btn1Mock.is_pressed = True btn2Mock.is_pressed = False func = functionCallTwoButtons(btn1Mock, - btn2Mock, - functionCall1Mock, - functionCall2Mock, - functionCallBothPressed=functionCallBothPressedMock) + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressed=functionCallBothPressedMock) func() functionCall1Mock.assert_called_once_with() functionCall2Mock.assert_not_called() functionCallBothPressedMock.assert_not_called() +def test_functionCallTwoButtonsOnlyBtn2Pressed(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressedMock): + btn1Mock.is_pressed = False + btn2Mock.is_pressed = True + func = functionCallTwoButtons(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressed=functionCallBothPressedMock) + func() + functionCall1Mock.assert_not_called() + functionCall2Mock.assert_called_once_with() + functionCallBothPressedMock.assert_not_called() + + def test_functionCallTwoButtonsBothBtnsPressedFunctionCallBothPressedExists(btn1Mock, btn2Mock, functionCall1Mock, @@ -56,8 +75,11 @@ def test_functionCallTwoButtonsBothBtnsPressedFunctionCallBothPressedExists(btn1 functionCallBothPressedMock): btn1Mock.is_pressed = True btn2Mock.is_pressed = True - func = functionCallTwoButtons(btn1Mock, btn2Mock, functionCall1Mock, functionCall2Mock, - functionCallBothPressed=functionCallBothPressedMock) + func = functionCallTwoButtons(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressed=functionCallBothPressedMock) func() functionCall1Mock.assert_not_called() functionCall2Mock.assert_not_called() @@ -70,13 +92,70 @@ def test_functionCallTwoButtonsBothBtnsPressedFunctionCallBothPressedIsNone(btn1 functionCall2Mock): btn1Mock.is_pressed = True btn2Mock.is_pressed = True - func = functionCallTwoButtons(btn1Mock, btn2Mock, functionCall1Mock, functionCall2Mock, - functionCallBothPressed=None) + func = functionCallTwoButtons(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressed=None) func() functionCall1Mock.assert_not_called() functionCall2Mock.assert_not_called() +def test_functionCallTwoButtonsOnlyBtn1Args(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressedMock): + btn1Mock.is_pressed = False + btn2Mock.is_pressed = False + func = functionCallTwoButtons(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressed=functionCallBothPressedMock) + func(btn1Mock.pin) + functionCall1Mock.assert_called_once_with() + functionCall2Mock.assert_not_called() + functionCallBothPressedMock.assert_not_called() + + +def test_functionCallTwoButtonsOnlyBtn2Args(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressedMock): + btn1Mock.is_pressed = False + btn2Mock.is_pressed = False + func = functionCallTwoButtons(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressed=functionCallBothPressedMock) + func(btn2Mock.pin) + functionCall1Mock.assert_not_called() + functionCall2Mock.assert_called_once_with() + functionCallBothPressedMock.assert_not_called() + + +def test_functionCallTwoButtonsUnknownBtnArgs(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressedMock): + btn1Mock.is_pressed = False + btn2Mock.is_pressed = False + func = functionCallTwoButtons(btn1Mock, + btn2Mock, + functionCall1Mock, + functionCall2Mock, + functionCallBothPressed=functionCallBothPressedMock) + func(9) + functionCall1Mock.assert_not_called() + functionCall2Mock.assert_not_called() + functionCallBothPressedMock.assert_not_called() + + mockedFunction1 = MagicMock() mockedFunction2 = MagicMock() mockedFunction3 = MagicMock() @@ -88,40 +167,32 @@ def two_button_controller(): mockedFunction2.reset_mock() mockedFunction3.reset_mock() return TwoButtonControl(bcmPin1=1, - bcmPin2=2, - functionCallBtn1=mockedFunction1, - functionCallBtn2=mockedFunction2, - functionCallTwoBtns=mockedFunction3, - pull_up_down='pull_up', - hold_mode=None, - hold_time=0.3, - name='TwoButtonControl') + bcmPin2=2, + functionCallBtn1=mockedFunction1, + functionCallBtn2=mockedFunction2, + functionCallTwoBtns=mockedFunction3, + pull_up_down='pull_up', + hold_mode=None, + hold_time=0.3, + name='TwoButtonControl') class TestTwoButtonControl: def test_init(self): TwoButtonControl(bcmPin1=1, - bcmPin2=2, - functionCallBtn1=mockedFunction1, - functionCallBtn2=mockedFunction2, - functionCallTwoBtns=mockedFunction3, - pull_up_down='pull_up', - hold_mode=None, - hold_time=0.3, - name='TwoButtonControl') + bcmPin2=2, + functionCallBtn1=mockedFunction1, + functionCallBtn2=mockedFunction2, + functionCallTwoBtns=mockedFunction3, + pull_up_down='pull_up', + hold_mode=None, + hold_time=0.3, + name='TwoButtonControl') def test_btn1_pressed(self, two_button_controller): pinA = two_button_controller.bcmPin1 pinB = two_button_controller.bcmPin2 - - def func(pin): - values = {pinA: False, pinB: True} - if pin in values: - return values[pin] - else: - print('Cannot find pin {} in values: {}'.format(pin, values)) - return None - two_button_control.GPIO.input.side_effect = func + GPIO.input.side_effect = lambda pin: {pinA: False, pinB: True}[pin] two_button_controller.action() mockedFunction1.assert_called_once() mockedFunction2.assert_not_called() @@ -132,7 +203,7 @@ def func(pin): def test_btn2_pressed(self, two_button_controller): pinA = two_button_controller.bcmPin1 pinB = two_button_controller.bcmPin2 - two_button_control.GPIO.input.side_effect = lambda pin: {pinA: True, pinB: False}[pin] + GPIO.input.side_effect = lambda pin: {pinA: True, pinB: False}[pin] two_button_controller.action() mockedFunction1.assert_not_called() mockedFunction2.assert_called_once() @@ -143,7 +214,7 @@ def test_btn2_pressed(self, two_button_controller): def test_btn1_and_btn2_pressed(self, two_button_controller): pinA = two_button_controller.bcmPin1 pinB = two_button_controller.bcmPin2 - two_button_control.GPIO.input.side_effect = lambda pin: {pinA: False, pinB: False}[pin] + GPIO.input.side_effect = lambda pin: {pinA: False, pinB: False}[pin] two_button_controller.action() mockedFunction1.assert_not_called() mockedFunction2.assert_not_called() @@ -152,5 +223,6 @@ def test_btn1_and_btn2_pressed(self, two_button_controller): assert mockedFunction3.call_count == 2 def test_repr(self, two_button_controller): - expected = "" + expected = ('') assert repr(two_button_controller) == expected diff --git a/components/gpio_control/test/test_gpio_control.py b/components/gpio_control/test/test_gpio_control.py index 5d5a1c107..4c139b67e 100644 --- a/components/gpio_control/test/test_gpio_control.py +++ b/components/gpio_control/test/test_gpio_control.py @@ -1,40 +1,254 @@ +import pytest +from mock import patch, call +from gpio_control import GPIOControl +from GPIODevices import (StatusLED, + LED, + RotaryEncoder, + SimpleButton, + ShutdownButton, + TwoButtonControl) + import configparser -import logging -from mock import patch, MagicMock -with patch('os.system', return_value=0): - from gpio_control import gpio_control -import function_calls -# def test_functionCallTwoButtonsOnlyBtn2Pressed(btn1Mock, btn2Mock, functionCall1Mock, functionCall2Mock, -# functionCallBothPressedMock): -# btn1Mock.is_pressed = False -# btn2Mock.is_pressed = True -# func = functionCallTwoButtons(btn1Mock, btn2Mock, functionCall1Mock, -# functionCallBothPressed=functionCallBothPressedMock) -# func() -# functionCall1Mock.assert_not_called() -# functionCall2Mock.assert_called_once_with() -# functionCallBothPressedMock.assert_not_called() +@pytest.fixture +def gpio_control_class(): + + class MockFunctionCalls: + + def funcTestWithoutParameter(self, *args): + return "funcTestWithoutParameter" + + def funcTestWithParameter(self, param1): + return f"funcTestWithParameter({param1})" -mockedFunction1 = MagicMock() -mockedFunction2 = MagicMock() -mockedFunction3 = MagicMock() + _gpio_control_class = GPIOControl(MockFunctionCalls) # function_calls will be mocked + return _gpio_control_class -mockedFunction1.side_effect = lambda *args: print('MockFunction1 called') -mockedFunction2.side_effect = lambda *args: print('MockFunction2 called') -mockedFunction3.side_effect = lambda *args: print('MockFunction3 called') -logging.basicConfig(level='DEBUG') +# Mock function 'getFunctionCall' and just return given parameter +def mock_gpio_control_getFunctionCall(self, func_name, func_args): + return str(func_name) + '-' + str(func_args) -def testMain(): +@patch.object(GPIOControl, 'getFunctionCall', mock_gpio_control_getFunctionCall) +def func_test_generateDevice_type(gpio_control_class, name, configArray, type): config = configparser.ConfigParser() - config.read('./test/gpio_settings_test.ini') + config[name] = configArray + with patch.object(type, '__init__', return_value=None) as mock_init: + with patch.object(type, '__del__', return_value=None, create=True): + device = gpio_control_class.generate_device(config[name], name) + assert isinstance(device, type) is True + del device + return mock_init + + +class TestGPIOControl: + + def test_getAllDevices_empty(self, gpio_control_class): + config = configparser.ConfigParser() + devices = gpio_control_class.get_all_devices(config) + assert not devices + + def test_getAllDevices_empty_device(self, gpio_control_class): + name = 'TestDevice' + config = configparser.ConfigParser() + config[name] = {} + devices = gpio_control_class.get_all_devices(config) + assert not devices + + def test_getAllDevices_type_unknown(self, gpio_control_class): + name = 'TestDevice' + config = configparser.ConfigParser() + config[name] = {'enabled': 'true'} + with patch.object(gpio_control_class, gpio_control_class.generate_device.__name__, + return_value=None) as mock_generate_device: + devices = gpio_control_class.get_all_devices(config) + mock_generate_device.assert_called_once_with(config[name], name) + assert not devices + + def test_getAllDevices_type_known(self, gpio_control_class): + name = 'TestDevice' + config = configparser.ConfigParser() + config[name] = {'enabled': 'true'} + with patch.object(gpio_control_class, gpio_control_class.generate_device.__name__, + return_value='TestDeviceResult') as mock_generate_device: + devices = gpio_control_class.get_all_devices(config) + mock_generate_device.assert_called_once_with(config[name], name) + assert len(devices) == 1 + assert devices[0] == 'TestDeviceResult' + + # --------------- + + def test_generateDevice_unknown(self, gpio_control_class): + name = 'TEST_unknown' + config = configparser.ConfigParser() + config[name] = {'Type': 'unknown', 'Pin': '5'} + device = gpio_control_class.generate_device(config[name], name) + assert device is None + + def test_generateDevice_StatusLED(self, gpio_control_class): + name = 'TEST_StatusLED' + configArray = {'Type': StatusLED.__name__, 'Pin': '5'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, StatusLED) + mock_init.assert_called_once_with(5, name=name) + + def test_generateDevice_MPDStatusLED(self, gpio_control_class): + name = 'TEST_MPDStatusLED' + configArray = {'Type': 'MPDStatusLED', 'Pin': '5'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, StatusLED) + mock_init.assert_called_once_with(5, name=name) + + def test_generateDevice_LED_default(self, gpio_control_class): + name = 'TEST_LED' + configArray = {'Type': LED.__name__, 'Pin': '5', } + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, LED) + mock_init.assert_called_once_with(5, name=name, initial_value=True) + + def test_generateDevice_LED(self, gpio_control_class): + name = 'TEST_LED' + configArray = {'Type': 'LED', 'Pin': '5', 'initial_value': 'False'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, LED) + mock_init.assert_called_once_with(5, name=name, initial_value=False) + + def test_generateDevice_RotaryEncoder_default(self, gpio_control_class): + name = 'TEST_RotaryEncoder' + configArray = {'Type': RotaryEncoder.__name__, 'Pin1': '5', 'Pin2': '6', + 'functionCall1': 'test_funcCall1', 'functionCall2': 'test_funcCall2'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, RotaryEncoder) + mock_init.assert_called_once_with(5, 6, "test_funcCall1-None", "test_funcCall2-None", 0.1, name=name) + + def test_generateDevice_RotaryEncoder(self, gpio_control_class): + name = 'TEST_RotaryEncoder' + configArray = {'Type': RotaryEncoder.__name__, 'Pin1': '5', 'Pin2': '6', + 'functionCall1': 'test_funcCall1', 'functionCall2': 'test_funcCall2', + 'timeBase': '1.1'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, RotaryEncoder) + mock_init.assert_called_once_with(5, 6, "test_funcCall1-None", "test_funcCall2-None", 1.1, name=name) + + def test_generateDevice_SimpleButton_default(self, gpio_control_class): + name = 'TEST_SimpleButton' + configArray = {'Type': SimpleButton.__name__, 'Pin': '5', + 'functionCall': 'test_funcCall1'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, SimpleButton) + mock_init.assert_called_once_with(5, action="test_funcCall1-None", + action2="None-None", name=name, bouncetime=500, + antibouncehack=False, edge='falling', hold_mode=None, + hold_time=0.3, pull_up_down='pull_up') + + def test_generateDevice_SimpleButton(self, gpio_control_class): + name = 'TEST_SimpleButton' + configArray = {'Type': SimpleButton.__name__, 'Pin': '5', + 'functionCall': 'test_funcCall1', 'functionCallArgs': 'test_funcCall1Args', + 'functionCall2': 'test_funcCall2', 'functionCall2Args': 'test_funcCall2Args', + 'bouncetime': 299, 'antibouncehack': 'True', 'edge': 'test_edge', + 'hold_mode': 'test_holdmode', 'hold_time': 1.3, 'pull_up_down': 'test_pull_up_down'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, SimpleButton) + mock_init.assert_called_once_with(5, action="test_funcCall1-test_funcCall1Args", + action2="test_funcCall2-test_funcCall2Args", name=name, bouncetime=299, + antibouncehack=True, edge='test_edge', hold_mode='test_holdmode', + hold_time=1.3, pull_up_down='test_pull_up_down') + + def test_generateDevice_Button_default(self, gpio_control_class): + name = 'TEST_Button' + configArray = {'Type': 'Button', 'Pin': '5', + 'functionCall': 'test_funcCall1'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, SimpleButton) + mock_init.assert_called_once_with(5, action="test_funcCall1-None", + action2="None-None", name=name, bouncetime=500, + antibouncehack=False, edge='falling', hold_mode=None, + hold_time=0.3, pull_up_down='pull_up') + + def test_generateDevice_Button(self, gpio_control_class): + name = 'TEST_Button' + configArray = {'Type': 'Button', 'Pin': '5', + 'functionCall': 'test_funcCall1', 'functionCallArgs': 'test_funcCall1Args', + 'functionCall2': 'test_funcCall2', 'functionCall2Args': 'test_funcCall2Args', + 'bouncetime': 299, 'antibouncehack': 'True', 'edge': 'test_edge', + 'hold_mode': 'test_holdmode', 'hold_time': 1.3, 'pull_up_down': 'test_pull_up_down'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, SimpleButton) + mock_init.assert_called_once_with(5, action="test_funcCall1-test_funcCall1Args", + action2="test_funcCall2-test_funcCall2Args", name=name, bouncetime=299, + antibouncehack=True, edge='test_edge', hold_mode='test_holdmode', + hold_time=1.3, pull_up_down='test_pull_up_down') + + def test_generateDevice_ShutdownButton_default(self, gpio_control_class): + name = 'TEST_ShutdownButton' + configArray = {'Type': ShutdownButton.__name__, 'Pin': '5'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, ShutdownButton) + mock_init.assert_called_once_with(pin=5, action="functionCallShutdown-None", + name=name, bouncetime=500, antibouncehack=False, edge='falling', + hold_time=3.0, iteration_time=0.2, led_pin=None, + pull_up_down='pull_up') + + def test_generateDevice_ShutdownButton(self, gpio_control_class): + name = 'TEST_ShutdownButton' + configArray = {'Type': ShutdownButton.__name__, 'Pin': '5', + 'functionCall': 'test_funcCall1', 'functionCallArgs': 'test_funcCall1Args', + 'bouncetime': 299, 'antibouncehack': 'True', 'edge': 'test_edge', + 'hold_time': 1.3, 'iteration_time': 1.2, 'led_pin': 9, + 'pull_up_down': 'test_pull_up_down'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, ShutdownButton) + mock_init.assert_called_once_with(pin=5, action="test_funcCall1-test_funcCall1Args", + name=name, bouncetime=299, antibouncehack=True, edge='test_edge', + hold_time=1.3, iteration_time=1.2, led_pin=9, + pull_up_down='test_pull_up_down') + + def test_generateDevice_TwoButtonControl_default(self, gpio_control_class): + name = 'TEST_TwoButtonControl' + configArray = {'Type': TwoButtonControl.__name__, 'Pin1': '5', 'Pin2': '6', + 'functionCall1': 'test_funcCall1', + 'functionCall2': 'test_funcCall2', + 'functionCallTwoButtons': 'test_funcCallTwoButtons'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, TwoButtonControl) + mock_init.assert_called_once_with(5, 6, "test_funcCall1-None", "test_funcCall2-None", + functionCallTwoBtns="test_funcCallTwoButtons-None", + pull_up_down='pull_up', hold_mode=None, hold_time=0.3, + bouncetime=500, edge='falling', antibouncehack=False, name=name) + + def test_generateDevice_TwoButtonControl(self, gpio_control_class): + name = 'TEST_TwoButtonControl' + configArray = {'Type': TwoButtonControl.__name__, 'Pin1': '5', 'Pin2': '6', + 'functionCall1': 'test_funcCall1', 'functionCall1Args': 'test_funcCall1Args', + 'functionCall2': 'test_funcCall2', 'functionCall2Args': 'test_funcCall2Args', + 'functionCallTwoButtons': 'test_funcCallTwoButtons', + 'functionCallTwoButtonsArgs': 'test_funcCallTwoButtonsArgs', + 'pull_up_down': 'test_pull_up_down', 'hold_mode': 'test_holdmode', 'hold_time': 1.3, + 'bouncetime': 299, 'edge': 'test_edge', 'antibouncehack': 'True'} + mock_init = func_test_generateDevice_type(gpio_control_class, name, configArray, TwoButtonControl) + mock_init.assert_called_once_with(5, 6, + "test_funcCall1-test_funcCall1Args", "test_funcCall2-test_funcCall2Args", + functionCallTwoBtns="test_funcCallTwoButtons-test_funcCallTwoButtonsArgs", + pull_up_down='test_pull_up_down', hold_mode='test_holdmode', hold_time=1.3, + bouncetime=299, edge='test_edge', antibouncehack=True, name=name) + + # --------------- + + def test_getFunctionCall_None_None(self, gpio_control_class): + result = gpio_control_class.getFunctionCall(None, None) + assert result(()) is None + result = gpio_control_class.getFunctionCall('None', None) + assert result(()) is None + result = gpio_control_class.getFunctionCall("nonExisting", None) + assert result(()) is None + + def test_getFunctionCall_withoutParam(self, gpio_control_class): + result = gpio_control_class.getFunctionCall("funcTestWithoutParameter", None) + assert result(()) == "funcTestWithoutParameter" + + def test_getFunctionCall_withParam(self, gpio_control_class): + result = gpio_control_class.getFunctionCall("funcTestWithParameter", "param1") + assert result(()) == "funcTestWithParameter(param1)" + + # --------------- - phoniebox_function_calls = function_calls.phoniebox_function_calls() - gpio_controler = gpio_control(phoniebox_function_calls) + def test_printAllDevices_empty(self, gpio_control_class): + with patch('builtins.print') as mock_print: + gpio_control_class.print_all_devices() + mock_print.assert_not_called - devices = gpio_controler.get_all_devices(config) - gpio_controler.print_all_devices() - pass + def test_printAllDevices_list(self, gpio_control_class): + with patch('builtins.print') as mock_print: + gpio_control_class.devices = ["test1", "test2"] + gpio_control_class.print_all_devices() + mock_print.assert_has_calls([call("test1"), call("test2")]) diff --git a/components/gpio_control/test/test_shutdown_button.py b/components/gpio_control/test/test_shutdown_button.py index 18ae10672..d8bf630fb 100644 --- a/components/gpio_control/test/test_shutdown_button.py +++ b/components/gpio_control/test/test_shutdown_button.py @@ -1,24 +1,33 @@ import pytest - from mock import Mock, patch -import mock - -from ..GPIODevices.shutdown_button import ShutdownButton, GPIO +from GPIODevices.shutdown_button import ShutdownButton, GPIO mock_time = Mock() - mocked_function = Mock() @pytest.fixture def shutdown_button(): mocked_function.reset_mock() - return ShutdownButton(pin=1, action=mocked_function) + return ShutdownButton(pin=1, action=mocked_function, led_pin=5) class TestShutDownButton(): - def test_init(self): - ShutdownButton(pin=1) + + @patch('time.sleep', mock_time) + def test_noled(self): + mocked_function_local = Mock() + shutdown_button_local = ShutdownButton(pin=1, action=mocked_function_local) + GPIO.input.side_effect = lambda *args: 0 + shutdown_button_local.callbackFunctionHandler() + mocked_function_local.assert_called_once() + + @patch('time.sleep', mock_time) + def test_antibounce(self, shutdown_button): + shutdown_button.antibouncehack = True + GPIO.input.side_effect = lambda *args: 1 + shutdown_button.callbackFunctionHandler() + mocked_function.assert_not_called() @patch('time.sleep', mock_time) def test_action_too_short_press(self, shutdown_button): @@ -40,3 +49,16 @@ def test_action_valid_press(self, shutdown_button): GPIO.input.side_effect = lambda *args: 0 shutdown_button.callbackFunctionHandler() mocked_function.assert_called_once() + + @patch('time.sleep', mock_time) + def test_callback(self, shutdown_button): + GPIO.input.side_effect = lambda *args: 0 + shutdown_button.callbackFunctionHandler(shutdown_button.pin, shutdown_button.pin) + mocked_function.assert_called_once_with(shutdown_button.pin) + + def test_repr(self): + button = ShutdownButton(name='test_repr', pin=1, hold_time=2.5, iteration_time=.8, led_pin=5, edge='rising', + bouncetime=200, antibouncehack=True, pull_up_down='pull_down') + expected = ('') + assert repr(button) == expected diff --git a/misc/sampleconfigs/gpio_settings.ini.sample b/misc/sampleconfigs/gpio_settings.ini.sample index e14444991..4f84ba01b 100644 --- a/misc/sampleconfigs/gpio_settings.ini.sample +++ b/misc/sampleconfigs/gpio_settings.ini.sample @@ -14,6 +14,9 @@ timeBase: 0.1 ;only for RotaryEncoder functionCall1: functionCallVolU functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl +;functionCall1Args: 1 +;functionCall2Args: 1 +;functionCallTwoButtonsArgs: x [PrevNextControl] enabled: False @@ -68,6 +71,7 @@ pull_up_down: pull_up hold_time: 0.3 hold_mode: Repeat functionCall: functionCallVolU +;functionCallArgs: 1 [VolumeDown] enabled: False @@ -77,6 +81,7 @@ pull_up_down: pull_up hold_time: 0.3 hold_mode: Repeat functionCall: functionCallVolD +;functionCallArgs: 1 [NextSong] enabled: False @@ -98,6 +103,7 @@ Type: Button Pin: 7 pull_up_down: pull_up functionCall: functionCallPlayerSeekFwd +;functionCallArgs: 10 [Rewind] enabled: False @@ -105,6 +111,7 @@ Type: Button Pin: 8 pull_up_down: pull_up functionCall: functionCallPlayerSeekBack +;functionCallArgs: 10 [Halt] enabled: False @@ -119,3 +126,20 @@ Type: Button Pin: 21 pull_up_down: pull_up functionCall: functionCallPlayerStop + +[TriggerPlayCard1] +enabled: False +Type: Button +Pin: 4 +pull_up_down: pull_up +functionCall: functionCallTriggerPlayCardId +functionCallArgs: 1 + +[TriggerPlayFolderSomeRelativeFolderName] +enabled: False +Type: Button +Pin: 4 +pull_up_down: pull_up +functionCall: functionCallTriggerPlayFolder +functionCallArgs: someRelativeFolderName + From 278d831d0bb6ff0be3cbf118128241d125a398b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 18:01:34 +0100 Subject: [PATCH 21/28] Bump docker/setup-buildx-action from 3.0.0 to 3.1.0 (#2281) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/test_docker_debian_codename_sub.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_docker_debian_codename_sub.yml b/.github/workflows/test_docker_debian_codename_sub.yml index 8bc5db9d4..f804784ef 100644 --- a/.github/workflows/test_docker_debian_codename_sub.yml +++ b/.github/workflows/test_docker_debian_codename_sub.yml @@ -58,7 +58,7 @@ jobs: uses: docker/setup-qemu-action@v3.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.0.0 + uses: docker/setup-buildx-action@v3.1.0 with: # network=host driver-opt needed to push to local registry driver-opts: network=host @@ -155,7 +155,7 @@ jobs: uses: docker/setup-qemu-action@v3.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.0.0 + uses: docker/setup-buildx-action@v3.1.0 - name: Artifact Download Docker Image uses: actions/download-artifact@v4 From 61fc3958211bef4c9389890f3c174434de947ff2 Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Fri, 8 Mar 2024 00:49:04 +0100 Subject: [PATCH 22/28] Update issue templates (#2280) * changed issue templates to issue form * renamed files * updated links and icons * Update .github/ISSUE_TEMPLATE/bug_v3.yaml Co-authored-by: s-martin * Update log sources * Update logs description * removed "Reporting Bugs" section from Readme --------- Co-authored-by: s-martin --- .github/ISSUE_TEMPLATE/bug_template.md | 93 -------------------- .github/ISSUE_TEMPLATE/bug_v2.yaml | 98 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/bug_v3.yaml | 97 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/ISSUE_TEMPLATE/feature_template.md | 20 ----- .github/ISSUE_TEMPLATE/feature_v3.yaml | 38 +++++++++ .github/ISSUE_TEMPLATE/future3.md | 19 ----- README.md | 25 ++---- 8 files changed, 240 insertions(+), 152 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_template.md create mode 100644 .github/ISSUE_TEMPLATE/bug_v2.yaml create mode 100644 .github/ISSUE_TEMPLATE/bug_v3.yaml delete mode 100644 .github/ISSUE_TEMPLATE/feature_template.md create mode 100644 .github/ISSUE_TEMPLATE/feature_v3.yaml delete mode 100644 .github/ISSUE_TEMPLATE/future3.md diff --git a/.github/ISSUE_TEMPLATE/bug_template.md b/.github/ISSUE_TEMPLATE/bug_template.md deleted file mode 100644 index 222325940..000000000 --- a/.github/ISSUE_TEMPLATE/bug_template.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -name: bug report -about: use this template to report bugs -title: "\U0001F41B | BUG SUMMARY" -labels: bug, needs triage ---- - -## Bug - -### What I did - - - -### What happened - - - -### I expected this to happen - - - -### Further information that might help - - - - -## Software - -### Base image and version - - - -### Branch / Release - - - -### Installscript - - - - -## Hardware - -### RaspberryPi version - - - -### RFID Reader - - - -### Soundcard - - - -### Other notable hardware - - diff --git a/.github/ISSUE_TEMPLATE/bug_v2.yaml b/.github/ISSUE_TEMPLATE/bug_v2.yaml new file mode 100644 index 000000000..a28189815 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_v2.yaml @@ -0,0 +1,98 @@ +name: 🐛 Bug Report v2 +description: Use this template to report bugs for version 2. +title: "🐛 | " +labels: ["bug", "legacy_v2", "needs triage"] +body: + - type: markdown + attributes: + value: > + Please fill out the form to provide essential information to your problem. + This will help us to faster figure out the root cause. + + - type: input + id: version + attributes: + label: Version + description: | + What version do you use? + See the "info" page in the Web App or the "settings/version" file. + placeholder: e.g. "2.5.0" or "2.6.0-alpha" + validations: + required: true + + - type: input + id: branch + attributes: + label: Branch + description: | + What branch did you install from? + See the "info" page in the Web App or the "settings/version" file. + placeholder: e.g. "master" or "develop" + validations: + required: true + + - type: input + id: os + attributes: + label: OS + description: | + What Operation System and Version do you use? + See `cat /etc/os-release` + placeholder: e.g. "Raspberry Pi OS Bullseye lite - 32bit" + validations: + required: true + + - type: input + id: pi-model + attributes: + label: Pi model + description: | + Which Raspberry Pi model do you use? + placeholder: e.g. "3 B+", "Zero 2" + validations: + required: true + + - type: textarea + id: hardware + attributes: + label: Hardware + description: | + What's your hardware set up? + e.g. Rfid Reader, SoundCards, ... + + - type: textarea + id: what-happened + attributes: + label: What happened? + description: | + What you did, what you expected and what happened instead? + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Logs + description: | + Please provide the logs after the problem occured. + * `/home/pi/phoniebox_logs/install-jukebox.sh_*.log` -> Installation log + * `tail -n 200 /var/log/syslog` (<= Bullseye) or `journalctl -n 200` (>= Bookworm) -> General system log + + You might also want to run the analytics script: + * `/home/pi/RPi-Jukebox-RFID/scripts/helperscripts/Analytics_AfterInstallScript.sh` + + Note: The logs may contain some personal information, You want to erase before sharing. + + - type: textarea + id: config + attributes: + label: Configuration + description: | + Please provide the configuration if its related to the problem + e.g. "mpd.conf", "gpio_settings.ini", ... + + - type: textarea + id: more + attributes: + label: More info + description: Anything more you want to share? diff --git a/.github/ISSUE_TEMPLATE/bug_v3.yaml b/.github/ISSUE_TEMPLATE/bug_v3.yaml new file mode 100644 index 000000000..3dbc45bfb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_v3.yaml @@ -0,0 +1,97 @@ +name: 🐛 Bug Report v3 +description: Use this template to report bugs for version 3. +title: "🐛 | " +labels: ["bug", "future3", "needs triage"] +body: + - type: markdown + attributes: + value: > + Please fill out the form to provide essential information to your problem. + This will help us to faster figure out the root cause. + + - type: input + id: version + attributes: + label: Version + description: | + What version do you use? + See the "settings" page in the Web App or the "src/jukebox/jukebox/version.py" file. + placeholder: e.g. "3.5.0" or "3.6.0-alpha" + validations: + required: true + + - type: input + id: branch + attributes: + label: Branch + description: | + What branch did you install from? + See the "settings" page in the Web App or the "src/jukebox/jukebox/version.py" file. + placeholder: e.g. "future3/main" or "future3/develop" + validations: + required: true + + - type: input + id: os + attributes: + label: OS + description: | + What Operation System and Version do you use? + See `cat /etc/os-release` + placeholder: e.g. "Raspberry Pi OS Bullseye lite - 32bit" + validations: + required: true + + - type: input + id: pi-model + attributes: + label: Pi model + description: | + Which Raspberry Pi model do you use? + placeholder: e.g. "3 B+", "Zero 2" + validations: + required: true + + - type: textarea + id: hardware + attributes: + label: Hardware + description: | + What's your hardware set up? + e.g. Rfid Reader, SoundCards, ... + + - type: textarea + id: what-happened + attributes: + label: What happened? + description: | + What you did, what you expected and what happened instead? + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Logs + description: | + Please provide the logs after the problem occured. + - `~/INSTALL-XXXXXXXXX.log` -> Installation log + - `~/RPi-Jukebox-RFID/shared/logs/*.log` -> General Jukebox app and error logs + General Jukebox logs can also be found at `http://ip.of.your.box/logs/*.log` + + Note: The logs may contain some personal information, You want to erase before sharing. + + + - type: textarea + id: config + attributes: + label: Configuration + description: | + Please provide the configuration if its related to the problem + e.g. "mpd.conf", "jukebox.yaml", ... + + - type: textarea + id: more + attributes: + label: More info + description: Anything more you want to share? diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index e8ce1a65d..e9ad7441d 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -4,5 +4,5 @@ contact_links: url: https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/new?category=q-a about: This issue tracker is not for support questions. Please refer to our Discussions. - name: 💬 Chat - url: https://matrix.to/#/#phoniebox_community:gitter.im + url: https://matrix.to/#/#phoniebox_community:matrix.org about: Want to discuss with others? Check out our chat. diff --git a/.github/ISSUE_TEMPLATE/feature_template.md b/.github/ISSUE_TEMPLATE/feature_template.md deleted file mode 100644 index eb0e22967..000000000 --- a/.github/ISSUE_TEMPLATE/feature_template.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: feature request -about: use this template to propose new features -title: "\U0001F680 | FEATURE SUMMARY" -labels: enhancement ---- - -## Feature Description - -### What functionality would you like to see in your phoniebox? - -i.e. `I would love to cook my breakfast eggs with the help of our phoniebox` - -### How do you envision the feature to work from a users perspective? - -i.e. `In the mornings when I stumble to the bathroom, I want the phoniebox to react on the RFID chip injected under the skin of my right hip. I envision it to walk to the kitchen, get the eggs and a pot out, and start the cooking of the eggs on the stove.` - -### Further information that might help - -i.e. `the stove is operated with cooking gas, so the implemenation has to make sure the stove is handled with the greatest possible care` diff --git a/.github/ISSUE_TEMPLATE/feature_v3.yaml b/.github/ISSUE_TEMPLATE/feature_v3.yaml new file mode 100644 index 000000000..712fa0c87 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_v3.yaml @@ -0,0 +1,38 @@ +name: 🚀 Feature Request v3 +description: Use this template to propose feature requests for version 3. +title: "🚀 | " +labels: ["enhancement", "future3"] +body: + - type: markdown + attributes: + value: > + Please describe your new functionality. + + - type: textarea + id: feature + attributes: + label: Feature + description: | + What functionality would you like to see in your phoniebox? + placeholder: | + e.g. `I would love to cook my breakfast eggs with the help of our phoniebox` + validations: + required: true + + - type: textarea + id: perspective + attributes: + label: User perspective + description: | + How do you envision the feature to work from a users perspective? + placeholder: | + e.g. `In the mornings when I stumble to the bathroom, I want the phoniebox to react on the RFID chip injected under the skin of my right hip. I envision it to walk to the kitchen, get the eggs and a pot out, and start the cooking of the eggs on the stove.` + + - type: textarea + id: further-info + attributes: + label: Further information + description: | + Further information that might help. + placeholder: | + e.g. `The stove is operated with cooking gas, so the implemenation has to make sure the stove is handled with the greatest possible care` diff --git a/.github/ISSUE_TEMPLATE/future3.md b/.github/ISSUE_TEMPLATE/future3.md deleted file mode 100644 index ab5d6bf00..000000000 --- a/.github/ISSUE_TEMPLATE/future3.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: future3 Bug Report -about: Use this template to report bugs for the upcoming version 3 -title: "ISSUE SUMMARY on future3" -labels: future3, bug, needs triage ---- - -### Describe your problem - -Core, Web application ... - -#### What's your hardware set up? - -RPi version, RFID Reader, Audio devices etc. - -#### If possible, try to attach logs from ... (paths from RPi) - - * `~/RPi-Jukebox-RFID/shared/logs` -> General Jukebox logs - * `~/INSTALL-XXXXXXXXX.log` -> The logfile being generated when installing the Jukebox code diff --git a/README.md b/README.md index d2ace6f73..eec9188d2 100644 --- a/README.md +++ b/README.md @@ -49,8 +49,9 @@ While Version 3 is still under development, it is becoming a lot more stable! Al If you seek the adventure, your support will be more then welcome. Before contributing, check out the following references. * ⭐ **[Releases](https://github.com/MiczFlor/RPi-Jukebox-RFID/releases?q=v3&expanded=true)** -* 🚀 **[Install Jukebox Version 3](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/builders/installation.md)** -* 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=future3%2C+bug%2C+needs+triage&template=future3.md&title=ISSUE+SUMMARY+on+future3) +* 🎵 **[Install Jukebox Version 3](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/builders/installation.md)** +* 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=bug%2Cfuture3%2Cneeds+triage&projects=&template=bug_v3.yaml&title=%F0%9F%90%9B+%7C+) +* 🚀 [Propose a feature](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=enhancement%2Cfuture3&projects=&template=feature_v3.yaml&title=%F0%9F%9A%80+%7C+) * ☑️ [Feature Status](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/developers/status.md) * 📖 [Documentation](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/README.md) * 👩‍💻 [Development](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/future3/main/documentation/developers/README.md) @@ -58,7 +59,7 @@ If you seek the adventure, your support will be more then welcome. Before contri --- -### 🎵 Version 2 +### 🎶 Version 2 > [!NOTE] > Version 3 is becoming mature and will soon be the new default of Phoniebox. Therefore Version 2 is slowly going into a maintenance mode and no new features will be added to this version. @@ -66,8 +67,8 @@ If you seek the adventure, your support will be more then welcome. Before contri Check out the following references. * ⭐ **[Releases](https://github.com/MiczFlor/RPi-Jukebox-RFID/releases?q=v2&expanded=true)** -* 🚀 **[Install Jukebox Version 2](#quick-install-version-2)** -* 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=bug%2C+needs+triage&projects=&template=bug_template.md&title=%F0%9F%90%9B+%7C+BUG+SUMMARY) +* 🎵 **[Install Jukebox Version 2](#quick-install-version-2)** +* 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=bug%2Clegacy_v2%2Cneeds+triage&projects=&template=bug_v2.yaml&title=%F0%9F%90%9B+%7C+) * ☑️ [Features](#features-version-2) * 📖 [Documentation](#documentation) @@ -146,20 +147,6 @@ There is a growing section of [troubleshooting](https://github.com/MiczFlor/RPi- * Everything seems to work, but I hear nothing when swiping a card. * I would like to use two cards / IDs to do the same thing. -### Reporting Bugs - -To make maintenance easier for everyone, please run the following script and post the results when reporting a bug. -(Note: the results contain some personal information like IP or SSID. -You might want to erase some of it before sharing with the bug report.) - -~~~bash -/home/pi/RPi-Jukebox-RFID/scripts/helperscripts/Analytics_AfterInstallScript.sh -~~~ - -Just copy this line and paste it into your terminal on the pi. - -If you find something that doesn't work. And you tried and tried again, but it still doesn't work, please report your issue in the ["issues" section](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). - ## Hardware aka Shopping List Here is a list of equipment needed. You can find a lot second hand online (save money and the planet). The links below lead to Amazon, not at all because I want to support them, but because their PartnerNet program helps to support the Phoniebox maintenance (a little bit...). From 33f240b616f16e7f853261da4db401be9c889adb Mon Sep 17 00:00:00 2001 From: Alvin Schiller <103769832+AlvinSchiller@users.noreply.github.com> Date: Tue, 19 Mar 2024 10:18:21 +0100 Subject: [PATCH 23/28] NetworkManager Support (#2261) * moved config files in subdir * renamed autohotspot resources. * updates from v3. change crontab to timer service * refactored config file handling to functions. Added interfaces conf file handling. * add service enablement check * update tests * add uninstall before installation on updates * fix tests * add support for NetworkManager * fix tests * add tests for network management * fix mpd test if not installed * start service instead of script. * remove wpa_cli references (not needed). * updated installation wifi setup * updated wifi ui * changed order of logic to always get the current file state * simplify ui wifi logic * set active connection readonly * reorder active connection to front. use uuid for iteration. * remove unneccary comment * test added. some changes needed * fixed ci var definition * changed test order * updated logs for network settings * extracted get passphrase function. use also in tests * restored dhcpcd wpa conf setup. fixed tests * fix autohotspot setup * update ci tests scripts. renamed * improve readability and update tests parameter * removed log output * change default for wifi/staticip setup to "no" * removed hotstpot userscript. * only show *.sh files as userscripts --- .../test_docker_debian_codename_sub.yml | 4 +- ci/Dockerfile.debian | 1 + htdocs/inc.setWifi.php | 183 ++++----- htdocs/userScripts.php | 2 +- ...ot.service.stretch-default2-Hotspot.sample | 9 - .../autohotspot/NetworkManager/autohotspot | 353 ++++++++++++++++++ .../NetworkManager/autohotspot.service | 11 + .../NetworkManager/autohotspot.timer | 10 + .../dhcpcd/autohotspot} | 55 +-- .../dhcpcd/autohotspot-daemon.service | 10 + .../autohotspot/dhcpcd/autohotspot.service | 11 + .../autohotspot/dhcpcd/autohotspot.timer | 10 + .../dhcpcd/dnsmasq.conf} | 2 +- .../dhcpcd/hostapd} | 0 .../dhcpcd/hostapd.conf} | 2 +- ...hcpcd.conf.buster-default-noHotspot.sample | 4 +- ...ault.sample => wpa_supplicant.conf.sample} | 6 - packages-autohotspot_NetworkManager.txt | 4 + ...pot.txt => packages-autohotspot_dhcpcd.txt | 0 scripts/helperscripts/inc.networkHelper.sh | 123 ++++++ scripts/helperscripts/setup_autohotspot.sh | 228 +++++++---- scripts/installscripts/install-jukebox.sh | 98 ++--- ...installation_autohotspot_NetworkManager.sh | 54 +++ .../run_installation_autohotspot_dhcpcd.sh | 54 +++ ...n_tests.sh => run_installation_classic.sh} | 43 ++- .../tests/run_installation_staticip_dhcpcd.sh | 60 +++ .../tests/run_installation_tests2.sh | 40 +- .../tests/run_installation_tests3.sh | 45 ++- .../installscripts/tests/test_installation.sh | 200 +++++++--- scripts/playout_controls.sh | 12 +- scripts/userscripts/addhotspot.sh | 14 - scripts/userscripts/placeholder | 0 32 files changed, 1274 insertions(+), 374 deletions(-) delete mode 100755 misc/sampleconfigs/autohotspot.service.stretch-default2-Hotspot.sample create mode 100644 misc/sampleconfigs/autohotspot/NetworkManager/autohotspot create mode 100644 misc/sampleconfigs/autohotspot/NetworkManager/autohotspot.service create mode 100644 misc/sampleconfigs/autohotspot/NetworkManager/autohotspot.timer rename misc/sampleconfigs/{autohotspot.sh.stretch-default2-Hotspot.sample => autohotspot/dhcpcd/autohotspot} (86%) create mode 100644 misc/sampleconfigs/autohotspot/dhcpcd/autohotspot-daemon.service create mode 100644 misc/sampleconfigs/autohotspot/dhcpcd/autohotspot.service create mode 100644 misc/sampleconfigs/autohotspot/dhcpcd/autohotspot.timer rename misc/sampleconfigs/{dnsmasq.conf.stretch-default2-Hotspot.sample => autohotspot/dhcpcd/dnsmasq.conf} (86%) rename misc/sampleconfigs/{hostapd.stretch-default2-Hotspot.sample => autohotspot/dhcpcd/hostapd} (100%) mode change 100755 => 100644 rename misc/sampleconfigs/{hostapd.conf.stretch-default2-Hotspot.sample => autohotspot/dhcpcd/hostapd.conf} (93%) mode change 100755 => 100644 rename misc/sampleconfigs/{wpa_supplicant.conf.buster-default.sample => wpa_supplicant.conf.sample} (59%) mode change 100755 => 100644 create mode 100644 packages-autohotspot_NetworkManager.txt rename packages-autohotspot.txt => packages-autohotspot_dhcpcd.txt (100%) create mode 100644 scripts/helperscripts/inc.networkHelper.sh create mode 100644 scripts/installscripts/tests/run_installation_autohotspot_NetworkManager.sh create mode 100644 scripts/installscripts/tests/run_installation_autohotspot_dhcpcd.sh rename scripts/installscripts/tests/{run_installation_tests.sh => run_installation_classic.sh} (56%) create mode 100644 scripts/installscripts/tests/run_installation_staticip_dhcpcd.sh delete mode 100644 scripts/userscripts/addhotspot.sh create mode 100644 scripts/userscripts/placeholder diff --git a/.github/workflows/test_docker_debian_codename_sub.yml b/.github/workflows/test_docker_debian_codename_sub.yml index f804784ef..95e94a2ee 100644 --- a/.github/workflows/test_docker_debian_codename_sub.yml +++ b/.github/workflows/test_docker_debian_codename_sub.yml @@ -144,10 +144,10 @@ jobs: fail-fast: false matrix: username: ['pi'] - test_script: ['run_installation_tests.sh', 'run_installation_tests2.sh', 'run_installation_tests3.sh'] + test_script: ['run_installation_classic.sh', 'run_installation_tests2.sh', 'run_installation_tests3.sh', 'run_installation_staticip_dhcpcd.sh', 'run_installation_autohotspot_dhcpcd.sh', 'run_installation_autohotspot_NetworkManager.sh'] include: - username: 'hans' - test_script: 'run_installation_tests.sh' + test_script: 'run_installation_classic.sh' steps: diff --git a/ci/Dockerfile.debian b/ci/Dockerfile.debian index eb545e6b3..15384e782 100644 --- a/ci/Dockerfile.debian +++ b/ci/Dockerfile.debian @@ -84,6 +84,7 @@ FROM test-user as test-code ARG GIT_BRANCH ARG GIT_URL +ENV CI_RUNNING=true ENV GIT_BRANCH=$GIT_BRANCH GIT_URL=$GIT_URL COPY --chown=root:$TEST_USER_GROUP --chmod=770 packages.txt packages-raspberrypi.txt ./ diff --git a/htdocs/inc.setWifi.php b/htdocs/inc.setWifi.php index a7a77987f..691e8a247 100755 --- a/htdocs/inc.setWifi.php +++ b/htdocs/inc.setWifi.php @@ -1,112 +1,83 @@ $post_value ) { + $tempPOST = $_POST; + $_POST=array(); //clear + foreach ( $tempPOST as $post_key => $post_value ) { + unset($temp_ssid); + unset($temp_pass); + unset($temp_prio); if ( substr(trim($post_key), 0, 9) == "WIFIssid_" ) { - $WIFIssid = trim($post_value); + $temp_ssid = trim($post_value); $post_key = "WIFIpass_".substr(trim($post_key), 9); - $post_value = $_POST[$post_key]; - $WIFIpass = trim($post_value); + $post_value = $tempPOST[$post_key]; + $temp_pass = trim($post_value); $post_key = "WIFIprio_".substr(trim($post_key), 9); - $post_value = $_POST[$post_key]; - $WIFIprio = trim($post_value); + $post_value = $tempPOST[$post_key]; + $temp_prio = trim($post_value); - if ( isset($WIFIssid) && $WIFIssid != "") { - if(isset($WIFIpass) && strlen($WIFIpass) >= 8) { - $networks[$WIFIssid] = $WIFIpass; - } - if(isset($WIFIprio) && $WIFIprio != "") { - $priorities[$WIFIssid] = $WIFIprio; + if (isset($temp_ssid) && $temp_ssid != "" && isset($temp_pass) && strlen($temp_pass) >= 8) { + if(!isset($temp_prio) || !is_numeric($temp_prio)) { + $temp_prio = 0; } + $exec .= "add_wireless_network wlan0 ".$temp_ssid." ".$temp_pass." ".$temp_prio."\n"; } } } - $_POST=array(); //clear - // make multiline bash - $exec = "bash -e <<'END'\n"; - $exec .= "echo 'ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev\nupdate_config=1\ncountry=DE\n\n' | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf\n"; - foreach ( $networks as $WIFIssid => $WIFIpass ) { - $WIFIprio = $priorities[$WIFIssid]; - if (strlen($WIFIpass) < 64) { - $WIFIpass = trim(exec("wpa_passphrase '".$WIFIssid."' '".$WIFIpass."' | grep -v -F '#psk' | grep -F 'psk' | cut -d= -f2")); + $exec .= "END\n"; + exec("sudo bash -c '". $exec . "'"); +} + +/* +* get all configured wifis +*/ +$network_confs_shell = shell_exec("sudo bash -c 'source ".$conf['scripts_abs']."/helperscripts/inc.networkHelper.sh && get_wireless_networks'"); +$network_confs = explode(' ',$network_confs_shell); + +$networks = array(); +foreach($network_confs as $line){ + unset($temp_ssid); + unset($temp_pass); + unset($temp_prio); + unset($temp_active); + + $network_conf = explode(':',$line); + $temp_ssid = trim($network_conf[0]); + $temp_pass = trim($network_conf[1]); + $temp_prio = trim($network_conf[2]); + $temp_active = isset($active_essid) && $temp_ssid == $active_essid; + + if(isset($temp_ssid) && $temp_ssid != "" && isset($temp_pass) && $temp_pass != "") { + if(!isset($temp_prio) || !is_numeric($temp_prio)) { + $temp_prio = 0; + } + $temp_entry = array($temp_ssid => [ $temp_pass, $temp_prio, $temp_active ]); + # use different methods to have the same behavior: the data of the first appearance are kept, following will be ignored + if($temp_active) { + $networks = array_merge($temp_entry, $networks); + } else { + $networks = $networks + $temp_entry; } - $exec .= "echo 'network={\n\tssid=\"".$WIFIssid."\"\n\tpsk=".$WIFIpass."\n\tpriority=".$WIFIprio."\n}' | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf\n"; } - - $exec .= "sudo chown root:netdev /etc/wpa_supplicant/wpa_supplicant.conf\n"; - $exec .= "sudo chmod 664 /etc/wpa_supplicant/wpa_supplicant.conf\n"; - $exec .= "END\n"; - exec($exec); } +unset($temp_ssid); +unset($temp_pass); +unset($temp_prio); + ?> -

'> +'>
@@ -127,16 +98,19 @@

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/ezXF!|2B^j~(g`!Ew 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