From 2af96d0c2a876b4c51416efa460859f3d08ce256 Mon Sep 17 00:00:00 2001 From: Tarek Ziade <tarek@ziade.org> Date: Tue, 13 Mar 2012 14:52:55 -0700 Subject: [PATCH] starting to reorg the doc --- docs/source/_templates/indexsidebar.html | 6 ++ docs/source/_themes/bootstrap.zip | Bin 0 -> 16034 bytes docs/source/architecture.rst | 18 +++++ docs/source/cli.rst | 7 ++ docs/source/conf.py | 16 +++- docs/source/configuration.rst | 19 +++++ docs/source/images/circus-architecture.png | Bin 0 -> 25229 bytes docs/source/images/circus-medium.png | Bin 0 -> 22717 bytes docs/source/images/circus32.png | Bin 0 -> 5025 bytes docs/source/index.rst | 90 +++++++++++++-------- docs/source/installation.rst | 11 +++ docs/source/library.rst | 6 ++ 12 files changed, 138 insertions(+), 35 deletions(-) create mode 100644 docs/source/_templates/indexsidebar.html create mode 100644 docs/source/_themes/bootstrap.zip create mode 100644 docs/source/architecture.rst create mode 100644 docs/source/cli.rst create mode 100644 docs/source/configuration.rst create mode 100644 docs/source/images/circus-architecture.png create mode 100644 docs/source/images/circus-medium.png create mode 100644 docs/source/images/circus32.png create mode 100644 docs/source/installation.rst create mode 100644 docs/source/library.rst diff --git a/docs/source/_templates/indexsidebar.html b/docs/source/_templates/indexsidebar.html new file mode 100644 index 000000000..2560754d6 --- /dev/null +++ b/docs/source/_templates/indexsidebar.html @@ -0,0 +1,6 @@ +<div> + <h3>Feedback</h3> + <ul> + <li>Join the <a href="https://mail.mozilla.org/listinfo/services-dev">Services Dev Mailing List</a></li> + </ul> +</div> diff --git a/docs/source/_themes/bootstrap.zip b/docs/source/_themes/bootstrap.zip new file mode 100644 index 0000000000000000000000000000000000000000..a6451bf4a2e1c39454b3ebab0e8379e1d0555acd GIT binary patch literal 16034 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 literal 0 HcmV?d00001 diff --git a/docs/source/architecture.rst b/docs/source/architecture.rst new file mode 100644 index 000000000..131426fa7 --- /dev/null +++ b/docs/source/architecture.rst @@ -0,0 +1,18 @@ +Architecture +------------ + +.. image:: images/circus-architecture.png + :align: center + + + +- Each program to run is called a **Show** +- Each show can run with a certain amount of **Flies** +- A **Fly** spawns a independant process +- A **Trainer** is responsible to run all the **Shows** and make sure all the + flies behave corectly +- A **Controller** is a set of actions to perform on the trainer. +- The **Client** communicates via ZMQ with the **Controller** to interact + with the system. + + diff --git a/docs/source/cli.rst b/docs/source/cli.rst new file mode 100644 index 000000000..c2a12b511 --- /dev/null +++ b/docs/source/cli.rst @@ -0,0 +1,7 @@ +.. _cli: + +circusctl command line +---------------------- + +XXX + diff --git a/docs/source/conf.py b/docs/source/conf.py index 1348aa8e5..49453310f 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -91,7 +91,11 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'default' +sys.path.append(os.path.abspath('_themes')) +html_theme_path = ['_themes'] +html_theme = 'bootstrap' +html_short_title = "Circus" +#html_logo = "images/circus32.png" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the @@ -133,6 +137,16 @@ # Custom sidebar templates, maps document names to template names. #html_sidebars = {} +CURDIR = os.path.dirname(__file__) +sidebars = [] +for f in os.listdir(CURDIR): + name, ext = os.path.splitext(f) + if ext != '.rst': + continue + sidebars.append((name, 'indexsidebar.html')) + +html_sidebars = dict(sidebars) + # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst new file mode 100644 index 000000000..08c82424b --- /dev/null +++ b/docs/source/configuration.rst @@ -0,0 +1,19 @@ +Configuration +------------- + +Circus can be configured to run with a ini-style file. + +Example:: + + [circus] + check_delay = 5 + endpoint = tcp://127.0.0.1:5555 + + [show:myprogram] + cmd = python + args = -u myprogram.py $WID + warmup_delay = 0 + num_flies = 5 + + +XXX put all options here diff --git a/docs/source/images/circus-architecture.png b/docs/source/images/circus-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..01aedde913bfb74d1096f4260c56a10a623986e2 GIT binary patch literal 25229 zcmce;c{r8r+dsM_V`NOEGE_nlDkMW#q^OXPkeMV?C?aGgNs<&Yq)4WUGG)r#KoiP5 zlp+*m3j1^Qec$~%_PhVt`#64kABX4hJXq_#*L`2td48tzj?g{4pOtwXGlfE7J)lL^ zr%+b#Qz$f<jP&@)QMO%M@Quk;>-bp;Wfd3shlX-1iI+kVq#U5C8k|oW>po|E)P9+M zaxW9pw(tO!y6DIZ$K-qi4eqt!CR^)@BOm7(`4xE<<vqy%knU-@p(xU1|C!OOIt5B$ zZjPf_=IRFq+a&jGzkPXXp;m5=W1sEjq<!OWJcm~tK79E3fz?gPU%g+S-F!)qQBYV| zScW6JgN~hpL$9vBK$S|Riq!q@{I<oU!=dY$w1UTo;Kyz*9EGotbM(sIbK@+T`eOg} zlUT+}g5hQ>IXF0unTm{R&i!sb*_N@NO@8m*43i>9UKtxkPEOA0_9KZhbOL_Uu}c#N z;zTTa%Duy5Vj4!;GB~)o4TjEygoavud6`J($Sdo_`{m6Ymx8hBZ|_EWD)x4DclQqu zhg1hK432k~X<q2UhqP(jEWy7&W~0U(Wxu}u{y@22UoJN{xA4eFwZ-}0Za)V!IyyVk z+y?7iy}at*s4TNk9Nyhy9dh5ZQSp30*|`bf&6`*5^%@g>Tm1cfc2KG3sIa(rbLthG zZrbt3cC$+h6Eu|eJTvv%vS<2!{D|(UxUfl5a&>HMtgd+cGrtAd_3PJPUNpc}KdzV& z)7k1+bW_1oJSi#3^~+1X^XJb~C?9iAgfVf6^fd_hQ<s+(S5^G@_U^v)`AG|^hDMrm zcWLG)L(5{9-YZE->;F#HvQ17;ucVkh_vOp4TvE6=+s{z``{RjB-)Vf*>v!5}>pLIY z|6G`;91LPpZVjXD^G?w8^;H}j8#6zDB7%CUpg`(<mR`pD&*D1H&XOxttBTKjma?vA z(aO}{<<hf0MnFaKPjPs7c$ULuWxGLKj+K=1Kc7z1xBU3=qtL33d3vmKD&*;zPfxOy z9j<$w2;tl7wcXUrO!~qfC%i9hZ76GPiqZuOdwYfp7Z$9}MB%L>>qjgHe-1WK0=|F9 zS-VgyD=Vw{nTK-s-o15y@vhOcv*(>U3TS$IdO9B4v-S9lO1yt?Y}HyxQ_(g*T(-6r zJ|!pe6N>B7U+<vdl9CceHnxVuo%TA9BytT;7rY*9i1~>#<=x)W)D)PUyrKRwU(m>i z!{#kpEO9<shY#0xm7I+-U5iz>Cb_Lv6L-qO);6T0!#HU8^HZ0G7ZF@;%S(P4E;)9u zZp}-sO>S&#T=99Ky>f|8MMY(?_h2Tcb^T@43ZLIslafq_O3CFJxx7)<@#DjY*iHKf zCi`oR%g;*>3=FVu+<0Zr*)OSwlNGR9!`hyHDD^zuRd$YTr~T^}xG{xZKTLG6wy#{d zLjQRcGjk2@GzVUD{W`az?<{-E4GDGJtkQE6&hNhl;xJ45r2@ysoGgbLV=qyKIVg;j z;P#XLX3spnUAvg98NH6_$LFW*%iTCg+L_PATRs^cJQ&$GIG9oSTrWej=F6+wA-KKF zs;a8<zu&%l7m}JPxad>blByaMjCVb%xCU#6=gr-B@hTVouwYNPo;$ZcS;12<R!gTe z_r(k9->Ek$4jl#k+D|<P>senkG^h*5R(<}=Z*FeBC6C-%^DAF9g-}@HIDc?Yk-f&p zD~lgD-u<s{mwlYCm)EMua|efSSG5fKpuLkfB}-W5U`H$6DphtC$+-j$j`(w>f<m!c zENUSJ;voj}<%PyG7aLktr%khKLnXBwicA*YlvmO&tHjIGGH@JQS*ja5W8V`c8P0gA zs!BCjKQy{rRXyi}T1MNX!4IlU?Ay0*1>>3o;}8B;;gb(f+2+~N>ac6RAWc7ex+Nlf zdk9rn_3+`<+{|<~GKm*UBwg8$mvV+hm*=iq7ftV2v<|DQ{$X@@R##(F6Ai`qxRU>g z4<VP!`-2+w<Hemu>g`4@g^u5e4sU#GV{5C*zS8)_iO~ip?4H#;TP|_bgqq}j42#Ca zwf?9{HE_1Ev7rPg+YAY8KWNi*kX!cG#*Yt1)tZ``EIR~+qvB&@(*)Lw$2DO!*3~XW zEZu*xGyID{KF$@_uhGiZ&Q5siRtB7sZqA4K>M0g}Y9<T+dclL#=_E;qECcbNjOp-3 zMhX5>H~w|en*Jl(IASyL=79$@-&P7Z?ppUcRcBfyQ<>vLPhk4G=z8AWxY~P5Q)AEZ z*b4jP8CY&|acrksEi9~k{po11#5!u|!4J{t3yI67qEzY)&34agDz5CY944~AmR|dB z7k*^0<GVutg0LP_t>)6ZhOcItRGaKyUUw!dVn>$a=dl3RsP>%7Y*IY1nbYe7XZ%r| zuZ5h2ca>OWM038r!2Ch1kZBqG6bnWF|N3p%E<iMfN6KH(Bp^JT`KWUZ{r~#ET4!$3 zyTn3S|3CbeuFt-b=8pf;9{Sbm8F%d1Ver6!N#aEDiwhGKVGA=8QD)}ZzVqMi^U66V zElr?e1&4+XV2cYIYEXwcYU%Zuwrt(HNlJ<xwWtBLPA|t$Vs?Ihpgx+v<C)v0b+S(3 z>S3!B%dadh%w!nln?LjVaZB&%g|QClu}?+X%QJWxs#D;zXYv_6Y#hgYado!5&oSEZ zcXlv_SJ_vdlZ%UE!-i<QhtQrqd>3ZMHN3oJd%VAH*t~i3%_moagI7{DHHG)=>AX9m zPBkDGcT2&!3G*bS3p{~=fwR9_c39fm->-aKUr$fVu=>U9&%vK#ojaX+%1c_$D0=@| ziOsK@ZJ<&52D{#&=o9CMg^{*R4!hO`*<w%Nm*;;C9f&AS?2X%c<Z5!V*?>=Y)__%q zpm^Y#ZH5#IkEH2rjVI4`<A6-<g!EJI?$NhoWMrTd)5*!n?K<^#B`PS_*27dEpVEuT zH*fOF@7dGenx=kp?>R|RQ`5e0-<bCA->-9P7t<v{3Z>NRM<hxmE#=asOQ>bEl#$*_ z6?EGWTpV;Cu46fdbs76(D3rv+MBd$w+~}{ZcMotqD=A4sxevc`MY8Q|q2mW}(vF;+ zowH0!WPJVn+(_^6G&dv{*U)P1K7);mKN|$*t5bLAm$=*N+)?hf=wws*8=&kr-&fRb zUW?k<KQ?w52NG6PTu=JDjt<LaP9_8KHTp-7N_+pp*0!<u`0#ka<HxnQ%Y}BY*6nic z;<awLQg>6@S~pvN%h>0qY@0MM@B3VQhKBO(+qd(ReKhma-)KYB0-yF?<S#BR#*$lF zT9Uu;XZyWFx9QPq(5Dzqx94f#cy51Z-8{a%&1`&A8_dL2;M}di!Yf75zOfzPhONM| zmfqw0dnN|9jlq?b%i5zt!Yvj*Ee8P!YRbK*BA?{t<ZM%3oPMX@`?ctFJ39|g=(%1$ zqh&jt;Rezz$2uRckl@KrH_VYf^J$m7g2DiLpsTz43QGChm)owcu2qk0TMEv8JzT!{ z=kxq$8#}v!PerG*^fQ?$f>`99-``i`7D;=J8MACu<c)}k=y>WPFh4U9gU0vGWudQ{ zmi!#hFIY!}mNM2+NNfK(srv8S6ziXbi;MGVSR%Xt4$eL0$L}_r?XRKpU7Gtk^6oy{ z^SLkli@(U_iRPE9zeKl+<<CUT_y2slO<T6m;acuAzIQsEo)SS#U#<W;(q!Vt@zHel zjeg9P5O=zJ|GqW;>*ns$JWI2KYzFz}W@Fb5Qsta$Iy*~@pO$%i<8<zN7Wmw6;d@Z% z>#9K7LZ?od7xne)f}=S$X^sTZQ{Ly9@k>fdYA6faG+!5^7Z?Kwq^C^(_}p%xbmYj9 z+1Xh^85vF-G|Mpe)3&D@I5=oj*`@4W@&*lmcyKJJvQp*w!uVcApJ~SN@$nrG!@{=* z)rCd#NSJW*dd&1(n6MnIkCykD76p{Fn_h70F5P`aKxMUyi%W*f=k?vs+-O@8b~Ies zuopcn_V(>4AffBWI~rfT($LhTm)W^9HZk$|$V6R#e?JX&4Zy`j{OI>T64?fkC`%M6 z2fx-+A0P5PeE5+0i8%M4w28jH0Q`?p&r|*E_c8sg5iv1gadBL?cAqx1SiB)|LKvS# z&ZTF&KI+sUJ;mbZK%H@^M|QQR|Kjhpls>@d`2sy-CA9YK%1+mB<hgWz`0&AE4t1=5 ze0=q`oJ&UvA3vVjc48Mw6gj8t={oE49~^gIyLJs|TW>(&kVejj0ql0;M>b57C!e## zAEYZXVeOj>v&HA3?8|5qR8m^ZR87sQT<c|qAKA$8js5t6a>cNBZ<(6^4oO@Y)AI8i zr%s*1!W8vL29{6r`TgCYEuHRl^4_rb?+qxT)4vaDYX_O+N=jX+{`9G|qv#v=$4jZ7 z8JIukd;DJGxxMbO{TqrRo7mjU*>2+-<+(CWZGw+XS@`Qb#=G`RkF?S9%Q;g4y$tis z34*uAEqdm^tV~K8cC?U?5Y3-Ie;nHLHmIqoNx2VcEy^BFQH&t#6t{=!;2>&cWz|~g z@9)(6e8bn*$?E6N%j@gwry7V$`_8&PG%0FM-MbZUf^t%SL}f7;P@a@0yf1)b;nJaH zThCi2YHBOKf6QIAckf=mtVZozLu>pABP(l&W=5cXw(lwS#^tixw@;+CtSXDHsPKzb z9`fj3rST!pY;V%ubE{D`>K-0{%xtz*Sa=0$wpp1M9p${YHx1=*l6>IRtL#CZZ<6+a z4j3hid3$^Jzt27z;uW8y>{n{M8;yp|{!NO8mKNiur!Fq8-S6%niM?^d(7CKRyzv>Y zY~+Dl!%e$)uQ~nkVfEb9*S1XUwTt{`K&RN(t_@pST(GW-T=VS0jHK+DPr<;QX#l2# zj8O#l?&bGiUVOTw+mOD|n?iZ&+^vQUER@hv=-RIa?jtB7LJ!Pa8^6tnosW+xg8J*N z!l73mKk@+4);7g$?Z?`E@?=-gXpxBocwS8Q(fev?y4MdJs+aX&^7UQ(-ELg$#Mg6v zFnWdArpm=X{53T-r1D-CP}x{DC5bD!cfHER^_K*BS88=z-k)pG=RL9T=ZD+(_hRJd z=%ycb905HTZb|4L96UPoF@N<2g}$8p=QU~SVJv?n;tvx1td^<YkA<e`&q6g=l5)D< ziqmjK%_4lMYRWk-YV8gyP>$K5xFge}yYa*1z31w2_P;F$HOxJSXei~&OAA_u4%O8~ zt!+!!SVgHSn|Quz?b@}$At6E{BK3W(b$>l?(49MXZv7tjl|Xy)USqsCZs<hi@<u~L zL#-o6+Rxp;-kyqkdHC=wKzUpKNfnPDpVp+Mr4g=*4(N(yjBd`?+1c4q>Y20j*)LxF zm=tRJcGG9<SZ0KCiXVFrjE`)IA~n*QR=aH`wr0dcSk|e7qRQU)_3KQHr~S*DfroC( zeq(T)pPlW)XTGU)L3Y<VR%`>^p@j`-wl%f2g+9L>-#<LgWmf7@4LDHX&?XFKKx!_1 zU}X6AwY8c|a|;Xnz5!(=B|_5Dg;jd=SOjtu?o;doIad_54jiaP3u^;s@oR16Q}7VQ zO(R$(s35lT^`pDGqOHI^)89X=5|3xr)6?rHKEv<z<5LKFY?OYSbOrj8y!WroB8QX0 zcRZh6anko^$Wke~wKWzJo%#KevtL04`r?i#SA&PL6t95}k*@If@87=B(WvgSbA!Kz zTV@w$dQU#fi;7xB_C{ZyMfue0z4OCZh4q2743WD9KQ%Wq@4vFX8f|tuSB|1v;p6Gl z`G^i=a$DP=P<mvTWk&F?O0kw<cc6~`zUrWkLTd&zvxwl}V6}$r<&F59t<g*VX!w90 ztRLTP$OB~SPWULsQ(}4r=ar7_h7Wckjn=*;1EqcdXZ7sd#70oaR9t|E$9Fz^_Kdsq zd3^jDo*m|wvET;YW@<w_aOf%D)790*@^Q4MqO4k|!+Ut*R+d3Fr<Jw!&&huEj*bpW zmG+yLpUS<@{)IB}?Bb#VdSnP%O*(ew)s|uU(c#{DewT8+)O(H}9`xhHiAIrURz}aj zz<|~^GJ3wPczZWKQ|$HY1{U7f<x;lI+}n>oS{buZNo}I1f~Wvp&;9rzp439JxQxv+ zh%Ix;Fh>J*u*ZMdZ}CUmwQG}imj5!SEdSkU?!V}%b5n{2jfxyN5MB2Au=-{hUFn{m z8dsNVf1%zw^gdT2atm&>5by=00MJe$6r+=OzYG~|@J{7lJeg}!q-LMz^x?spb-NrU z-zvNc-1E`EWVhq{ebMW7N0vX2ii&FcYAn{QcR)cVk>${>U8->+hc3JKdX9eFJ=ga! z^2O)RpZk87y7sRCNXcAwpTx=c0m9SAl}q5$_4+R>5oG5vqH9{=vqr#olE(bPkKF`u zVoOf`{!QAi$dQ!GVQd0cjaP+0$?87Ih3ljZRE$R1bUv~r_YXJgp^6b5#k9n|&S6F` z-&~0jkdd*;FwgXqYqDWZ9S*WsQ!5qG=sToz|8>QMnbrr#wh<tQ!v$WP!*-hd>{9vd zEA>=sDh+N*C|Wv-xX`w3s{m!?&wgR?`7;)gd*bN;Ry=NQ=~6{HJ|E-i)smkX_8Ty! zgul}A;8LuBB1GR(2^2y(Zy9&q4aJ@zB_##>#wKu+A}KAv)0Vx@{W6~m2#fRY*|UdN z%7Ow;{AaAwy7jve$V*UDJCQd;4&54IODira(!fQYHoFg53$-Ii*@5z=%vQdVDUmjm zbyHh1<urip?2o6t>|9(yM6&zwspzWK=4WTWuEuTEeXww~$;SA(?;iKFXWP&v|ALPY zv_X_F{528Z=)SlJ3Qz5J8=w+ttJilby86jDh50XPu-^T{$tym$`o$j5(h_Zrx3{*g zEjiq{y@0<?3$Qs9q>Zol;)2BU#Xlz~0WmRbukWbDK!mXXhAJp7mi#lMH%G_7FuGu~ z*JFgzH#c|UQczH#$2a|y194eNtsAPJTwL^dg8o_cd&h01XHvlBU^@}jGP#CPfEw`+ z4hvgbbcntPW#vab2vy79=0sJV^mVnjvDutwUJ(h#^u+PQL4V%SKR-T8pBpz_v@D#9 z*(LfqmZ54&-6kj~$nD$PEt|J)&A<-KI$3!!_WNexpNsRO`8Va=gf%bo1_Bhm5&ito zD1T#mMn+nj!?f8}|Gz&O9zA{>{m3u<two2_BYaREpYK2aTBbe$IBIdy)D@OV85*)7 zoB+s#5mHirZP@Sjl4s9G%50)e*90?>nso1Qa-{dv7a=h*rVPz!8N*I$W(_1?gHVsD zN0faK8(H&4-)62#PftJiq?>F$aGiJe4%Gr33No&!j}eGLMSFWg$H0-$b=xfM1j+od zfi6_8K--W*m+##+Gq(Rb`;!+{9HmPa>m5q2HQqOK+s#HsA_9rCXX+mx$m1103dtkg zeR%%&D0U9eY{<dPO9wN>CohzF{a{XBx)c7Q8fP}#yrc5(B?2P!GY^KO(C^DN%)oYi z=JWdj<A=mMto*X6I8CbrRh}!BLE+8uC?<m9;>--I*NaX&HADBX_~fF!mYaLC7ZWu} z^?G>oT4<i=$5zmgLk?RdBqv8>(M9R<aa1tY(sRUX1L`zD5vB!H2pUG+8F`=01qC}` za&l7b$nasRZ4^09ZdKJjg0k}R@=!wwKT6k#x_a|wI27Q1XwQ?seyQ!-M<FWh^t4Bz zw#XwbTrh*Y-Qd2J%S(F|6&0^0CPqMiYaDhby$ynL6?mMKQ-{=8ciCEOPV8aQeXicV zz0K<zl_!WCR>{c72)%U>bdCQ0DFzBol8C+X=O+cnyGm&N{r!FablT%ot03vJZ`i<^ zYq(8+n0g}+FBV@3o@tnCQsJ?|-roK)-%k3ihm)#4<QTPO>230ztY*kEuTUWCgYXNz zBI=D0ylDHi`}en!O@$v4aJG8&YMhs55Iw6D09RMJ_t7!V2yqrDF^Vcl*Vax|-i&<u zRF0rz6e{1}AB@ib8RJv%{2q)0Th9F&*3!}0)#=A|e8u7K8Y>Ilq)dN$aw-Tg(E`7d zcN<vgHQq%^Odo83hO0vAQm%dbpbbQriRhKo++Y<>SA(zy5=@6KPq$IYCm5(|5bHY2 ztW0+P&yOgj3x5Q+ZPOl;iD;(7Ii(xvigKTydL{Q0?>7kaR3AV?TVUJ51E|@Te6ELv z0!1S>XS2*nvYPAqfG&aa28iws=<n<6OQE1;)PU)d9Sf(zJ)ZhSL-=}Mr5XgrOnp*@ zAvyq$?RRt(2fk-#XScZKzbk@T<8QIEp*?(iJk&*FV_s4g?p&N_I)424NPE6OC=1^u zToBbX-F@Q2=k`7_h1!*sy+7mVx1Ya-w7-1+9tjLWFe{sY@(b7@KR=#uQO!0WUFQ5u z_c`we=N=gki#VPxGGV-=YbiPP^-TkWf|kD*Z_Bw{!5zJA^I0)HXk-tF(#sSjeuxLP zX!w)B15Zx9qgPf|Hhyf!x>4ogcCQGk?SrmhR+%fnf&Gu)DAztXmh(a~q)~WeMLk)L zE<K8WQJ5UieSD@z0?}xMB_s~vp6gt(tgQi;-cVRrXk6j5TX|t@XJL!bBVORsk<Q0k zNl$?oVF969-nEaSsH7x~d+Cd_hmOiorXw6@(NVCEG;1fP?F2*uM3C3ZquTN+o|i)D z3?p8PpdbY#lC0=(j!mwRK)kf|Luv{v(>x^B17WHg8{h00W<UP0IewcpjzvryQ`7ag zWY0umC#C_>+*I_I0dU=lkD6IuU|Eebaf5b63<dy1uCn#QQAS0M$Nqj*S+0g!5_$6C z9399$xz5BnLf_~^iLy%2G7x6r=gC8#Bxv*b?7%ADUrk%B64a^7M^WZpChuJ<=iF5V z>=GLvPluiO#G!2k?zz~~(t=B&_GWRJP*yb{?SBXFE?ooRh64w0zHi%dgK^cWTJ-+O zPWwCks74N;>wt-cXhV1J-VHYsZqt@_Vy9Hq*3x3j?xRvy0#<DI+Cw#9%r;<#O61h_ zj00e-hC#qL044^}D<JWAl$_lvBO~)dGA=8?eP@tpVoF#T18`yg*RKp{W%y*_W}F-q z0j84sf#TZA&bbf;3$=RodrrR8#lPoQ($kYA2S~&)<nEpL!Jy+C^Lgf=Ut$xNTkCIb zxMdl{@~o_Elr~H=gGf1bk`dwN)jd5MT`Cu4doC`VA$|+q8R`L~TK-TJGxByoPP;qB z=zcLU!>e%}$#cHZU-NOxRO;R>;m!h0%TJw;ACPv^r2)JNkB-&=cNSt?fr29Fb%1I> zJ@&w$8bCqHxl5k7C}<TmLrrl&romveEPOI6B}|@3eOer5<tTl}GgLtlos4@KB}pAQ z%p)3q5T*ho6xNGx%ADPBh&0$#ZUZlv!1(!0a(PhUxXU&Ri{D$f+tC8(<)*Tq0(uw` zy+~92`0*ogBe8W??AVdd>7wG&+8VMdT9Y&iYo(Q(ZGg74+qP|Mw2@)FL`l@4PqhgQ zqNRQdd0>!z2@>aec~^?S#o08hRy{Ey3`X%t)WEGNL^&dYt4sM$`cK7YqCh$Z(7CsK z%9C_Jb;|nSh_6L=^X3UU3baOi?OGSTv|I9&9B(as#dS&7^$H%0kL_M@Vll~FLNB!Z z{rv;V?2CcAD7U#^w!0kPGlKiqC7iq%0g_QMSqxqInQQ;0rHOKhb)ZxLv$j9kvsi|P zh6Ls0+67&QSU1(7_2v%^4E#HBWnbQ%b}!k<`*SAhgn~X;V&@R?5)>>9pNVGo>5s&y zECgw@v9}*>_y0A-q<LjM)5()3!C<M&X&I+KKux9}Jvw&-76;pU$0C#7NO;X6gOF6o z#o6n{LJ%)5PHb#vM~6jK0L|>5&n|8=<7U(2-TW}<E@APKRkUgU6$?-&069%NJCPpW zsY4G<OE}j>hgxP_YHn^;^YSWw?x~(@xYOzCH{e(yfPuEQwwtnNZjm>SfV62fJK0a< zHlq5Gwge<Vgl8yeG!)R~n>+1SYsPHMU6yKYYEm^cywUg}t`H*PCKP+T;k<6*IbByb zDJR{+krn$<yq2c!EQgz|=19C*R<;+tD;T75Eh8uT!t9sZF0B<8&S4*Xqh&b80;9!0 zRrG{xmX1N5DIcip?A+Ho(jZePeCaX;(3RAZb!emhI}4CtZ)@9+x;D~Ln4#>dTbDYj zrkC>pZqI<LhX>WbfEzd{1ZX*e9J~W<;&(0&hz@he3e-?|%@Cs1O-$ASa5om{1&)~P z_6XZGdPPzEKu6zQa|0{r0W~lt+Hz0G=_JW>0Pn8B@|TH)F3+nocK3s0nqf|CTwKu0 zmpb_LgP`av{A<GVM(^(G-m2i#nX2DLcLklt8gMW36CW7NflPhB*2ZlUR9ze&9-FYi z{(Gr=o3-R#`5q|KrG&D|tN^7XI!l72nN^?QBPnnAMqCAYb2pxjZgy#*Z*aQmaQ)zx zD;t#}w;APGKqY2bPvsGuSoS`p9Nwt7=Hs>M8?2nklCCf6>MUR0l=gim^q}t-JxgeG z<kscU6SvwEErTvMqX4Na&2A!h7qGGLKzw*OuWaM2M<6k;ZTb*<z?raO*TNtfKxg2U zwps}zF_zA{Log1X3B+7z*RJb<LE(*R(oR<obbk6o)Jn3Y@Xeb=8Gj0=BkmpDm4+CB zov!R0#|1-K#kt^O6C4JabMp1x2`N{0y~NqCcl?PYhD%teUFg8VZ(!#UNQ5)>P?kWH z99-`Q0nWY8qfxxx=bse7-q!@+fJ%rnXC*BKfPv0=3d^Lnp@9LmQ~Qopt5yYp(?FLp zxG`)5RB3SUVQy}r|MJDVnVHhC=h`-)(h#Q#O6^aW!z7e2^7-iwlVYa`&=<@8nh=Ng zSsY7$r;Y@D?yk77mMHPiA*WlAv>+J-#fyKR=?K(9YX_VOfcBj5ZSfXoEq(kRv%bcc zFR4%kalQEJAa+KP?8KWCrCPwv$?0!LO-ntPaFz`a1wr9hpSbjHB&snz>pJ+$V+qbX z<mGwMwQGsqpc&Iw0;TL9+H!YyPwdGT!{rtQ=_G17%v2$H`J4AMMbh>4vJK#%K#B&& z?RavE3xtRDBP5X3#ZH|o0BS+@Sb?9<f0M<(!*O8Z`-tRx)|bM9A|&?5XNLHLbycd= z%txo*iTuUogt6TKn11q^IaCW`c_8uu>FrDA=gX0iH4tCiKv-9_EBVcH6Oj{!K4|Ll z+Ps-sHWdpL3@t6KDli3NE0L~KU0sbHuCA|t?P52qx0ko&*xK_?GEku9ubKMtO5MlD zNAC{(W7{oWG&Y?`k`QXjvR<AYIJyRi0Rm{9WK?)_Vpf(Yr3(Fa)f0!Incn54wabeW z{wGUb`7Qh*Oblw@`5#5?(=AYLgP!*ItRffpuD%$)2wp-0!s^wn-7r!fUhJ+7W7~w6 zfJhLY4J|6Wa(pzuvL50RAqJoTa0>edV^lt#tn^#(qEw-+V&O&oq23fLcDg#^5eRRe z)L~FFQW(VTQTXZlyjw!Vl+dn#v|r#5<N_!nD*!E?l+>i;WNEZ!__^HAU|bCLjf{lj z9t+FKtwnre9~2u`v?R#V^c3tR2Eu{SlPD=+$)K*l61S(N;{n`dRsluM8?w@`78YNv z%FZqzz(xVYFFr7F8cTps3c@f@`T&Y+;9wGU7?+WTKt(!dqE`HcC`$YQTx+uK|JjGw z>kNH!3#pGE@5G{@q=HZ);S)*~mi}ffzKVt4Mi#b6f&H6}u<$cL%l`pYd~gQ1d=DR{ z#4w}m?)v8Uqw_HX1@6wx744oQtu(-jvtSo)6Fo{nqag2TY#a)>3A7YIx0_ieQ`OS^ zHip>s2n`W|3^tR+nKKez$Eh}7$}1{}3)zJ|`0BQtT$3LfMLz-{V3Z-Dtdx1fa3J7x zi0AXe8#ivG`{?QFN})u_|Ggu@Z{r151kFC=V7z#mOYif1MV^#!t#jwU15unT8OKT> zLelhTd%p3^&zW9-+VeeU&cex2+kvvLhU>Me>(8+u!)*$<*xG0sC;fh}NlHrMl@A|@ z$7#_}Aj@AEF2(B`AX4j<xDQ)(@5jfYQFN&wvd$zb+w;k{_%s75;mnsUgI?Z{bT!D< zrvr?Yoc5)sQYq}~);&=9Gzj5vhv@_w&3s@|-I-2u#i6qT#$X{D_W49>28kWLM{0eN zoTvcK=Cpn`H!?V3X!ocx6}mt(96UVq6h<bdY6xJ=596+04Zv%Kckbl!o1a#N9vSJU z0#vY)G6o5>%9CH#sR}G+5~VNR@wp(77zObi(Vwy}S!?MNm0*j7hclk{@kxj4u6S%0 z#~Mf2DkI%xasU9*HjV5=#fOf5bI(~3kfu<OU!tu!d@h!NGOnAxK=1)k!d#xu(PLj~ z0FHZ2^h6`~V+GR`eb*RtB75V0)Hxc0_=J#5J1S(yZrhRSt|}gH1?-e{{ILiOt7B=L zDja-ofQt*fr|h1UmJXoX!?>)1v`gGxL|wKU7f>qy{?bm{AI2S`pZx-AHYv)WX2QF6 zaYM%^PCi0#!6-%<szLObJ}k8KECDck3FXv?;yD&xAjGj!RdhW1iHQWR`lCmWi0}YW z0&y#07^pNfG@{ia60cG2r}rwaNfu<}-Q&KQG$ovS^}zn~ao!N_a8~3^i8((q!iYBB z@%eM@r%&quHuO)`%{$-!;7F`V*jV5Yf)Wy}%YUcXuEoW@8aPV~J!R#M$P5s<`qL9J zgud+Gw-X2D+4-Ns?;UpoaNoTnSIY}AF!t(I%7qITaC_FBDbv^zt5x7RYKX#6+u3=% z^2q1T&T5!J?j_~MZ?=5xOm){li9&tlRr1-jV#NyA*-1-MGWLnYRe%0`!vA`t7!f*Q zPD?ixuVL26KB4vUKwab~8xHJf;!Och65)MKdPHn^masK$&;h(5RDBX#B*H4Zrb2CD z;q<i@_?<R>hb>GhF!o9KOW^PL)1_5ykk&mWdN$w_$8>CgyP%AoEcEci)73<v22>@% z3Lre;bVXj-tQzAoFA3oM7IY&UJN!WHIM_3!hSs9fMz|%B0COCWYs6Cl2GRiuM?Mv8 zOHuX{2i>Fc#NZcqk+7(G^M(zeUIXbapjwXOyFytX6u>s=o0xcmH{J}c`JfeEZYVH7 z1~fWE-gtoDg`-}a&Cm^*Y1(>cpLl#aenI#$D#8m;x5jj|OO4qH|K-!{@}Ne9&NW)$ zXLZI;95~Qo6wZxbMv4v&M+A6dtcFF0VAL;UCe(4caXz4?7C=|xw5X(R*f9*)c_09A z(rdcAVY!DlZ;7Dlk4zXybN{(@W7^XWFQ0DPFMvJqofg|Y3>Ob!B({y<wD9sPb?XRO zlk`5>JMjE93%{)s?h7RVh*O<?<znwd#Z1ag+v9gp+12q;j@~~^<f8|Mx#Hl7!-tnX zvL@<?SnamanNznpb!l_0Cf_Gy3DNzCoeF|R36F?S1%X(<VFOWDB23eU6S3nrb4Dn; z8sr!rBImoNJ50C7rK)t;;5l%Zsz@B)6DP`+3upLbo1tu0ppHia*#!-Q8jgI(Nzgjh z22~9w4T2p;)E=VVpyjTn%<F1VLx1@X#vjat?v3(3J6<+%_1d*du&RODgp`yv-~j)n zfg0uvFW=y6EuuEr$e<I|V!<OV1K|zrCs-}5mElTx;5EzImtye;SJKh-!#aGooPmTD z*m_NMwd&CK?Vq6oAP#W}<x&_PGsVKiB?eAHO?$gh*FgA7M8%BpaU>JS2FAG;6cz@; zQWj*yxy=`VZP$h-wpKVZho}k2JDoXWX>CngV!9e%+qUJbu$GOCvdp-A2>uNWF;yQQ zg@CU#Hc*#^jWj4^4g2Dr{)@^HF#+8gw<Y*l2uEV!UsZJ+5}(G)%L|oY-sKIBjlU$v zHq2R5<}@#W+wR}(<m6<5L*h1(8dG1d*;^X>G$crZe>mXI9RXn7-<EhIvZ`@NP&;7T zd}W7`BqW<qW3Y1zwc<Gv^UKXdOAB!BL0w&@cq7{LORtWn>4M>|g&FQxbjz~#^3ac^ zw?$gtYC;haCGQ)!Y2s!QQcR-OoDnODGatET8-;@Z__9xYr|XYTyNAAfQ4@(%&1f4* z$T1KnwfVxIF^)n7;i>EA9){+Lnd3LhVIKXpJw4_EvhwD&<wF~urmb2JYEV#A6jD*4 zgzL##@9g?gbB~PUdr`t%tELK62X5~=#rbz}k+|Svy_Eu#=|j(<VDGcC5{@wtYR)JK zO!Gdm-9us>E*-t9x?E_`OZA=`V%?)z{FP~^JHdrRO(o@cMVq~4n`w|$TYMOgM5eHj zx&mCUYQh5$-g;<UxB~cylJeAf`-x&50rrTIl5$IICMeL0p6I%$<>K+pf(|1qm}tYi zTj|2e1J&CPW}g1m%F6kn$mx18RkV6r9(bXC_SN|KkpJ*P!e+$8#26VF`wkndWZS41 zAjtT)*r^_UhBUR8cT@xrKqQX!j5^ma3OWM3G*Gc&XI8bfabQ^&Jbl_e<DD>l=u;BY zrPK+YHmnV4J_r*?FfPZb)|L;muGh~t=#7k(vl*Juv~1DbQ{5^4>P~L11o3=<EC$h0 zSk_VJMwC;ZnB*?qE*z)ThCVBqFsdFp?rLP#YSAafHuqJ#X>UZr`0tl0g+?J89}C4F zEIE5?PXtwXUi9qv)-P|?|KXBJDaRU+JK5b!VKLby-w^8E#J|xa*JbX6!ezJd+wNSl z&w_5LoRxnNx)3q9Gi)*Vvi3~%N<}sv0#|!GujwfdsWco~a@G6fT!lYI?$!63@^z0O z4Vqdu(a`8$LjEICJS4R!^PoogZb!Opr+Ck#0|_y1BLejQEd=@h#}DV$L*D@ifMan9 z$e5sI|K){VICX~uJyrfrs-vc928*ARMDP^8o0^Hqt&U6s<6%FQ1KQf^&_6CN&DjIE z5*6Z@D+|9jqH`M%F@(glf}|YL<~L!}kq{f$4pDG}ep_2vA>JXTU$o;-_qpCQpePc5 z#M^2Od#fCPnhxtk+$fI)(x%5)2M0_R#4OhXpVdjmgo}%AD_kYD_WqGOno!o!Ib9K& z#10?LUx2|)V)88Ob}=H2g)O(H@NEKY;M)BHew)4c));#C9w9O|x`icV3z%eT(D|PO zUp+ioxe=Qln2oE93R2$j=%)(UeV8C4m}h7;10#jVPz3Hl=+84P`Bih~Klo`lb0)(u zhXW*k>yZ@ROy^{{Yb2xZ@b)efK-8J{XWlJud$Z64<=ho16Jony6JonmRW2{Oym;}V z3jBpYRsgtYFMldkfrWoL<3e0KIDmPjMfD0Si>mJKiYia&i#v%xh}1?^T^$|l*BUq) z&IO0j#lR8ZXflvwC3I6_mBTpvJqoX`s;P+y*J9pQT3Q-;J~b$&EX7a3f=T2OHWDQO z8hILY0TRC>8L&rN1I@D)C$<ugm4XJt_wXq4kSkZN+=tXwjLMQ|{bTrryKt883a$53 zsz8lN)DdKo*K`8meHbX|ASU!JM`4HX@)E2V92RDcU?fI1_CqW9J&N{AoT|Cu1Y&qX z$q0sk_%G-AU|H~6YZ@(VcOsK7p20%7dh1r?*{`qpd|OC9lZFCNg-{|KQj&Z5NtBV^ z-d_15%xiR0X5ygKTZ1qVM_Tm^>U`zW{5DD|u1@B8FND+giPA)CZh}O)>c}1CHRHXN zJG!2^sUvRrkU+<@;M=}ij-HXrhqS=V89~KJ4!dJ}o&<?J)&NWePft&;7+sj1Md%(= z6G6ksa<Wqx!NC&*87~!pMAHNiS1jl^k^HNhnhwC+eU4wbF8n!zUx64eDs0&6#f>Yz zg~I-4yn7pC&D7UkKwCH-u4yrYD$8>*lzsA^-wm4XT;>#wYHwWcm?gRp@fw7Hj-m$H zEOOcAdcdBst@ZT#0Lj^fH*E?*kc}B)!&>rjuqK&-Bra)Ya9|nh720l!A!!WUwyJAe zv`Kpg<tE{b8r-)2Z{H%eXy4%WDf=6?8*rE#ZD$CK^Zy!c?1Lcz?Td;rfYt&_b-=k5 z6d2KN$QO~p1)?HGaBZbfaB^w~4>E(+*gk1EtYM`0Cl0}gbns}R-GEaTBA39aBtWI+ z*A&FYz$LVMofJW`bm$;3kqGMm7qEMi5)BTy?%~AP7z@@;kS)Lu1^tGOg7t%-;?Xo~ zF%&5#$}{gNk$>S+VvR#}bDf_)1r0m(#8YQ@wsA}9n<4#jM!ZO6N@+Iq?m2?k5<$e! zqWUlm({Nqv=p?||qg5f{I-!=dZx$ZPo%wWkqW5F$!Aw{bb!$)h2GXtKp-@(@m$xW5 zthd@l=g^@LaG<+yFC97O==h-8YXvPW&=Sf0!E^yh$$%m;IWyBPkj%bjO$e@A?W<S0 z)R=^W_k_o`ViQhIP1T|RAj2F4eX|dC+cx&#@bJqKmb3u~_K@q*+NujnZ$trt5=A#% zowlO9+;!^9p`Z)~kHdGASt(g3o=OIMrDX?_TvC4l)J*~8XH#V-HSq8ByCY+29I7aC zAbQveVW@NcQ9GVjft$8Mjj?Kng@TOZ@;hV%NgNfz*_pKV(dVy<k-zQujC!R+;l6oX z28r^79VbH}GlB=uPyh@_Dj6ZP*U+6%&}k_o2?G<=0x=gN30hcK6pp68MWH)@5Cr~$ zq&UcsN?l$|c-CF{ppj){9+^=hsjjY4L?j1;PlxzUbToAELbpLpVkSaS+VQ9OzfxzG z2-^aZPX7E^4Z~gv14Zyd{N9xvwy+RHYF3HT>K{(ohjm9R8j|+L0?WKmWgv_uGWYHN z9SVgglPI$jYNyXHFU}x>pKH~A_}|3AKhF+p+3MF&lW~dr76fv#D-VmrrJ*n&LU=r) zC)~``)D`Z~N(P2OSjBBS@{t?IS_nXK=X)r?&W_{=)r@uBuGSqhGcyhN%x#bDk7#Ya zX4S5mX_PX<W!BMw%=D_$#7X4C^v1~Mnka=kC;z8&+<v5bJv;kk&C;0u8u8ehHf14m z7_xC2{V0K^TK(=F7jn;%9-55<Zyk31kM!1#q=-j~;w_{~^j*}K`BHF)_cr`y2okt$ z{R0Cl5C@i*m#=~%4yX+)JY@CXEswaJIz@vM64sWNmtTHv215t8BNewxvsX4=X?!b{ zs!^MD2wmrY?=0Z|>%l^zl@b8}vqvu^gUoBzn+pJ?#pJWa4vWc2@IyVnBxsP;0-u@4 z?bqiP|4j4>9KEL_J?~XylG{;sAf)Tai*ll^0Y1q4&3lA=Iuf4c6o0!wj{`1`(9WHY zUrxv&8w(&&j}kRoe`LoosO}`N3-eUocea37b$jXxgoIC=H~~F6er{1b{vc-X`oV6= zq~Wf0hZ5WO4WoG~0nU)U3mHp&%so77y;TQ$tg!_DKk6mm|Ci%PiefdCFhFN&c2IK| z&RSSjmIt<74LHUN$*}NdzED<<h!2m_tU*~w&J!Pyzzx`04n<ezPNSuh&4)0iC8DLo zb{=NLaKj6y&emA)NjOb?Lqov<0Tg&OQ6_AOatNj;DR?rYvXaQ~f6NAP23}dJ&1y?p z3e-cAO+mFzgWmx~HL+t$EZ<oG1WYv`8E_e){D@Bq`>Dg2;0u2-uGypw=?Y08qJtqk zdG-4B&0Ys=>cMB+Ci_$YCaQaT1xQyV9+Gt?Gr#xNul-b|I(tb8e(zlH91P1{%Fo}i zQQ242YmZGmq*gG2K*-h^1pfIiKkwKQkykLI`dp4P-j!ajTP4Q1ShHJ0+*bX7+fC~Z zN&v(x$i3<KYeL<jMM9u>d7Ua;egDoyW;Ql9WEJ}m1)2Qwho@}29&#d!3#sEPq@37k zG;ii5S!N7D^hJXKL+DgGhw-~$&@mG1fuw=F^O3P@jhAtCS%IHO`G;m2gS!-Irl0tZ zj-_~(bB)13LF`k{paai6FeuisrQ85oP@QC8bFBa3=t-*tL1r-IL>)VJg;{eg%&OIB z_V|lK0)Zt=<~|M_I6!o345M9*jSU2MLaTx@M!wirS}TXTpMg_OR7lX@7m~vvV9r5s zq*Fn2A(=wFkvU7&5L#_3g0hgc_K&$=)|^S%n$VJ_D{682^eV_^2AENTY!n(FAFtZi z*!xNcGiGFfYwKG&)^3%w=xA0*Y_RpvweIR?KW_;*YR!MGWti|sq|!Pv%XP6LNeTwn z1c(oT19fs)_Q=bpx(_$YdyKFLd|f!Ak$R!BWkDGZ0s}ukKanV)BY*)B`2gb6oA?K| zn_OB89zD8LRJ5D0c^4Np_~a4P6}T4gcQB`huVTj`Ymi~ke3+rf$Mnq~;08nDctNtj zh%;lrQ=1(87_3sru^mOH*FwR>(t9D<BnmYOE0}QhT>gWZ`T`2j`G?#~ls#a(DH%Pu z!D=QKIeupccn7S=c^+s%^zezGPU665A}O}J1iGJQ{AyLgNDs@_ty`Tw7qdc41#nLL zw+}G*i&#M+U^1~QF(9>lM&LO}=<@KvwXz=FVx_&169e<Og|&^oOY?h|>0%%JwyZ%) z7{_aT{rV#V>y>uVMigG47Yuz^CFpO)H{v?MTavbV!T7|v+XNr)C4_%A^rae*bZN_) zmAE{G+TzmP3n}ADN7`@Y{L>Clx#{Yi$z0+aLR-^5I0|8)F`<Qqa!GI`|8a4#tV3Jt zhJmI6OD*^zP*_m$a6}t?BiRdOkT~RkQ-Pwb5~z0Lh(eQ05=rb3dXDQy=3&}BljK}S z>Rm?E_FGy81qN+5%P!NyN>|=DauI(5=>ty7y?w0~a*;xr`b;IJ=8~m)zua-9fHb5L z(}bo(oQVHEL^ZT*Y0ME5vj?dSj<UN}ZFKbA3+6plY5b3G$T<|)0u{v1J8*Zaq+A&n zkeX=Q%Cc_9m%cuPC+z;vQdhl0G#<lns}N1XkY+UuBeLVWAXFCsE?i!>n;B3~13q1y zWVZ1y`qkYR?&NtI&BO(%M=*>3zH9Ei_1D|o(#<w9(9y}%sC;z!+Ijy{b@P_fkKHlP z;nr70L#QHn0!&xVvduDQ0hmG%cq92N7%3Uxa#jfjn?sWC3AyyO`n5IhU1mQaOJ+!0 z=qW)L4|Ko(?0rJULxoS4+1=GOz$6z+QgTP;bz_tUx1mN3j0mlTka70QOAhkxKsWo5 z0Q!l3MO5qIFRdMa<2=4ScN#wPt#SFe7FAPGF4DOmOVVM8jfaI#B1!Mbe`f(g-i5HD z3l(aM#UqWjNkL&9C^p2iYAh#mRZJ@{F7}O&Ux5W+Iour2yUXEf$CfqPOGjl#CZDiU z>EacfMurycts6xZGW8=Mi7j#{4JVR35U4l|1&o^$ZF}tLy#x%kbCKZ{OyR@AvVf<7 zYha_8tf<$<C*d?y_jn^uGD;^9cjVu+q-)n!U~>Uza2XlOz@H?7vaT+>nz}mhzM=8) zL>svbW-<XtvdUzV4;at_7BrR#RkJ=nS@<zh3U+p1wzWrHxe|&|sioif{?#olt2QWj zRQ1<}(NNHzWjmcx)*|xs=lDs?hr5BRfyP)*_EkeN-F@JUfg2e=0AVGOS82>$rKm?_ zU9#+8PlQGUA<De;3KB|~>>^o<E_h$S;%JI>_z4L(fE5g2{?XRJtqt3x4{aKT2UNw0 zZ33J0z;D?3`J*toX3?6e`d^ly3}+~7?3zqlB7ULgX@GM6L&<QVUSQeBB2<c{X^9XK zB}HIvsy|F19XEyqI-yh*LKdU!gTev8lCSc62KV##Oe~_K2mugV3jG)tQCxSwzCI^` zxdyo=Ye0Hypmd)!d1@-z0Aq_4!y?dog_V>ljNh;x--z0eGy_IqQvc6x&JoKY<rMx< zRDz7Ikq|4UCnq703^vAYYHV(<fy>+vcNPwZDQ2lCldt4@$rKwg0+BtFKK*e!@yRIx zIY#+bP1m*n%dR3(ew`G>;{qNZ^UR{)u?-+&M54aX;fyU@Cr}75r4>f98!y5+NN8xA zz#SctS~PjR%8Py;qaRtbv$MB&-)g)B&5>+vRKKwQ1_j_I2U+-qw|&1E-PowL-MpOF zD9=<Cu_C=(lik}*o@7<|fKb+x2?G)sh2%_Ve)VtUsMG*VNcAMKPS7q&fO&;aKUi<* z?c4l>sbF_h?9+aM5jEm3QEp0Eu7E^w>~4c73?|ePguPdTVrU}48SA|N1~GbYOL4yl z1sWI}Bv#15KudKS4OV_guw?C!ROV0<*LJf~Zfx&r<WN~Z?)90@st$OKx8^g&bi(e% z2^7xW2N<gS34E3gs}^BI_q5&rB=W|_eW(S*D!|&}o^xAKWq-#n6oFu(ctJ-M{dlHH z<`vSLc<cp-g4bA<OU0)2<<k>AwdoJ0R01l$($^lN8obq^-C=uc{`y)$ZVk0}hJ`N; zL=UZUIic)0TKX+7??l;fMoF<`N#gjy67l8-3pVaeEoxUk*?!QG3wrXNx>7@O)63z7 zh1y=7omzWn&&q$TTKKIvMX_HU_D0I(x$o<lq&*qRPO>&%URz#=aADC`6?i3oad9yg znhb(pyeIt^i&{#3DmM1|%_I+w&M&{`_ld~;;8;h<^~;@aQlC8Gh8)5AG40*A0wh#O zJmiSt&y^|OU-)9))Dq%Fvc(91B`8E(Yz8-;MCfaiv@{3Q@2fDZ99PQn%bc~hBYPdP z$o0X@JPP6Y5c~fW&%^@=R+D+`PoGRkvUC;?Xz*-UN5&)`J(9V+VJ{D0FXn7n^Jc~# zzp=u216B;}y(4#4SD42jDqH$f)Jy{F3^<Dl*n7XBNdj#F)kuUeR4j;QXqw*PMklT% z?tP_+6m21<Y;}?q$e5MXx@f7}uSk2ve0X?Gjaow~N${C_53eC+Aow!Uiy<*FZ{9eo zY~Rj8GW5tE!xN7Lwj$9FvTUIuSXV%3;2^WmsNlNCk4LOEKcCj-!ljJ4f!T!xYn(BP zoCd%lf6)d<CB!#L+uAH5l8$Q&>E{OUwtJlBq|d;kQukqIlpLZhbh(+uH3j3><XI&% zU1yI3jVA3mOOKwmAN-qzo+xY_0s=AjQ+&Q(`Mit*MVbIY$Huva*en~+RL>s&ipnH^ zZhXDZ%s4BIyqS$dZ^-PGxzD#P#H4`F?C|SP)-aaudW8KVkl@&U^111_dw3%&){Nn? zV<D51uK8v`1JHQuP-F|>Zuo+SlejQ5Gcz8IF&_Uz+Y%(5c<qqGq7Z*6X%Si@Dj}f( z>w}(c<K^F@?NdtU!?~}#3VrD$%RlX-<Rp9BsMx;91XHgOXs9IP0&h#x#^$b3u|y^w zv_MoTK0ZDS$v^8FzRGNH?3g7~KEhi_{mOs&gd=uWhm&Xk>JBnuZQmJM%F7kWJkp6` zr)pHiVaYIq)V#dauq`lUAWpn}T$mDV;dFY}aXp%@ijSJwYta(elxHb#loz%`mL@N$ zLO=_liCT=3#UOr^cK0rI{91Sxjgu^QRr2XGPk5kytKmTtNCO0cT$~(t*P;WU{g{6; z2F;huEY#K2xuYxop3KZ=u1aJzLO-sBnu_#G%=hn(PkVww93Z#gQ78McSP7_`p6ES^ zV~i{pcIr}O`JciHT)3K$5QZ6u)O+{nVU;G7ZPpJ&RAZy1r6r`6eVAB6q;&}8tg2Qt z692H`p&k1!UQ{NhVRX{(7|v=7Iy+HR5DJX_y2LKF(q5K3U?;!I4|tZE_){{Vg7YB{ zfx+pDlZgd@Lo3Y8lFP+b$I*28Rp<&=yTPxXsAL!|CCc7|oE-9~6JYO>7U2-YN(6pQ zO-W;J_WJefL`1?ny?6X66-i$A8sNcgq*aK7LJ`?3Z<oBJDRBa-hVtAH7wH<nPS(!h zHZ^wYG#yUQwjxu8TqcQ&#wI1PMAZqOJ8*Xe;KM$1^NmE?N6X^#^z<Z$_+Ef3wNcaU zB-*d?Y#*(GfdK(He;ZVtnP3Ls5enORR&Bg6CT(D7*lfnBmqU&r|G1woqb(e<PWAim z`qx&@((&(hk3wfaxSGT}kw#2=^27jl!h}_ppSjAe_AGr64KghIF<L6^GwqOHaayv- z3AKm>qc{5hbt9261e@c^Hm4f~;$lro9UL6-K&bK&9cXe5I<(v3yeF1iJjrgEU!1e0 z?%zL%iG242_4fnhZohWgl>$tI00Y8Y(O7S8j!9jzXxb!q@bl--#+H`2vi0da(f@8m z#y80CLD1PYL3Ds%cCBo^e#F*0zMRO*?E}ofl-H(nd#DmTJHBU9k~$}^AYwqq`XL^W z@IGLhIJu?-zhVU=92@=it^UiTJx9rBUjLuZe1V)MDi%2eX<6`Dgvg6fCaOr!Ml8;> z#GS5k?v)GHUzUdD<1~um<pDFWk`TZ?679w2MJ8|m_%$s$2-|wPx&iQQxVLQCQoda| zcJ0q3R=U2Ip)-fzFClv)g1$`T{}!{=*;GtdV?F(ZXlnt{5QUlCY+-V<W%=LUgt;o~ z+!c<wEN*V@M*My7;-guSI3_&9r+>F;czM9TTM+3%ZVgH7p$XI?lrw}~4bOZnlDs5@ z5y~cT1z-rvBKE<5Zh_V|xa;^WIRG%u)^mIAa^fyeluxaO<q(2umZaiuj%#EP_3t*Q z`{06-2P2TC_n-EX-AHH>OapR*TXs}lN7FktkfTR-+$(GJTNM8~gexs%5|I}mE1MG+ zOoJ>e%#kDT#1CHwANH;|>P)~Z%_(mT@{kU3dHo*F-Me>V$~Yc1AOeM+8AZJoDloBS z74akl@~U;Eum^S|l!br%jxobJR2w3B!nsey(}M`#Co`;wOO>>oE=0Tps!uSYWonFp zq*7yflBX=dK})$fe~Mrz-0Q38N5@(jg@U^@o*3c@I&dPe8F-@TWN)+L-!S@pP41q< zGq$j6`Z4cN2Wx|r&mnkGL=48a!t+0^&<6AsQv}5`uo9t>q&|AYi5pf_R742?DQhx4 zKH6Gx*53E;&j!+xZfrlkf&#@(3K~D^>!!1wcWsn>ruSJ|3gIb7g>carg>VI1VORl# z9vc4@&K<UsUq&2#2D@SXA$ke{(@+bLtGZG6=woJi`FbWMrtqjJ5}?)*;X=4bS6}}U z<h7EPO>{X~SyfOBTQT;|y>{&&xC8PG<nVw3qUXG+k=1tUc3dJlRUq{n!VaOF=@}Y| zoIRF{(el-#x)^Wgp*%hOY4L}Pe~XxVX~wNv>$-qruJ9d191i$k=<C-OvvsjnlTwi{ zFaFLsNwhUe>bq}JnAc3)=IBQv=YnElO>GX8r%QpP62lC+cR4<G9Z8-ZJ9g~K>0w5p zNo<Ecpx_%NGQz_akA)r!sfYIEm5r}(9UU-7cat%CKMw(*vYN{sV`AjlF?`~}MX>4{ zkfn6F@XhDYAy(4t6CVicZ^R}quxaAN2Cub{nlxqQBh{HiW0hvQf~u<aHT*(PK>zQu ztq*EE4kHMUfC)$cPZ*<AA<{@h!bI^+`aH){9=GW>iTm=d#{C3`JwIOZ)ub!siDt&B z$+Ip~h9ZcohpR08jA?xHChV16P_;!BQg~9(Z(Xh*aCokB{(%@Dry3z?BuGW%tPhTs zxV4xJ{yS5-{M#!#H${IZRprpJSDK6ZXJq+-7g`qocp6L>P$=lIh!LtfIAnEY?uyXN zaO?W+|D*iniM!1&kXR-;AR$E8WN$}Ln7v#1Dw*ks_g;0R1nY1<Y-G+(R7?y50X(6r zH+=6-Kf#x2A3m<L`&H<aKpA_Dw4gj2%WoC^sYlC&7|d$e56LUnaP(Kn6s3*(RV)+m z*ncGk&$w6Q>YcT(IjV0zLdMcD=T>gyy6x^XOY8-MpFN_lX)pP)7ntN;F><^52q{`x z0BnWi)oP4r5tKupxhzHAABxmDAIYaLx5XyB>wcsi?X25A@`Brbd&CkDr|ER^Qatjf zf-CuO`;cm2qV86)o&92VTFKY13%SQQ-eUc##P+!Jr4eJ6)|oT8*32gPm239o8m<ze z#?jN;sa4!<4!(a==(qmC&_<<57ulpEuOFG@78q|wU6o9j6|v39%L~18=g#11yyo_+ zk0aI(Uk1;6@8wFd3VnZMoF&$tyVr^Gl%9Tp`@WxUU;Ks-wHKM}7hcWX&8xTiALo9{ zuJ)qShvzfZ3BnKdA3GLr&E7itn|zd0Z|V<w%W!=c(GXFrW68eFDMKAUs<CRsmvim? zy&oEEWYUU@dF&qZ;R`iI_IB=pt^Lyf^UojCbX^oq=yU=|c7F%1sb^%w5LGuIBe=^` z*FxmI_Je;{aYrVuV#cgp?Z%A@Kabsh^`&E#kY~Y!A9g9e8YsOT<Ql5D;Euh#I^UEm z^y~7#ZC3l=4D|X8_=w!^l3oTY97tq3BCY=Y?p>C)<m`K$S(RI@DrZ-V-C4Z(Y;pI` zo?G8-{>Sl}?J}15x5Pf$bHq(yB5;?d#s55^NW0oSiY(XXcRgw7kJijs`uZ~1M=Lg> z{=M$<SvxJI>sN)`?>xZ0bd@&vuD3ilRX^3JlXaUr(ZP}R)!gIkZ~y*4{1$memi`V| z5--^-_W%4_MHk(Z&4d^oKi>H!Zzqr%kzBx7MI|LQO-xKO{LK+#CK@6UxnP(?_pCl} zf6q=mP#A!=^;ocAWCCa!>xwq$^Vo%(tdQk5N0X35Ph7HZCveN%T?WB_S0G1`-Tb7F z%GiPzFvC3kF!JN7$E{6VC}kuf0KeI+=QGI=5bl7W6#uckVzfJ{5;V72cT8at-`jic zNKbzIg|9|SAB;{~;weeyojeD$zv~d9l$uH*6dm5cPly~Apkn72emuok^(6RW(Sgrf z=cLu|dO68%792LOnz%T#myElh9mbE@U!6G+9|0Og-eX7k<O;y#3F8z5_sYggSCP~P ztn^6O1P6ajWzR{e-?dXzHK4&W1IbfD(hCYEix*PP4=|BOgFz{w1YlqX55V9cwhtc0 z*wK}#ztc^Qi;j+t5>RN}Q2LOIlk*aUg<8AE{QyF*^mmG_+DSb~FesU{0&0d`zCp4j z9|V_Vbf8h~Kq!-if-bLtMg?;LWMRktlJ_iKuc&aP$U~wOe>HBB96i3BhZJlIdRBs6 z&h6_#e8OA$ExC8(<m4<g@r7aBq(54&=h+!=JadMaA_$jS!eYS`4<!IxyUIy+)1E!Y z-`+Z4qHiY*^%1$dr+&-Gi;(A@T;`R&v@B{uu?v5HWhXzU6fX;FkB5R;(CFxIA4NQK ziaZk2ZF)qn;n(HMEX1Zk{?sY&?E&Fe@ezO@n=p)yApuQ9Dko9G%_76pWh_FqUIBO8 zVpeq)++A_$IYJp$$gLyFU4`OL@G)T>m;zFi)*i-EK@|Wxs~1?BWO)Dny~WbsxmnCk zycx}Z!v2yydjm*}6$CsonhJe}j?z(fZpZiU-_J8<t~o2m1r$KWM#-Z!2x^meTR{-! z@&Wdp|C+ff8H)z)>VJ1cg*^3vJo5)KBd82tw-^^n5ZoP6QPC>gB@BOtpnbL&ON+7M z-c{MDlNU2n$V1<-jHOS#-HgY;HJh$!`gS;xU_mnNL?i&HWmj`_^rh^=uLpc}64io_ zjwyWNZC2Smw#1k;@S057QITK2eo-iE)~uNw-r?WbCyS>@1w-&SXeKVk{h#AmB6h83 zY#fekJ{h+JWni8>n^>@%(SZkn9l7X_-n^{$#Qi0E6Uf0@z|hw}JR!pJn>wo)-nw<m zr{N5d?9tlY7VPz>;uN@$^E_o>c6Z}T_M(-F_Ue`-IgO70oH=CuO(sWiyYQj<MAi`F zr_LMjG^fk{04L`W?P<Grh#wF!QJU+$!Ao{Ay4$QF=ka_Vx8deB*pvfg>w%uHkosT0 zMr8>#%n7NsxLU@o&uDk)RwSQrrp4nl_VN_^4-GoHN3l)06*0pf9=^HGF6e*Xx6DX8 z^^CS%vwO1D)!!UHdS}0#TKC;X>QP6F(D(b9_=IP&ACSkiVl!Of&ki!o@hsV+;vem| zF_FnLPWWHfJM{0b(mN^6y{p>3dB_;5r(~(zyl`6Ze-`zGGRnEm+M%wdPYH34zWw$= zOHWW@ui6`?f0N1cn)tsr(-y-aMW1(O^_E~x5`V$VLXQWor2~{A=d<6|cFThY4*+L% z(aj!rvfO?}546peR`+;<<GY6fR#y#jA%IpS-bS85J2*JV%bUdT=iYiXOOfljB|F=0 z&fgTWJ?azMxRbQ^PKK2g=4?UL6o@?J)egIA9E;Q#X_60r<>d}$U(bCjV$mC%(v5}X z;>C+Z_~K>37aH}`4JXcs+o_cd{R0fc`r4r*uMOTgy%%7I#6%vkgKP@=>BuENzyG7M zYmJ67jpOfRV+t9Ph>XiwP34+uu|#90dkJk<O=z1gOK9sv<(6oolx|o>NC>H18n#-x zS&`UQ%%K`ewyQ;`OxfRmKJ7XCY0q)ad~x3Qo#*{O&+~tNw+Z)Lw@$sFd2HGPi`}xK zIP_l5HaHvL4^SE8a8XTLcD{{u=sBd^2~RFfRBp|)XVKP-oiOa;qd7eNBlG@jZZ?G_ zysBtiEASSa>d}_q56_s?KeIIaVdESgwWuvEEq1mJT*DwsG5^yq%Fg7Z$18f17i7Ut zRq$n^o43U_ZyU|jm}ql2a(&%UpRzDV?uIfg4LlOQCOr~*oI1P57mU|!vN&1%?_mqa zuuXD`t_yp3>t=UHPfyPblh&hUUj4yO-Ai3P2A>xWx^OU<cyGz$D<|38+KzwScqVnr zlEC_7eN!FXUl`o|&M@kYv4k^9HKsZw14R!sp<Y~47v;-!aIl@JHO!UvSNT3$SK5=* z>hba_`h(H-nfs_CwR69pi$-yHMN>elOhrv0-JI3(#&34oWEGa$H=odgB5(A{wGL<f z(7hK=q%NQBIHM_LQmSc}mpk6gO#Zi#j(m1auNR62FXn2EA6Mh8&EgVQ%TvzI%>|K9 zMs+8=YxQ_~F_M*jVVp+&fvdGi%6ndjqvrHc0OLANWANcSmFV!){_uTP`}%i$HNWPu z>G3o3q)r!J%9yU>)2W6}F19kr`riA85|%<bzhmEw<bH$BX?q>468pJ(zueG~*RXD< zrHt8h!d&^!OEnF$GIA@$x7WDm6nyL`<qfDEe0ggLFWD#cZ(aNIKHF+JPnI=5P=#@M zDz`fw6MunM0L9Aw_oLmnY%Qe_;uxvSO$1U_x%1V2%1Z)MmN<ZZ!xjf;A89a)09b4} zMnmtAMu`24axH*Gk_H=?VTA(JmJWfvL=2FN<B!EQ9Z=@%UeirE2{`nTa~8*T3Omay zDEN8JW^fgxb)&coHRDi5UC*)#P3QWE22drGg9FWzKZp@vGyN}%4?`UsT|6%&MixLU z1DPu*Yb<qh`rNQEM+)Hr=2U$1^H^weL*aHHy8t<*!AE1aQPMH+K9dF=?UpmZ5YH7W z4j>8>>ARz_Vn>ULYY_C<nCrns8IqM0lLb3~Jv`FE&{npG4?X#a@MyaTMJQTBUmTnB zaIDQ3QEUdR$b~5!Q=H<LDf0!?6Tvz}zX0c;@kNW|&W=84yoZhOzZBQVIrU<D5|n@e zlS7<ft*N7}owSNwnO#}w#BzfGGy$8l(`l~L&IJr7^7EsN0~|iCq0X4u+2O%g05Fj5 z=!(aZrGt~Hbz6NygB~M*)|kVWKo>CP?6N7)*}Yobjf*4BO9H9aA)x-K2vb!JeG?q= zHl8gkv}C!xZLjcVn+jlzK@i%JyrQCAg(Yy<gJ0tnt}Nh9o2J8%C*ytJN8|7hp2SfG zeYuZPG78nds{&pSk$zw@0H~4Q63U)kYl0xfKy9cpFS@!ifkPa18BD2j0v2|#X^Q{| z1B1j7b-;FfIMIyWkW3g9=N&|J5|l#tKz?pIAFmVxzkKD&IK<<b1F-}x!bE}RA_Ni| zH1dAb{zw8!u!34hXCQ|g5IB+sZ1~zYQFp?GYF}Hr6Tt4%FNWp`1Vx5vnp%{;UA~F1 zj)e;k)y?RR%goDTGq%XAO5O#qoD6Jetwu5N2?@RO7_Fz}U#K!s()Wl(WGI3WExOS) z+>WAYc{Vm`%=Nze(}~zfG;-Vz)UGtJO%DU}@vm$|tfCkRk%9~MFiy<bU>l{7;sUYh zY-=z@>Gi43HZ;!5&#wrSQT0LfoS{eusl`;qs!#MeowmdR-y{>Q6tjI6YamTe{<!uG zni&eMW8^`R!-k6%E!zHTAo47#iY&xnvdJk!;zn2&G+@=b3xIyIW*s`fUXT_vrzzEl z8YM)Dkuf)Y#0zipJs>?bf{T-jA0qq-Y9Bdz(2?4nFnP2Z!=SpY>s-Hl@J@LkCItY~ z2*HW2o?cdY`Qs}MWS-3To<e9W42H0$;B>=6Q!JNmEn5pPSr($-6+2NxCc|^h+j=pH zo}XGJs)i^G>oEEDa3wP&zUSoRP_PGJTPiccyYQ@{PcA6hietm)wP#(<Fd6FxTLxc& zYjmRHM`yhj^q(hyQX#wd`IsyK7S_*3em6hbxh%Mw!7mBWZv+smLU;;Jvr`}nwL;9Q z4H8s@OP3zOY(ZhFGyXU#b>50qH*<B}paG{iM2r+0idlwKi%Obhcykjlb^SpsnORuO zgHl`q)tQKGdIuCW;fq2)zs$?BfGqGBIQgl^RGY-d$KSzvCPd^44jdC8GP>n|MR~vM zCSLm9_Z4DAk&d?KPu1evnuB71s|IAQOT4!ceRn6`SmHp$MHwYefHKZwOd!N!Oy2)C z5)lGIFPY-Vg>G(98;8;4j|ZNgI2_b2HAOEwc}Rt$<?`Ve8tmXgZ;{9v>I^f6je9Z@ zR2GSJYMj7)T!OrIJVLFnG$57BN3_*lAb4SQy&=x<ZHtUNdjwx8;BJc%70(A-)Yit~ zpOZ@Ug+ig^@L?>0f|#HrtRo>%>7&sg5^v9qujRX}Mb{;eg&-0@7f;a`*rv^=6^@88 z90O>5#n?#;y)m_EwMH?c{@gIEPa-UF(RAOEj=0aty{qEr6bUVh=RsP`&3)vD=tm@q xNZNBCgv%eNm5q<2^A1qg3k1jg|L@0V*Fgiz^{*>d(+^KD3x&%Bm-xQ>{{anzB$faG literal 0 HcmV?d00001 diff --git a/docs/source/images/circus-medium.png b/docs/source/images/circus-medium.png new file mode 100644 index 0000000000000000000000000000000000000000..8cb9ace11022da0d1bfa759eadb168b81af7c457 GIT binary patch literal 22717 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 IM6N<$f_lKYfB*mh literal 0 HcmV?d00001 diff --git a/docs/source/images/circus32.png b/docs/source/images/circus32.png new file mode 100644 index 0000000000000000000000000000000000000000..f94941f3c16f36483e88c48b0a5e4e7a8bc9c7b5 GIT binary patch literal 5025 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 literal 0 HcmV?d00001 diff --git a/docs/source/index.rst b/docs/source/index.rst index 0629ecb20..8d996b1ba 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -1,45 +1,47 @@ -Welcome to Circus' documentation! -================================= +Circus Process Watcher +====================== -Contents: +.. image:: images/circus-medium.png + :align: right -.. toctree:: - :maxdepth: 2 +Circus is a program that will let you run and watch several processes. + +Circus can be driven through a CLI or used via its APIs. + +It shares some of the goals Supervisord, BluePill and Daemontools have. +To install it, check out :ref:`installation` -XXX to reorganize -Circus is a program that runs and watches several processes. +Used as a library +----------------- -Circus can be driven through a CLI. +Circus provides high-level Classes and functions that will let you run +processes. For example, if you just want to run 4 workers forever, you +can write. +.. code-block:: python -Organization and terms ----------------------- + from circus import get_trainer -- Each program to run is called a *show* -- Each show can run with a certain amount of *flies* -- A *fly* spawns a independant process -- A *trainer* is responsible to run all the *shows* and make sure all the flies - behave. + trainer = get_trainer("myprogram", 3) + try: + trainer.start() + finally: + trainer.stop() -:: +This snippet will run 3 *myprogram* processes and watch them for you. - Trainer - | - |-- show 1 - | | - | |-- fly 1 - | |-- fly 2 - | - |-- show 2 - | - |-- fly 3 +To learn more about this, see :ref:`library` -Configuration -------------- -Circus is configured with a ini-style file. Example:: +Used through the command-line +----------------------------- + +Circus provides a command line script that can be used to run one or several +types of processes. + +It's an ini-style like file. Example:: [circus] check_delay = 5 @@ -51,14 +53,34 @@ Circus is configured with a ini-style file. Example:: warmup_delay = 0 num_flies = 5 +The file is then run using *circusd*:: + + $ circusd example.ini + +There's also a *circusctl* command line tool to query Circus to perform +actions like adding or removing workers, or getting back some usage +statistics. + +To learn more about this, see :ref:`cli` + + +More documentation +------------------ + +.. toctree:: + :maxdepth: 2 + installation + configuration + cli + library + architecture -Test it -------- -To test it run the following command: +Contributions and Feedback +-------------------------- - $ cd examples && circusd circus.ini +You can reach us for any feedback, bug report, or to contribute, at +https://github.com/mozilla-services/circus -It should launch 5 workers. diff --git a/docs/source/installation.rst b/docs/source/installation.rst new file mode 100644 index 000000000..743fa6530 --- /dev/null +++ b/docs/source/installation.rst @@ -0,0 +1,11 @@ +.. _installation: + +Installing Circus +----------------- + +To test it run the following command: + + $ cd examples && circusd circus.ini + +It should launch 5 workers. + diff --git a/docs/source/library.rst b/docs/source/library.rst new file mode 100644 index 000000000..f750dc14d --- /dev/null +++ b/docs/source/library.rst @@ -0,0 +1,6 @@ +.. _library: + +Circus Library +-------------- + +XXX