From 3657a820baaf2bc5eb15587ab80ed415801996b3 Mon Sep 17 00:00:00 2001 From: "mattlamb227@gmail.com" Date: Thu, 13 Aug 2026 00:17:27 -0400 Subject: [PATCH] Update cache and egg-info files --- src/blokus_gym.egg-info/PKG-INFO | 6 ++++-- src/blokus_gym.egg-info/SOURCES.txt | 8 +++++++- src/blokus_gym.egg-info/requires.txt | 3 +++ src/blokus_gym.egg-info/top_level.txt | 1 + .../core/__pycache__/board.cpython-312.pyc | Bin 5834 -> 6441 bytes .../core/__pycache__/game.cpython-311.pyc | Bin 22669 -> 22665 bytes .../core/__pycache__/game.cpython-312.pyc | Bin 21080 -> 21724 bytes 7 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/blokus_gym.egg-info/PKG-INFO b/src/blokus_gym.egg-info/PKG-INFO index 505c211..4e49f08 100644 --- a/src/blokus_gym.egg-info/PKG-INFO +++ b/src/blokus_gym.egg-info/PKG-INFO @@ -1,12 +1,12 @@ Metadata-Version: 2.4 Name: blokus-gym Version: 0.1.0 -Summary: A Gymnasium-compatible RL environment for the board game Blokus +Summary: A Gymnasium-compatible RL environment for the board game Blokus, with a playable web UI Author: Blokus Gym Contributors License: MIT Project-URL: Homepage, https://github.com/blokus-gym/blokus-gym Project-URL: Documentation, https://github.com/blokus-gym/blokus-gym#readme -Keywords: reinforcement-learning,gymnasium,blokus,board-game,pettingzoo +Keywords: reinforcement-learning,gymnasium,blokus,board-game,pettingzoo,flask,game-ui Classifier: Development Status :: 3 - Alpha Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: MIT License @@ -22,6 +22,8 @@ Requires-Dist: gymnasium>=0.29 Requires-Dist: pettingzoo>=1.26 Provides-Extra: render Requires-Dist: matplotlib>=3.7; extra == "render" +Provides-Extra: ui +Requires-Dist: flask>=3.0; extra == "ui" Provides-Extra: dev Requires-Dist: pytest>=7.4; extra == "dev" Requires-Dist: pytest-cov>=4.1; extra == "dev" diff --git a/src/blokus_gym.egg-info/SOURCES.txt b/src/blokus_gym.egg-info/SOURCES.txt index 64c90b9..46c5788 100644 --- a/src/blokus_gym.egg-info/SOURCES.txt +++ b/src/blokus_gym.egg-info/SOURCES.txt @@ -3,6 +3,7 @@ src/blokus_gym/__init__.py src/blokus_gym.egg-info/PKG-INFO src/blokus_gym.egg-info/SOURCES.txt src/blokus_gym.egg-info/dependency_links.txt +src/blokus_gym.egg-info/entry_points.txt src/blokus_gym.egg-info/requires.txt src/blokus_gym.egg-info/top_level.txt src/blokus_gym/core/__init__.py @@ -17,8 +18,13 @@ src/blokus_gym/utils/__init__.py src/blokus_gym/utils/render.py src/blokus_gym/wrappers/__init__.py src/blokus_gym/wrappers/action_mask.py +src/blokus_ui/__init__.py +src/blokus_ui/app.py +src/blokus_ui/session.py +src/blokus_ui/store.py tests/test_board.py tests/test_envs.py tests/test_game.py tests/test_imports.py -tests/test_pieces.py \ No newline at end of file +tests/test_pieces.py +tests/test_ui.py \ No newline at end of file diff --git a/src/blokus_gym.egg-info/requires.txt b/src/blokus_gym.egg-info/requires.txt index 846a800..f7a83f7 100644 --- a/src/blokus_gym.egg-info/requires.txt +++ b/src/blokus_gym.egg-info/requires.txt @@ -15,3 +15,6 @@ matplotlib>=3.7 [train] stable-baselines3>=2.2 torch>=2.0 + +[ui] +flask>=3.0 diff --git a/src/blokus_gym.egg-info/top_level.txt b/src/blokus_gym.egg-info/top_level.txt index 66d72bf..2ec0ac8 100644 --- a/src/blokus_gym.egg-info/top_level.txt +++ b/src/blokus_gym.egg-info/top_level.txt @@ -1 +1,2 @@ blokus_gym +blokus_ui diff --git a/src/blokus_gym/core/__pycache__/board.cpython-312.pyc b/src/blokus_gym/core/__pycache__/board.cpython-312.pyc index c46bfac0996129536157da1ff2f8b30e371ea584..fad1e88c2b14cbc47ad6dceb4e23601fd5a78720 100644 GIT binary patch delta 1812 zcmaJ>U2IcT9KYv&?Y6tUZP%__8D*DkC>QKLCcu>NFFT;e8@aB_G1T-czxRhL#7)?wJFT=$bAB_M1xq}sBylH>`bI$+k zocsHo`%QXogY|7F6qMlE)c?`M=hg*lYVTQ?U6NdBj8JJzresW^@|a3vR5_`RX*5n% zusUs~8rTM!pgLFsYy;Q;ZJ`F(AZ?`qu#GfHgJ4a%;=&KzCT*utn8hkhj?F{l7CFwp zCx=!YlxC!?hTFiWB02JqLp+U^D@E7Q`LLXddf{v#pPwoobZIu9%YWeVN%<&Q&wrJ> zf@cHwU*2&_oi|qUfYL@T@-@oV)C`%CCS<>2Jsy=<`wX`Ni3XB{^$Cqf1F?|&CGmrZ zR3Uu7vcA<(mathsp60@|5|C$o558YKnT?b4>aYyxw<5}xEs4#^N*y5{( zPU7$f4ZB5)Bp)#L##UkUzj|FWQlyvP28`bP&B&0oV$*Sm^yEs(laH6`>g!AOMThOd zKC+RQf)l(=2^eR23T@pljC7mF%2da?AF3f!X7^QrVs?6b?-lyFmnke+8VZ7kW6d|2lBnB~%w~5R4al z-z{g0levn^o(Oe1xucL{wEI6?FJS(503dj0WAo+FTB@%Kzs9~Fdp6wISj!AnGlREZ zyq9_NUe8;ncGbz~emGVOcUHrlR|l)%p1Vd5L+Wnc4XX0&^DuJc-%&}-9}B}ai*;dq zz@3AbGZ=`+Vo&(?lpLi_aQT#8L%zTcyR76{OUEl6naVM@jxA57$KhY$BcWEf8k3;_tVZ=G)4CEKckz$nQpq1#&%xduzM_f04b@bjtzouI_OiC zFBB{9^3GVFD4OJlW5;@413#;8jkSzymbpci%}!f>=HvMR9*?Knk&_`1i-Eam07qx2 z88K$fe1ClX>>ixI?)${~F-}}yKMMVxdZ194gi9#y-!KM&H54HS_ z;EQH^c({4xR^c2$r(9QlY5Z#4I_50JcuJ|voH!qE-ZUG*QmqIp5o`pZs4g5mgV2kx z5n%uUrO$RDh_{OrupxjsNyu5;DJFJ^fM0{sdjKb;N3y0F3zihJPQ0?HD%wu67}Rv_ zrNszOCfYSs>s>VYmV^!by`4y}7=xtcihmjX9~S7;q`Qsn<5v^O=srRQ$sdw1BJ3Y_ Ct%BtM delta 1413 zcmaJ=O>7%Q6!z@ytk-t@lX&gKsqAbLx5|<@)Iov%@TZDW5gqsb_%%6T7ns zA?DCl$`w#~NWF0EB~n|2%Aw*^^#B4+To=TRLnRKhdqC=;<-J)KTn_Bv`{vF2o%i1E z%>7u){FF{7WB6VB++Up^xR}{k+D7S8%!@Uch&4398oJOLh8Pn1w$b1sFAQW;*n%U+ zMM0Rz7IGXpA&SC6PKsfXKu(DfkwhL4rHjAJ8e4uXMdY zTk8b8>&dns7%OY*`vT)#xgr3x57{In^=jplL`a1;b;91qkx^#h0eDkC2)Fg=)DDva zch^3*8m z`llRU@lU_A(Q0+m(U$bY1-L&nfz2Gx-yi6AfoZ$U7U3oPDO6stf2dIrL1N9@Jbi|? z%%?X~VkG$@LN^)3ZMHjGM`5#2S3yf~tFSrv0vSCLeW6%pOYmN?HbzUf=xWj;n`s2s zlr$@KmNtA-oIdvo$*)E_^?I^X+ZS1pJ}}O-+b!3SYI$BJ1Ld~(|87xAqc5fMB7ck( z74r7OVE1gC@X7U!PRl!qKkSLQCgvnA9qKG_*8cCDYr~goR1CG~(biZ;aGNPf*x@vfQ(t a{-7;3THdqrEqE|e!sTNN>~2hvGW#0{ogXCt diff --git a/src/blokus_gym/core/__pycache__/game.cpython-311.pyc b/src/blokus_gym/core/__pycache__/game.cpython-311.pyc index f351585cb0e8e80c364a6d60f3922349b5f7906a..855d204a84d181fd6597038d75c6cfb17e1c6a14 100644 GIT binary patch delta 253 zcmeC($k@4&k#9LKFBbz4?EX`cmE^jSZ?`tn6Nb&FwYwRa?l5eQ(Di3wRGPfPZ~>$I zW=|tlCPuBv{wCdwDw}Vc*s?JCZ}=J<#2CE!m`w;1WBg`m`!$S=MVn7J zv@tT)ZuWPoWM-T+`K0S>#*WQf-71+FmrvIBoW!_b^C8de%#5oxSNR@cWIVjt-hUet zSG|RpbK$DpA3>`9)|Nlf5H5qr?XW?BqwV_!k_qMKVC&0svWw BPFMf{ delta 257 zcmeC&$k@A)k#9LKFBbz4RA`lCJ@DShw_BTuk8$&9?QTXUHpa~ny8bMTK9g4%E@1TB z>}kZx#27N!-=v$-Z}V*vTNcL3&61XyjEu>fovoUf7;85lvk75h?A$DEzlM=<&gK&i zZH$b|H~TwPGBfU(eA4wbMd0kyYda0|x2Cy!lCJ8k2oCJEO!02JGZVu=p1ovPCjL9|Hhv CZcz;Y diff --git a/src/blokus_gym/core/__pycache__/game.cpython-312.pyc b/src/blokus_gym/core/__pycache__/game.cpython-312.pyc index abeba61a1f9d80ad9665edf47fb1747bf62c0025..c4dfe51a50151de5e721c7ea7665a42d86882f2c 100644 GIT binary patch delta 3104 zcmbtWdrVu`89(Rx!P_=|B#vziHa2j1=0ytBO@O)~B_u$~)@}`>#CB3%hFn7k#16^A zR>)8SJ4*nmEzz>AWNB3@PYRthHI>?JTDK0zk)W)bQfXVOYJUL9A0g|iec!bWByIng zb|wGr_d4JC&N;vHT`&BMeteCle2|ioNZ=`U1X_RbR?0A^p>Wx!zMLIW7~7tq)8`Ao7nrNOprqRb?i$MMyqr>W=OMvL^Zk}o8sBw zv_$DJX*IDcazkR9fe;~2RB5S}{WMJw)8sN$wt_3b+?&`JS?O%hTp)8on4KLjHAw=B zh)2lQ?xEKy7EQ=`RW~1z2pLihk)xbjG8peyILY;>ITjgE`jtM~NBg9_EO;XQL%Q7+ z%^?QL0Cx~V@3w<*iQ7*o87F?ym`BKAj*tKiaKlnoo~C7=Zr;@F=dObhpOaLOQ{tz7 z?kG1bIYBPdaZ1TZft2)-Hzd7O*bPC~I3WjKiwP~>rX!s_UbpX>OxS}K&UF%geT&Mj z_U1m1(A4R2^>np(+^o7HE8#?QdyBiNqw@sIP-+{(5bwi5_dg@|&yW=&u_!*#8b&K8 zxFrcm)r}{PCC;mCA(idQp=otkm48cBGh>}OGNYeun%h^)l^;F7H=%9DQk0g#Ynf3+)+S6dhm2?Yat%cfz5EIz`vf0^_s znAz()vNx@hM(dY3N#hrAtnyfzgoMvPjf&SRn!(3Akl} z6wK1t7^SHqpmfVYuZ`-eK&oHiSM@_0ztW$I?|>$t{)QO}aE5HPUlU_DR8#N`u|*jB z%!XKhd>fD)MjUW+ffP!-R7(6Qpf|>3sQB-0&d>Sd98kx|=Tb8ACB$&g5En<`7m)T6 zK8{)Vr~Z$-x$A$tn?eWFB6PBv3Oy}i)43*QQECSM4aSErn_c~h-aNrgRKjJ`Z5gi~ ztDe{9gtR%+>ghva?bch`x|t)h)|uySrq31Eg|&5X+3f07!3T-HzR?^8&n3FnXfii6 z8cD3t)UGck+F0xlH5RdWUMltyp&Swldl4Q3@ZmLwJ9WpKlMSzwDa zlUs)Rw{5eQ+4_l{Q)QE7^Twi(v1o?QY@0V0hYa`%FW z*|8)i#`LM&$=rEENytz#YX}>hL&`h)ycLp}kUz9}u#~R`sZ2IiBdV7PO{27W=%VG-N5AwS_HvMinqXZwwpi zZx-G*)ZgA*4RcgG zopn-4Jm#Qv!LpKEj$US-vJ!fgy;^3Zhl9T^b5T&t zjxyRA{Ep*k3jV84RMP(7KcCno$?C!6N(B5Q2qg%U0DSc8F6nA<3w~Bvv7cUK7b^Zi ze-P}hoT8@JFz`);YJ{CQL>}3WH&~IgfxZ$PbgCruhwM_-4mobK@FVtNm7b2UPpfk1 zDW=+&0b8(bUn_kr`0_q4O~Lcvx#*6v&D9QiGuTjlnxi*ZxTb0Q4R9~Udp*5P$C^7l zKKO@6;2K0a1N!=vmF=BvJ-#aN7P>mS`rZq=59H7%e+$0Y(LNiK1<@K0D(s+mOHqzk zqcqrHWq&@HHXt4p`W}r}N3yK@F?WBWx2w?WZWe^*KA7TR=Yxdy7GL-CE#B_NulNKp zoqWTHNFf7j_5BX#+Zgc3s>B3bWGx%z-{ZK5y@1>DN`#Q*>R delta 2411 zcmZWqeN0=|6~Fh{=EGnN_ydZ+ZE*Y`K=}v(i;_TqG$bKwNYiR9a|!kmzKrusM)2Mf zOWRFUO&inGHneJ&NUN%B*&-%aQKhP_s{RpetJ)%3;keV3{jsT=HYt!lrcRr*bDqsd zmM8i5&OPVcbMF1!-+lh$FM0YMZuo=2plA4e@SpSJr+#a=WD~y9Kx4TZPPZNfqrHjC z(5+&~Ukh*BEjSMOt?)a$53PUNZD6!m!Re@mcZ;3yj6;v!OAZVC#8IMJFR1yopg4Mdce80C^)Hr&V9(*k2ksZvI{wVG173_NW<7;~CM zw69~39=Tv5z!;W15Y{M0&Z1n)WMiDq@i~pCP4&1w=b96u3BumSqD!>ho99{m&#hkF0&b&n|U#J2Y*)E6^ z%fnh+_pzMMq?qMW*_6PY%4M>d-ilSRY&JGpWb39rNNk(i8s6dG(#=uaLV0eR<(M71 zZ<#`pU+f4AvLNSoViz3k*AkvYl?g*^RN(kiw6jdq!A-HRpkErtG|>W`yASp$XiD`2 zF@iG$C{`v#3CkYen8_XSljKJKSyQpw;QQG!{5^9b<@gsk2lK*@ozOxfwkObF-0M18$h z#v2E3*MH-(w$Ky|yq@BC*u9SHf z`;$FOLb}3sIkA{ntEgM4sJqs)EPP$jlD4_71m6g**&0@C4cDaQ=2ctUm%)Km+d#U$ zX=(7b-Gi5^%)72e-hpxl?IR>eBYw4W=n`F7_t7lV`IP zhp=Shimh>(FE@Q{+mm+JEa~Wm=40M^0jqRSF;m6m;9_viB(9jmYYktSI><@I^jpPz zf#i|2w|9f-EPm)~tea1}d{+{0B-UKbE3W3{=4ENs75uVmaMd-KZfv<)eA``fw+M4L zidkj#R#yuaT(@G^+t|RjE2&L>f3?)T@fb(8?rM<7yC*p-H7^u>w-M(Wmp-0{)PGXu zeY8V6n)}G1gRwjY-!^{ZTR>B~fRNG6o{2~isTgfhyR9DSdHCzYk8@Y5v+4J|?m0?- zm|#ndV*ZZgtjH+-Q)p^A%&SvM3)fmE$+L$*Rj4Z67{FeUPr-+KMUiBh6{K1qPD7Gm zR-dX|v-$*Mdq3|;ooufX%GDLTidkFBg=d4Ed?@vCuvXwN!QVUE9dBYdVeOfmo;Vjj zI5HJ!h(^xOgkqB;a}g<&+V{vP=WoIJzPmm>~GWfr)UL60{k2? zshuE+AnK%j_{wNvcthfF>%d|D3YdET!WUBC^4c=A}N`3B}?3ZjwO&}rO%T!TZrp6Z2^D3&npU}tnX zHg_xaw_^c5@*&1H#qh+YEveoD93toH2ZZdbHz%C?y$Q?YSbXNGnRBtp$Wvp{ncZ%L z;bEjhfwJg)x#~j2dATvTp*(jkB!dI07A!IJO=Z}+j6f|~?4;9ti*{4;oH=;gd_t~1~3hhGoP@(WOXVw~TC SODDRF-TAz7gAq!0obo@mwQctR