l5~quAY+v=PHFEK>M6GFl0}sMOqV
zBk_q{e41Fd95ra1*hyLSBN)6Mem5&OlyDl)zvXx9Gjmz%ypH{y)&&>$6hzzJEQ<(
zH?mVcfXrFf>5v;DtJhpYcZeh(oM4nMp7JI-iZyic;HH_gdGKnm=F39c@s(6Tc$chB
z`6nxR%^KIH3lna|yR!L|-ddp+2%#p<{MG`;v#{VJ5z&$&@o@<5RD{vWJikE9a1v>U
z^Sr?J!x_>cvOx{u6dvbyctgIhHs4)5mo_
zwA4?`7S~NbqQ1bPBRG$niek_um3{-k5j~^g)7(3IX3;zPJr6M!gsE^Xn$cg(w~Zh4
z!DDyN->A1vuTX8UH#gsKb%b4BnSQ*u8IiQ;->hHYhCyY2l~MtLrQA}etD{6i;`0wB
zfGqT@#vn($;;FCD5OyE>lRZ1T9|VY%yIJG?WoSZG{?|7CTnYPS4O4QL>cR-&4tm}x
zaXqte`OPO`vm@RS$>Q+=RHXP%X&Z|&swRSxb^)88zUN%LTiu%>Bma$uNso*{qGtL2
zR<0B38YD?qdZbZNx#oj)W!K!`iz*0h#!he=4q4^Jjr6O{S4(ZSr0>?jQ%v;kZMcqQ
zU+iDz07XfSJ#UhIi<2gDr3i$es55Y^s4H97G0F#QPwkToJ-_m~bl{u_zXMU$42-SeQ9ld{PgS<|n=ko$&~GfrP|>73IH84N)8*z}t(c44G9C9oOlV(8!EfPF7e
zEbtQ*kHiKwMX0GFnK?z>KTz7nznTtA?L-acr=L5`4}#rts|6q~!D1$9&u!+XF^gBT
z7n-7ky6tEoKl`9(ywR3YzMh>!F7-aO)Hf7N~(VtmPS+uO#&44mDz__4I(#w-jz#
zT6g-4NmA79osOoH0d^k+*oXXI4_+Le9=)S9)?RCnN-Xf(3BS##M9q;X5J;EMt-8UZFeZ|{t~UANvPNWeSlll+HO7Z~!|+W4hFa3ypoKPx>M
zzBsRjK4iEp#GQ_G^N`+OTAm#_^Sp5{`bS4M`Wm>wDXXcuy`we>@LFS$@n!W`_1-y$
z!e#kfeF%#9ejFdLBH0>h&>3Igw^3H-<)WGC_C0n;UaLY8SIvh6=}4B=1bk=ah#g0%
zh=+dGB}b#D1zAq9GEWrlpomH!hlFNmK<47(sBX!`d4fIQSJADcbnNQ)5G$
z&AO5{d{P9vNh{W;sn%5ShauVsxY2dE7}gdHcD(WA4aH
zY9i(s$QrdmkU`Ti?OI~Yf=|SLDC1si;{Cew~2Oy46e
zZUPSL-Aj%?@2MSP;ECpje>x*ppE22o%d`Y(ZlsZu$_S-^@NxL`fDGval=lPT%BRWi
zQJ^eR%F!I3B~AW`^HNxHFa{)!F|tu^U-h4c?BNmVPVFTH0=f4x&faZoS}6}%@(sAJ
zE7kvCa@`%)ZN_g2^G6y8iFO=tczn@z=qrqBJBbmhGS^TZ4KWAK~7Z2Pd`aQ
zX}lgSGvcJUDGy^T4DG|Y6Cxh@diKFch^^GpqHuq8vjC{i_kH|Q-P1e8AqT6P&OeNu
z8mk^p^WxSm=?pI1pd-(nlnCpO3t#{_02+}eF`--`A}!rrZm}QZF^D5Yp;Yg
z-5?xDp+Sd2If?9R7RjoXjzwcO&^sZw*h9?%t=
zcA((O$9}GN=R9=4g!Go!BI>q{b&v0EpN<}^iH^PDgsJdI*Qz>0k_1xdzR!0g*;}XS
zF?sGKB*q~$xvrnQTV}dJR?fU2yf=e)n%e9X%(>*CS|I+wZDsE9s7gI`WNtg8rl-V9ZA_86JFmfo@;;8Mhe3%{
z6BhA4#7RA^p|2uSvd!NP>8@IS-frP$0MVTqIg55Dxwtt01#$||mS>fFiH-Hyk($gG
zc&hLZ&*Trc?Sq|TRGAn_uslP`3)T1NP+dsB8r2*y!p4xipsv0*pTM^uv2kn4?TRjG
zSHo2XCybd}l(_|96|TGZu^ar
zkmCtoFl$v8e9gX*O`S{2!(4bks=CK(U81k`ml{86v`3<{V4-xxH#4)x`pH6mD$*IpHDe7m}+4
zaea8%H9aO7H({Er>U)lG15@Mu&GGB?x$xM`JGes6-hOlYffn;0ziwQ+AEdk7`%Scx
zTt2!*>s6?!7P!rxz>zQsiUF9AmE;CV;QU1aD>PcqtxJQbHqV`i+znwE+TBooqHc*H
zoot*{^Lr?9a(eNTFvX#8Pde7EWLv*!?l|aaH`W=7-yI5NHvMk;tCo4-TafmUG(=bgx^6mMSw_VDk;f@oHX7K
z3;_x4t-dJg;l-mkm7W8z8$O32>5T!pmd3daSZ(|YIX-e0S@>(>LKb~3m!V%<7S^NpUx)M@$rWJYI%
zK5@#oF)J!73BF?7Ee=Up5S
z=|{~%Fp=Escq!wgog%jnv9ZGsl~0AJNkTTUCP}GySNyexZ#*wkuj(~%dL$65R;+1t
z(G#jQa`t_gjCeP06B0fhsSFO;h!kv#EyX94b?j_){2KjtCiO)QV5cZz_WNt#7VWsl
z-wJtqvmsP2p6WPyo8(jy4kNgD3oeRMf(+;l!T|qB>>^0D@VCBeM{uzn$PTAiN#XTo
zyh?SYQ!?1+SJ&Wp%*nhWwj*Ek1fCLe(wXM?)^O=}+ueeg|(1o(xAw~u9QMyF2}f!;4GQw^{R
zj+CtBWwtiSV9@fASl}=*On;Z5MWnj)x_fVOx?NWqG8e*rdY4C3HK?S)@N05>e*Qq2
z3P^DSik;i@-GRD0@T~ktU$g%aacnir_QSK6vuQNa(yZ}z=e!SPbDppT5rMDNuo6%-
zp(yStPrSWGBT2N0JYAS{9m_Q3KSKHGC8PO*p(TAZ6*m9FJ)`j#|I!7XLms2lO#5kB
zc7zRD#fJ$Jcjwdnvt6)v3&6oNa6BkY80DA3boG8-PtVnru?jG>m(CtLw%*nAIjY|CrX{tqvhqnp1cz)vN(x)HZvCg&;9&K$YQs_li9}i^
zi;DEHO-#6zm0DDJdHIiZFVMSY&faLYofnlXq%eH-5d&iBkgsqVN$=SsK}m&x7F~5
z)_;woGt01@Wn|=m7L}T%)$2<0L6f${_@#NB=l$`rV)PuPtsbeGvg}Muyb&FrNcHD_
z$L;^qt^ebL$F%q97zu))*m7n@l05A!JH*2j^e6SfPaR_MSii@^+b+nHojuo2Q;e##
zA5aziN;>NKdbPqPAyM0}TMj1uxMlCfTU~2Qa;hMWY#d*VpV0xN82QM7oQgUkuVy
zj*CcZK|EH6!=!c$_PV_=ZEwKBv8J_M!Qk+c(vI|m?ANc4235cOB(&nY9cETIiIkPKF^=*K@vOEQ#@3ow4($N&g;!E*=C)zo~n7
zAWNrX!P(2x(JP>#Zu(Aiofc_E2tIUYFNCLMVVA#+)O*Y4z9?Ar*alzsd(Q$--Mz!v
zlGvQY2heo>ub}Hf6xZ+<27Ac^03}kBf6LS#E!s?M4p^6<-W2(Lzf+k&1zsu5YgtZ-
zM}8e4)BLW7sVyyQMGgB|_w6#{j3
zFDpAMXuqfV?;$TLzJRdP1zyxKjLm5&hxaPKN|L|=jHdc{~_dWC-(j?$gB#KY#ci>yy>4`w7|ji-vSg_Zg$m1
z2j%nEUvW?{4?RG>bnq1m+_!!F`Bj7N?+3pAS>QanWB%_-HoTBp=8_$jj&71ne=fv=
zqX2{M06>SssP*>8`j~xl6aRBb0GNb%-5~7&kZK(O4ft?Z_0N@O`k=`Ho%83P5lC+>
zwU;~Ap47mvn#u=%U;cI#OwV0o`Z{h1qm~?(+#wsJIzs6hOZf9^y*Dr9?!_;gicoy3
z-3V{>P#JEU>^ihaP31oX^^Rq4fZMgiF(A0w
zuK-$AK70iO}V
z{)cPnIDsjCM`KQo-?DTky18TUbN?tGBV!B#7XK6-lL*pB${+tM%L9=!q+9Pzns1HQ
zcX6){ph|cBL8AwY;FwWkfE{6x5q7@*XXn=-;G5UTB!AorU$;EKO>?iD)kXf0oaPSL
zUAD930E
z*0zN>T+I?%jn}R(rLL=A1av=*+gctgEVEQriF$S7!n>In3y1N_q3^Gs8h`GMq6S3h
zC5UXYYl{B1ROtedrzSEGTq0T&^5$@==Ty$;&qt@kHg3yOMrU;0-umj@gz1&IYNMsPZ@{91<+Vdc>z@!b?(d(t4H}g7ZKTapR2Wz$`@4SzqrRs<4rQ&as{bU1gC-MRu74vsD2D1B2=_XJ-Uca`)P;a^z-b^Ml^u
zot>Rj%KmS!^YX4h|Du8eT9uV{#e>|M+BGyN^twh$_!aIKFJE?I*ALQ2nFhb{9skaZ
z16L|G`a<3oWFQ_OlG0Mho{Z7IIVM<9dq!i9`PF?`-yRZL8r&sJUCzVM@K+CV-WXGoCV
zk=ng$iy6SZ{xgGv`ELd44%BuY&7~}p~<7dgC
z+@Zp3&ST~$;r{cFfi(K;h1|CgU{7w!t441QA|G^#&ve(5slQPzZe+Cbv1ByYW1>Hl`2CsWZ4ecA
zuJ08@+Tg{&41xX%Hv5}`*}(Ci8)mk!d<7BsxAXtp<0uO^;pu>qB2G$^XL7=gTKzU{rdF(-Fro8_CT|()u~b=hCXc%k8mKeZMT+vhpHXyazFiH
zFuE3|lCcZ~rl~?=eX*Oc>RW2t9%|x7G$VFn*Ke@@ZAj2nJ1gCh{|9||nH#F`>cl-4
zmoiC*@kQrHf3LylCq^F6fA5E4DR4M^mV;B)M{jAQbfhm8Lg5hHFCryn7)1cx#vyFS
zb~AwF;fPQM-8@~T&u#Df-%3s(^OIz}%Y|I)xH4cf{5P>TBV_)H$lE@AP<5Sd^#jIc
z57YMF$UJbRw{O!OJP<#>_7Mha@T6C+UR95ZiH$98eX;!)29v22@+1PZ3mOEipEp;h
zCh%okYelI$pcT8@jWgQ{K0fsTlLe4ksq}{eTK++N{fD#ok2`AuzUtswm-#Bd!lF?}
z$Jmy-tHlldSMbrlt{sHHgZtVMkUPd8o57rhQ2P3Hb94J_#ktd`zq{T4XN^Bf9HaaZ
zgqlHrlV2dLHuDFFRQ`TB{yM|<>wVxUV8Q?S_y2wWdm;YcUx!mTH#!OT|AG1TXNTw{
zkLAAza9n*j`{T!AciZuE7cOY8R*_dzi>)HM?_GAi)rw`f=vG_
zL)HM>jE9G3OwnD$LMC5*)7x3X&
z1^gCYRb5mH`8VwL2YLyvSkKoVcE5x8_yVe`)%})RcI}&N@EdsE_V(Q3SVc1TM%e4%
zU>zNuOnQzUVNXUuK|zx@$JQD9CjRF9bIi=SKYl!t50G$H1)$A6OflpCd7x-ef-v7t
zD>W$Hxl=gem(eZEntOmeK=?6<;vzJ!-nM_nY?P7W3j#}L5`}~T#p1w`m%`iT03Zqk|%5!Bg
z-qG-rR=%Dk%pLeg%%8dS>)Z<+-LZGS?UBHP_ZEIxO1Ji3`2_`{ySUHCEd#NE
z=nEy|5w&A=V-=j?F4&ybgs;(-!$o6}-LqU=GsQL3bIj(>R-v3yJUN<8+y=!y6_A|Y
zc5G^W{sFXNqhFRdaKGHkyC=~VCL@Xeu)V2P+McPTrL5SBqD^SH
z%o$l?l_TWY;$Z>WyG!v@&*tS{)>0sHDe@(iVNQ-iKTGos@Es)}D8I4b^Ad|OqrUj2
zEF_Y(~AMs|k;7ZG%V5eX}4rzb#?*lG+Bo_hN?r
zxboMpy(kA>?$*06VJkWUco8!1Ep8RTYUGBCi^KOF*oyf0k%&n@f5RF4(~x~VU#q&7
zmLy@9#O^dzFCpnTdERcMWaTsGbB@f6j7wa1n)&t3%-HKph5!2NuX&?(Xh-1_mCVn|vN+&>ohL&6zCxcyjvXOQpzOD-+Y?
z5Yux^E4v4dLMDRw;=9K(`PzOYo8zqnF>X=+X`Fu@-u+R@l=%Y2nIg3QBU(#Iv322V
zZd=$uDfx??;E|J|n@dtZA_@zo6qVWn^NNaIpJbhO*b+8y-)zvn?%bk@cWv2sL>yvX
zVXZ;HW8@E?WU0)Rr}H4CLvL!4TEt;&>r7DA&=Y6%R7Hc;T7BYjd>BUQ_SYu
zO5zfdZ5cuSnSueo111Y@Q_Xi!vYIzs9`8~a3TGPO@plyz6i#pk_)$Y#Q6Al!E(3%M
z*U1nDB{v1chWlVEjQFyoYlZ_oH$J{;0DPT>^&(Xx#vuPz3|
zf6233@k?7mp1(v`;4uH+lz$FXcL1-qbbtMpZYp#yf4dj|GY0zq$1s62t7*49?*q!I
zz!sa-+~tjagQ2W?PKjTZ9%v@7vYx(#iRpSI3dkojCnu*N_YU9N|CWfYL=ypVF2D8l
z=RQs`6&{%}rBNwaAbG=Ttzg3{`bb6bg`ciKa_`+2egmrihOvGV=9YOg`}fO63!Kg^
z`+CDiij2~i3}~b58JoL@incy=fHZ
zP*y3P_Ruu83hUl*@OV?Y77T;K))tE~A=n{9^Zs;JsjbNytE0M>OT$UlBh>AVetH5P5huj7_CESD2p
zXOiqnB9fBW$AlA5H^QksYqd)yP7)1r@!f5ET4v@2+)UERhvTJO{^q2sd>Btid`HSn
zVw>d#M<@(Mu)S*h1Lg?btVpMb_9c73cd5ieNcBbRDW1_9yxe-PZ*wYVyi>XC&(D_HO%E;iE+mkjADI~uX&S$(wUhH{
zrmfrZ`^RjdzHX^8;KZ`AN;wAGAj&VM!RoH;{RyLHj_j*sy=PYV+`{hv&r@~lTZA?3Vzj;K=3+_HD(olrr$#lSywL?gL#oW2AHt)D
z^5H;PfSJ3@*67(^BOV|kM1~vpW=y`-vqSZqN%b6VC(ieDM|4Yh+uGV5uf6*@17s7InOGw
zI0#g@3)QPPsVcJb(F~T86CJDjNQ&Kk@br2=%?}Q2VddMmZ?o;>f6A&SP3_kDMLR4G
zLS2@Mr4+$2B|zm|(PK>HR;z)#t7=QEJq(wgkWEmDqS#h#WblO^Mn3
zg5_PU@KOYF}=1AM+?#9^s;%Bz|d&^NT#ttTT&tC81(`;hkV1WE~q;R&P+Zu`{EV
zG+~5hbLVhO?_C9d1#$5~WnEoeadGjx;JjLZX>;e+xSdn$=YhM5KvQVnzkmKy5JO0|
zT6*u^a)L%)r~OGWZB--YL(99zMRvKuZ_Jchetvu4GS|#96uU|
zyDCJyslkwRi_9v7L2X>k8aNUws}BvQ@Q12ns@Snql>v
zIup@TCo=7`v9cQnIsH?k9$*b1)eaL(@uq(Ip%-LtuGV6wuPo`t0S1t6+!|*s`?-_e
z#uJ~0S#AV7x4nkNzW+r3X5elb<7KVX^BNjq*R6ZVJDpNv^zys!?^mwjM(eA17Z(>T
zz}l2O{6s#U_9I!wvR$vuD&Fk8Z)}`61eI08k|57SZG(BjovdzKE8x73mJLC`n3?3;W6wCuylIT!4sH1!R?fJbuwfutOlR6^Id8
z+OR_ige3x5G$CRFA#;=T-~5{&`IF~<_k8!s-oUxl985>kwTowcna+
z;V#@p&{)7t1ANArH~>#-dU~*%Yb;ZX&Kpsuw)qm3!v&zx-i?7WN$1MM#u6o2`>gYq
zeTE&JQk8yoIDa$BV)DxLds9VhwSI(i4D`}KE)dz{*KGl=J0*
zwRZSA@J!@N)xRl3MaB;9rZfWprRO=mdDrVJtxo7#_#L#Q@05O=VrXTH#Wc3#w=;`B
z6(C6I-J5PW*#SuZ*pqz!p9k%_h_b<=knyK>#)oSou{-gn
zlshBbVc4!`S<34>#bAN(>k{*Di+g;bRNzL^P1eYOIk~40F}xBtwD+gK%S@(sKan%u
zEi%s0iQBHgseU%J`!0wem8yE2j*7OXr~><{3sU&nuB+k-?XU-eaQ#7nR25f>lUAob
z_FEFi`3Getz8DN9ZIL^|$d~Z?T(r|+axfJk8&_nHTtZh~Jl=J}`XDD@uV2qA`vQ}b
zIriem#v%RL5H8cSBHOCA0gpF_hp1xLI~@{9CV`xDcgKuPPBNAd{{MLC=|H2_yPC?D
zO|^3aEg)NS5<%E(+o+^>M~n@TZ|Z}PAKrJ~RH5)7-^a#*PyV8D+k&mLXf)ae3hf64
zh?k1dyY17qV)sWx#fKbTMX;V*;qLLm?-kbq2}1=|ps4T?tVI-wFHg&lmR3&mu@edA
z?N~A?BO@c}EtND7S)Ut$&rQqUc;KDEXbweWT?h+Uj_dNH#kd+Ik1Y;0-N!ZqvDlhm
zy7;ldWs1rwCl~L2rR!D%*U8Pz1t2M8?UxnY@_k}DD@4|O0LOB-HZB@;1uJ=)C^bHS
zUt+;YuouQN`Wnczir~N4ZvFmMf0n6M&aGRw!X|T#98VY#BVuEwyKS{jZj!svPdAV6
zC0yFLqjPuQ)qP_Xf*vT*8Od?cRy63r@Rt)kb376T^o`Nu${zif8HTfL?`lIDj@Ov9
z#m=?Dtk+q^MEHDu$o~KYl@yw@v0QqAMuIA16`e(cjPo@VZ|D4XFr$V|L}19}0{Rty#VqKAn6p%K*qZ|Yue
z)}3V9bs-h+pV=?xp&$sL{v6snnV!w#6DA(Ty5Z$g*;H#}{LaR>Z)+#8PMg>reF}$2
zSbCGi>wge$d5<-sr*DjSmyrTsVO20)!5vte>~9N}MXB)C{6~Q(QBFvNPB6bM)_5Y=l{csFV1<{y$)-k5Vk+Ox_&~b%n{*tvNFvqEQXb9Y-%DO
ztQ1~;Z+kT~C8EJ`-i1z~SV6J#faKT;Qc#s}LJgKf^9r21COWE?;uIyoS62>&p(U$B
z6je>}hfc}K$^4cPIFhd>-Y+cpNOc2t_f0^PIN#)(9X*eZw*{KuJE*hlX;L9ZR$8K&8(1s_3`?o%|G%@t@k&GYzv
zOz#cWBX`60@ZBbr=YTUi5D|
z_1VxrPkKhjx(*N(}8@d0V2{_smm*@+>ND@Wee8ehB{^Y1@d68?`p?~vo8t-
zu-$G^5S7OHwI#|SrVXJU&Dz+yk$gG^8WkN)4Y3#+o0u>mS}K^NaBdmHn(e4buDet<
zen1W=HikA0ij^x@riPIl=~FGKTSE3KZ|jJ!WkZhLJo|k{pY7m!$Ux>Fu@(E(ou8kG
zs;*=vaP~?rn6wOn^x{-bVqJ;x59rlQVTA_vNB+KE2m`}MS&@vkV$@H)J@1dI<`iBc
z_y!30Olj9#6W#2?!WCc!!n@O~f?buk62aW1@Wdd^M4$6*FyAbF_^>;~2<8K38Z#1`
zb8OalILSswLY&?8{O6l(47%)ngh_jh=uVcJrsg?3)0OjQnh-9d$z=7LEY#MGA4|;6
z&hEw(5W(t#KRM41&Zdfj_U|*1-fJitZ`*Fu(Kc^i(d_qQCf4^VxLhPmX%Don`auz`
z&n6+dCQG0EmFoS*T$BG4K|;>Txm@lPtv3~#f)xzisSwv`@*zg2{f}(|6&kj+wV|wv
z%HgmlO+m;aWpm){hFTBL>p=rIx7naG$`z=?plAA)3uESK+iAKfxv}zOjZF|IkEwK2
zH|1v`_bGt+nwgt#h<)Utp`j>w&+zf^z&OM;bpxl7OL>DUaiG%6)RbO>FIku^TmHi6
zR3}4Nty~k0^-ajNk`v|^;Cm<`{$fs_`kAWu)+gZ7BoHaQW9EChT6jA9_XGdU6^q3d
z$rHklYcO}*5bGwT`;oiyt-o!jr}G>8E}MI>s>d!u^)8c>ytQj|1b97OFcT3G@pkMp
zaLQy3cByMY^$_n$%|YV%KUODtKzga_@2aXQmWlVpi&bwlyHw>7zVY)Vb+kW|7vO=V
z9dj}_!(PQb3|{?;S10ieqogUXb?kI=D2Z;?0b&G2MBDyOqy4K8JashP6D&tDGp$E~
ziO)*AK^CQ%r6mc>iDR-R8940-A6Koch=CpgCJwN84TwC=(=kN1ilE*US8ykR3W|&7
zduv-;$Feo2nGtuj{$#5^4x>vn-Ta?h8A|Pc`P=Je+=l9_Ms(iQ<4n`(tGE6O%<+jb
literal 0
HcmV?d00001
From f8275ed3b4a26ebda5ed4e4c03d172c0e0a62240 Mon Sep 17 00:00:00 2001
From: Trinkle23897 <463003665@qq.com>
Date: Mon, 7 Sep 2020 20:59:11 +0800
Subject: [PATCH 3/6] version test
---
README.md | 4 ++--
docs/index.rst | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 3d321af32..eebbfde64 100644
--- a/README.md
+++ b/README.md
@@ -74,8 +74,8 @@ $ pip install tianshou
After installation, open your python console and type
```python
-import tianshou as ts
-print(ts.__version__)
+import tianshou
+print(tianshou.__version__)
```
If no error occurs, you have successfully installed Tianshou.
diff --git a/docs/index.rst b/docs/index.rst
index 531e12c1d..bfb2ddfdf 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -63,8 +63,8 @@ If you use Anaconda or Miniconda, you can install Tianshou through the following
After installation, open your python console and type
::
- import tianshou as ts
- print(ts.__version__)
+ import tianshou
+ print(tianshou.__version__)
If no error occurs, you have successfully installed Tianshou.
From 62c2bf3a1d3a644b315261dcc6badf12c7c6688e Mon Sep 17 00:00:00 2001
From: Trinkle23897 <463003665@qq.com>
Date: Tue, 8 Sep 2020 20:17:24 +0800
Subject: [PATCH 4/6] bump to v0.2.7
---
setup.py | 95 +++++++++++++++++++++++---------------------
tianshou/__init__.py | 2 +-
2 files changed, 50 insertions(+), 47 deletions(-)
diff --git a/setup.py b/setup.py
index 175112c44..93acc4a7e 100644
--- a/setup.py
+++ b/setup.py
@@ -1,69 +1,72 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
+import os
from setuptools import setup, find_packages
+def get_version() -> str:
+ # https://packaging.python.org/guides/single-sourcing-package-version/
+ init = open(os.path.join("tianshou", "__init__.py"), "r").read().split()
+ return init[init.index("__version__") + 2][1:-1]
+
+
setup(
- name='tianshou',
- version='0.2.6',
- description='A Library for Deep Reinforcement Learning',
- long_description=open('README.md', encoding='utf8').read(),
- long_description_content_type='text/markdown',
- url='https://github.com/thu-ml/tianshou',
- author='TSAIL',
- author_email='trinkle23897@gmail.com',
- license='MIT',
- python_requires='>=3.6',
+ name="tianshou",
+ version=get_version(),
+ description="A Library for Deep Reinforcement Learning",
+ long_description=open("README.md", encoding="utf8").read(),
+ long_description_content_type="text/markdown",
+ url="https://github.com/thu-ml/tianshou",
+ author="TSAIL",
+ author_email="trinkle23897@gmail.com",
+ license="MIT",
+ python_requires=">=3.6",
classifiers=[
# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
- 'Development Status :: 3 - Alpha',
+ "Development Status :: 4 - Beta",
# Indicate who your project is intended for
- 'Intended Audience :: Science/Research',
- 'Topic :: Scientific/Engineering :: Artificial Intelligence',
- 'Topic :: Software Development :: Libraries :: Python Modules',
+ "Intended Audience :: Science/Research",
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
+ "Topic :: Software Development :: Libraries :: Python Modules",
# Pick your license as you wish (should match "license" above)
- 'License :: OSI Approved :: MIT License',
+ "License :: OSI Approved :: MIT License",
# Specify the Python versions you support here. In particular, ensure
# that you indicate whether you support Python 2, Python 3 or both.
- 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: 3.7',
- 'Programming Language :: Python :: 3.8',
+ "Programming Language :: Python :: 3.6",
+ "Programming Language :: Python :: 3.7",
+ "Programming Language :: Python :: 3.8",
],
- keywords='reinforcement learning platform pytorch',
- packages=find_packages(exclude=['test', 'test.*',
- 'examples', 'examples.*',
- 'docs', 'docs.*']),
+ keywords="reinforcement learning platform pytorch",
+ packages=find_packages(
+ exclude=["test", "test.*", "examples", "examples.*", "docs", "docs.*"]
+ ),
install_requires=[
- 'gym>=0.15.4',
- 'tqdm',
- 'numpy',
- 'tensorboard',
- 'torch>=1.4.0',
- 'numba>=0.51.0',
+ "gym>=0.15.4",
+ "tqdm",
+ "numpy",
+ "tensorboard",
+ "torch>=1.4.0",
+ "numba>=0.51.0",
],
extras_require={
- 'dev': [
- 'Sphinx',
- 'sphinx_rtd_theme',
- 'sphinxcontrib-bibtex',
- 'flake8',
- 'pytest',
- 'pytest-cov',
- 'ray>=0.8.0',
- ],
- 'atari': [
- 'atari_py',
- 'cv2',
- ],
- 'mujoco': [
- 'mujoco_py',
- ],
- 'pybullet': [
- 'pybullet',
+ "dev": [
+ "Sphinx",
+ "sphinx_rtd_theme",
+ "sphinxcontrib-bibtex",
+ "flake8",
+ "pytest",
+ "pytest-cov",
+ "ray>=0.8.0",
+ "mypy",
+ "pydocstyle",
+ "doc8",
],
+ "atari": ["atari_py", "cv2"],
+ "mujoco": ["mujoco_py"],
+ "pybullet": ["pybullet"],
},
)
diff --git a/tianshou/__init__.py b/tianshou/__init__.py
index d44b4dc5a..e03d8640c 100644
--- a/tianshou/__init__.py
+++ b/tianshou/__init__.py
@@ -5,7 +5,7 @@
utils.pre_compile()
-__version__ = '0.2.6'
+__version__ = '0.2.7'
__all__ = [
'env',
From e376bbc432ae9a66d1b2dd32b55cfb8bd1bf6160 Mon Sep 17 00:00:00 2001
From: Trinkle23897 <463003665@qq.com>
Date: Tue, 8 Sep 2020 20:36:46 +0800
Subject: [PATCH 5/6] polish
---
examples/box2d/bipedal_hardcore_sac.py | 1 +
setup.py | 2 +-
tianshou/policy/multiagent/mapolicy.py | 3 ++-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/examples/box2d/bipedal_hardcore_sac.py b/examples/box2d/bipedal_hardcore_sac.py
index d93660f66..4e123719b 100644
--- a/examples/box2d/bipedal_hardcore_sac.py
+++ b/examples/box2d/bipedal_hardcore_sac.py
@@ -45,6 +45,7 @@ def get_args():
class EnvWrapper(object):
"""Env wrapper for reward scale, action repeat and action noise"""
+
def __init__(self, task, action_repeat=3, reward_scale=5, act_noise=0.3):
self._env = gym.make(task)
self.action_repeat = action_repeat
diff --git a/setup.py b/setup.py
index 93acc4a7e..e8280f536 100644
--- a/setup.py
+++ b/setup.py
@@ -27,7 +27,7 @@ def get_version() -> str:
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
- "Development Status :: 4 - Beta",
+ "Development Status :: 3 - Alpha",
# Indicate who your project is intended for
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
diff --git a/tianshou/policy/multiagent/mapolicy.py b/tianshou/policy/multiagent/mapolicy.py
index 1a38cbb2a..74ab0ecac 100644
--- a/tianshou/policy/multiagent/mapolicy.py
+++ b/tianshou/policy/multiagent/mapolicy.py
@@ -36,7 +36,8 @@ def process_fn(self, batch: Batch, buffer: ReplayBuffer,
# reward can be empty Batch (after initial reset) or nparray.
has_rew = isinstance(buffer.rew, np.ndarray)
if has_rew: # save the original reward in save_rew
- # since buffer.__setattr__ is not override, here we use _meta
+ # Since we do not override buffer.__setattr__, here we use _meta to
+ # change buffer.rew, otherwise buffer.rew = Batch() has no effect.
save_rew, buffer._meta.rew = buffer.rew, Batch()
for policy in self.policies:
agent_index = np.nonzero(batch.obs.agent_id == policy.agent_id)[0]
From 96a2cc84cc74e841c23d61b9e6e25a2595557fee Mon Sep 17 00:00:00 2001
From: Trinkle23897 <463003665@qq.com>
Date: Tue, 8 Sep 2020 20:40:19 +0800
Subject: [PATCH 6/6] revert
---
setup.py | 86 +++++++++++++++++++++++++++++---------------------------
1 file changed, 45 insertions(+), 41 deletions(-)
diff --git a/setup.py b/setup.py
index e8280f536..789ea2d57 100644
--- a/setup.py
+++ b/setup.py
@@ -12,61 +12,65 @@ def get_version() -> str:
setup(
- name="tianshou",
+ name='tianshou',
version=get_version(),
- description="A Library for Deep Reinforcement Learning",
- long_description=open("README.md", encoding="utf8").read(),
- long_description_content_type="text/markdown",
- url="https://github.com/thu-ml/tianshou",
- author="TSAIL",
- author_email="trinkle23897@gmail.com",
- license="MIT",
- python_requires=">=3.6",
+ description='A Library for Deep Reinforcement Learning',
+ long_description=open('README.md', encoding='utf8').read(),
+ long_description_content_type='text/markdown',
+ url='https://github.com/thu-ml/tianshou',
+ author='TSAIL',
+ author_email='trinkle23897@gmail.com',
+ license='MIT',
+ python_requires='>=3.6',
classifiers=[
# How mature is this project? Common values are
# 3 - Alpha
# 4 - Beta
# 5 - Production/Stable
- "Development Status :: 3 - Alpha",
+ 'Development Status :: 3 - Alpha',
# Indicate who your project is intended for
- "Intended Audience :: Science/Research",
- "Topic :: Scientific/Engineering :: Artificial Intelligence",
- "Topic :: Software Development :: Libraries :: Python Modules",
+ 'Intended Audience :: Science/Research',
+ 'Topic :: Scientific/Engineering :: Artificial Intelligence',
+ 'Topic :: Software Development :: Libraries :: Python Modules',
# Pick your license as you wish (should match "license" above)
- "License :: OSI Approved :: MIT License",
+ 'License :: OSI Approved :: MIT License',
# Specify the Python versions you support here. In particular, ensure
# that you indicate whether you support Python 2, Python 3 or both.
- "Programming Language :: Python :: 3.6",
- "Programming Language :: Python :: 3.7",
- "Programming Language :: Python :: 3.8",
+ 'Programming Language :: Python :: 3.6',
+ 'Programming Language :: Python :: 3.7',
+ 'Programming Language :: Python :: 3.8',
],
- keywords="reinforcement learning platform pytorch",
- packages=find_packages(
- exclude=["test", "test.*", "examples", "examples.*", "docs", "docs.*"]
- ),
+ keywords='reinforcement learning platform pytorch',
+ packages=find_packages(exclude=['test', 'test.*',
+ 'examples', 'examples.*',
+ 'docs', 'docs.*']),
install_requires=[
- "gym>=0.15.4",
- "tqdm",
- "numpy",
- "tensorboard",
- "torch>=1.4.0",
- "numba>=0.51.0",
+ 'gym>=0.15.4',
+ 'tqdm',
+ 'numpy',
+ 'tensorboard',
+ 'torch>=1.4.0',
+ 'numba>=0.51.0',
],
extras_require={
- "dev": [
- "Sphinx",
- "sphinx_rtd_theme",
- "sphinxcontrib-bibtex",
- "flake8",
- "pytest",
- "pytest-cov",
- "ray>=0.8.0",
- "mypy",
- "pydocstyle",
- "doc8",
+ 'dev': [
+ 'Sphinx',
+ 'sphinx_rtd_theme',
+ 'sphinxcontrib-bibtex',
+ 'flake8',
+ 'pytest',
+ 'pytest-cov',
+ 'ray>=0.8.0',
+ ],
+ 'atari': [
+ 'atari_py',
+ 'cv2',
+ ],
+ 'mujoco': [
+ 'mujoco_py',
+ ],
+ 'pybullet': [
+ 'pybullet',
],
- "atari": ["atari_py", "cv2"],
- "mujoco": ["mujoco_py"],
- "pybullet": ["pybullet"],
},
)