From 1a583779d379b9c74d5e9fd700d807d2e786d2c6 Mon Sep 17 00:00:00 2001 From: "vn.py" Date: Fri, 17 May 2019 10:12:55 +0800 Subject: [PATCH] [Mod] add module_local for MdApi/TdApi class in pybind wrapper --- tests/trader/run.py | 8 ++++---- vnpy/api/ctp/vnctp/vnctpmd/vnctpmd.cpp | 2 +- vnpy/api/ctp/vnctp/vnctptd/vnctptd.cpp | 2 +- vnpy/api/ctp/vnctpmd.pyd | Bin 877056 -> 877056 bytes vnpy/api/ctp/vnctptd.pyd | Bin 2007040 -> 2007040 bytes vnpy/gateway/ctptest/vnctpmd.pyd | Bin 877056 -> 877056 bytes vnpy/gateway/ctptest/vnctptd.pyd | Bin 2007040 -> 2007040 bytes 7 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/trader/run.py b/tests/trader/run.py index 31b247a3..947c1047 100644 --- a/tests/trader/run.py +++ b/tests/trader/run.py @@ -7,9 +7,9 @@ from vnpy.trader.ui import MainWindow, create_qapp from vnpy.gateway.bitmex import BitmexGateway from vnpy.gateway.futu import FutuGateway from vnpy.gateway.ib import IbGateway -#from vnpy.gateway.ctp import CtpGateway +from vnpy.gateway.ctp import CtpGateway from vnpy.gateway.ctptest import CtptestGateway -# from vnpy.gateway.femas import FemasGateway +from vnpy.gateway.femas import FemasGateway from vnpy.gateway.tiger import TigerGateway from vnpy.gateway.oes import OesGateway from vnpy.gateway.okex import OkexGateway @@ -35,9 +35,9 @@ def main(): main_engine = MainEngine(event_engine) main_engine.add_gateway(XtpGateway) - # main_engine.add_gateway(CtpGateway) + main_engine.add_gateway(CtpGateway) main_engine.add_gateway(CtptestGateway) - # main_engine.add_gateway(FemasGateway) + main_engine.add_gateway(FemasGateway) main_engine.add_gateway(IbGateway) main_engine.add_gateway(FutuGateway) main_engine.add_gateway(BitmexGateway) diff --git a/vnpy/api/ctp/vnctp/vnctpmd/vnctpmd.cpp b/vnpy/api/ctp/vnctp/vnctpmd/vnctpmd.cpp index 6e53c87c..e05bcdd4 100644 --- a/vnpy/api/ctp/vnctp/vnctpmd/vnctpmd.cpp +++ b/vnpy/api/ctp/vnctp/vnctpmd/vnctpmd.cpp @@ -809,7 +809,7 @@ public: PYBIND11_MODULE(vnctpmd, m) { - class_ mdapi(m, "MdApi"); + class_ mdapi(m, "MdApi", module_local()); mdapi .def(init<>()) .def("createFtdcMdApi", &MdApi::createFtdcMdApi) diff --git a/vnpy/api/ctp/vnctp/vnctptd/vnctptd.cpp b/vnpy/api/ctp/vnctp/vnctptd/vnctptd.cpp index 75686130..af1b9b82 100644 --- a/vnpy/api/ctp/vnctp/vnctptd/vnctptd.cpp +++ b/vnpy/api/ctp/vnctp/vnctptd/vnctptd.cpp @@ -11150,7 +11150,7 @@ public: PYBIND11_MODULE(vnctptd, m) { - class_ TdApi(m, "TdApi"); + class_ TdApi(m, "TdApi", module_local()); TdApi .def(init<>()) .def("createFtdcTraderApi", &TdApi::createFtdcTraderApi) diff --git a/vnpy/api/ctp/vnctpmd.pyd b/vnpy/api/ctp/vnctpmd.pyd index 20f263a8945cf0c23955ecf9827fbf2cb7e6369d..476c65118568f76b488d7fbb8cf52800b4fdba28 100644 GIT binary patch delta 1227 zcmYL|ZAcSw9LMic^Wi4#g@>r~2`1qKEC@-`V8}*G6w53trX@WsK~gdmq&BIhHpXTl z=bK31Sy2iFQ@n|g;;0w1vNQ^r#o)G?`AQVD_5I)N&KJM^KEKcZ_kXzm?rd|Vwz*Qb z&H6gfwh`*h@ycNjX7YQe?ZIq5DCR6)kNhZ<%SVvA^1pipS60QJ`OSlNU zEujynk#H7xM#4$pzYkE3~bpD(G7h5N5p>M(z=K? zV6un?Z8x|vLbO5K2Bu?d0T+ZNe}(kN_yYJ|h@Q@%)(2G~hjZzf3 zI8-ejT&+wAK-CeocSG(Hpc;q@D{2$UOw_WXwxODdGPK4fiZ42Qowy@#Zmv~F=hEw( z6Ny_oo5c3b>uAIQL>wX>k$^aeNJJzdl0Eaf6#sfTzDxX56m`6&B8DYtrxOYlA4Vc zQB!(jgd_+d8BFO$B8rldR#YqBNH6Njf1?*MLRjDDZaZH*dp^(S_dLJ5`|Zv-o#&j+ zb2}ZKIc*z7Rmr|cSo8J5e$>|d6d_N_I>C)xYcdGM$j|?L^A#drHl+v$rK}UmrK}fp z$ku$hFPEA0nNSy18GH-KHj`GM+Ga`?Xx?V}PWxy8sgkH_K4-^GJlx6Zqle3Uw=-F9 zCdiev4e&|iyPb1hcvNeG2jRpKs>CX3Y@zjzpi@2fYa@h;WJ5jDg2 znvI2JF8uJW8rZ%?@s+1Mi_LHh&7%{m)cI9nOAvTV#sJVOqX=w}aRvBDMnCY7j7z{a z8Rvj$GEM?(WgG`a$v6ruAawLvhQVEdP>Aof3<8TbCF}=Y*^tl;e6}uO5756Rp%a)S zq1kvH+_*~GY-|Oq!fXep|CW6N^@sTs_~tM24zsZmMUzyRjXZcjlm|+sBYyIfVd&sc zahv{lMv{+f=y>PIV}kn$FP=TAIPAzRldITvxFk3K0q$R&(uZ4eaIdNH$F{VK1NBM= z9)^2K4g0pQh==7~kUMM(_gS1!W26o!3Ma*lliH&wHRg5=FdKLhe=Obzys)E!FMNL9glR9!S(lrNFNh*hwgHF-1Bz9bitoyNk zg4VUl$O@E|6ssr^>I|uk3z5M9R0FAHMFpXnNbxP*c|d8w z^S(Mx*FBTXBBBt{h!}(lu>%o{h(pACXR;F(*NX8~;=f{;C`2h@>#myFYFC38CbE_Y z)*?#!)J#c-vgTPdsHM-^yJ}E#r!`4$-?dHb_VK=TwjkIUGvd{BsDsD%1`Ak*#dKXE jD_x}(IU03KG0VgtcXg-Fs=ev6iTAbakauD^@#vlZ2!zmr diff --git a/vnpy/api/ctp/vnctptd.pyd b/vnpy/api/ctp/vnctptd.pyd index de767e0f81725fe776b18b7d0503dee4517abaf9..c78343e5508b8a7ea16bf3aa71fd2897a65d444f 100644 GIT binary patch delta 8203 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 delta 8267 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 diff --git a/vnpy/gateway/ctptest/vnctptd.pyd b/vnpy/gateway/ctptest/vnctptd.pyd index de767e0f81725fe776b18b7d0503dee4517abaf9..c78343e5508b8a7ea16bf3aa71fd2897a65d444f 100644 GIT binary patch delta 8203 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 delta 8267 zcmYk>eRNax83*uNpirRH@^Wb^EiG8JptwRuR|}(2S`1h)c11%)%!){O5yGoMj@~$k zZN+Lpq~Z9o9EDP+LWgK0YmXVaLqx@>Lo*M<$U)5jF}#|Au6v%}w|VFv_vHD0o?m{= zFS)(<=Efa-)E#`(>o#(WSDl$to!gn*N=mXjW>PLG8QC#gJ(@b=^f<9Br{g|)Jb3Qw zP8&TAEF0NjRgb2Qaq2OY_s&DVjFDaaCIEvMF6F{`|IpeLT#IHalHPH%jo)0MpJulL+i)v&8Quv%oZlo>fxsW!Z z=R}%DJ%j$d1F;lMJJMymZX43+vuaW+(r)xDNPhIpNOkCyA{F7iC_);JULn#6UXs!1 z$wxedHJOlnSZ^lMhi&mtK==qV>qUS>@MbGdejzzNp=`_~lMmiQ(Z@vr3 zkDe203wjQu8uaW))6laarJ-jQk#lGtpb6Dm3Fr8R*53H1wiK2e76H(mt#=jI>%G#0&9q|;cEAL-bS>dp5d8Gbaqh+EKXK&nB{jWi8C7g8E}PNd7H z)uaxj4lK!zv>QDek`p~E(i8)4h6S+zO*7Ittf>?!f;AN(wV+ps^fY?;NVVvhklI{b zU38GoM0#blN@+-2ora1U;+M-+O3=xkc1sgd9BIZf)r%oL{jf?=q}@wZiXerTs1!yT zjTAzvSgd+Mq$d}38T{G;h^-FQY(qM^P^DI+o00rTBOg*dACk5}B`?ys`6@Laov2gE zjno&(g%q=Qb@BPni8zBIB?rC$~Fl_J@Y zijbbFr5>IC3K5UaQA6{QMk1MztTxrlM5?=2r8K0C_o$>HeLq{Jgr+{iG$h(p`2#Jh zQN0+_8-L(rc%q1ht2tJt(YUFq^hD5DaJPC^80nx@r4Z78?@}ps3L%r?qZZK3+uWL27}e07p4>0&cAajPnesC@Hxsw|}Pc!?_W zsmwxYqVkvDD$S(wvtlkQ3ix>!$1CQQ9{Py!qltRJn)HYz(tsj`*IQ7HXXw&W@GQTdTEQq^9n z{U{r#+=N6uS#!B_*?%I;P+#f|3 z=T%KcMFEL^{e*Na+4$EI+FLh;_)?ypsE?*rZ09mDnphvsw)v{jAJ*sfCj0#g8AmTn zzcij~%vE#7j;@jcv?BdSgGV@$f3cEQte<4^tnD6G*+BFY(@G(FxAY54AyBN~;o%1jzI zf`?@YnTQGvwkwY$SDsHcjwvQoNL0pjM5u_Uoaum2DNzN}9w9T)bfy=DEJV|o8k1yH zTFIuetxZ~`jmW|@U&u~0o5?EVAgW{fy^xb=A=6kP7tw=ESxNHX=%vqNHBy9eh|}%N zr;_`c2ZurYp(CO`bpX`o^4Rx8{ZKXWYoa*j>JA?JoG6aVy0Mb^G2sBFSjxIkGzfi& z^={D+R82fdGz?wLW3LyDK-Ik0B$duKMw7mRNB**=dl%?FAL;8^zZZ?+`D<9iqH(C& ziS~;opqqK@4pE#S^%q#55jAiY)n8(E3FAzw?_sSI#o1VYm$gb1XKej_))G;i)%Aa{ z=8NLguODO`z-sV+p9j|m`iIOHRwv&HvpS{gAF&=2wLt&P8WOcae_-7!YJ;9-eNog7 zy~1idDeM6M%Ip+%Lc3UNMP1PT#iSLYZs<_fTSOb6gIGgp9gE*!#Ood-Ka!_X|&YS9QZn{~2i z6gqsj9sbwD3u^@}>82J2IzE>imbtv|uMTG)-j z8(8OwHb6bB7Ev#>o^^t#54xE(N7N5}fwgZ^4NoihCFZ#7Ds9kRtY3=;ps%rhAR2_e z&bnJP1bvg$CmM$CVf_=SflogI{wwoR861Va#d?ou4BE+R7L7v>vW^u^KtE(1CW>1I z`un6t?0>Rn;=Y2eCXR{X-h-|t{#+FICv-J&hbZo0=pXT)YY|m9I-2xPSiPdS8Di*P zF+VDdJ0|*nSRWKMtD7A9Db`t{7U*}ZrJ`2o53Hj_ZBR9Dx~SdgG4ZA3g{sE^{gJ1L ziaMb`vmO$4LC>=86Lmwcu)ZwX03DP|+Mv|n(~lRN#k^7m`=HsZb4C5on^>obwn8Ve z7Kye&?_j-FGyt8>+Q$$Mg70KL<4hiaLeQD45z#R8F4hC05$GRT-w=&Lm#}UVjX~EK z%x>X0Sm|QX1hkRI)`)8AR;Kl9Jk;M8AYEfmE~P<aVkYFN!;^`cBrcDDKK);{BqybBlR*h~n<9{ua;hOt%_M9t+m-HnU3xTcPc&b)q)X z*sE7}UkuvMgF5Bl?tt!N-6iUT?q*%#N`AhE3*5#mUo<>!=w8+ZGDSm=iSH8i_L%rq zQD2XFuM_n{)e9cPitDe|9ut2h7vycwclbs8T{Hj@o4%$%DHm)MH*l#)f;$ zYb+9u^q6>+OcCud@%^GP=m-2FZj>3~(8H|bWo!Z(X1$WU^!DJ_6W#cl`8#3!#G;>I z{Yehk_!&k&#`>;|#ZNVQjCJb6$xjqN=jbO{$BE)MAN@3ImS|BbuD>oZrwHT6BR#=- zYH4y}v--V9?=_P2h^Pgc&ibAxeyGw%vW}5u*f6$`btsgtzwF=%%)iRM?SNLW{vhgv z-oyHts0(Um{hO#8x|nsRXajU3>$5B6`pXM`nR%TI_CZ@&r(WHQp?g`!iMB#JShGai zpkK14hz6kXk$nAiN_LeXxK|$OML9BupuzOF(UzlSYdIIB*POTAl-)l$C}UfBR(^BTl66OW>vmIV zZRW7)%hTEt)wlaMtomZ{!3*B{_<0j;*|c5T9zQ=Kv13%$pmdEc{I&J;$S>e|dZe?D hHteQ!jsB0dTk897&uQ