From a99a6f7bf7be23bb64bdd090ab709d14498449f4 Mon Sep 17 00:00:00 2001 From: Christian Van Wambeke Date: Tue, 24 Apr 2018 13:31:06 +0200 Subject: [PATCH] add doc/build for EZ direct html or pdf --- .gitignore | 3 +- .../doctrees/commands/apidoc/modules.doctree | Bin 0 -> 2859 bytes .../commands/apidoc/src.colorama.doctree | Bin 0 -> 144862 bytes .../doctrees/commands/apidoc/src.doctree | Bin 0 -> 1397542 bytes .../doctrees/commands/application.doctree | Bin 0 -> 22946 bytes doc/build/doctrees/commands/clean.doctree | Bin 0 -> 22067 bytes doc/build/doctrees/commands/compile.doctree | Bin 0 -> 25904 bytes doc/build/doctrees/commands/config.doctree | Bin 0 -> 26162 bytes doc/build/doctrees/commands/environ.doctree | Bin 0 -> 34698 bytes doc/build/doctrees/commands/generate.doctree | Bin 0 -> 17993 bytes doc/build/doctrees/commands/launcher.doctree | Bin 0 -> 20604 bytes doc/build/doctrees/commands/log.doctree | Bin 0 -> 18705 bytes doc/build/doctrees/commands/package.doctree | Bin 0 -> 24403 bytes doc/build/doctrees/commands/prepare.doctree | Bin 0 -> 29630 bytes doc/build/doctrees/configuration.doctree | Bin 0 -> 17416 bytes doc/build/doctrees/environment.pickle | Bin 0 -> 508083 bytes doc/build/doctrees/index.doctree | Bin 0 -> 16541 bytes .../doctrees/installation_of_sat.doctree | Bin 0 -> 3935 bytes .../release_notes/release_notes_5.0.0.doctree | Bin 0 -> 2714 bytes doc/build/doctrees/usage_of_sat.doctree | Bin 0 -> 21021 bytes doc/build/doctrees/write_command.doctree | Bin 0 -> 26071 bytes doc/build/html/.buildinfo | 4 + doc/build/html/_images/sat_about.png | Bin 0 -> 282130 bytes doc/build/html/_modules/index.html | 114 + doc/build/html/_modules/src/ElementTree.html | 1393 +++ doc/build/html/_modules/src/__init__.html | 544 ++ doc/build/html/_modules/src/architecture.html | 239 + .../html/_modules/src/colorama/ansi.html | 197 + .../_modules/src/colorama/ansitowin32.html | 331 + .../_modules/src/colorama/initialise.html | 175 + .../html/_modules/src/colorama/win32.html | 249 + .../html/_modules/src/colorama/winterm.html | 257 + doc/build/html/_modules/src/compilation.html | 588 ++ doc/build/html/_modules/src/debug.html | 297 + doc/build/html/_modules/src/environment.html | 982 +++ doc/build/html/_modules/src/fileEnviron.html | 964 +++ doc/build/html/_modules/src/fork.html | 256 + doc/build/html/_modules/src/logger.html | 506 ++ doc/build/html/_modules/src/options.html | 290 + doc/build/html/_modules/src/printcolors.html | 278 + doc/build/html/_modules/src/product.html | 917 ++ doc/build/html/_modules/src/pyconf.html | 1836 ++++ doc/build/html/_modules/src/system.html | 311 + doc/build/html/_modules/src/template.html | 123 + doc/build/html/_modules/src/test_module.html | 995 +++ doc/build/html/_modules/src/xmlManager.html | 307 + .../html/_sources/commands/apidoc/modules.txt | 7 + .../_sources/commands/apidoc/src.colorama.txt | 51 + .../html/_sources/commands/apidoc/src.txt | 146 + .../html/_sources/commands/application.txt | 55 + doc/build/html/_sources/commands/clean.txt | 61 + doc/build/html/_sources/commands/compile.txt | 75 + doc/build/html/_sources/commands/config.txt | 89 + doc/build/html/_sources/commands/environ.txt | 139 + doc/build/html/_sources/commands/generate.txt | 39 + doc/build/html/_sources/commands/launcher.txt | 52 + doc/build/html/_sources/commands/log.txt | 46 + doc/build/html/_sources/commands/package.txt | 81 + doc/build/html/_sources/commands/prepare.txt | 100 + doc/build/html/_sources/configuration.txt | 88 + doc/build/html/_sources/index.txt | 76 + .../html/_sources/installation_of_sat.txt | 15 + .../release_notes/release_notes_5.0.0.txt | 5 + doc/build/html/_sources/usage_of_sat.txt | 97 + doc/build/html/_sources/write_command.txt | 157 + doc/build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes doc/build/html/_static/alabaster.css | 689 ++ doc/build/html/_static/basic.css | 540 ++ doc/build/html/_static/comment-bright.png | Bin 0 -> 3500 bytes doc/build/html/_static/comment-close.png | Bin 0 -> 3578 bytes doc/build/html/_static/comment.png | Bin 0 -> 3445 bytes doc/build/html/_static/custom.css | 2 + doc/build/html/_static/doctools.js | 247 + doc/build/html/_static/down-pressed.png | Bin 0 -> 368 bytes doc/build/html/_static/down.png | Bin 0 -> 363 bytes doc/build/html/_static/file.png | Bin 0 -> 392 bytes doc/build/html/_static/jquery.js | 154 + doc/build/html/_static/minus.png | Bin 0 -> 199 bytes doc/build/html/_static/plus.png | Bin 0 -> 199 bytes doc/build/html/_static/pygments.css | 62 + doc/build/html/_static/sat_v5.0.png | Bin 0 -> 10035 bytes doc/build/html/_static/searchtools.js | 560 ++ doc/build/html/_static/underscore.js | 23 + doc/build/html/_static/up-pressed.png | Bin 0 -> 372 bytes doc/build/html/_static/up.png | Bin 0 -> 363 bytes doc/build/html/_static/websupport.js | 808 ++ doc/build/html/commands/apidoc/modules.html | 142 + .../html/commands/apidoc/src.colorama.html | 688 ++ doc/build/html/commands/apidoc/src.html | 4903 +++++++++++ doc/build/html/commands/application.html | 165 + doc/build/html/commands/clean.html | 172 + doc/build/html/commands/compile.html | 193 + doc/build/html/commands/config.html | 198 + doc/build/html/commands/environ.html | 236 + doc/build/html/commands/generate.html | 154 + doc/build/html/commands/launcher.html | 160 + doc/build/html/commands/log.html | 159 + doc/build/html/commands/package.html | 184 + doc/build/html/commands/prepare.html | 211 + doc/build/html/configuration.html | 199 + doc/build/html/genindex.html | 2447 ++++++ doc/build/html/index.html | 188 + doc/build/html/installation_of_sat.html | 113 + doc/build/html/objects.inv | Bin 0 -> 4634 bytes doc/build/html/py-modindex.html | 227 + .../release_notes/release_notes_5.0.0.html | 105 + doc/build/html/search.html | 106 + doc/build/html/searchindex.js | 1 + doc/build/html/usage_of_sat.html | 202 + doc/build/html/write_command.html | 247 + doc/build/latex/Makefile | 66 + doc/build/latex/fncychap.sty | 683 ++ doc/build/latex/python.ist | 11 + doc/build/latex/salomeTools.aux | 780 ++ doc/build/latex/salomeTools.idx | 512 ++ doc/build/latex/salomeTools.ilg | 7 + doc/build/latex/salomeTools.ind | 584 ++ doc/build/latex/salomeTools.log | 1664 ++++ doc/build/latex/salomeTools.out | 23 + doc/build/latex/salomeTools.pdf | Bin 0 -> 667449 bytes doc/build/latex/salomeTools.tex | 7626 +++++++++++++++++ doc/build/latex/salomeTools.toc | 104 + doc/build/latex/sat_about.png | Bin 0 -> 282130 bytes doc/build/latex/sphinx.sty | 478 ++ doc/build/latex/sphinxhowto.cls | 92 + doc/build/latex/sphinxmanual.cls | 133 + doc/build/latex/tabulary.sty | 452 + 127 files changed, 41234 insertions(+), 1 deletion(-) create mode 100644 doc/build/doctrees/commands/apidoc/modules.doctree create mode 100644 doc/build/doctrees/commands/apidoc/src.colorama.doctree create mode 100644 doc/build/doctrees/commands/apidoc/src.doctree create mode 100644 doc/build/doctrees/commands/application.doctree create mode 100644 doc/build/doctrees/commands/clean.doctree create mode 100644 doc/build/doctrees/commands/compile.doctree create mode 100644 doc/build/doctrees/commands/config.doctree create mode 100644 doc/build/doctrees/commands/environ.doctree create mode 100644 doc/build/doctrees/commands/generate.doctree create mode 100644 doc/build/doctrees/commands/launcher.doctree create mode 100644 doc/build/doctrees/commands/log.doctree create mode 100644 doc/build/doctrees/commands/package.doctree create mode 100644 doc/build/doctrees/commands/prepare.doctree create mode 100644 doc/build/doctrees/configuration.doctree create mode 100644 doc/build/doctrees/environment.pickle create mode 100644 doc/build/doctrees/index.doctree create mode 100644 doc/build/doctrees/installation_of_sat.doctree create mode 100644 doc/build/doctrees/release_notes/release_notes_5.0.0.doctree create mode 100644 doc/build/doctrees/usage_of_sat.doctree create mode 100644 doc/build/doctrees/write_command.doctree create mode 100644 doc/build/html/.buildinfo create mode 100644 doc/build/html/_images/sat_about.png create mode 100644 doc/build/html/_modules/index.html create mode 100644 doc/build/html/_modules/src/ElementTree.html create mode 100644 doc/build/html/_modules/src/__init__.html create mode 100644 doc/build/html/_modules/src/architecture.html create mode 100644 doc/build/html/_modules/src/colorama/ansi.html create mode 100644 doc/build/html/_modules/src/colorama/ansitowin32.html create mode 100644 doc/build/html/_modules/src/colorama/initialise.html create mode 100644 doc/build/html/_modules/src/colorama/win32.html create mode 100644 doc/build/html/_modules/src/colorama/winterm.html create mode 100644 doc/build/html/_modules/src/compilation.html create mode 100644 doc/build/html/_modules/src/debug.html create mode 100644 doc/build/html/_modules/src/environment.html create mode 100644 doc/build/html/_modules/src/fileEnviron.html create mode 100644 doc/build/html/_modules/src/fork.html create mode 100644 doc/build/html/_modules/src/logger.html create mode 100644 doc/build/html/_modules/src/options.html create mode 100644 doc/build/html/_modules/src/printcolors.html create mode 100644 doc/build/html/_modules/src/product.html create mode 100644 doc/build/html/_modules/src/pyconf.html create mode 100644 doc/build/html/_modules/src/system.html create mode 100644 doc/build/html/_modules/src/template.html create mode 100644 doc/build/html/_modules/src/test_module.html create mode 100644 doc/build/html/_modules/src/xmlManager.html create mode 100644 doc/build/html/_sources/commands/apidoc/modules.txt create mode 100644 doc/build/html/_sources/commands/apidoc/src.colorama.txt create mode 100644 doc/build/html/_sources/commands/apidoc/src.txt create mode 100644 doc/build/html/_sources/commands/application.txt create mode 100644 doc/build/html/_sources/commands/clean.txt create mode 100644 doc/build/html/_sources/commands/compile.txt create mode 100644 doc/build/html/_sources/commands/config.txt create mode 100644 doc/build/html/_sources/commands/environ.txt create mode 100644 doc/build/html/_sources/commands/generate.txt create mode 100644 doc/build/html/_sources/commands/launcher.txt create mode 100644 doc/build/html/_sources/commands/log.txt create mode 100644 doc/build/html/_sources/commands/package.txt create mode 100644 doc/build/html/_sources/commands/prepare.txt create mode 100644 doc/build/html/_sources/configuration.txt create mode 100644 doc/build/html/_sources/index.txt create mode 100644 doc/build/html/_sources/installation_of_sat.txt create mode 100644 doc/build/html/_sources/release_notes/release_notes_5.0.0.txt create mode 100644 doc/build/html/_sources/usage_of_sat.txt create mode 100644 doc/build/html/_sources/write_command.txt create mode 100644 doc/build/html/_static/ajax-loader.gif create mode 100644 doc/build/html/_static/alabaster.css create mode 100644 doc/build/html/_static/basic.css create mode 100644 doc/build/html/_static/comment-bright.png create mode 100644 doc/build/html/_static/comment-close.png create mode 100644 doc/build/html/_static/comment.png create mode 100644 doc/build/html/_static/custom.css create mode 100644 doc/build/html/_static/doctools.js create mode 100644 doc/build/html/_static/down-pressed.png create mode 100644 doc/build/html/_static/down.png create mode 100644 doc/build/html/_static/file.png create mode 100644 doc/build/html/_static/jquery.js create mode 100644 doc/build/html/_static/minus.png create mode 100644 doc/build/html/_static/plus.png create mode 100644 doc/build/html/_static/pygments.css create mode 100644 doc/build/html/_static/sat_v5.0.png create mode 100644 doc/build/html/_static/searchtools.js create mode 100644 doc/build/html/_static/underscore.js create mode 100644 doc/build/html/_static/up-pressed.png create mode 100644 doc/build/html/_static/up.png create mode 100644 doc/build/html/_static/websupport.js create mode 100644 doc/build/html/commands/apidoc/modules.html create mode 100644 doc/build/html/commands/apidoc/src.colorama.html create mode 100644 doc/build/html/commands/apidoc/src.html create mode 100644 doc/build/html/commands/application.html create mode 100644 doc/build/html/commands/clean.html create mode 100644 doc/build/html/commands/compile.html create mode 100644 doc/build/html/commands/config.html create mode 100644 doc/build/html/commands/environ.html create mode 100644 doc/build/html/commands/generate.html create mode 100644 doc/build/html/commands/launcher.html create mode 100644 doc/build/html/commands/log.html create mode 100644 doc/build/html/commands/package.html create mode 100644 doc/build/html/commands/prepare.html create mode 100644 doc/build/html/configuration.html create mode 100644 doc/build/html/genindex.html create mode 100644 doc/build/html/index.html create mode 100644 doc/build/html/installation_of_sat.html create mode 100644 doc/build/html/objects.inv create mode 100644 doc/build/html/py-modindex.html create mode 100644 doc/build/html/release_notes/release_notes_5.0.0.html create mode 100644 doc/build/html/search.html create mode 100644 doc/build/html/searchindex.js create mode 100644 doc/build/html/usage_of_sat.html create mode 100644 doc/build/html/write_command.html create mode 100644 doc/build/latex/Makefile create mode 100644 doc/build/latex/fncychap.sty create mode 100644 doc/build/latex/python.ist create mode 100644 doc/build/latex/salomeTools.aux create mode 100644 doc/build/latex/salomeTools.idx create mode 100644 doc/build/latex/salomeTools.ilg create mode 100644 doc/build/latex/salomeTools.ind create mode 100644 doc/build/latex/salomeTools.log create mode 100644 doc/build/latex/salomeTools.out create mode 100644 doc/build/latex/salomeTools.pdf create mode 100644 doc/build/latex/salomeTools.tex create mode 100644 doc/build/latex/salomeTools.toc create mode 100644 doc/build/latex/sat_about.png create mode 100644 doc/build/latex/sphinx.sty create mode 100644 doc/build/latex/sphinxhowto.cls create mode 100644 doc/build/latex/sphinxmanual.cls create mode 100644 doc/build/latex/tabulary.sty diff --git a/.gitignore b/.gitignore index 86431c4..2337686 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,8 @@ sat-py3 .pydevproject .project .settings -doc/build +# doc/build +doc/build/latex/salomeTools.log .coverage test/htmlcov test/test_res.html diff --git a/doc/build/doctrees/commands/apidoc/modules.doctree b/doc/build/doctrees/commands/apidoc/modules.doctree new file mode 100644 index 0000000000000000000000000000000000000000..253388e92fd8a3d9b02b6353664e89b2e361626d GIT binary patch literal 2859 zcmb_e`I{R@5#8)5$$R+@*h_A+f$YizhnR3WK!RB!4BiUMF$}GlmU`Hk>8a_Sl@=JV zfdnr{67KuH@B8@kcs&}e*ZRKv#t+h`8C7>xy?XVkZcGQE4hkE^W;4~HG%fd-$kev@ zu7_{(bjdU8)J#Pp?S3W=&z3y5Gcz?cW%7XMJBE&%qHAnqafeR*Q1%Qjl-!`@OyoxT zi8My^aj@xeisPiPtG@i}moHuPpSiMq zb?4Db?oAt*wh?bT&`BcF(6mJsxp#>Ui&&b?+*p3)b2s^1$>+PYU`5|$%WJeyC%~_w zmasODx`hRn_mq6^IyJ%~b9RRB^JpQ6g)#VjzekO(2zGN!W zg2%5`^P-^HI7%h2Z%yN}y6*h2npVK_HS3copvW=ue=VSVq~witb>@%=o9e7OrS4Ye z)EdoIcHCBo^5VL>&r|n%>H$wZ=&1`{q2Nr_E?zh3VOtKtyGIYNeLXO_RPtkRrJRdL zimoWSlc#`cri(Oe@f#4@<0W5)Jxv`6sWCR;H@c{vsH5UH(Tdf9&86HJJ+XmlFy^Scgcwjb**KXu?R1d=02FQDjPZXTiNPka3C&dy2ja`H~sCRd;5 z_XwI-Q5d36whm}9N`tsSuY$jZ-|O)+>Z+hdB8H*Ntm4krtSi(kcu*lO@$Dd`V>TD5 z>FGQHRPXE1(qX4obh}pa`>BDSBbt4n1RFuAf1{p z_p85lJpK?hgUD7oVfe!yf5erB7RQ285&5IgkHZLWOONOA$6Q#M&Mo5hJJg86T3bF2 zZCN@Ri(%n$mzKuPMgasRhqM}{VU$Bse8^H?TEo)g9yN@#HcI=3`$u}Fm+RC@u<}_E z7tmE!nxm3Gu}&w(Q24G-5%{j*U4(HGSL-~4hGsY?)4)|W?$Bc13t$Q{E%KNXI;X77 zo@lqN)==$8+TNzl`)y^DxXmdwfj}VL)vRwphGphb0PoTO_hlVgHXu#rJEnj?h8cAP zSC2%K)0|`0J{ww!McOZ*;II!RTbc%i3TlP|LS#jf@t%vY!q$)Fo{V__Iax#&m~GD{QXNFCTA%Ewc8AW(JlDC8NOcH6{n4X>WX7o5r)bq>WpG5nVT>&K z(=->#ZqetmL#q<)!@e z3j3v7w1!NQ!$!MZb>CzTt1lnWj7<0VE1f#8%*Y}{9!bn!b?^-{4U$EmZJvtQ@C#@s zhY2QprAKwfFCNgb(WLYpdHE%T=_q=HWnY7f3E=tbG*{T(#%2Bnwd&)J&)>x9C_P#t z{uVVW%MAk%zD+BB7#Yz8lr=8j=};35oWWr<u}zPE+l<4zv&_i2u{ zpMvWj(8752_#s{Uzt8X=(F$b2Vv4!$0_c{1e2bcWnM!OpDBn+zY(=TtApaEYV-l=6 zJ{MSd4F3%J?8tN2@js_~>W&`_2AkQwRXVLYK9qZHSeiEf!pUrE#n4w#U&Z)X{w1cn zPW${TI)5j=6K(Ztb%U0j0{XWx{S8e=A^#S^Vm!LBUzh%O2Xt=KxH6WNdH{8+{PFVf zd$dPgrHcH9|KQP?stuyl$h_JSW$KC<@*mMT$FPl|H%Bl2gcnN{Jco+<=T6b3(~~n{ zv=;tlYihLJ{I%r2sa18#fUZZE(a{w8d&&P$YnT?8!vCx$e>FwN+a7in>?hbvs5#bU W!~gR5-!$*|h2`l#CI7eRZvGF|03mk( literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/commands/apidoc/src.colorama.doctree b/doc/build/doctrees/commands/apidoc/src.colorama.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a675d206c52bfb8d2f739d562b6574a952374978 GIT binary patch literal 144862 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⋑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

n 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 literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/installation_of_sat.doctree b/doc/build/doctrees/installation_of_sat.doctree new file mode 100644 index 0000000000000000000000000000000000000000..62e5233e1f54b911334295cab27eba4868e503bd GIT binary patch literal 3935 zcmb_f`F|Tn6?g2|mgFN&nxuuqRBhTuF}0M2l!gEW7a9mo)IvPP1(s#BJJKxP>+Q_i za$#u$l*ZimUGDq7@B6-Q{vW=xTG_G)ZJzv$s$Q7z$ zJ_aJx720#+G7V=mQe)+i2STsMLebugMwcgthK9UQY3}=6dr?SZO~v-Bw57DCAuI}Q zSF{z4XH;U-F;A4R1ECb}KtkD~3Y&J)B!L!NMQP#)nrO0$E1W3l$(wAl13cAHJBoA| zX<P|J+HcW;o#rXw7ib+JAq@m}4vI;$6`2q-OtVV_nUo_Tu&=M=6acN=c z&iuu`bmsI)`{KgV`Q=lm&65ULZm7g*41%|#wyn6XCrZ;3AH7URGCJB~zlf}jzpDTs;H(RXK;?7E9+;PleBZj$KEV@9p8}Rn zXLKi&OQY-dw8hib&g<|e?<72y6?!Vr-j&fAgSG{qF_j{Q*Q==#N!5u`->tU2(5==u zUhwb)9tMH=FgFL+%*|C@FF^$13U6!N;nm}=Kx`hb4tla0wX2sFF5GwV-a0*PfP?ZT z6gq2oc=~_iVYJV~GivhG^4wLSq-TPWyEA&0G4SfH0_I)2xl=lc!cK*r4dNCuy2r>J z2c&`yW5jcI8v#)!Xr2rFBRCA^=w1Ljm(lYefDJ*{0$hct80#sZ=cg?kz5|D^p5gNl z{ep}Z4YvPFLeF%u+j`%FkGXHR{K#3U&;^iiF{7qY)C5%cy*l4*SL^jUlG?c2?sn_C z^H9Zc3;*Lm#aGpNzX}qn`OmTZ?fl*N=SP89iXvY%@a;gHOl?z4_Zgb+ud#8HpJAlv zg&VBo^RSbmpwf$$_X10cE6K{;z(1>Ej)HoLmEuGotXBmsnIuE1^>VJ4ZR7nYW8nST z8$%DkDKE}wx$p0bd1^|NfDdN$5<}q2^l1Fg9L0 zv9RgE-4QB+SaRj53UM&o%E&QVr(n!BPD}u~yGejZlcxgqPvFV`i`0e@os4APf304= zmih|G%QJQluGMk$l^LxV&H3jZROAzWxyg4np%Wgec9aAnA-~C{HXD21n1YN#R>Ip} zLy9tr*^F8bT9I$}Pbwmd61IQaSdiaV7HM{H$8kIVDz#{pl^sv#V}+tMi@L_`Y_dOp z%%WMWM zC2t!xDn>_WMX$B!b*!X>)?V0A^!kDB+D5_EB6KSca6iR7Mvq4HhKwGou>*Z7Y}3&J zd_~a}z_<<_DN0<7Truv6(DBgtH=1lRX*)QI*(*(adLug`wT{m=8roExx+iqI9wnWI z)PdiiH?cApaD)*}Z@z-5O~l3ofmz6bytg#jG-|aM+omI8K2r2n_)$kjMIX)E*eJe9 z*6HnRs$ZXQ-WBu?HjIJnoviF~j4YZ5F}=$m%(=CFu_}Ce_agiPD=0~&;LXZ!Ag~eamU=zK0+BU&UUj|GQq61O(6{y%jJbjgorn)_UhQ7us#dQ^9m$?mG83)*L2eV0o#X?pfTc_%t9m7^usHx+z}y0597KY!O%RMwg~<) zQbz^Yh-^x+9Vzl@I_uZ zz_^xne?|E%Qls!t9{7rWXR*V13ZT)8Bwr^*XdLO%?~yeV*w>Jky$655gQ=XJ&1(9` zX4+zhcJ_nb2KlGOq23Pk=ZyX$XXHVJP#xS`dmZSn8U0PpqEn!6{yp!T`2^M92eHs# edBGsX%Ke(G=pPpSlZ~0!!ix2;jQ*Xr>i+@vK8_#& literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/release_notes/release_notes_5.0.0.doctree b/doc/build/doctrees/release_notes/release_notes_5.0.0.doctree new file mode 100644 index 0000000000000000000000000000000000000000..109e83a98fffc89e6dc84ca1b06d2b2830cf7560 GIT binary patch literal 2714 zcmcIm`+M9*6?L7i?cHP@Cr#2qVw%2PsJ$U1G?Zt67J}&ljc*A7A!eo79brkMJ2UbF z5N&`$4CVc%Pbe+$UvfsPb?p7Zk9_{T-%2|(_uO;Oxp!Wkjba^@E=lcLu48FC{xOre z>+n5K-s0JckE~ET7nyXsg|vKc#jP9NnVA_QQz@)GpKFKLbA3xEY&ozlaX3xqVJwH1 z=PO>I#X=Y>!%SK$Mp)YpxI>FkX$-=IR+lD{e6&xUSVr0iznhQs>7*!~9%}7;gwQ%+ z9Cz36p?MD`i7hWyd|b^@w?VQxMzUmSAyP>i<8(d|@X6@}t&Dt#4&R6TPE~vw`5Cd@ z;5b7wGzY+d#`mjPnrq%aFnx@Xg(>qS0%;w7-;JA~q_?G0z)xjwTVw;dDSOwiZd|TE z!s}NqT?n7Qx^eBs#Y_H84?Op*iFytCuttCQDZIRP0e{9ie*Y`C_-w`J1~l))$TPsp zG~cAcAE1tK&Lo4<*W$s7&#%xzTo!(v<%a^Ak5XYRzCRq$!aziu##iT&fR1<~9}W01 zwIrxDUjKN&PpCOj(!FVtOI}$&g2NhB@RMp*fz=PLO!I-lr(ohkAoZz=S69@TS|%?X zlF6F7U!779sIzLBTJ;X@Dd4@Zq8%-c@t{-)tD0aRo{qI4cc9OUcM0$j z@N}u-%LuQ0u&2s_Cf+sx{3Jkrs^U+3kpB3mYmgG3%FFMlGa|P`Z8B;2Gkxmro1m`R z)rvn$3-~&&*5@kzJT2MXY@pL{veNRi0Y6744q2$){e^(PNT;TjhxJd_0{#-Uqr}w~ zw7eehmwhgDY~s~g56{Dz`v~v2x*zaYJgh<+2i#xn(?SwAw*4Ax+dYWI@(Tf9r|u-! z7{ErwL`z8?Ck7r3;rNksmR}6`>$G5{b4fn3eB*%hhDPU3=5gmmk(Ov){0+@FEB@vR zot#h+dbtDmrsZz|#(g+in;7k>z&@Er30x8M>6jTtSc*PXnv}myXO(lsGrgYE8m%#r zZn&n+sHa?(_BfJ}ln!j@!9ZnWL1&Ov1;XKi&MMx+q!boSnnOYv8j!yd!6EqRE z@Qc~yn7XORM*+kw;i_8>VtgrmWUc7i58kn~z&&f)1)g z>Y4@LU2jph0nwO$v#)x6Iwy_MCInI)gV1pNs6-y8s9Q=)9-_q-g@7rt(Uja`(I}k=%QdFa?F5)(&l9r?s$Q-K}n9sWmbgylCo^U z6&g;G4|TK5VcFugFu4bev!uwl?9*w_`w$J+7cF!$170V2ix%+1>SGr!#k@@?8otsuCq#3oJ~{vJ+_QY|(^nTaF~MT}umx6kk2re$Q3?Hlb* z)k9l&u70pbM`XUmRlmuru(FJiN0#yrJ$*ZchR71g*5o3!{1WWsIl=I(8)B33%X@Tm zJbFSeUcLpGUZMw7_9KLtBA$OttmL}Pp0}W>E{1& zDE^9$qd_R^sGBKX@LogG^kQ?%|Q;NPimGREW J{GW2L_FsE}=W74} literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/usage_of_sat.doctree b/doc/build/doctrees/usage_of_sat.doctree new file mode 100644 index 0000000000000000000000000000000000000000..155a84a279f9e29ca8a282df4b0b116b3994d4c9 GIT binary patch literal 21021 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

q^CYOCv5N} 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 QlmGw#07*qoM6N<$f=COSlK=n! literal 0 HcmV?d00001 diff --git a/doc/build/html/_modules/index.html b/doc/build/html/_modules/index.html new file mode 100644 index 0000000..29da883 --- /dev/null +++ b/doc/build/html/_modules/index.html @@ -0,0 +1,114 @@ + + + + + + + + + Overview: module code — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/ElementTree.html b/doc/build/html/_modules/src/ElementTree.html new file mode 100644 index 0000000..a9af586 --- /dev/null +++ b/doc/build/html/_modules/src/ElementTree.html @@ -0,0 +1,1393 @@ + + + + + + + + + src.ElementTree — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.ElementTree

+#
+# ElementTree
+# $Id: ElementTree.py 2326 2005-03-17 07:45:21Z fredrik $
+#
+# light-weight XML support for Python 1.5.2 and later.
+#
+# history:
+# 2001-10-20 fl   created (from various sources)
+# 2001-11-01 fl   return root from parse method
+# 2002-02-16 fl   sort attributes in lexical order
+# 2002-04-06 fl   TreeBuilder refactoring, added PythonDoc markup
+# 2002-05-01 fl   finished TreeBuilder refactoring
+# 2002-07-14 fl   added basic namespace support to ElementTree.write
+# 2002-07-25 fl   added QName attribute support
+# 2002-10-20 fl   fixed encoding in write
+# 2002-11-24 fl   changed default encoding to ascii; fixed attribute encoding
+# 2002-11-27 fl   accept file objects or file names for parse/write
+# 2002-12-04 fl   moved XMLTreeBuilder back to this module
+# 2003-01-11 fl   fixed entity encoding glitch for us-ascii
+# 2003-02-13 fl   added XML literal factory
+# 2003-02-21 fl   added ProcessingInstruction/PI factory
+# 2003-05-11 fl   added tostring/fromstring helpers
+# 2003-05-26 fl   added ElementPath support
+# 2003-07-05 fl   added makeelement factory method
+# 2003-07-28 fl   added more well-known namespace prefixes
+# 2003-08-15 fl   fixed typo in ElementTree.findtext (Thomas Dartsch)
+# 2003-09-04 fl   fall back on emulator if ElementPath is not installed
+# 2003-10-31 fl   markup updates
+# 2003-11-15 fl   fixed nested namespace bug
+# 2004-03-28 fl   added XMLID helper
+# 2004-06-02 fl   added default support to findtext
+# 2004-06-08 fl   fixed encoding of non-ascii element/attribute names
+# 2004-08-23 fl   take advantage of post-2.1 expat features
+# 2005-02-01 fl   added iterparse implementation
+# 2005-03-02 fl   fixed iterparse support for pre-2.2 versions
+#
+# Copyright (c) 1999-2005 by Fredrik Lundh.  All rights reserved.
+#
+# fredrik@pythonware.com
+# http://www.pythonware.com
+#
+# --------------------------------------------------------------------
+# The ElementTree toolkit is
+#
+# Copyright (c) 1999-2005 by Fredrik Lundh
+#
+# By obtaining, using, and/or copying this software and/or its
+# associated documentation, you agree that you have read, understood,
+# and will comply with the following terms and conditions:
+#
+# Permission to use, copy, modify, and distribute this software and
+# its associated documentation for any purpose and without fee is
+# hereby granted, provided that the above copyright notice appears in
+# all copies, and that both that copyright notice and this permission
+# notice appear in supporting documentation, and that the name of
+# Secret Labs AB or the author not be used in advertising or publicity
+# pertaining to distribution of the software without specific, written
+# prior permission.
+#
+# SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
+# TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-
+# ABILITY AND FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR
+# BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
+# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+# OF THIS SOFTWARE.
+# --------------------------------------------------------------------
+
+__all__ = [
+    # public symbols
+    "Comment",
+    "dump",
+    "Element", "ElementTree",
+    "fromstring",
+    "iselement", "iterparse",
+    "parse",
+    "PI", "ProcessingInstruction",
+    "QName",
+    "SubElement",
+    "tostring",
+    "TreeBuilder",
+    "VERSION", "XML",
+    "XMLTreeBuilder",
+    ]
+
+##
+# The <b>Element</b> type is a flexible container object, designed to
+# store hierarchical data structures in memory. The type can be
+# described as a cross between a list and a dictionary.
+# <p>
+# Each element has a number of properties associated with it:
+# <ul>
+# <li>a <i>tag</i>. This is a string identifying what kind of data
+# this element represents (the element type, in other words).</li>
+# <li>a number of <i>attributes</i>, stored in a Python dictionary.</li>
+# <li>a <i>text</i> string.</li>
+# <li>an optional <i>tail</i> string.</li>
+# <li>a number of <i>child elements</i>, stored in a Python sequence</li>
+# </ul>
+#
+# To create an element instance, use the {@link #Element} or {@link
+# #SubElement} factory functions.
+# <p>
+# The {@link #ElementTree} class can be used to wrap an element
+# structure, and convert it from and to XML.
+##
+
+import string, sys, re, platform
+
+class _SimpleElementPath:
+    # emulate pre-1.2 find/findtext/findall behaviour
+    def find(self, element, tag):
+        for elem in element:
+            if elem.tag == tag:
+                return elem
+        return None
+    def findtext(self, element, tag, default=None):
+        for elem in element:
+            if elem.tag == tag:
+                return elem.text or ""
+        return default
+    def findall(self, element, tag):
+        if tag[:3] == ".//":
+            return element.getiterator(tag[3:])
+        result = []
+        for elem in element:
+            if elem.tag == tag:
+                result.append(elem)
+        return result
+
+try:
+    import ElementPath
+except ImportError:
+    # FIXME: issue warning in this case?
+    ElementPath = _SimpleElementPath()
+
+# TODO: add support for custom namespace resolvers/default namespaces
+# TODO: add improved support for incremental parsing
+
+VERSION = "1.2.6"
+
+##
+# Internal element class.  This class defines the Element interface,
+# and provides a reference implementation of this interface.
+# <p>
+# You should not create instances of this class directly.  Use the
+# appropriate factory functions instead, such as {@link #Element}
+# and {@link #SubElement}.
+#
+# @see Element
+# @see SubElement
+# @see Comment
+# @see ProcessingInstruction
+
+class _ElementInterface:
+    # <tag attrib>text<child/>...</tag>tail
+
+    ##
+    # (Attribute) Element tag.
+
+    tag = None
+
+    ##
+    # (Attribute) Element attribute dictionary.  Where possible, use
+    # {@link #_ElementInterface.get},
+    # {@link #_ElementInterface.set},
+    # {@link #_ElementInterface.keys}, and
+    # {@link #_ElementInterface.items} to access
+    # element attributes.
+
+    attrib = None
+
+    ##
+    # (Attribute) Text before first subelement.  This is either a
+    # string or the value None, if there was no text.
+
+    text = None
+
+    ##
+    # (Attribute) Text after this element's end tag, but before the
+    # next sibling element's start tag.  This is either a string or
+    # the value None, if there was no text.
+
+    tail = None # text after end tag, if any
+
+    def __init__(self, tag, attrib):
+        self.tag = tag
+        self.attrib = attrib
+        self._children = []
+
+    def __repr__(self):
+        return "<Element %s at %x>" % (self.tag, id(self))
+
+    ##
+    # Creates a new element object of the same type as this element.
+    #
+    # @param tag Element tag.
+    # @param attrib Element attributes, given as a dictionary.
+    # @return A new element instance.
+
+    def makeelement(self, tag, attrib):
+        return Element(tag, attrib)
+
+    ##
+    # Returns the number of subelements.
+    #
+    # @return The number of subelements.
+
+    def __len__(self):
+        return len(self._children)
+
+    ##
+    # Returns the given subelement.
+    #
+    # @param index What subelement to return.
+    # @return The given subelement.
+    # @exception IndexError If the given element does not exist.
+
+    def __getitem__(self, index):
+        return self._children[index]
+
+    ##
+    # Replaces the given subelement.
+    #
+    # @param index What subelement to replace.
+    # @param element The new element value.
+    # @exception IndexError If the given element does not exist.
+    # @exception AssertionError If element is not a valid object.
+
+    def __setitem__(self, index, element):
+        assert iselement(element)
+        self._children[index] = element
+
+    ##
+    # Deletes the given subelement.
+    #
+    # @param index What subelement to delete.
+    # @exception IndexError If the given element does not exist.
+
+    def __delitem__(self, index):
+        del self._children[index]
+
+    ##
+    # Returns a list containing subelements in the given range.
+    #
+    # @param start The first subelement to return.
+    # @param stop The first subelement that shouldn't be returned.
+    # @return A sequence object containing subelements.
+
+    def __getslice__(self, start, stop):
+        return self._children[start:stop]
+
+    ##
+    # Replaces a number of subelements with elements from a sequence.
+    #
+    # @param start The first subelement to replace.
+    # @param stop The first subelement that shouldn't be replaced.
+    # @param elements A sequence object with zero or more elements.
+    # @exception AssertionError If a sequence member is not a valid object.
+
+    def __setslice__(self, start, stop, elements):
+        for element in elements:
+            assert iselement(element)
+        self._children[start:stop] = list(elements)
+
+    ##
+    # Deletes a number of subelements.
+    #
+    # @param start The first subelement to delete.
+    # @param stop The first subelement to leave in there.
+
+    def __delslice__(self, start, stop):
+        del self._children[start:stop]
+
+    ##
+    # Adds a subelement to the end of this element.
+    #
+    # @param element The element to add.
+    # @exception AssertionError If a sequence member is not a valid object.
+
+    def append(self, element):
+        assert iselement(element)
+        self._children.append(element)
+
+    ##
+    # Inserts a subelement at the given position in this element.
+    #
+    # @param index Where to insert the new subelement.
+    # @exception AssertionError If the element is not a valid object.
+
+    def insert(self, index, element):
+        assert iselement(element)
+        self._children.insert(index, element)
+
+    ##
+    # Removes a matching subelement.  Unlike the <b>find</b> methods,
+    # this method compares elements based on identity, not on tag
+    # value or contents.
+    #
+    # @param element What element to remove.
+    # @exception ValueError If a matching element could not be found.
+    # @exception AssertionError If the element is not a valid object.
+
+    def remove(self, element):
+        assert iselement(element)
+        self._children.remove(element)
+
+    ##
+    # Returns all subelements.  The elements are returned in document
+    # order.
+    #
+    # @return A list of subelements.
+    # @defreturn list of Element instances
+
+    def getchildren(self):
+        return self._children
+
+    ##
+    # Finds the first matching subelement, by tag name or path.
+    #
+    # @param path What element to look for.
+    # @return The first matching element, or None if no element was found.
+    # @defreturn Element or None
+
+    def find(self, path):
+        if ElementPath.find(self, path) == None:
+            return ElementPath.find(self, path.encode())
+        return ElementPath.find(self, path)
+
+    ##
+    # Finds text for the first matching subelement, by tag name or path.
+    #
+    # @param path What element to look for.
+    # @param default What to return if the element was not found.
+    # @return The text content of the first matching element, or the
+    #     default value no element was found.  Note that if the element
+    #     has is found, but has no text content, this method returns an
+    #     empty string.
+    # @defreturn string
+
+    def findtext(self, path, default=None):
+        return ElementPath.findtext(self, path, default)
+
+    ##
+    # Finds all matching subelements, by tag name or path.
+    #
+    # @param path What element to look for.
+    # @return A list or iterator containing all matching elements,
+    #    in document order.
+    # @defreturn list of Element instances
+
+    def findall(self, path):
+        return ElementPath.findall(self, path)
+
+    ##
+    # Resets an element.  This function removes all subelements, clears
+    # all attributes, and sets the text and tail attributes to None.
+
+    def clear(self):
+        self.attrib.clear()
+        self._children = []
+        self.text = self.tail = None
+
+    ##
+    # Gets an element attribute.
+    #
+    # @param key What attribute to look for.
+    # @param default What to return if the attribute was not found.
+    # @return The attribute value, or the default value, if the
+    #     attribute was not found.
+    # @defreturn string or None
+
+    def get(self, key, default=None):
+        res = self.attrib.get(key, default)
+        if not res:
+            res = self.attrib.get(key.encode(), default)
+        if isinstance(res, bytes):
+            return res.decode()
+        else:
+            return res
+
+    ##
+    # Sets an element attribute.
+    #
+    # @param key What attribute to set.
+    # @param value The attribute value.
+
+    def set(self, key, value):
+        self.attrib[key] = value
+
+    ##
+    # Gets a list of attribute names.  The names are returned in an
+    # arbitrary order (just like for an ordinary Python dictionary).
+    #
+    # @return A list of element attribute names.
+    # @defreturn list of strings
+
+    def keys(self):
+        res = []
+        for key in self.attrib.keys():
+            if isinstance(key, bytes):
+                res.append(key.decode())
+            else:
+                res.append(key)
+        return res
+                
+    ##
+    # Gets element attributes, as a sequence.  The attributes are
+    # returned in an arbitrary order.
+    #
+    # @return A list of (name, value) tuples for all attributes.
+    # @defreturn list of (string, string) tuples
+
+    def items(self):
+        return self.attrib.items()
+
+    ##
+    # Creates a tree iterator.  The iterator loops over this element
+    # and all subelements, in document order, and returns all elements
+    # with a matching tag.
+    # <p>
+    # If the tree structure is modified during iteration, the result
+    # is undefined.
+    #
+    # @param tag What tags to look for (default is to return all elements).
+    # @return A list or iterator containing all the matching elements.
+    # @defreturn list or iterator
+
+    def getiterator(self, tag=None):
+        nodes = []
+        if tag == "*":
+            tag = None
+        if tag is None or self.tag == tag:
+            nodes.append(self)
+        for node in self._children:
+            nodes.extend(node.getiterator(tag))
+        return nodes
+
+# compatibility
+_Element = _ElementInterface
+
+##
+# Element factory.  This function returns an object implementing the
+# standard Element interface.  The exact class or type of that object
+# is implementation dependent, but it will always be compatible with
+# the {@link #_ElementInterface} class in this module.
+# <p>
+# The element name, attribute names, and attribute values can be
+# either 8-bit ASCII strings or Unicode strings.
+#
+# @param tag The element name.
+# @param attrib An optional dictionary, containing element attributes.
+# @param **extra Additional attributes, given as keyword arguments.
+# @return An element instance.
+# @defreturn Element
+
+
[docs]def Element(tag, attrib={}, **extra): + attrib = attrib.copy() + attrib.update(extra) + return _ElementInterface(tag, attrib) + +## +# Subelement factory. This function creates an element instance, and +# appends it to an existing element. +# <p> +# The element name, attribute names, and attribute values can be +# either 8-bit ASCII strings or Unicode strings. +# +# @param parent The parent element. +# @param tag The subelement name. +# @param attrib An optional dictionary, containing element attributes. +# @param **extra Additional attributes, given as keyword arguments. +# @return An element instance. +# @defreturn Element +
+
[docs]def SubElement(parent, tag, attrib={}, **extra): + attrib = attrib.copy() + attrib.update(extra) + element = parent.makeelement(tag, attrib) + parent.append(element) + return element + +## +# Comment element factory. This factory function creates a special +# element that will be serialized as an XML comment. +# <p> +# The comment string can be either an 8-bit ASCII string or a Unicode +# string. +# +# @param text A string containing the comment string. +# @return An element instance, representing a comment. +# @defreturn Element +
+
[docs]def Comment(text=None): + element = Element(Comment) + element.text = text + return element + +## +# PI element factory. This factory function creates a special element +# that will be serialized as an XML processing instruction. +# +# @param target A string containing the PI target. +# @param text A string containing the PI contents, if any. +# @return An element instance, representing a PI. +# @defreturn Element +
+
[docs]def ProcessingInstruction(target, text=None): + element = Element(ProcessingInstruction) + element.text = target + if text: + element.text = element.text + " " + text + return element +
+PI = ProcessingInstruction + +## +# QName wrapper. This can be used to wrap a QName attribute value, in +# order to get proper namespace handling on output. +# +# @param text A string containing the QName value, in the form {uri}local, +# or, if the tag argument is given, the URI part of a QName. +# @param tag Optional tag. If given, the first argument is interpreted as +# an URI, and this argument is interpreted as a local name. +# @return An opaque object, representing the QName. + +
[docs]class QName: + def __init__(self, text_or_uri, tag=None): + if tag: + text_or_uri = "{%s}%s" % (text_or_uri, tag) + self.text = text_or_uri + def __str__(self): + return self.text + def __hash__(self): + return hash(self.text) + def __cmp__(self, other): + if isinstance(other, QName): + return cmp(self.text, other.text) + return cmp(self.text, other) + +## +# ElementTree wrapper class. This class represents an entire element +# hierarchy, and adds some extra support for serialization to and from +# standard XML. +# +# @param element Optional root element. +# @keyparam file Optional file handle or name. If given, the +# tree is initialized with the contents of this XML file. +
+
[docs]class ElementTree: + + def __init__(self, element=None, file=None): + assert element is None or iselement(element) + self._root = element # first node + if file: + self.parse(file) + + ## + # Gets the root element for this tree. + # + # @return An element instance. + # @defreturn Element + +
[docs] def getroot(self): + return self._root + + ## + # Replaces the root element for this tree. This discards the + # current contents of the tree, and replaces it with the given + # element. Use with care. + # + # @param element An element instance. +
+ def _setroot(self, element): + assert iselement(element) + self._root = element + + ## + # Loads an external XML document into this element tree. + # + # @param source A file name or file object. + # @param parser An optional parser instance. If not given, the + # standard {@link XMLTreeBuilder} parser is used. + # @return The document root element. + # @defreturn Element + +
[docs] def parse(self, source, parser=None): + if not hasattr(source, "read"): + # OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb + # de remontee de log des tests + #print "TRACES OP - ElementTree.py/ElementTree.parse() source = '#%s#'" %source + source = open(source, "rb") + if not parser: + parser = XMLTreeBuilder() + while 1: + data = source.read(32768) + if not data: + break + parser.feed(data) + self._root = parser.close() + return self._root + + ## + # Creates a tree iterator for the root element. The iterator loops + # over all elements in this tree, in document order. + # + # @param tag What tags to look for (default is to return all elements) + # @return An iterator. + # @defreturn iterator +
+
[docs] def getiterator(self, tag=None): + assert self._root is not None + return self._root.getiterator(tag) + + ## + # Finds the first toplevel element with given tag. + # Same as getroot().find(path). + # + # @param path What element to look for. + # @return The first matching element, or None if no element was found. + # @defreturn Element or None +
+
[docs] def find(self, path): + assert self._root is not None + if path[:1] == "/": + path = "." + path + return self._root.find(path) + + ## + # Finds the element text for the first toplevel element with given + # tag. Same as getroot().findtext(path). + # + # @param path What toplevel element to look for. + # @param default What to return if the element was not found. + # @return The text content of the first matching element, or the + # default value no element was found. Note that if the element + # has is found, but has no text content, this method returns an + # empty string. + # @defreturn string +
+
[docs] def findtext(self, path, default=None): + assert self._root is not None + if path[:1] == "/": + path = "." + path + return self._root.findtext(path, default) + + ## + # Finds all toplevel elements with the given tag. + # Same as getroot().findall(path). + # + # @param path What element to look for. + # @return A list or iterator containing all matching elements, + # in document order. + # @defreturn list of Element instances +
+
[docs] def findall(self, path): + assert self._root is not None + if path[:1] == "/": + path = "." + path + return self._root.findall(path) + + ## + # Writes the element tree to a file, as XML. + # + # @param file A file name, or a file object opened for writing. + # @param encoding Optional output encoding (default is US-ASCII). +
+
[docs] def write(self, file, encoding="us-ascii"): + assert self._root is not None + if not hasattr(file, "write"): + file = open(file, "wb") + if not encoding: + encoding = "us-ascii" + elif encoding != "utf-8" and encoding != "us-ascii": + file.write("<?xml version='1.0' encoding='%s'?>\n" % encoding) + self._write(file, self._root, encoding, {}) +
+ def _write(self, file, node, encoding, namespaces, margin=0): + # write XML to file + tag = node.tag + if tag is Comment: + file.write("<!-- %s -->\n" % _escape_cdata(node.text, encoding)) + elif tag is ProcessingInstruction: + file.write("<?%s?>\n" % _escape_cdata(node.text, encoding)) + else: + items = node.items() + xmlns_items = [] # new namespaces in this scope + try: + if isinstance(tag, QName) or tag[:1] == "{": + tag, xmlns = fixtag(tag, namespaces) + if xmlns: xmlns_items.append(xmlns) + except TypeError: + _raise_serialization_error(tag) + file.write(' ' * margin) + file.write(_encode("<", encoding) + _encode(tag, encoding)) + if items or xmlns_items: + items = sorted(items) # lexical order + for k, v in items: + try: + if isinstance(k, QName) or k[:1] == "{": + k, xmlns = fixtag(k, namespaces) + if xmlns: xmlns_items.append(xmlns) + except TypeError: + _raise_serialization_error(k) + try: + if isinstance(v, QName): + v, xmlns = fixtag(v, namespaces) + if xmlns: xmlns_items.append(xmlns) + except TypeError: + _raise_serialization_error(v) + file.write(" %s=\"%s\"" % (k,v)) + for k, v in xmlns_items: + file.write(" %s=\"%s\"" % (k,v)) + if node.text or len(node): + file.write(">") + if node.text: + file.write(_escape_cdata(node.text, encoding)) + if len(node) > 0: file.write("\n") + for n in node: + self._write(file, n, encoding, namespaces, margin + 2) + if len(node) > 0: file.write(' ' * margin) + file.write(_encode("</", encoding) + _encode(tag, encoding) + _encode(">\n", encoding)) + else: + file.write("/>\n") + for k, v in xmlns_items: + del namespaces[v] + if node.tail: + file.write(_escape_cdata(node.tail, encoding)) + +# -------------------------------------------------------------------- +# helpers + +## +# Checks if an object appears to be a valid element object. +# +# @param An element instance. +# @return A true value if this is an element object. +# @defreturn flag +
+
[docs]def iselement(element): + # FIXME: not sure about this; might be a better idea to look + # for tag/attrib/text attributes + return isinstance(element, _ElementInterface) or hasattr(element, "tag") + +## +# Writes an element tree or element structure to sys.stdout. This +# function should be used for debugging only. +# <p> +# The exact output format is implementation dependent. In this +# version, it's written as an ordinary XML file. +# +# @param elem An element tree or an individual element. +
+
[docs]def dump(elem): + # debugging + if not isinstance(elem, ElementTree): + elem = ElementTree(elem) + elem.write(sys.stdout) + tail = elem.getroot().tail + if not tail or tail[-1] != "\n": + sys.stdout.write("\n") +
+def _encode(s, encoding): + try: + return s.encode(encoding) + except AttributeError: + return s # 1.5.2: assume the string uses the right encoding + +if sys.version[:3] == "1.5": + _escape = re.compile(r"[&<>\"\x80-\xff]+") # 1.5.2 +else: + _escape = re.compile(eval(r'u"[&<>\"\u0080-\uffff]+"')) + +_escape_map = { + "&": "&amp;", + "<": "&lt;", + ">": "&gt;", + '"': "&quot;", +} + +_namespace_map = { + # "well-known" namespace prefixes + "http://www.w3.org/XML/1998/namespace": "xml", + "http://www.w3.org/1999/xhtml": "html", + "http://www.w3.org/1999/02/22-rdf-syntax-ns#": "rdf", + "http://schemas.xmlsoap.org/wsdl/": "wsdl", +} + +def _raise_serialization_error(text): + raise TypeError( + "cannot serialize %r (type %s)" % (text, type(text).__name__) + ) + +def _encode_entity(text, pattern=_escape): + # map reserved and non-ascii characters to numerical entities + def escape_entities(m, map=_escape_map): + out = [] + append = out.append + for char in m.group(): + text = map.get(char) + if text is None: + text = "&#%d;" % ord(char) + append(text) + return string.join(out, "") + try: + return _encode(pattern.sub(escape_entities, text), "ascii") + except TypeError: + _raise_serialization_error(text) + +# +# the following functions assume an ascii-compatible encoding +# (or "utf-16") + +def _escape_cdata(text, encoding=None, replace=str.replace): + # escape character data + try: + if platform.python_version()[0] == '2': # python 2.x.y + if encoding: + try: + text = _encode(text, encoding) + except UnicodeError: + return _encode_entity(text) + + text = replace(text, "&", "&amp;") + text = replace(text, "<", "&lt;") + text = replace(text, ">", "&gt;") + text = replace(text, "####newLine####", "<br \>") + if encoding: + try: + text = _encode(text, encoding) + except UnicodeError: + return _encode_entity(text) + return text + except (TypeError, AttributeError): + _raise_serialization_error(text) + +def _escape_attrib(text, encoding=None, replace=str.replace): + # escape attribute value + try: + text = replace(text, "&", "&amp;") + text = replace(text, "'", "&apos;") # FIXME: overkill + text = replace(text, "\"", "&quot;") + text = replace(text, "<", "&lt;") + text = replace(text, ">", "&gt;") + if encoding: + try: + text = _encode(text, encoding) + except UnicodeError: + return _encode_entity(text) + return text + except (TypeError, AttributeError): + _raise_serialization_error(text) + +def fixtag(tag, namespaces): + # given a decorated tag (of the form {uri}tag), return prefixed + # tag and namespace declaration, if any + if isinstance(tag, QName): + tag = tag.text + namespace_uri, tag = string.split(tag[1:], "}", 1) + prefix = namespaces.get(namespace_uri) + if prefix is None: + prefix = _namespace_map.get(namespace_uri) + if prefix is None: + prefix = "ns%d" % len(namespaces) + namespaces[namespace_uri] = prefix + if prefix == "xml": + xmlns = None + else: + xmlns = ("xmlns:%s" % prefix, namespace_uri) + else: + xmlns = None + return "%s:%s" % (prefix, tag), xmlns + +## +# Parses an XML document into an element tree. +# +# @param source A filename or file object containing XML data. +# @param parser An optional parser instance. If not given, the +# standard {@link XMLTreeBuilder} parser is used. +# @return An ElementTree instance + +
[docs]def parse(source, parser=None): + # OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb + # de remontee de log des tests + #print "TRACES OP - ElementTree.py/parse() source = '#%s#'" %source + tree = ElementTree() + tree.parse(source, parser) + return tree + +## +# Parses an XML document into an element tree incrementally, and reports +# what's going on to the user. +# +# @param source A filename or file object containing XML data. +# @param events A list of events to report back. If omitted, only "end" +# events are reported. +# @return A (event, elem) iterator. +
+
[docs]class iterparse: + + def __init__(self, source, events=None): + if not hasattr(source, "read"): + # OP TEST + print "iterparse.__init__ source = %s" %source + source = open(source, "rb") + self._file = source + self._events = [] + self._index = 0 + self.root = self._root = None + self._parser = XMLTreeBuilder() + # wire up the parser for event reporting + parser = self._parser._parser + append = self._events.append + if events is None: + events = ["end"] + for event in events: + if event == "start": + try: + parser.ordered_attributes = 1 + parser.specified_attributes = 1 + def handler(tag, attrib_in, event=event, append=append, + start=self._parser._start_list): + append((event, start(tag, attrib_in))) + parser.StartElementHandler = handler + except AttributeError: + def handler(tag, attrib_in, event=event, append=append, + start=self._parser._start): + append((event, start(tag, attrib_in))) + parser.StartElementHandler = handler + elif event == "end": + def handler(tag, event=event, append=append, + end=self._parser._end): + append((event, end(tag))) + parser.EndElementHandler = handler + elif event == "start-ns": + def handler(prefix, uri, event=event, append=append): + try: + uri = _encode(uri, "ascii") + except UnicodeError: + pass + append((event, (prefix or "", uri))) + parser.StartNamespaceDeclHandler = handler + elif event == "end-ns": + def handler(prefix, event=event, append=append): + append((event, None)) + parser.EndNamespaceDeclHandler = handler + +
[docs] def next(self): + while 1: + try: + item = self._events[self._index] + except IndexError: + if self._parser is None: + self.root = self._root + try: + raise StopIteration + except NameError: + raise IndexError + # load event buffer + del self._events[:] + self._index = 0 + data = self._file.read(16384) + if data: + self._parser.feed(data) + else: + self._root = self._parser.close() + self._parser = None + else: + self._index = self._index + 1 + return item +
+ try: + iter + def __iter__(self): + return self + except NameError: + def __getitem__(self, index): + return self.next() + +## +# Parses an XML document from a string constant. This function can +# be used to embed "XML literals" in Python code. +# +# @param source A string containing XML data. +# @return An Element instance. +# @defreturn Element +
+
[docs]def XML(text): + parser = XMLTreeBuilder() + parser.feed(text) + return parser.close() + +## +# Parses an XML document from a string constant, and also returns +# a dictionary which maps from element id:s to elements. +# +# @param source A string containing XML data. +# @return A tuple containing an Element instance and a dictionary. +# @defreturn (Element, dictionary) +
+def XMLID(text): + parser = XMLTreeBuilder() + parser.feed(text) + tree = parser.close() + ids = {} + for elem in tree.getiterator(): + id = elem.get("id") + if id: + ids[id] = elem + return tree, ids + +## +# Parses an XML document from a string constant. Same as {@link #XML}. +# +# @def fromstring(text) +# @param source A string containing XML data. +# @return An Element instance. +# @defreturn Element + +fromstring = XML + +## +# Generates a string representation of an XML element, including all +# subelements. +# +# @param element An Element instance. +# @return An encoded string containing the XML data. +# @defreturn string + +
[docs]def tostring(element, encoding=None): + class dummy: + pass + data = [] + file = dummy() + file.write = data.append + ElementTree(element).write(file, encoding) + data2 = [] + for item in data: + if isinstance(item, bytes): + item = item.decode() + data2.append(item) + return "".join(data2) + +## +# Generic element structure builder. This builder converts a sequence +# of {@link #TreeBuilder.start}, {@link #TreeBuilder.data}, and {@link +# #TreeBuilder.end} method calls to a well-formed element structure. +# <p> +# You can use this class to build an element structure using a custom XML +# parser, or a parser for some other XML-like format. +# +# @param element_factory Optional element factory. This factory +# is called to create new Element instances, as necessary. +
+
[docs]class TreeBuilder: + + def __init__(self, element_factory=None): + self._data = [] # data collector + self._elem = [] # element stack + self._last = None # last element + self._tail = None # true if we're after an end tag + if element_factory is None: + element_factory = _ElementInterface + self._factory = element_factory + + ## + # Flushes the parser buffers, and returns the toplevel documen + # element. + # + # @return An Element instance. + # @defreturn Element + +
[docs] def close(self): + assert len(self._elem) == 0, "missing end tags" + assert self._last != None, "missing toplevel element" + return self._last +
+ def _flush(self): + if self._data: + if self._last is not None: + text = "" + for item in self._data: + try: + text += item + except: + text += item.decode() + if self._tail: + assert self._last.tail is None, "internal error (tail)" + self._last.tail = text + else: + assert self._last.text is None, "internal error (text)" + self._last.text = text + self._data = [] + + ## + # Adds text to the current element. + # + # @param data A string. This should be either an 8-bit string + # containing ASCII text, or a Unicode string. + +
[docs] def data(self, data): + self._data.append(data) + + ## + # Opens a new element. + # + # @param tag The element name. + # @param attrib A dictionary containing element attributes. + # @return The opened element. + # @defreturn Element +
+
[docs] def start(self, tag, attrs): + self._flush() + self._last = elem = self._factory(tag, attrs) + if self._elem: + self._elem[-1].append(elem) + self._elem.append(elem) + self._tail = 0 + return elem + + ## + # Closes the current element. + # + # @param tag The element name. + # @return The closed element. + # @defreturn Element +
+
[docs] def end(self, tag): + self._flush() + self._last = self._elem.pop() + assert self._last.tag == tag,\ + "end tag mismatch (expected %s, got %s)" % ( + self._last.tag, tag) + self._tail = 1 + return self._last + +## +# Element structure builder for XML source data, based on the +# <b>expat</b> parser. +# +# @keyparam target Target object. If omitted, the builder uses an +# instance of the standard {@link #TreeBuilder} class. +# @keyparam html Predefine HTML entities. This flag is not supported +# by the current implementation. +# @see #ElementTree +# @see #TreeBuilder +
+
[docs]class XMLTreeBuilder: + + def __init__(self, html=0, target=None): + try: + from xml.parsers import expat + except ImportError: + raise ImportError( + "No module named expat; use SimpleXMLTreeBuilder instead" + ) + self._parser = parser = expat.ParserCreate(None, "}") + if target is None: + target = TreeBuilder() + self._target = target + self._names = {} # name memo cache + # callbacks + parser.DefaultHandlerExpand = self._default + parser.StartElementHandler = self._start + parser.EndElementHandler = self._end + parser.CharacterDataHandler = self._data + # let expat do the buffering, if supported + try: + self._parser.buffer_text = 1 + except AttributeError: + pass + # use new-style attribute handling, if supported + try: + self._parser.ordered_attributes = 1 + self._parser.specified_attributes = 1 + parser.StartElementHandler = self._start_list + except AttributeError: + pass + #encoding = None + #if not parser.returns_unicode: + # encoding = "utf-8" + # target.xml(encoding, None) + self._doctype = None + self.entity = {} + + def _fixtext(self, text): + # convert text string to ascii, if possible + try: + return _encode(text, "ascii") + except UnicodeError: + return text + + def _fixname(self, key): + # expand qname, and convert name string to ascii, if possible + try: + name = self._names[key] + except KeyError: + name = key + if "}" in name: + name = "{" + name + self._names[key] = name = self._fixtext(name) + return name + + def _start(self, tag, attrib_in): + fixname = self._fixname + tag = fixname(tag) + attrib = {} + for key, value in attrib_in.items(): + attrib[fixname(key)] = self._fixtext(value) + return self._target.start(tag, attrib) + + def _start_list(self, tag, attrib_in): + fixname = self._fixname + tag = fixname(tag) + attrib = {} + if attrib_in: + for i in range(0, len(attrib_in), 2): + attrib[fixname(attrib_in[i])] = self._fixtext(attrib_in[i+1]) + return self._target.start(tag, attrib) + + def _data(self, text): + return self._target.data(self._fixtext(text)) + + def _end(self, tag): + return self._target.end(self._fixname(tag)) + + def _default(self, text): + prefix = text[:1] + if prefix == "&": + # deal with undefined entities + try: + self._target.data(self.entity[text[1:-1]]) + except KeyError: + from xml.parsers import expat + raise expat.error( + "undefined entity %s: line %d, column %d" % + (text, self._parser.ErrorLineNumber, + self._parser.ErrorColumnNumber) + ) + elif prefix == "<" and text[:9] == "<!DOCTYPE": + self._doctype = [] # inside a doctype declaration + elif self._doctype is not None: + # parse doctype contents + if prefix == ">": + self._doctype = None + return + text = string.strip(text) + if not text: + return + self._doctype.append(text) + n = len(self._doctype) + if n > 2: + type = self._doctype[1] + if type == "PUBLIC" and n == 4: + name, type, pubid, system = self._doctype + elif type == "SYSTEM" and n == 3: + name, type, system = self._doctype + pubid = None + else: + return + if pubid: + pubid = pubid[1:-1] + self.doctype(name, pubid, system[1:-1]) + self._doctype = None + + ## + # Handles a doctype declaration. + # + # @param name Doctype name. + # @param pubid Public identifier. + # @param system System identifier. + +
[docs] def doctype(self, name, pubid, system): + pass + + ## + # Feeds data to the parser. + # + # @param data Encoded data. +
+
[docs] def feed(self, data): + # OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb + # de remontee de log des tests + #print "TRACES OP - ElementTree.py/XMLTreeBuilder.feed() data = '#%s#'" %data + self._parser.Parse(data, 0) + + ## + # Finishes feeding data to the parser. + # + # @return An element structure. + # @defreturn Element +
+
[docs] def close(self): + self._parser.Parse("", 1) # end of data + tree = self._target.close() + del self._target, self._parser # get rid of circular references + return tree
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/__init__.html b/doc/build/html/_modules/src/__init__.html new file mode 100644 index 0000000..0415399 --- /dev/null +++ b/doc/build/html/_modules/src/__init__.html @@ -0,0 +1,544 @@ + + + + + + + + + src.__init__ — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.__init__

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+
+"""\
+initial imports and utilities methods for salomeTools
+"""
+
+import os
+import shutil
+import errno
+import stat
+
+from . import pyconf
+from . import architecture
+from . import printcolors
+from . import options
+from . import system
+from . import ElementTree
+from . import logger
+from . import product
+from . import environment
+from . import fileEnviron
+from . import compilation
+from . import test_module
+from . import template
+
+import platform
+if platform.system() == "Windows" :
+    import colorama
+    colorama.init()
+
+OK_STATUS = "OK"
+KO_STATUS = "KO"
+NA_STATUS = "NA"
+KNOWNFAILURE_STATUS = "KF"
+TIMEOUT_STATUS = "TIMEOUT"
+
+CONFIG_FILENAME = "sat-config.pyconf"
+
+
[docs]class SatException(Exception): + """rename Exception Class""" + pass +
+
[docs]def ensure_path_exists(p): + """Create a path if not existing + + :param p str: The path. + """ + if not os.path.exists(p): + os.makedirs(p) +
+
[docs]def check_config_has_application( config, details = None ): + """check that the config has the key APPLICATION. Else raise an exception. + + :param config class 'common.pyconf.Config': The config. + """ + if 'APPLICATION' not in config: + message = _("An APPLICATION is required. Use 'config --list' to get" + " the list of available applications.\n") + if details : + details.append(message) + raise SatException( message ) +
+
[docs]def check_config_has_profile( config, details = None ): + """\ + check that the config has the key APPLICATION.profile. + else, raise an exception. + + :param config class 'common.pyconf.Config': The config. + """ + check_config_has_application(config) + if 'profile' not in config.APPLICATION: + message = _("A profile section is required in your application.\n") + if details : + details.append(message) + raise SatException( message ) +
+
[docs]def config_has_application( config ): + return 'APPLICATION' in config +
+
[docs]def get_cfg_param(config, param_name, default): + """\ + eearch for param_name value in config. + if param_name is not in config + then return default, + else return the found value + + :param config class 'common.pyconf.Config': The config. + :param param_name str: the name of the parameter to get the value + :param default str: The value to return if param_name is not in config + :return: see initial description of the function + :rtype: str + """ + if param_name in config: + return config[param_name] + return default +
+ +
[docs]def get_base_path(config): + """\ + Returns the path of the products base. + + :param config Config: The global Config instance. + :return: The path of the products base. + :rtype: str + """ + if "base" not in config.LOCAL: + local_file_path = os.path.join(config.VARS.salometoolsway, + "data", + "local.pyconf") + msg = _("Please define a base path in the file %s" % local_file_path) + raise SatException(msg) + + base_path = os.path.abspath(config.LOCAL.base) + + return base_path +
+
[docs]def get_launcher_name(config): + """\ + Returns the name of salome launcher. + + :param config Config: The global Config instance. + :return: The name of salome launcher. + :rtype: str + """ + check_config_has_application(config) + if 'profile' in config.APPLICATION and 'launcher_name' in config.APPLICATION.profile: + launcher_name = config.APPLICATION.profile.launcher_name + else: + launcher_name = 'salome' + + return launcher_name +
+
[docs]def get_log_path(config): + """\ + Returns the path of the logs. + + :param config Config: The global Config instance. + :return: The path of the logs. + :rtype: str + """ + if "log_dir" not in config.LOCAL: + local_file_path = os.path.join(config.VARS.salometoolsway, + "data", + "local.pyconf") + msg = _("Please define a log_dir in the file %s" % local_file_path) + raise SatException(msg) + + log_dir_path = os.path.abspath(config.LOCAL.log_dir) + + return log_dir_path +
+
[docs]def get_salome_version(config): + if hasattr(config.APPLICATION, 'version_salome'): + Version = config.APPLICATION.version_salome + else: + KERNEL_info = product.get_product_config(config, "KERNEL") + VERSION = os.path.join( + KERNEL_info.install_dir, + "bin", + "salome", + "VERSION") + if not os.path.isfile(VERSION): + return None + + fVERSION = open(VERSION) + Version = fVERSION.readline() + fVERSION.close() + + VersionSalome = int(only_numbers(Version)) + return VersionSalome +
+
[docs]def only_numbers(str_num): + return ''.join([nb for nb in str_num if nb in '0123456789'] or '0') +
+
[docs]def read_config_from_a_file(filePath): + try: + cfg_file = pyconf.Config(filePath) + except pyconf.ConfigError as e: + raise SatException(_("Error in configuration file: %(file)s\n %(error)s") % \ + { 'file': filePath, 'error': str(e) }) + return cfg_file +
+
[docs]def get_tmp_filename(cfg, name): + if not os.path.exists(cfg.VARS.tmp_root): + os.makedirs(cfg.VARS.tmp_root) + + return os.path.join(cfg.VARS.tmp_root, name) + +## +# Utils class to simplify path manipulations.
+
[docs]class Path: + def __init__(self, path): + self.path = str(path) + + def __add__(self, other): + return Path(os.path.join(self.path, str(other))) + + def __abs__(self): + return Path(os.path.abspath(self.path)) + + def __str__(self): + return self.path + + def __eq__(self, other): + return self.path == other.path + +
[docs] def exists(self): + return self.islink() or os.path.exists(self.path) +
+ +
[docs] def isdir(self): + return os.path.isdir(self.path) +
+
[docs] def isfile(self): + return os.path.isfile(self.path) +
+
[docs] def list(self): + return [Path(p) for p in os.listdir(self.path)] +
+
[docs] def dir(self): + return Path(os.path.dirname(self.path)) +
+
[docs] def base(self): + return Path(os.path.basename(self.path)) +
+
[docs] def make(self, mode=None): + os.makedirs(self.path) + if mode: + os.chmod(self.path, mode) +
+
[docs] def chmod(self, mode): + os.chmod(self.path, mode) +
+
[docs] def rm(self): + if self.islink(): + os.remove(self.path) + else: + shutil.rmtree( self.path, onerror = handleRemoveReadonly ) +
+
[docs] def copy(self, path, smart=False): + if not isinstance(path, Path): + path = Path(path) + + if os.path.islink(self.path): + return self.copylink(path) + elif os.path.isdir(self.path): + return self.copydir(path, smart) + else: + return self.copyfile(path) +
+
[docs] def smartcopy(self, path): + return self.copy(path, True) +
+ + + +
[docs] def copydir(self, dst, smart=False): + try: + names = self.list() + + if not dst.exists(): + dst.make() + + for name in names: + if name == dst: + continue + if smart and (str(name) in [".git", "CVS", ".svn"]): + continue + srcname = self + name + dstname = dst + name + srcname.copy(dstname, smart) + return True + except: + return False +
+
[docs] def copyfile(self, path): + try: + shutil.copy2(self.path, str(path)) + return True + except: + return False +
+
[docs]def find_file_in_lpath(file_name, lpath, additional_dir = ""): + """\ + Find in all the directories in lpath list the file that has the same name + as file_name. + If it is found + then return the full path of the file + else return False. + + The additional_dir (optional) is the name of the directory to add to all + paths in lpath. + + :param file_name str: The file name to search + :param lpath List: The list of directories where to search + :param additional_dir str: The name of the additional directory + :return: the full path of the file or False if not found + :rtype: str + """ + for directory in lpath: + dir_complete = os.path.join(directory, additional_dir) + if not os.path.isdir(directory) or not os.path.isdir(dir_complete): + continue + l_files = os.listdir(dir_complete) + for file_n in l_files: + if file_n == file_name: + return os.path.join(dir_complete, file_name) + return False +
+
[docs]def handleRemoveReadonly(func, path, exc): + excvalue = exc[1] + if func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES: + os.chmod(path, stat.S_IRWXU| stat.S_IRWXG| stat.S_IRWXO) # 0777 + func(path) + else: + raise +
+
[docs]def deepcopy_list(input_list): + """\ + Do a deep copy of a list + + :param input_list List: The list to copy + :return: The copy of the list + :rtype: List + """ + res = [] + for elem in input_list: + res.append(elem) + return res +
+
[docs]def remove_item_from_list(input_list, item): + """\ + Remove all occurences of item from input_list + + :param input_list List: The list to modify + :return: The without any item + :rtype: List + """ + res = [] + for elem in input_list: + if elem == item: + continue + res.append(elem) + return res +
+
[docs]def parse_date(date): + """\ + Transform YYYYMMDD_hhmmss into YYYY-MM-DD hh:mm:ss. + + :param date str: The date to transform + :return: The date in the new format + :rtype: str + """ + if len(date) != 15: + return date + res = "%s-%s-%s %s:%s:%s" % (date[0:4], + date[4:6], + date[6:8], + date[9:11], + date[11:13], + date[13:]) + return res +
+
[docs]def merge_dicts(*dict_args): + """\ + Given any number of dicts, shallow copy and merge into a new dict, + precedence goes to key value pairs in latter dicts. + """ + result = {} + for dictionary in dict_args: + result.update(dictionary) + return result +
+
[docs]def replace_in_file(filein, strin, strout): + """Replace <strin> by <strout> in file <filein>""" + shutil.move(filein, filein + "_old") + fileout= filein + filein = filein + "_old" + fin = open(filein, "r") + fout = open(fileout, "w") + for line in fin: + fout.write(line.replace(strin, strout)) +
+
[docs]def get_property_in_product_cfg(product_cfg, pprty): + if not "properties" in product_cfg: + return None + if not pprty in product_cfg.properties: + return None + return product_cfg.properties[pprty] +
+
[docs]def activate_mesa_property(config): + """Add mesa property into application properties + + :param config Config: The global configuration. It must have an application! + """ + # Verify the existence of the file + if not 'properties' in config.APPLICATION: + config.APPLICATION.addMapping( 'properties', src.pyconf.Mapping(), None ) + config.APPLICATION.properties.use_mesa="yes" +
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/architecture.html b/doc/build/html/_modules/src/architecture.html new file mode 100644 index 0000000..e47e0d0 --- /dev/null +++ b/doc/build/html/_modules/src/architecture.html @@ -0,0 +1,239 @@ + + + + + + + + + src.architecture — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.architecture

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+'''
+In this file : all the stuff that can change with the architecture 
+on which SAT is running
+'''
+
+import os, sys, platform
+
+
[docs]def is_windows(): + '''method that checks windows OS + + :rtype: boolean + ''' + return platform.system() == 'Windows' +
+
[docs]def get_user(): + '''method that gets the username that launched sat + + :rtype: str + ''' + # In windows case, the USERNAME environment variable has to be set + if is_windows(): + if not os.environ.has_key('USERNAME'): + raise Exception('USERNAME environment variable not set') + return os.environ['USERNAME'] + else: # linux + import pwd + return pwd.getpwuid(os.getuid())[0] +
+def _lsb_release(args): + '''Get system information with lsb_release. + + :param args str: The arguments to give to lsb_release. + :return: The distribution. + :rtype: str + ''' + try: + path = '/usr/local/bin:/usr/bin:/bin' + lsb_path = os.getenv("LSB_PATH") + if lsb_path is not None: + path = lsb_path + ":" + path + + from subprocess import Popen, PIPE + res = Popen(['lsb_release', args], env={'PATH': path}, + stdout=PIPE).communicate()[0][:-1] + # in case of python3, convert byte to str + if isinstance(res, bytes): + res = res.decode() + return res + except OSError: + sys.stderr.write(_(u"lsb_release not installed\n")) + sys.stderr.write(_(u"You can define $LSB_PATH to give" + " the path to lsb_release\n")) + sys.exit(-1) + +
[docs]def get_distribution(codes): + '''Gets the code for the distribution + + :param codes L{Mapping}: The map containing distribution correlation table. + :return: The distribution on which salomeTools is running, regarding the + distribution correlation table contained in codes variable. + :rtype: str + ''' + if is_windows(): + return "Win" + + # Call to lsb_release + distrib = _lsb_release('-si') + if codes is not None and distrib in codes: + distrib = codes[distrib] + else: + sys.stderr.write(_(u"Unknown distribution: '%s'\n") % distrib) + sys.stderr.write(_(u"Please add your distribution to" + " src/internal_config/distrib.pyconf\n")) + sys.exit(-1) + + return distrib + +
+
[docs]def get_distrib_version(distrib, codes): + '''Gets the version of the distribution + + :param distrib str: The distribution on which the version will be found. + :param codes L{Mapping}: The map containing distribution correlation table. + :return: The version of the distribution on which salomeTools is running, + regarding the distribution correlation table contained in codes + variable. + :rtype: str + ''' + + if is_windows(): + return platform.release() + + # Call to lsb_release + version = _lsb_release('-sr') + if distrib in codes: + if version in codes[distrib]: + version = codes[distrib][version] + + if distrib == "CO": + version=version[0] #for centos, we only care for major version + return version +
+
[docs]def get_python_version(): + '''Gets the version of the running python. + + :return: the version of the running python. + :rtype: str + ''' + + # The platform python module gives the answer + return platform.python_version() +
+
[docs]def get_nb_proc(): + '''Gets the number of processors of the machine + on which salomeTools is running. + + :return: the number of processors. + :rtype: str + ''' + + try : + import multiprocessing + nb_proc=multiprocessing.cpu_count() + except : + nb_proc=int(os.sysconf('SC_NPROCESSORS_ONLN')) + return nb_proc
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/colorama/ansi.html b/doc/build/html/_modules/src/colorama/ansi.html new file mode 100644 index 0000000..3f13ba4 --- /dev/null +++ b/doc/build/html/_modules/src/colorama/ansi.html @@ -0,0 +1,197 @@ + + + + + + + + + src.colorama.ansi — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.colorama.ansi

+# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
+'''
+This module generates ANSI character codes to printing colors to terminals.
+See: http://en.wikipedia.org/wiki/ANSI_escape_code
+'''
+
+CSI = '\033['
+OSC = '\033]'
+BEL = '\007'
+
+
+
[docs]def code_to_chars(code): + return CSI + str(code) + 'm' +
+
[docs]def set_title(title): + return OSC + '2;' + title + BEL +
+
[docs]def clear_screen(mode=2): + return CSI + str(mode) + 'J' +
+
[docs]def clear_line(mode=2): + return CSI + str(mode) + 'K' + +
+
[docs]class AnsiCodes(object): + def __init__(self): + # the subclasses declare class attributes which are numbers. + # Upon instantiation we define instance attributes, which are the same + # as the class attributes but wrapped with the ANSI escape sequence + for name in dir(self): + if not name.startswith('_'): + value = getattr(self, name) + setattr(self, name, code_to_chars(value)) + +
+
[docs]class AnsiCursor(object): +
[docs] def UP(self, n=1): + return CSI + str(n) + 'A'
+
[docs] def DOWN(self, n=1): + return CSI + str(n) + 'B'
+
[docs] def FORWARD(self, n=1): + return CSI + str(n) + 'C'
+
[docs] def BACK(self, n=1): + return CSI + str(n) + 'D'
+
[docs] def POS(self, x=1, y=1): + return CSI + str(y) + ';' + str(x) + 'H' + +
+
[docs]class AnsiFore(AnsiCodes): + BLACK = 30 + RED = 31 + GREEN = 32 + YELLOW = 33 + BLUE = 34 + MAGENTA = 35 + CYAN = 36 + WHITE = 37 + RESET = 39 + + # These are fairly well supported, but not part of the standard. + LIGHTBLACK_EX = 90 + LIGHTRED_EX = 91 + LIGHTGREEN_EX = 92 + LIGHTYELLOW_EX = 93 + LIGHTBLUE_EX = 94 + LIGHTMAGENTA_EX = 95 + LIGHTCYAN_EX = 96 + LIGHTWHITE_EX = 97 + +
+
[docs]class AnsiBack(AnsiCodes): + BLACK = 40 + RED = 41 + GREEN = 42 + YELLOW = 43 + BLUE = 44 + MAGENTA = 45 + CYAN = 46 + WHITE = 47 + RESET = 49 + + # These are fairly well supported, but not part of the standard. + LIGHTBLACK_EX = 100 + LIGHTRED_EX = 101 + LIGHTGREEN_EX = 102 + LIGHTYELLOW_EX = 103 + LIGHTBLUE_EX = 104 + LIGHTMAGENTA_EX = 105 + LIGHTCYAN_EX = 106 + LIGHTWHITE_EX = 107 + +
+
[docs]class AnsiStyle(AnsiCodes): + BRIGHT = 1 + DIM = 2 + NORMAL = 22 + RESET_ALL = 0 +
+Fore = AnsiFore() +Back = AnsiBack() +Style = AnsiStyle() +Cursor = AnsiCursor() +
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/colorama/ansitowin32.html b/doc/build/html/_modules/src/colorama/ansitowin32.html new file mode 100644 index 0000000..e750280 --- /dev/null +++ b/doc/build/html/_modules/src/colorama/ansitowin32.html @@ -0,0 +1,331 @@ + + + + + + + + + src.colorama.ansitowin32 — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.colorama.ansitowin32

+# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
+import re
+import sys
+import os
+
+from .ansi import AnsiFore, AnsiBack, AnsiStyle, Style
+from .winterm import WinTerm, WinColor, WinStyle
+from .win32 import windll, winapi_test
+
+
+winterm = None
+if windll is not None:
+    winterm = WinTerm()
+
+
+
[docs]def is_stream_closed(stream): + return not hasattr(stream, 'closed') or stream.closed + +
+
[docs]def is_a_tty(stream): + return hasattr(stream, 'isatty') and stream.isatty() + +
+
[docs]class StreamWrapper(object): + ''' + Wraps a stream (such as stdout), acting as a transparent proxy for all + attribute access apart from method 'write()', which is delegated to our + Converter instance. + ''' + def __init__(self, wrapped, converter): + # double-underscore everything to prevent clashes with names of + # attributes on the wrapped stream object. + self.__wrapped = wrapped + self.__convertor = converter + + def __getattr__(self, name): + return getattr(self.__wrapped, name) + +
[docs] def write(self, text): + self.__convertor.write(text) + +
+
[docs]class AnsiToWin32(object): + ''' + Implements a 'write()' method which, on Windows, will strip ANSI character + sequences from the text, and if outputting to a tty, will convert them into + win32 function calls. + ''' + ANSI_CSI_RE = re.compile('\001?\033\[((?:\d|;)*)([a-zA-Z])\002?') # Control Sequence Introducer + ANSI_OSC_RE = re.compile('\001?\033\]((?:.|;)*?)(\x07)\002?') # Operating System Command + + def __init__(self, wrapped, convert=None, strip=None, autoreset=False): + # The wrapped stream (normally sys.stdout or sys.stderr) + self.wrapped = wrapped + + # should we reset colors to defaults after every .write() + self.autoreset = autoreset + + # create the proxy wrapping our output stream + self.stream = StreamWrapper(wrapped, self) + + on_windows = os.name == 'nt' + # We test if the WinAPI works, because even if we are on Windows + # we may be using a terminal that doesn't support the WinAPI + # (e.g. Cygwin Terminal). In this case it's up to the terminal + # to support the ANSI codes. + conversion_supported = on_windows and winapi_test() + + # should we strip ANSI sequences from our output? + if strip is None: + strip = conversion_supported or (not is_stream_closed(wrapped) and not is_a_tty(wrapped)) + self.strip = strip + + # should we should convert ANSI sequences into win32 calls? + if convert is None: + convert = conversion_supported and not is_stream_closed(wrapped) and is_a_tty(wrapped) + self.convert = convert + + # dict of ansi codes to win32 functions and parameters + self.win32_calls = self.get_win32_calls() + + # are we wrapping stderr? + self.on_stderr = self.wrapped is sys.stderr + +
[docs] def should_wrap(self): + ''' + True if this class is actually needed. If false, then the output + stream will not be affected, nor will win32 calls be issued, so + wrapping stdout is not actually required. This will generally be + False on non-Windows platforms, unless optional functionality like + autoreset has been requested using kwargs to init() + ''' + return self.convert or self.strip or self.autoreset +
+
[docs] def get_win32_calls(self): + if self.convert and winterm: + return { + AnsiStyle.RESET_ALL: (winterm.reset_all, ), + AnsiStyle.BRIGHT: (winterm.style, WinStyle.BRIGHT), + AnsiStyle.DIM: (winterm.style, WinStyle.NORMAL), + AnsiStyle.NORMAL: (winterm.style, WinStyle.NORMAL), + AnsiFore.BLACK: (winterm.fore, WinColor.BLACK), + AnsiFore.RED: (winterm.fore, WinColor.RED), + AnsiFore.GREEN: (winterm.fore, WinColor.GREEN), + AnsiFore.YELLOW: (winterm.fore, WinColor.YELLOW), + AnsiFore.BLUE: (winterm.fore, WinColor.BLUE), + AnsiFore.MAGENTA: (winterm.fore, WinColor.MAGENTA), + AnsiFore.CYAN: (winterm.fore, WinColor.CYAN), + AnsiFore.WHITE: (winterm.fore, WinColor.GREY), + AnsiFore.RESET: (winterm.fore, ), + AnsiFore.LIGHTBLACK_EX: (winterm.fore, WinColor.BLACK, True), + AnsiFore.LIGHTRED_EX: (winterm.fore, WinColor.RED, True), + AnsiFore.LIGHTGREEN_EX: (winterm.fore, WinColor.GREEN, True), + AnsiFore.LIGHTYELLOW_EX: (winterm.fore, WinColor.YELLOW, True), + AnsiFore.LIGHTBLUE_EX: (winterm.fore, WinColor.BLUE, True), + AnsiFore.LIGHTMAGENTA_EX: (winterm.fore, WinColor.MAGENTA, True), + AnsiFore.LIGHTCYAN_EX: (winterm.fore, WinColor.CYAN, True), + AnsiFore.LIGHTWHITE_EX: (winterm.fore, WinColor.GREY, True), + AnsiBack.BLACK: (winterm.back, WinColor.BLACK), + AnsiBack.RED: (winterm.back, WinColor.RED), + AnsiBack.GREEN: (winterm.back, WinColor.GREEN), + AnsiBack.YELLOW: (winterm.back, WinColor.YELLOW), + AnsiBack.BLUE: (winterm.back, WinColor.BLUE), + AnsiBack.MAGENTA: (winterm.back, WinColor.MAGENTA), + AnsiBack.CYAN: (winterm.back, WinColor.CYAN), + AnsiBack.WHITE: (winterm.back, WinColor.GREY), + AnsiBack.RESET: (winterm.back, ), + AnsiBack.LIGHTBLACK_EX: (winterm.back, WinColor.BLACK, True), + AnsiBack.LIGHTRED_EX: (winterm.back, WinColor.RED, True), + AnsiBack.LIGHTGREEN_EX: (winterm.back, WinColor.GREEN, True), + AnsiBack.LIGHTYELLOW_EX: (winterm.back, WinColor.YELLOW, True), + AnsiBack.LIGHTBLUE_EX: (winterm.back, WinColor.BLUE, True), + AnsiBack.LIGHTMAGENTA_EX: (winterm.back, WinColor.MAGENTA, True), + AnsiBack.LIGHTCYAN_EX: (winterm.back, WinColor.CYAN, True), + AnsiBack.LIGHTWHITE_EX: (winterm.back, WinColor.GREY, True), + } + return dict() +
+
[docs] def write(self, text): + if self.strip or self.convert: + self.write_and_convert(text) + else: + self.wrapped.write(text) + self.wrapped.flush() + if self.autoreset: + self.reset_all() + +
+
[docs] def reset_all(self): + if self.convert: + self.call_win32('m', (0,)) + elif not self.strip and not is_stream_closed(self.wrapped): + self.wrapped.write(Style.RESET_ALL) + +
+
[docs] def write_and_convert(self, text): + ''' + Write the given text to our wrapped stream, stripping any ANSI + sequences from the text, and optionally converting them into win32 + calls. + ''' + cursor = 0 + text = self.convert_osc(text) + for match in self.ANSI_CSI_RE.finditer(text): + start, end = match.span() + self.write_plain_text(text, cursor, start) + self.convert_ansi(*match.groups()) + cursor = end + self.write_plain_text(text, cursor, len(text)) + +
+
[docs] def write_plain_text(self, text, start, end): + if start < end: + self.wrapped.write(text[start:end]) + self.wrapped.flush() + +
+
[docs] def convert_ansi(self, paramstring, command): + if self.convert: + params = self.extract_params(command, paramstring) + self.call_win32(command, params) + +
+
[docs] def extract_params(self, command, paramstring): + if command in 'Hf': + params = tuple(int(p) if len(p) != 0 else 1 for p in paramstring.split(';')) + while len(params) < 2: + # defaults: + params = params + (1,) + else: + params = tuple(int(p) for p in paramstring.split(';') if len(p) != 0) + if len(params) == 0: + # defaults: + if command in 'JKm': + params = (0,) + elif command in 'ABCD': + params = (1,) + + return params + +
+
[docs] def call_win32(self, command, params): + if command == 'm': + for param in params: + if param in self.win32_calls: + func_args = self.win32_calls[param] + func = func_args[0] + args = func_args[1:] + kwargs = dict(on_stderr=self.on_stderr) + func(*args, **kwargs) + elif command in 'J': + winterm.erase_screen(params[0], on_stderr=self.on_stderr) + elif command in 'K': + winterm.erase_line(params[0], on_stderr=self.on_stderr) + elif command in 'Hf': # cursor position - absolute + winterm.set_cursor_position(params, on_stderr=self.on_stderr) + elif command in 'ABCD': # cursor position - relative + n = params[0] + # A - up, B - down, C - forward, D - back + x, y = {'A': (0, -n), 'B': (0, n), 'C': (n, 0), 'D': (-n, 0)}[command] + winterm.cursor_adjust(x, y, on_stderr=self.on_stderr) + +
+
[docs] def convert_osc(self, text): + for match in self.ANSI_OSC_RE.finditer(text): + start, end = match.span() + text = text[:start] + text[end:] + paramstring, command = match.groups() + if command in '\x07': # \x07 = BEL + params = paramstring.split(";") + # 0 - change title and icon (we will only change title) + # 1 - change icon (we don't support this) + # 2 - change title + if params[0] in '02': + winterm.set_title(params[1]) + return text
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/colorama/initialise.html b/doc/build/html/_modules/src/colorama/initialise.html new file mode 100644 index 0000000..10d509f --- /dev/null +++ b/doc/build/html/_modules/src/colorama/initialise.html @@ -0,0 +1,175 @@ + + + + + + + + + src.colorama.initialise — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.colorama.initialise

+# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
+import atexit
+import contextlib
+import sys
+
+from .ansitowin32 import AnsiToWin32
+
+
+orig_stdout = None
+orig_stderr = None
+
+wrapped_stdout = None
+wrapped_stderr = None
+
+atexit_done = False
+
+
+
[docs]def reset_all(): + if AnsiToWin32 is not None: # Issue #74: objects might become None at exit + AnsiToWin32(orig_stdout).reset_all() + +
+
[docs]def init(autoreset=False, convert=None, strip=None, wrap=True): + + if not wrap and any([autoreset, convert, strip]): + raise ValueError('wrap=False conflicts with any other arg=True') + + global wrapped_stdout, wrapped_stderr + global orig_stdout, orig_stderr + + orig_stdout = sys.stdout + orig_stderr = sys.stderr + + if sys.stdout is None: + wrapped_stdout = None + else: + sys.stdout = wrapped_stdout = \ + wrap_stream(orig_stdout, convert, strip, autoreset, wrap) + if sys.stderr is None: + wrapped_stderr = None + else: + sys.stderr = wrapped_stderr = \ + wrap_stream(orig_stderr, convert, strip, autoreset, wrap) + + global atexit_done + if not atexit_done: + atexit.register(reset_all) + atexit_done = True + +
+
[docs]def deinit(): + if orig_stdout is not None: + sys.stdout = orig_stdout + if orig_stderr is not None: + sys.stderr = orig_stderr + +
+@contextlib.contextmanager +
[docs]def colorama_text(*args, **kwargs): + init(*args, **kwargs) + try: + yield + finally: + deinit() + +
+
[docs]def reinit(): + if wrapped_stdout is not None: + sys.stdout = wrapped_stdout + if wrapped_stderr is not None: + sys.stderr = wrapped_stderr + +
+
[docs]def wrap_stream(stream, convert, strip, autoreset, wrap): + if wrap: + wrapper = AnsiToWin32(stream, + convert=convert, strip=strip, autoreset=autoreset) + if wrapper.should_wrap(): + stream = wrapper.stream + return stream +
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/colorama/win32.html b/doc/build/html/_modules/src/colorama/win32.html new file mode 100644 index 0000000..49bd541 --- /dev/null +++ b/doc/build/html/_modules/src/colorama/win32.html @@ -0,0 +1,249 @@ + + + + + + + + + src.colorama.win32 — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.colorama.win32

+# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
+
+# from winbase.h
+STDOUT = -11
+STDERR = -12
+
+try:
+    import ctypes
+    from ctypes import LibraryLoader
+    windll = LibraryLoader(ctypes.WinDLL)
+    from ctypes import wintypes
+except (AttributeError, ImportError):
+    windll = None
+    SetConsoleTextAttribute = lambda *_: None
+    winapi_test = lambda *_: None
+else:
+    from ctypes import byref, Structure, c_char, POINTER
+
+    COORD = wintypes._COORD
+
+    class CONSOLE_SCREEN_BUFFER_INFO(Structure):
+        """struct in wincon.h."""
+        _fields_ = [
+            ("dwSize", COORD),
+            ("dwCursorPosition", COORD),
+            ("wAttributes", wintypes.WORD),
+            ("srWindow", wintypes.SMALL_RECT),
+            ("dwMaximumWindowSize", COORD),
+        ]
+        def __str__(self):
+            return '(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)' % (
+                self.dwSize.Y, self.dwSize.X
+                , self.dwCursorPosition.Y, self.dwCursorPosition.X
+                , self.wAttributes
+                , self.srWindow.Top, self.srWindow.Left, self.srWindow.Bottom, self.srWindow.Right
+                , self.dwMaximumWindowSize.Y, self.dwMaximumWindowSize.X
+            )
+
+    _GetStdHandle = windll.kernel32.GetStdHandle
+    _GetStdHandle.argtypes = [
+        wintypes.DWORD,
+    ]
+    _GetStdHandle.restype = wintypes.HANDLE
+
+    _GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo
+    _GetConsoleScreenBufferInfo.argtypes = [
+        wintypes.HANDLE,
+        POINTER(CONSOLE_SCREEN_BUFFER_INFO),
+    ]
+    _GetConsoleScreenBufferInfo.restype = wintypes.BOOL
+
+    _SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute
+    _SetConsoleTextAttribute.argtypes = [
+        wintypes.HANDLE,
+        wintypes.WORD,
+    ]
+    _SetConsoleTextAttribute.restype = wintypes.BOOL
+
+    _SetConsoleCursorPosition = windll.kernel32.SetConsoleCursorPosition
+    _SetConsoleCursorPosition.argtypes = [
+        wintypes.HANDLE,
+        COORD,
+    ]
+    _SetConsoleCursorPosition.restype = wintypes.BOOL
+
+    _FillConsoleOutputCharacterA = windll.kernel32.FillConsoleOutputCharacterA
+    _FillConsoleOutputCharacterA.argtypes = [
+        wintypes.HANDLE,
+        c_char,
+        wintypes.DWORD,
+        COORD,
+        POINTER(wintypes.DWORD),
+    ]
+    _FillConsoleOutputCharacterA.restype = wintypes.BOOL
+
+    _FillConsoleOutputAttribute = windll.kernel32.FillConsoleOutputAttribute
+    _FillConsoleOutputAttribute.argtypes = [
+        wintypes.HANDLE,
+        wintypes.WORD,
+        wintypes.DWORD,
+        COORD,
+        POINTER(wintypes.DWORD),
+    ]
+    _FillConsoleOutputAttribute.restype = wintypes.BOOL
+
+    _SetConsoleTitleW = windll.kernel32.SetConsoleTitleA
+    _SetConsoleTitleW.argtypes = [
+        wintypes.LPCSTR
+    ]
+    _SetConsoleTitleW.restype = wintypes.BOOL
+
+    handles = {
+        STDOUT: _GetStdHandle(STDOUT),
+        STDERR: _GetStdHandle(STDERR),
+    }
+
+
[docs] def winapi_test(): + handle = handles[STDOUT] + csbi = CONSOLE_SCREEN_BUFFER_INFO() + success = _GetConsoleScreenBufferInfo( + handle, byref(csbi)) + return bool(success) +
+ def GetConsoleScreenBufferInfo(stream_id=STDOUT): + handle = handles[stream_id] + csbi = CONSOLE_SCREEN_BUFFER_INFO() + success = _GetConsoleScreenBufferInfo( + handle, byref(csbi)) + return csbi + +
[docs] def SetConsoleTextAttribute(stream_id, attrs): + handle = handles[stream_id] + return _SetConsoleTextAttribute(handle, attrs) +
+ def SetConsoleCursorPosition(stream_id, position, adjust=True): + position = COORD(*position) + # If the position is out of range, do nothing. + if position.Y <= 0 or position.X <= 0: + return + # Adjust for Windows' SetConsoleCursorPosition: + # 1. being 0-based, while ANSI is 1-based. + # 2. expecting (x,y), while ANSI uses (y,x). + adjusted_position = COORD(position.Y - 1, position.X - 1) + if adjust: + # Adjust for viewport's scroll position + sr = GetConsoleScreenBufferInfo(STDOUT).srWindow + adjusted_position.Y += sr.Top + adjusted_position.X += sr.Left + # Resume normal processing + handle = handles[stream_id] + return _SetConsoleCursorPosition(handle, adjusted_position) + + def FillConsoleOutputCharacter(stream_id, char, length, start): + handle = handles[stream_id] + char = c_char(char.encode()) + length = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + # Note that this is hard-coded for ANSI (vs wide) bytes. + success = _FillConsoleOutputCharacterA( + handle, char, length, start, byref(num_written)) + return num_written.value + + def FillConsoleOutputAttribute(stream_id, attr, length, start): + ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )''' + handle = handles[stream_id] + attribute = wintypes.WORD(attr) + length = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + # Note that this is hard-coded for ANSI (vs wide) bytes. + return _FillConsoleOutputAttribute( + handle, attribute, length, start, byref(num_written)) + + def SetConsoleTitle(title): + return _SetConsoleTitleW(title) +
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/colorama/winterm.html b/doc/build/html/_modules/src/colorama/winterm.html new file mode 100644 index 0000000..8f2045e --- /dev/null +++ b/doc/build/html/_modules/src/colorama/winterm.html @@ -0,0 +1,257 @@ + + + + + + + + + src.colorama.winterm — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.colorama.winterm

+# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
+from . import win32
+
+
+# from wincon.h
+
[docs]class WinColor(object): + BLACK = 0 + BLUE = 1 + GREEN = 2 + CYAN = 3 + RED = 4 + MAGENTA = 5 + YELLOW = 6 + GREY = 7 + +# from wincon.h
+
[docs]class WinStyle(object): + NORMAL = 0x00 # dim text, dim background + BRIGHT = 0x08 # bright text, dim background + BRIGHT_BACKGROUND = 0x80 # dim text, bright background +
+
[docs]class WinTerm(object): + + def __init__(self): + self._default = win32.GetConsoleScreenBufferInfo(win32.STDOUT).wAttributes + self.set_attrs(self._default) + self._default_fore = self._fore + self._default_back = self._back + self._default_style = self._style + # In order to emulate LIGHT_EX in windows, we borrow the BRIGHT style. + # So that LIGHT_EX colors and BRIGHT style do not clobber each other, + # we track them separately, since LIGHT_EX is overwritten by Fore/Back + # and BRIGHT is overwritten by Style codes. + self._light = 0 + +
[docs] def get_attrs(self): + return self._fore + self._back * 16 + (self._style | self._light) +
+
[docs] def set_attrs(self, value): + self._fore = value & 7 + self._back = (value >> 4) & 7 + self._style = value & (WinStyle.BRIGHT | WinStyle.BRIGHT_BACKGROUND) +
+
[docs] def reset_all(self, on_stderr=None): + self.set_attrs(self._default) + self.set_console(attrs=self._default) +
+
[docs] def fore(self, fore=None, light=False, on_stderr=False): + if fore is None: + fore = self._default_fore + self._fore = fore + # Emulate LIGHT_EX with BRIGHT Style + if light: + self._light |= WinStyle.BRIGHT + else: + self._light &= ~WinStyle.BRIGHT + self.set_console(on_stderr=on_stderr) +
+
[docs] def back(self, back=None, light=False, on_stderr=False): + if back is None: + back = self._default_back + self._back = back + # Emulate LIGHT_EX with BRIGHT_BACKGROUND Style + if light: + self._light |= WinStyle.BRIGHT_BACKGROUND + else: + self._light &= ~WinStyle.BRIGHT_BACKGROUND + self.set_console(on_stderr=on_stderr) +
+
[docs] def style(self, style=None, on_stderr=False): + if style is None: + style = self._default_style + self._style = style + self.set_console(on_stderr=on_stderr) +
+
[docs] def set_console(self, attrs=None, on_stderr=False): + if attrs is None: + attrs = self.get_attrs() + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + win32.SetConsoleTextAttribute(handle, attrs) +
+
[docs] def get_position(self, handle): + position = win32.GetConsoleScreenBufferInfo(handle).dwCursorPosition + # Because Windows coordinates are 0-based, + # and win32.SetConsoleCursorPosition expects 1-based. + position.X += 1 + position.Y += 1 + return position +
+
[docs] def set_cursor_position(self, position=None, on_stderr=False): + if position is None: + # I'm not currently tracking the position, so there is no default. + # position = self.get_position() + return + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + win32.SetConsoleCursorPosition(handle, position) +
+
[docs] def cursor_adjust(self, x, y, on_stderr=False): + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + position = self.get_position(handle) + adjusted_position = (position.Y + y, position.X + x) + win32.SetConsoleCursorPosition(handle, adjusted_position, adjust=False) +
+
[docs] def erase_screen(self, mode=0, on_stderr=False): + # 0 should clear from the cursor to the end of the screen. + # 1 should clear from the cursor to the beginning of the screen. + # 2 should clear the entire screen, and move cursor to (1,1) + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + csbi = win32.GetConsoleScreenBufferInfo(handle) + # get the number of character cells in the current buffer + cells_in_screen = csbi.dwSize.X * csbi.dwSize.Y + # get number of character cells before current cursor position + cells_before_cursor = csbi.dwSize.X * csbi.dwCursorPosition.Y + csbi.dwCursorPosition.X + if mode == 0: + from_coord = csbi.dwCursorPosition + cells_to_erase = cells_in_screen - cells_before_cursor + if mode == 1: + from_coord = win32.COORD(0, 0) + cells_to_erase = cells_before_cursor + elif mode == 2: + from_coord = win32.COORD(0, 0) + cells_to_erase = cells_in_screen + # fill the entire screen with blanks + win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) + # now set the buffer's attributes accordingly + win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) + if mode == 2: + # put the cursor where needed + win32.SetConsoleCursorPosition(handle, (1, 1)) +
+
[docs] def erase_line(self, mode=0, on_stderr=False): + # 0 should clear from the cursor to the end of the line. + # 1 should clear from the cursor to the beginning of the line. + # 2 should clear the entire line. + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + csbi = win32.GetConsoleScreenBufferInfo(handle) + if mode == 0: + from_coord = csbi.dwCursorPosition + cells_to_erase = csbi.dwSize.X - csbi.dwCursorPosition.X + if mode == 1: + from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) + cells_to_erase = csbi.dwCursorPosition.X + elif mode == 2: + from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) + cells_to_erase = csbi.dwSize.X + # fill the entire screen with blanks + win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) + # now set the buffer's attributes accordingly + win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) +
+
[docs] def set_title(self, title): + win32.SetConsoleTitle(title)
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/compilation.html b/doc/build/html/_modules/src/compilation.html new file mode 100644 index 0000000..2de70b5 --- /dev/null +++ b/doc/build/html/_modules/src/compilation.html @@ -0,0 +1,588 @@ + + + + + + + + + src.compilation — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.compilation

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+import os
+import subprocess
+import sys
+import shutil
+
+import src
+
+C_COMPILE_ENV_LIST = ["CC",
+                      "CXX",
+                      "F77",
+                      "CFLAGS",
+                      "CXXFLAGS",
+                      "LIBS",
+                      "LDFLAGS"]
+
+
[docs]class Builder: + """Class to handle all construction steps, like cmake, configure, make, ... + """ + def __init__(self, + config, + logger, + product_info, + options = src.options.OptResult(), + check_src=True): + self.config = config + self.logger = logger + self.options = options + self.product_info = product_info + self.build_dir = src.Path(self.product_info.build_dir) + self.source_dir = src.Path(self.product_info.source_dir) + self.install_dir = src.Path(self.product_info.install_dir) + self.header = "" + self.debug_mode = False + if "debug" in self.product_info and self.product_info.debug == "yes": + self.debug_mode = True + + ## + # Shortcut method to log in log file. +
[docs] def log(self, text, level, showInfo=True): + self.logger.write(text, level, showInfo) + self.logger.logTxtFile.write(src.printcolors.cleancolor(text)) + self.logger.flush() + + ## + # Shortcut method to log a command.
+
[docs] def log_command(self, command): + self.log("> %s\n" % command, 5) + + ## + # Prepares the environment. + # Build two environment: one for building and one for testing (launch).
+
[docs] def prepare(self): + + if not self.build_dir.exists(): + # create build dir + self.build_dir.make() + + self.log(' build_dir = %s\n' % str(self.build_dir), 4) + self.log(' install_dir = %s\n' % str(self.install_dir), 4) + self.log('\n', 4) + + # add products in depend and opt_depend list recursively + environ_info = src.product.get_product_dependencies(self.config, + self.product_info) + #environ_info.append(self.product_info.name) + + # create build environment + self.build_environ = src.environment.SalomeEnviron(self.config, + src.environment.Environ(dict(os.environ)), + True) + self.build_environ.silent = (self.config.USER.output_verbose_level < 5) + self.build_environ.set_full_environ(self.logger, environ_info) + + # create runtime environment + self.launch_environ = src.environment.SalomeEnviron(self.config, + src.environment.Environ(dict(os.environ)), + False) + self.launch_environ.silent = True # no need to show here + self.launch_environ.set_full_environ(self.logger, environ_info) + + for ee in C_COMPILE_ENV_LIST: + vv = self.build_environ.get(ee) + if len(vv) > 0: + self.log(" %s = %s\n" % (ee, vv), 4, False) + + return 0 + + ## + # Runs cmake with the given options.
+
[docs] def cmake(self, options=""): + + cmake_option = options + # cmake_option +=' -DCMAKE_VERBOSE_MAKEFILE=ON -DSALOME_CMAKE_DEBUG=ON' + if 'cmake_options' in self.product_info: + cmake_option += " %s " % " ".join( + self.product_info.cmake_options.split()) + + # add debug option + if self.debug_mode: + cmake_option += " -DCMAKE_BUILD_TYPE=Debug" + else : + cmake_option += " -DCMAKE_BUILD_TYPE=Release" + + # In case CMAKE_GENERATOR is defined in environment, + # use it in spite of automatically detect it + if 'cmake_generator' in self.config.APPLICATION: + cmake_option += " -DCMAKE_GENERATOR=%s" \ + % self.config.APPLICATION.cmake_generator + + command = ("cmake %s -DCMAKE_INSTALL_PREFIX=%s %s" % + (cmake_option, self.install_dir, self.source_dir)) + + self.log_command(command) + # for key in sorted(self.build_environ.environ.environ.keys()): + # print key, " ", self.build_environ.environ.environ[key] + res = subprocess.call(command, + shell=True, + cwd=str(self.build_dir), + env=self.build_environ.environ.environ, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT) + + self.put_txt_log_in_appli_log_dir("cmake") + if res == 0: + return res + else: + return 1 + + ## + # Runs build_configure with the given options.
+
[docs] def build_configure(self, options=""): + + if 'buildconfigure_options' in self.product_info: + options += " %s " % self.product_info.buildconfigure_options + + command = str('%s/build_configure') % (self.source_dir) + command = command + " " + options + self.log_command(command) + + res = subprocess.call(command, + shell=True, + cwd=str(self.build_dir), + env=self.build_environ.environ.environ, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT) + self.put_txt_log_in_appli_log_dir("build_configure") + if res == 0: + return res + else: + return 1 + + ## + # Runs configure with the given options.
+
[docs] def configure(self, options=""): + + if 'configure_options' in self.product_info: + options += " %s " % self.product_info.configure_options + + command = "%s/configure --prefix=%s" % (self.source_dir, + str(self.install_dir)) + + command = command + " " + options + self.log_command(command) + + res = subprocess.call(command, + shell=True, + cwd=str(self.build_dir), + env=self.build_environ.environ.environ, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT) + + self.put_txt_log_in_appli_log_dir("configure") + if res == 0: + return res + else: + return 1 +
+
[docs] def hack_libtool(self): + if not os.path.exists(str(self.build_dir + 'libtool')): + return + + lf = open(os.path.join(str(self.build_dir), "libtool"), 'r') + for line in lf.readlines(): + if 'hack_libtool' in line: + return + + # fix libtool by replacing CC="<compil>" with hack_libtool function + hack_command='''sed -i "s%^CC=\\"\(.*\)\\"%hack_libtool() { \\n\\ +if test \\"\$(echo \$@ | grep -E '\\\\\\-L/usr/lib(/../lib)?(64)? ')\\" == \\\"\\\" \\n\\ + then\\n\\ + cmd=\\"\\1 \$@\\"\\n\\ + else\\n\\ + cmd=\\"\\1 \\"\`echo \$@ | sed -r -e 's|(.*)-L/usr/lib(/../lib)?(64)? (.*)|\\\\\\1\\\\\\4 -L/usr/lib\\\\\\3|g'\`\\n\\ + fi\\n\\ + \$cmd\\n\\ +}\\n\\ +CC=\\"hack_libtool\\"%g" libtool''' + + self.log_command(hack_command) + subprocess.call(hack_command, + shell=True, + cwd=str(self.build_dir), + env=self.build_environ.environ.environ, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT) + + + ## + # Runs make to build the module.
+
[docs] def make(self, nb_proc, make_opt=""): + + # make + command = 'make' + command = command + " -j" + str(nb_proc) + command = command + " " + make_opt + self.log_command(command) + res = subprocess.call(command, + shell=True, + cwd=str(self.build_dir), + env=self.build_environ.environ.environ, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT) + self.put_txt_log_in_appli_log_dir("make") + if res == 0: + return res + else: + return 1 + + ## + # Runs msbuild to build the module.
+
[docs] def wmake(self,nb_proc, opt_nb_proc = None): + + hh = 'MSBUILD /m:%s' % str(nb_proc) + if self.debug_mode: + hh += " " + src.printcolors.printcWarning("DEBUG") + # make + command = 'msbuild' + command = command + " /maxcpucount:" + str(nb_proc) + if self.debug_mode: + command = command + " /p:Configuration=Debug" + else: + command = command + " /p:Configuration=Release" + command = command + " ALL_BUILD.vcxproj" + + self.log_command(command) + res = subprocess.call(command, + shell=True, + cwd=str(self.build_dir), + env=self.build_environ.environ.environ, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT) + + self.put_txt_log_in_appli_log_dir("make") + if res == 0: + return res + else: + return 1 + + ## + # Runs 'make install'.
+
[docs] def install(self): + if self.config.VARS.dist_name=="Win": + command = 'msbuild INSTALL.vcxproj' + if self.debug_mode: + command = command + " /p:Configuration=Debug" + else: + command = command + " /p:Configuration=Release" + else : + command = 'make install' + + self.log_command(command) + + res = subprocess.call(command, + shell=True, + cwd=str(self.build_dir), + env=self.build_environ.environ.environ, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT) + + self.put_txt_log_in_appli_log_dir("makeinstall") + if res == 0: + return res + else: + return 1 + + ## + # Runs 'make_check'.
+
[docs] def check(self, command=""): + if src.architecture.is_windows(): + cmd = 'msbuild RUN_TESTS.vcxproj' + else : + if self.product_info.build_source=="autotools" : + cmd = 'make check' + else: + cmd = 'make test' + + if command: + cmd = command + + self.log_command(cmd) + + res = subprocess.call(cmd, + shell=True, + cwd=str(self.build_dir), + env=self.launch_environ.environ.environ, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT) + + if res == 0: + return res + else: + return 1 + + ## + # Performs a default build for this module.
+
[docs] def do_default_build(self, + build_conf_options="", + configure_options="", + show_warning=True): + use_autotools = False + if 'use_autotools' in self.product_info: + uc = self.product_info.use_autotools + if uc in ['always', 'yes']: + use_autotools = True + elif uc == 'option': + use_autotools = self.options.autotools + + + self.use_autotools = use_autotools + + use_ctest = False + if 'use_ctest' in self.product_info: + uc = self.product_info.use_ctest + if uc in ['always', 'yes']: + use_ctest = True + elif uc == 'option': + use_ctest = self.options.ctest + + self.use_ctest = use_ctest + + if show_warning: + cmd = "" + if use_autotools: cmd = "(autotools)" + if use_ctest: cmd = "(ctest)" + + self.log("\n", 4, False) + self.log("%(module)s: Run default compilation method %(cmd)s\n" % \ + { "module": self.module, "cmd": cmd }, 4) + + if use_autotools: + if not self.prepare(): return self.get_result() + if not self.build_configure( + build_conf_options): return self.get_result() + if not self.configure(configure_options): return self.get_result() + if not self.make(): return self.get_result() + if not self.install(): return self.get_result() + if not self.clean(): return self.get_result() + + else: # CMake + if self.config.VARS.dist_name=='Win': + if not self.wprepare(): return self.get_result() + if not self.cmake(): return self.get_result() + if not self.wmake(): return self.get_result() + if not self.install(): return self.get_result() + if not self.clean(): return self.get_result() + else : + if not self.prepare(): return self.get_result() + if not self.cmake(): return self.get_result() + if not self.make(): return self.get_result() + if not self.install(): return self.get_result() + if not self.clean(): return self.get_result() + + return self.get_result() + + ## + # Performs a build with a script.
+
[docs] def do_python_script_build(self, script, nb_proc): + # script found + self.logger.write(_("Compile %(product)s using script %(script)s\n") % \ + { 'product': self.product_info.name, + 'script': src.printcolors.printcLabel(script) }, 4) + try: + import imp + product = self.product_info.name + pymodule = imp.load_source(product + "_compile_script", script) + self.nb_proc = nb_proc + retcode = pymodule.compil(self.config, self, self.logger) + except: + __, exceptionValue, exceptionTraceback = sys.exc_info() + self.logger.write(str(exceptionValue), 1) + import traceback + traceback.print_tb(exceptionTraceback) + traceback.print_exc() + retcode = 1 + finally: + self.put_txt_log_in_appli_log_dir("script") + + return retcode +
+
[docs] def complete_environment(self, make_options): + assert self.build_environ is not None + # pass additional variables to environment + # (may be used by the build script) + self.build_environ.set("SOURCE_DIR", str(self.source_dir)) + self.build_environ.set("INSTALL_DIR", str(self.install_dir)) + self.build_environ.set("PRODUCT_INSTALL", str(self.install_dir)) + self.build_environ.set("BUILD_DIR", str(self.build_dir)) + self.build_environ.set("PRODUCT_BUILD", str(self.build_dir)) + self.build_environ.set("MAKE_OPTIONS", make_options) + self.build_environ.set("DIST_NAME", self.config.VARS.dist_name) + self.build_environ.set("DIST_VERSION", self.config.VARS.dist_version) + self.build_environ.set("DIST", self.config.VARS.dist) + self.build_environ.set("VERSION", self.product_info.version) +
+
[docs] def do_batch_script_build(self, script, nb_proc): + + if src.architecture.is_windows(): + make_options = "/maxcpucount:%s" % nb_proc + else : + make_options = "-j%s" % nb_proc + + self.log_command(" " + _("Run build script %s\n") % script) + self.complete_environment(make_options) + + res = subprocess.call(script, + shell=True, + stdout=self.logger.logTxtFile, + stderr=subprocess.STDOUT, + cwd=str(self.build_dir), + env=self.build_environ.environ.environ) + + self.put_txt_log_in_appli_log_dir("script") + if res == 0: + return res + else: + return 1 +
+
[docs] def do_script_build(self, script, number_of_proc=0): + # define make options (may not be used by the script) + if number_of_proc==0: + nb_proc = src.get_cfg_param(self.product_info,"nb_proc", 0) + if nb_proc == 0: + nb_proc = self.config.VARS.nb_proc + else: + nb_proc = min(number_of_proc, self.config.VARS.nb_proc) + + extension = script.split('.')[-1] + if extension in ["bat","sh"]: + return self.do_batch_script_build(script, nb_proc) + if extension == "py": + return self.do_python_script_build(script, nb_proc) + + msg = _("The script %s must have .sh, .bat or .py extension." % script) + raise src.SatException(msg) +
+
[docs] def put_txt_log_in_appli_log_dir(self, file_name): + '''Put the txt log (that contain the system logs, like make command + output) in the directory <APPLICATION DIR>/LOGS/<product_name>/ + + :param file_name Str: the name of the file to write + ''' + if self.logger.logTxtFile == sys.__stdout__: + return + dir_where_to_put = os.path.join(self.config.APPLICATION.workdir, + "LOGS", + self.product_info.name) + file_path = os.path.join(dir_where_to_put, file_name) + src.ensure_path_exists(dir_where_to_put) + # write the logTxtFile copy it to the destination, and then recreate + # it as it was + self.logger.logTxtFile.close() + shutil.move(self.logger.txtFilePath, file_path) + self.logger.logTxtFile = open(str(self.logger.txtFilePath), 'w') + self.logger.logTxtFile.write(open(file_path, "r").read()) +
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/debug.html b/doc/build/html/_modules/src/debug.html new file mode 100644 index 0000000..8be6b29 --- /dev/null +++ b/doc/build/html/_modules/src/debug.html @@ -0,0 +1,297 @@ + + + + + + + + + src.debug — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.debug

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+#  Copyright (C) 2010-2018  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+"""\
+This file assume DEBUG functionalities use
+
+- print debug messages in sys.stderr for salomeTools
+- show pretty print debug representation from instances of SAT classes
+  (pretty print src.pyconf.Config), and python dict/list etc. (as 'aVariable')
+
+WARNING: obviously supposedly show messages in SAT development phase, not production
+
+usage:
+>> import debug as DBG
+>> DBG.write("aTitle", aVariable)        # not shown in production 
+>> DBG.write("aTitle", aVariable, True)  # unconditionaly shown (as show=True)
+
+to set show message as development phase:
+>> DBG.push_debug(True)
+
+to set no show message as production phase:
+>> DBG.push_debug(False)
+
+to set show message temporary as development phase, only in a method:
+>> def aMethodToDebug(...):
+>>   DBG.push_debug(True)              #force show as appended status
+>>   etc. method code with some DBG.write()
+>>   DBG.pop_debug()                   #restore previous status (show or not show)
+>>   return
+
+to set a message for future fix, as temporary problem to not forget:
+DBG.tofix("aTitle", aVariable, True/False) #True/False in production shown, or not
+
+in command line interface you could redirect stderr to file 'myDebug.log':
+>> sat compile ... 2> myDebug.log   # only stderr
+>> sat compile ... &> myDebug.log   # stdout and stderr
+"""
+
+import os
+import sys
+import StringIO as SIO
+import pprint as PP
+
+_debug = [False] #support push/pop for temporary activate debug outputs
+
+
[docs]def indent(text, amount=2, ch=' '): + """indent multi lines message""" + padding = amount * ch + return ''.join(padding + line for line in text.splitlines(True)) +
+
[docs]def write(title, var="", force=None, fmt="\n#### DEBUG: %s:\n%s\n"): + """write sys.stderr a message if _debug[-1]==True or optionaly force=True""" + if _debug[-1] or force: + if 'src.pyconf.' in str(type(var)): + sys.stderr.write(fmt % (title, indent(getStrConfigDbg(var)))) + elif type(var) is not str: + sys.stderr.write(fmt % (title, indent(PP.pformat(var)))) + else: + sys.stderr.write(fmt % (title, indent(var))) + return +
+
[docs]def tofix(title, var="", force=None): + """\ + write sys.stderr a message if _debug[-1]==True or optionaly force=True + use this only if no logger accessible for classic + logger.warning(message) or logger.debug(message) + """ + fmt = "\n#### TOFIX: %s:\n%s\n" + write(title, var, force, fmt) +
+
[docs]def push_debug(aBool): + """set debug outputs activated, or not""" + _debug.append(aBool) +
+
[docs]def pop_debug(): + """restore previous debug outputs status""" + if len(_debug) > 1: + return _debug.pop() + else: + sys.stderr.write("\nERROR: pop_debug: too much pop.") + return None + +############################################### +# utilitaires divers pour debug +############################################### +
+
[docs]class OutStream(SIO.StringIO): + """utility class for pyconf.Config output iostream""" +
[docs] def close(self): + """because Config.__save__ calls close() stream as file + keep value before lost as self.value + """ + self.value = self.getvalue() + SIO.StringIO.close(self) +
+
[docs]class InStream(SIO.StringIO): + """utility class for pyconf.Config input iostream""" + pass +
+
[docs]def getLocalEnv(): + """get string for environment variables representation""" + res = "" + for i in sorted(os.environ): + res += "%s : %s\n" % (i, os.environ[i]) + return res + +# save as initial Config.save() moved as Config.__save__()
+
[docs]def saveConfigStd(config, aStream): + """returns as file .pyconf""" + indent = 0 + config.__save__(aStream, indent) +
+
[docs]def getStrConfigStd(config): + """set string as saveConfigStd, as file .pyconf""" + outStream = OutStream() + saveConfigStd(config, outStream) + return outStream.value +
+
[docs]def getStrConfigDbg(config): + """\ + set string as saveConfigDbg, + as (path expression evaluation) for debug + """ + outStream = OutStream() + saveConfigDbg(config, outStream) + return outStream.value +
+
[docs]def saveConfigDbg(config, aStream, indent=0, path=""): + """pyconf returns multilines (path expression evaluation) for debug""" + _saveConfigRecursiveDbg(config, aStream, indent, path) + aStream.close() # as config.__save__() +
+def _saveConfigRecursiveDbg(config, aStream, indent, path): + """pyconf inspired from Mapping.__save__""" + debug = False + if indent <= 0: + indentp = 0 + else: + indentp = indentp + 2 + indstr = indent * ' ' # '':no indent, ' ':indent + strType = str(type(config)) + if "Sequence" in strType: + for i in range(len(config)): + _saveConfigRecursiveDbg(config[i], aStream, indentp, path+"[%i]" % i) + return + try: + order = object.__getattribute__(config, 'order') + data = object.__getattribute__(config, 'data') + except: + aStream.write("%s%s : '%s'\n" % (indstr, path, str(config))) + return + for key in sorted(order): + value = data[key] + strType = str(type(value)) + if debug: print indstr + 'strType = %s' % strType, key + if "Config" in strType: + _saveConfigRecursiveDbg(value, aStream, indentp, path+"."+key) + continue + if "Mapping" in strType: + _saveConfigRecursiveDbg(value, aStream, indentp, path+"."+key) + continue + if "Sequence" in strType: + for i in range(len(value)): + _saveConfigRecursiveDbg(value[i], aStream, indentp, path+"."+key+"[%i]" % i) + continue + if "Expression" in strType: + try: + evaluate = value.evaluate(config) + aStream.write("%s%s.%s : %s --> '%s'\n" % (indstr, path, key, str(value), evaluate)) + except Exception as e: + aStream.write("%s%s.%s : !!! ERROR: %s !!!\n" % (indstr, path, key, e.message)) + continue + if "Reference" in strType: + try: + evaluate = value.resolve(config) + aStream.write("%s%s.%s : %s --> '%s'\n" % (indstr, path, key, str(value), evaluate)) + except Exception as e: + aStream.write("%s%s.%s : !!! ERROR: %s !!!\n" % (indstr, path, key, e.message)) + continue + if type(value) in [str, bool, int, type(None), unicode]: + aStream.write("%s%s.%s : '%s'\n" % (indstr, path, key, str(value))) + continue + try: + aStream.write("!!! TODO fix that %s %s%s.%s : %s\n" % (type(value), indstr, path, key, str(value))) + except Exception as e: + aStream.write("%s%s.%s : !!! %s\n" % (indstr, path, key, e.message)) +
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/environment.html b/doc/build/html/_modules/src/environment.html new file mode 100644 index 0000000..94ebac1 --- /dev/null +++ b/doc/build/html/_modules/src/environment.html @@ -0,0 +1,982 @@ + + + + + + + + + src.environment — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.environment

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+import os
+import subprocess
+import string
+import sys
+
+import src
+import src.debug as DBG
+import pprint as PP
+
+
[docs]class Environ: + """\ + Class to manage the environment context + """ + def __init__(self, environ=None): + """Initialization. If the environ argument is passed, the environment + will be add to it, else it is the external environment. + + :param environ dict: + """ + if environ is not None: + self.environ = environ + else: + self.environ = os.environ + + def __repr__(self): + """easy non exhaustive quick resume for debug print""" + return "%s(\n%s\n)" % (self.__class__.__name__, PP.pformat(self.environ)) + + def _expandvars(self, value): + """\ + replace some $VARIABLE into its actual value in the environment + + :param value str: the string to be replaced + :return: the replaced variable + :rtype: str + """ + if "$" in value: + # The string.Template class is a string class + # for supporting $-substitutions + zt = string.Template(value) + try: + value = zt.substitute(self.environ) + except KeyError as exc: + raise src.SatException(_("Missing definition " + "in environment: %s") % str(exc)) + return value + +
[docs] def append_value(self, key, value, sep=os.pathsep): + """\ + append value to key using sep + + :param key str: the environment variable to append + :param value str: the value to append to key + :param sep str: the separator string + """ + # check if the key is already in the environment + if key in self.environ: + value_list = self.environ[key].split(sep) + # Check if the value is already in the key value or not + if not value in value_list: + value_list.append(value) + else: + value_list.append(value_list.pop(value_list.index(value))) + self.set(key, sep.join(value_list)) + else: + self.set(key, value) +
+
[docs] def append(self, key, value, sep=os.pathsep): + """\ + Same as append_value but the value argument can be a list + + :param key str: the environment variable to append + :param value str or list: the value(s) to append to key + :param sep str: the separator string + """ + if isinstance(value, list): + for v in value: + self.append_value(key, v, sep) + else: + self.append_value(key, value, sep) +
+
[docs] def prepend_value(self, key, value, sep=os.pathsep): + """\ + prepend value to key using sep + + :param key str: the environment variable to prepend + :param value str: the value to prepend to key + :param sep str: the separator string + """ + if key in self.environ: + value_list = self.environ[key].split(sep) + if not value in value_list: + value_list.insert(0, value) + else: + value_list.insert(0, value_list.pop(value_list.index(value))) + self.set(key, sep.join(value_list)) + else: + self.set(key, value) +
+
[docs] def prepend(self, key, value, sep=os.pathsep): + """\ + Same as prepend_value but the value argument can be a list + + :param key str: the environment variable to prepend + :param value str or list: the value(s) to prepend to key + :param sep str: the separator string + """ + if isinstance(value, list): + for v in value: + self.prepend_value(key, v, sep) + else: + self.prepend_value(key, value, sep) +
+
[docs] def is_defined(self, key): + """\ + Check if the key exists in the environment + + :param key str: the environment variable to check + """ + return key in self.environ.keys() +
+
[docs] def set(self, key, value): + """\ + Set the environment variable "key" to value "value" + + :param key str: the environment variable to set + :param value str: the value + """ + self.environ[key] = self._expandvars(value) +
+
[docs] def get(self, key): + """\ + Get the value of the environment variable "key" + + :param key str: the environment variable + """ + if key in self.environ: + return self.environ[key] + else: + return "" +
+
[docs] def command_value(self, key, command): + """\ + Get the value given by the system command "command" + and put it in the environment variable key + + :param key str: the environment variable + :param command str: the command to execute + """ + value = subprocess.Popen(command, + shell=True, + stdout=subprocess.PIPE, + env=self.environ).communicate()[0] + self.environ[key] = value + +
+
[docs]class SalomeEnviron: + """\ + Class to manage the environment of SALOME. + """ + def __init__(self, + cfg, + environ, + forBuild=False, + for_package=None, + enable_simple_env_script = True): + """\ + Initialization. + + :param cfg Config: the global config + :param environ Environ: the Environ instance where + to store the environment variables + :param forBuild bool: If true, it is a launch environment, + else a build one + :param for_package str: If not None, produce a relative environment + designed for a package. + """ + self.environ = environ + self.cfg = cfg + self.forBuild = forBuild + self.for_package = for_package + self.enable_simple_env_script = enable_simple_env_script + self.silent = False + + def __repr__(self): + """easy almost exhaustive quick resume for debug print""" + res = { + "environ" : self.environ, + "forBuild" : self.forBuild, + "for_package" : self.for_package, + } + return "%s(\n%s\n)" % (self.__class__.__name__, PP.pformat(res)) + +
[docs] def append(self, key, value, sep=os.pathsep): + """\ + append value to key using sep + + :param key str: the environment variable to append + :param value str: the value to append to key + :param sep str: the separator string + """ + return self.environ.append(key, value, sep) +
+
[docs] def prepend(self, key, value, sep=os.pathsep): + """\ + prepend value to key using sep + + :param key str: the environment variable to prepend + :param value str: the value to prepend to key + :param sep str: the separator string + """ + return self.environ.prepend(key, value, sep) +
+
[docs] def is_defined(self, key): + """\ + Check if the key exists in the environment + + :param key str: the environment variable to check + """ + return self.environ.is_defined(key) +
+
[docs] def get(self, key): + """\ + Get the value of the environment variable "key" + + :param key str: the environment variable + """ + return self.environ.get(key) +
+
[docs] def set(self, key, value): + """\ + Set the environment variable "key" to value "value" + + :param key str: the environment variable to set + :param value str: the value + """ + # check if value needs to be evaluated + if value is not None and value.startswith("`") and value.endswith("`"): + res = subprocess.Popen("echo %s" % value, + shell=True, + stdout=subprocess.PIPE).communicate() + value = res[0].strip() + + return self.environ.set(key, value) +
+
[docs] def dump(self, out): + """\ + Write the environment to out + + :param out file: the stream where to write the environment + """ + for k in self.environ.environ.keys(): + try: + value = self.get(k) + except: + value = "?" + out.write("%s=%s\n" % (k, value)) +
+
[docs] def add_line(self, nb_line): + """\ + Add empty lines to the out stream (in case of file generation) + + :param nb_line int: the number of empty lines to add + """ + if 'add_line' in dir(self.environ): + self.environ.add_line(nb_line) +
+
[docs] def add_comment(self, comment): + """\ + Add a commentary to the out stream (in case of file generation) + + :param comment str: the commentary to add + """ + if 'add_comment' in dir(self.environ): + self.environ.add_comment(comment) +
+
[docs] def add_warning(self, warning): + """\ + Add a warning to the out stream (in case of file generation) + + :param warning str: the warning to add + """ + if 'add_warning' in dir(self.environ): + self.environ.add_warning(warning) +
+
[docs] def finish(self, required): + """\ + Add a final instruction in the out file (in case of file generation) + + :param required bool: Do nothing if required is False + """ + if 'finish' in dir(self.environ): + self.environ.add_line(1) + self.environ.add_comment("clean all the path") + self.environ.finish(required) +
+
[docs] def set_python_libdirs(self): + """Set some generic variables for python library paths""" + ver = self.get('PYTHON_VERSION') + self.set('PYTHON_LIBDIR0', os.path.join('lib', + 'python' + ver, + 'site-packages')) + self.set('PYTHON_LIBDIR1', os.path.join('lib64', + 'python' + ver, + 'site-packages')) + + self.python_lib0 = self.get('PYTHON_LIBDIR0') + self.python_lib1 = self.get('PYTHON_LIBDIR1') +
+
[docs] def get_names(self, lProducts): + """\ + Get the products name to add in SALOME_MODULES environment variable + It is the name of the product, except in the case where the is a + component name. And it has to be in SALOME_MODULES variable only + if the product has the property has_salome_hui = "yes" + + :param lProducts list: List of products to potentially add + """ + lProdHasGui = [p for p in lProducts if 'properties' in + src.product.get_product_config(self.cfg, p) and + 'has_salome_gui' in + src.product.get_product_config(self.cfg, p).properties and + src.product.get_product_config(self.cfg, + p).properties.has_salome_gui=='yes'] + lProdName = [] + for ProdName in lProdHasGui: + pi = src.product.get_product_config(self.cfg, ProdName) + if 'component_name' in pi: + lProdName.append(pi.component_name) + else: + lProdName.append(ProdName) + return lProdName +
+
[docs] def set_application_env(self, logger): + """\ + Sets the environment defined in the APPLICATION file. + + :param logger Logger: The logger instance to display messages + """ + + # add variable PRODUCT_ROOT_DIR as $workdir in APPLICATION.environ section if not present + try: + tmp = self.cfg.APPLICATION.environ.PRODUCT_ROOT_DIR + except: + self.cfg.APPLICATION.environ.PRODUCT_ROOT_DIR = src.pyconf.Reference(self.cfg, src.pyconf.DOLLAR, "workdir") + DBG.write("set_application_env add default Config.APPLICATION.environ.PRODUCT_ROOT_DIR", self.cfg.APPLICATION.environ) + + # Set the variables defined in the "environ" section + if 'environ' in self.cfg.APPLICATION: + # we write PRODUCT environment it in order to conform to + # parseConfigFile.py + self.add_comment("PRODUCT environment") + self.load_cfg_environment(self.cfg.APPLICATION.environ) + if self.forBuild and "build" in self.cfg.APPLICATION.environ: + self.load_cfg_environment(self.cfg.APPLICATION.environ.build) + if not self.forBuild and "launch" in self.cfg.APPLICATION.environ: + self.load_cfg_environment(self.cfg.APPLICATION.environ.launch) + self.add_line(1) + + # If there is an "environ_script" section, load the scripts + if 'environ_script' in self.cfg.APPLICATION: + for pscript in self.cfg.APPLICATION.environ_script: + self.add_comment("script %s" % pscript) + sname = pscript.replace(" ", "_") + self.run_env_script("APPLICATION_%s" % sname, + self.cfg.APPLICATION.environ_script[pscript], + logger) + self.add_line(1) +
+
[docs] def set_salome_minimal_product_env(self, product_info, logger): + """\ + Sets the minimal environment for a SALOME product. + xxx_ROOT_DIR and xxx_SRC_DIR + + :param product_info Config: The product description + :param logger Logger: The logger instance to display messages + """ + # set root dir + DBG.write("set_salome_minimal_product_env", product_info) + root_dir = product_info.name + "_ROOT_DIR" + if not self.is_defined(root_dir): + if 'install_dir' in product_info and product_info.install_dir: + self.set(root_dir, product_info.install_dir) + elif not self.silent: + logger.write(" " + _("No install_dir for product %s\n") % + product_info.name, 5) + + source_in_package = src.get_property_in_product_cfg(product_info, + "sources_in_package") + if not self.for_package or source_in_package == "yes": + # set source dir, unless no source dir + if not src.product.product_is_fixed(product_info): + src_dir = product_info.name + "_SRC_DIR" + if not self.is_defined(src_dir): + if not self.for_package: + self.set(src_dir, product_info.source_dir) + else: + self.set(src_dir, os.path.join("out_dir_Path", + "SOURCES", + product_info.name)) +
+
[docs] def set_salome_generic_product_env(self, pi): + """\ + Sets the generic environment for a SALOME product. + + :param pi Config: The product description + """ + # Construct XXX_ROOT_DIR + env_root_dir = self.get(pi.name + "_ROOT_DIR") + l_binpath_libpath = [] + + # create additional ROOT_DIR for CPP components + if 'component_name' in pi: + compo_name = pi.component_name + if compo_name + "CPP" == pi.name: + compo_root_dir = compo_name + "_ROOT_DIR" + envcompo_root_dir = os.path.join( + self.cfg.TOOLS.common.install_root, compo_name ) + self.set(compo_root_dir , envcompo_root_dir) + bin_path = os.path.join(envcompo_root_dir, 'bin', 'salome') + lib_path = os.path.join(envcompo_root_dir, 'lib', 'salome') + l_binpath_libpath.append( (bin_path, lib_path) ) + + if src.get_property_in_product_cfg(pi, "fhs"): + lib_path = os.path.join(env_root_dir, 'lib') + pylib1_path = os.path.join(env_root_dir, self.python_lib0) + pylib2_path = os.path.join(env_root_dir, self.python_lib1) + bin_path = os.path.join(env_root_dir, 'bin') + else: + lib_path = os.path.join(env_root_dir, 'lib', 'salome') + pylib1_path = os.path.join(env_root_dir, self.python_lib0, 'salome') + pylib2_path = os.path.join(env_root_dir, self.python_lib1, 'salome') + bin_path = os.path.join(env_root_dir, 'bin', 'salome') + + # Construct the paths to prepend to PATH and LD_LIBRARY_PATH and + # PYTHONPATH + l_binpath_libpath.append( (bin_path, lib_path) ) + + for bin_path, lib_path in l_binpath_libpath: + if not self.forBuild: + self.prepend('PATH', bin_path) + if src.architecture.is_windows(): + self.prepend('PATH', lib_path) + else : + self.prepend('LD_LIBRARY_PATH', lib_path) + + l = [ bin_path, lib_path, pylib1_path, pylib2_path ] + self.prepend('PYTHONPATH', l) +
+
[docs] def set_cpp_env(self, product_info): + """\ + Sets the generic environment for a SALOME cpp product. + + :param product_info Config: The product description + """ + # Construct XXX_ROOT_DIR + env_root_dir = self.get(product_info.name + "_ROOT_DIR") + l_binpath_libpath = [] + + # Construct the paths to prepend to PATH and LD_LIBRARY_PATH and + # PYTHONPATH + bin_path = os.path.join(env_root_dir, 'bin') + lib_path = os.path.join(env_root_dir, 'lib') + l_binpath_libpath.append( (bin_path, lib_path) ) + + for bin_path, lib_path in l_binpath_libpath: + if not self.forBuild: + self.prepend('PATH', bin_path) + if src.architecture.is_windows(): + self.prepend('PATH', lib_path) + else : + self.prepend('LD_LIBRARY_PATH', lib_path) + + l = [ bin_path, lib_path, + os.path.join(env_root_dir, self.python_lib0), + os.path.join(env_root_dir, self.python_lib1) + ] + self.prepend('PYTHONPATH', l) +
+
[docs] def load_cfg_environment(self, cfg_env): + """\ + Loads environment defined in cfg_env + + :param cfg_env Config: A config containing an environment + """ + # Loop on cfg_env values + for env_def in cfg_env: + val = cfg_env[env_def] + + # if it is env_script, do not do anything (reserved keyword) + if env_def == "env_script": + continue + + # if it is a dict, do not do anything + if isinstance(val, src.pyconf.Mapping): + continue + + # if it is a list, loop on its values + if isinstance(val, src.pyconf.Sequence): + # transform into list of strings + l_val = [] + for item in val: + l_val.append(item) + val = l_val + + # "_" means that the value must be prepended + if env_def.startswith("_"): + # separator exception for PV_PLUGIN_PATH + if env_def[1:] == 'PV_PLUGIN_PATH': + self.prepend(env_def[1:], val, ';') + else: + self.prepend(env_def[1:], val) + elif env_def.endswith("_"): + # separator exception for PV_PLUGIN_PATH + if env_def[:-1] == 'PV_PLUGIN_PATH': + self.append(env_def[:-1], val, ';') + else: + self.append(env_def[:-1], val) + else: + self.set(env_def, val) +
+
[docs] def set_a_product(self, product, logger): + """\ + Sets the environment of a product. + + :param product str: The product name + :param logger Logger: The logger instance to display messages + """ + + # Get the informations corresponding to the product + pi = src.product.get_product_config(self.cfg, product) + + # skip mesa products (if any) at run time, + # unless use_mesa property was activated + if not self.forBuild: + if not ("APPLICATION" in self.cfg and + "properties" in self.cfg.APPLICATION and + "use_mesa" in self.cfg.APPLICATION.properties and + self.cfg.APPLICATION.properties.use_mesa == "yes") : + if ("properties" in pi and + "is_mesa" in pi.properties and + pi.properties.is_mesa == "yes") : + logger.write(_("Skip mesa product %s\n") % pi.name, 4) + return + + + if self.for_package: + pi.install_dir = os.path.join("out_dir_Path", + self.for_package, + pi.name) + + if not self.silent: + logger.write(_("Setting environment for %s\n") % product, 4) + + self.add_line(1) + self.add_comment('setting environ for ' + product) + + # Do not define environment if the product is native + if src.product.product_is_native(pi): + if src.product.product_has_env_script(pi): + self.run_env_script(pi, native=True) + return + + # Set an additional environment for SALOME products + if src.product.product_is_salome(pi): + # set environment using definition of the product + self.set_salome_minimal_product_env(pi, logger) + self.set_salome_generic_product_env(pi) + + if src.product.product_is_cpp(pi): + # set a specific environment for cpp modules + self.set_salome_minimal_product_env(pi, logger) + self.set_cpp_env(pi) + + if src.product.product_is_generated(pi): + if "component_name" in pi: + # hack the source and install directories in order to point + # on the generated product source install directories + install_dir_save = pi.install_dir + source_dir_save = pi.source_dir + name_save = pi.name + pi.install_dir = os.path.join(self.cfg.APPLICATION.workdir, + "INSTALL", + pi.component_name) + if self.for_package: + pi.install_dir = os.path.join("out_dir_Path", + self.for_package, + pi.component_name) + pi.source_dir = os.path.join(self.cfg.APPLICATION.workdir, + "GENERATED", + pi.component_name) + pi.name = pi.component_name + self.set_salome_minimal_product_env(pi, logger) + self.set_salome_generic_product_env(pi) + + # Put original values + pi.install_dir = install_dir_save + pi.source_dir = source_dir_save + pi.name = name_save + + # Put the environment define in the configuration of the product + if "environ" in pi: + self.load_cfg_environment(pi.environ) + if self.forBuild and "build" in pi.environ: + self.load_cfg_environment(pi.environ.build) + if not self.forBuild and "launch" in pi.environ: + self.load_cfg_environment(pi.environ.launch) + # if product_info defines a env_scripts, load it + if 'env_script' in pi.environ: + self.run_env_script(pi, logger) + + + +
+
[docs] def run_env_script(self, product_info, logger=None, native=False): + """\ + Runs an environment script. + + :param product_info Config: The product description + :param logger Logger: The logger instance to display messages + :param native Boolean: if True load set_native_env instead of set_env + """ + env_script = product_info.environ.env_script + # Check that the script exists + if not os.path.exists(env_script): + raise src.SatException(_("Environment script not found: %s") % + env_script) + + if not self.silent and logger is not None: + logger.write(" ** load %s\n" % env_script, 4) + + # import the script and run the set_env function + try: + import imp + pyproduct = imp.load_source(product_info.name + "_env_script", + env_script) + if not native: + pyproduct.set_env(self, + product_info.install_dir, + product_info.version) + else: + if "set_nativ_env" in dir(pyproduct): + pyproduct.set_nativ_env(self) + except: + __, exceptionValue, exceptionTraceback = sys.exc_info() + print(exceptionValue) + import traceback + traceback.print_tb(exceptionTraceback) + traceback.print_exc() +
+
[docs] def run_simple_env_script(self, script_path, logger=None): + """\ + Runs an environment script. Same as run_env_script, but with a + script path as parameter. + + :param script_path str: a path to an environment script + :param logger Logger: The logger instance to display messages + """ + if not self.enable_simple_env_script: + return + # Check that the script exists + if not os.path.exists(script_path): + raise src.SatException(_("Environment script not found: %s") % + script_path) + + if not self.silent and logger is not None: + logger.write(" ** load %s\n" % script_path, 4) + + script_basename = os.path.basename(script_path) + if script_basename.endswith(".py"): + script_basename = script_basename[:-len(".py")] + + # import the script and run the set_env function + try: + import imp + pyproduct = imp.load_source(script_basename + "_env_script", + script_path) + pyproduct.load_env(self) + except: + __, exceptionValue, exceptionTraceback = sys.exc_info() + print(exceptionValue) + import traceback + traceback.print_tb(exceptionTraceback) + traceback.print_exc() +
+
[docs] def set_products(self, logger, src_root=None): + """\ + Sets the environment for all the products. + + :param logger Logger: The logger instance to display messages + :param src_root src: the application working directory + """ + self.add_line(1) + self.add_comment('setting environ for all products') + + # Make sure that the python lib dirs are set after python + if "Python" in self.cfg.APPLICATION.products: + self.set_a_product("Python", logger) + self.set_python_libdirs() + + # The loop on the products + for product in self.cfg.APPLICATION.products.keys(): + if product == "Python": + continue + self.set_a_product(product, logger) + self.finish(False) +
+
[docs] def set_full_environ(self, logger, env_info): + """\ + Sets the full environment for products + specified in env_info dictionary. + + :param logger Logger: The logger instance to display messages + :param env_info list: the list of products + """ + DBG.write("set_full_environ for", env_info) + # DBG.write("set_full_environ config", self.cfg.APPLICATION.environ, True) + # set product environ + self.set_application_env(logger) + + self.set_python_libdirs() + + # set products + for product in env_info: + self.set_a_product(product, logger) +
+
[docs]class FileEnvWriter: + """\ + Class to dump the environment to a file. + """ + def __init__(self, config, logger, out_dir, src_root, env_info=None): + """\ + Initialization. + + :param cfg Config: the global config + :param logger Logger: The logger instance to display messages + :param out_dir str: The directory path where t put the output files + :param src_root str: The application working directory + :param env_info str: The list of products to add in the files. + """ + self.config = config + self.logger = logger + self.out_dir = out_dir + self.src_root= src_root + self.silent = True + self.env_info = env_info + +
[docs] def write_env_file(self, filename, forBuild, shell, for_package = None): + """\ + Create an environment file. + + :param filename str: the file path + :param forBuild bool: if true, the build environment + :param shell str: the type of file wanted (.sh, .bat) + :return: The path to the generated file + :rtype: str + """ + if not self.silent: + self.logger.write(_("Create environment file %s\n") % + src.printcolors.printcLabel(filename), 3) + + # create then env object + env_file = open(os.path.join(self.out_dir, filename), "w") + tmp = src.fileEnviron.get_file_environ(env_file, + shell, + {}) + env = SalomeEnviron(self.config, tmp, forBuild, for_package=for_package) + env.silent = self.silent + + # Set the environment + if self.env_info is not None: + env.set_full_environ(self.logger, self.env_info) + else: + # set env from the APPLICATION + env.set_application_env(self.logger) + + # The list of products to launch + lProductsName = env.get_names(self.config.APPLICATION.products.keys()) + env.set( "SALOME_MODULES", ','.join(lProductsName)) + + # set the products + env.set_products(self.logger, + src_root=self.src_root) + + # add cleanup and close + env.finish(True) + env_file.close() + + return env_file.name +
+
[docs] def write_cfgForPy_file(self, + filename, + additional_env = {}, + for_package = None, + with_commercial = True): + """\ + Append to current opened aFile a cfgForPy + environment (SALOME python launcher). + + :param filename str: the file path + :param additional_env dict: a dictionary of additional variables + to add to the environment + :param for_package str: If not None, produce a relative environment + designed for a package. + """ + if not self.silent: + self.logger.write(_("Create configuration file %s\n") % + src.printcolors.printcLabel(filename.name), 3) + + # create then env object + tmp = src.fileEnviron.get_file_environ(filename, + "cfgForPy", + {}) + # environment for launch + env = SalomeEnviron(self.config, + tmp, + forBuild=False, + for_package=for_package, + enable_simple_env_script = with_commercial) + env.silent = self.silent + + if self.env_info is not None: + env.set_full_environ(self.logger, self.env_info) + else: + # set env from PRODUCT + env.set_application_env(self.logger) + + # The list of products to launch + lProductsName = env.get_names(self.config.APPLICATION.products.keys()) + env.set( "SALOME_MODULES", ','.join(lProductsName)) + + # set the products + env.set_products(self.logger, + src_root=self.src_root) + + # Add the additional environment if it is not empty + if len(additional_env) != 0: + for variable in additional_env: + env.set(variable, additional_env[variable]) + + # add cleanup and close + env.finish(True) +
+
[docs]class Shell: + """\ + Definition of a Shell. + """ + def __init__(self, name, extension): + """\ + Initialization. + + :param name str: the shell name + :param extension str: the shell extension + """ + self.name = name + self.extension = extension +
+
[docs]def load_environment(config, build, logger): + """\ + Loads the environment (used to run the tests, for example). + + :param config Config: the global config + :param build bool: build environement if True + :param logger Logger: The logger instance to display messages + """ + environ = SalomeEnviron(config, Environ(os.environ), build) + environ.set_application_env(logger) + environ.set_products(logger) + environ.finish(True)
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/fileEnviron.html b/doc/build/html/_modules/src/fileEnviron.html new file mode 100644 index 0000000..9a087bb --- /dev/null +++ b/doc/build/html/_modules/src/fileEnviron.html @@ -0,0 +1,964 @@ + + + + + + + + + src.fileEnviron — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.fileEnviron

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+import os
+import pprint as PP
+import src.debug as DBG
+
+bat_header="""\
+@echo off
+
+rem The following variables are used only in case of a sat package
+set out_dir_Path=%~dp0
+set PRODUCT_OUT_DIR=%out_dir_Path%
+set prereq_install_Path=%out_dir_Path%\PREREQUISITES\INSTALL
+set prereq_build_Path=%out_dir_Path%\PREREQUISITES\BUILD
+"""
+
+
+bash_header="""\
+#!/bin/bash
+##########################################################################
+#
+#### cleandup ###
+# cleanup a path (first parameter) from duplicated entries;
+# second parameter is the separator
+cleandup() {
+out_var=`echo $1 | awk -v sep=$2 '{                      \\
+     na = split($1,a,sep);                               \\
+     k=0;                                                \\
+     for(i=0;i<=na;i++) {                                \\
+       found=0;                                          \\
+       for(j=0;j<k;j++) {                                \\
+         if(a[i]==aa[j])                                 \\
+         {                                               \\
+           found=1;                                      \\
+           break;                                        \\
+         };                                              \\
+       };                                                \\
+       if(found==0) {                                    \\
+         aa[k++]=a[i];                                   \\
+       };                                                \\
+     };                                                  \\
+     ORS=sep;                                            \\
+     for(i=0;i<k;i++) {                                  \\
+       print aa[i];                                      \\
+     }                                                   \\
+   }' | sed -e 's|\\(.*\\)$1|\\1|g' -e 's|^[:;]||' -e 's|[:;]$||'`
+echo $out_var
+}
+### clean ###
+clean ()
+{
+xenv=`printenv $1`
+out_var=`cleandup $xenv $2`
+export $1=$out_var
+}
+
+# The 3 following variables are used only in case of a sat package
+export out_dir_Path=$(cd $(dirname ${BASH_SOURCE[0]});pwd)
+export PRODUCT_OUT_DIR=${out_dir_Path}
+export PRODUCT_ROOT_DIR=${PRODUCT_OUT_DIR}
+
+###########################################################################
+"""
+
+cfg_header="""\
+[SALOME Configuration]
+"""
+
+Launcher_header="""\
+# a generated SALOME Configuration file using python syntax
+"""
+
+
[docs]def get_file_environ(output, shell, environ=None): + """Instantiate correct FileEnvironment sub-class. + + :param output file: the output file stream. + :param shell str: the type of shell syntax to use. + :param environ dict: a potential additional environment. + """ + if shell == "bash": + return BashFileEnviron(output, environ) + if shell == "bat": + return BatFileEnviron(output, environ) + if shell == "cfgForPy": + return LauncherFileEnviron(output, environ) + if shell == "cfg": + return ContextFileEnviron(output, environ) + raise Exception("FileEnviron: Unknown shell = %s" % shell) +
+
[docs]class FileEnviron(object): + """\ + Base class for shell environment + """ + def __init__(self, output, environ=None): + """\ + Initialization + + :param output file: the output file stream. + :param environ dict: a potential additional environment. + """ + self._do_init(output, environ) + + def __repr__(self): + """\ + easy non exhaustive quick resume for debug print""" + res = { + "output" : self.output, + "environ" : self.environ, + } + return "%s(\n%s\n)" % (self.__class__.__name__, PP.pformat(res)) + + + def _do_init(self, output, environ=None): + """\ + Initialization + + :param output file: the output file stream. + :param environ dict: a potential additional environment. + """ + self.output = output + self.toclean = [] + if environ is not None: + #if str(type(environ)) == "<type 'instance'>": + if id(environ) == id(os.environ): + DBG.tofix("set %s environ as python os.environ, are you sure it is safe ?" % self.__class__.__name__, True) + self.environ = environ + else: + DBG.tofix("set %s environ as COPY of python os.environ, are you sure it is safe ?" % self.__class__.__name__, True) + self.environ = dict(os.environ) #make a copy cvw 180320 + +
[docs] def add_line(self, number): + """\ + Add some empty lines in the shell file + + :param number int: the number of lines to add + """ + self.output.write("\n" * number) +
+
[docs] def add_comment(self, comment): + """\ + Add a comment in the shell file + + :param comment str: the comment to add + """ + self.output.write("# %s\n" % comment) +
+
[docs] def add_echo(self, text): + """\ + Add a "echo" in the shell file + + :param text str: the text to echo + """ + self.output.write('echo %s"\n' % text) +
+
[docs] def add_warning(self, warning): + """\ + Add a warning "echo" in the shell file + + :param warning str: the text to echo + """ + self.output.write('echo "WARNING %s"\n' % warning) +
+
[docs] def append_value(self, key, value, sep=os.pathsep): + """\ + append value to key using sep + + :param key str: the environment variable to append + :param value str: the value to append to key + :param sep str: the separator string + """ + self.set(key, self.get(key) + sep + value) + if (key, sep) not in self.toclean: + self.toclean.append((key, sep)) +
+
[docs] def append(self, key, value, sep=os.pathsep): + """\ + Same as append_value but the value argument can be a list + + :param key str: the environment variable to append + :param value str or list: the value(s) to append to key + :param sep str: the separator string + """ + if isinstance(value, list): + self.append_value(key, sep.join(value), sep) + else: + self.append_value(key, value, sep) +
+
[docs] def prepend_value(self, key, value, sep=os.pathsep): + """\ + prepend value to key using sep + + :param key str: the environment variable to prepend + :param value str: the value to prepend to key + :param sep str: the separator string + """ + self.set(key, value + sep + self.get(key)) + if (key, sep) not in self.toclean: + self.toclean.append((key, sep)) +
+
[docs] def prepend(self, key, value, sep=os.pathsep): + """\ + Same as prepend_value but the value argument can be a list + + :param key str: the environment variable to prepend + :param value str or list: the value(s) to prepend to key + :param sep str: the separator string + """ + if isinstance(value, list): + self.prepend_value(key, sep.join(value), sep) + else: + self.prepend_value(key, value, sep) +
+
[docs] def is_defined(self, key): + """\ + Check if the key exists in the environment + + :param key str: the environment variable to check + """ + return (key in self.environ) +
+
[docs] def set(self, key, value): + """\ + Set the environment variable 'key' to value 'value' + + :param key str: the environment variable to set + :param value str: the value + """ + raise NotImplementedError("set is not implement for this shell!") +
+
[docs] def get(self, key): + """\ + Get the value of the environment variable "key" + + :param key str: the environment variable + """ + return '${%s}' % key +
+
[docs] def command_value(self, key, command): + """\ + Get the value given by the system command "command" + and put it in the environment variable key. + Has to be overwritten in the derived classes + This can be seen as a virtual method + + :param key str: the environment variable + :param command str: the command to execute + """ + raise NotImplementedError("command_value is not implement " + "for this shell!") +
+
[docs] def finish(self, required=True): + """Add a final instruction in the out file (in case of file generation) + + :param required bool: Do nothing if required is False + """ + for (key, sep) in self.toclean: + if sep != ' ': + self.output.write('clean %s "%s"\n' % (key, sep)) +
+
[docs]class BashFileEnviron(FileEnviron): + """\ + Class for bash shell. + """ + def __init__(self, output, environ=None): + """Initialization + + :param output file: the output file stream. + :param environ dict: a potential additional environment. + """ + self._do_init(output, environ) + self.output.write(bash_header) + +
[docs] def set(self, key, value): + """Set the environment variable "key" to value "value" + + :param key str: the environment variable to set + :param value str: the value + """ + self.output.write('export %s="%s"\n' % (key, value)) + self.environ[key] = value +
+
[docs] def command_value(self, key, command): + """\ + Get the value given by the system command "command" + and put it in the environment variable key. + Has to be overwritten in the derived classes + This can be seen as a virtual method + + :param key str: the environment variable + :param command str: the command to execute + """ + self.output.write('export %s=$(%s)\n' % (key, command)) +
+
[docs] def finish(self, required=True): + """Add a final instruction in the out file (in case of file generation) + + :param required bool: Do nothing if required is False + """ + if not required: + return + FileEnviron.finish(self, required) +
+
[docs]class BatFileEnviron(FileEnviron): + """\ + for Windows batch shell. + """ + def __init__(self, output, environ=None): + """Initialization + + :param output file: the output file stream. + :param environ dict: a potential additional environment. + """ + self._do_init(output, environ) + self.output.write(bat_header) + +
[docs] def add_comment(self, comment): + """Add a comment in the shell file + + :param comment str: the comment to add + """ + self.output.write("rem %s\n" % comment) +
+
[docs] def get(self, key): + """Get the value of the environment variable "key" + + :param key str: the environment variable + """ + return '%%%s%%' % key +
+
[docs] def set(self, key, value): + """Set the environment variable "key" to value "value" + + :param key str: the environment variable to set + :param value str: the value + """ + self.output.write('set %s=%s\n' % (key, value)) + self.environ[key] = value +
+
[docs] def command_value(self, key, command): + """\ + Get the value given by the system command "command" + and put it in the environment variable key. + Has to be overwritten in the derived classes + This can be seen as a virtual method + + :param key str: the environment variable + :param command str: the command to execute + """ + self.output.write('%s > tmp.txt\n' % (command)) + self.output.write('set /p %s =< tmp.txt\n' % (key)) +
+
[docs] def finish(self, required=True): + """\ + Add a final instruction in the out file (in case of file generation) + In the particular windows case, do nothing + + :param required bool: Do nothing if required is False + """ + return +
+
[docs]class ContextFileEnviron(FileEnviron): + """Class for a salome context configuration file. + """ + def __init__(self, output, environ=None): + """Initialization + + :param output file: the output file stream. + :param environ dict: a potential additional environment. + """ + self._do_init(output, environ) + self.output.write(cfg_header) + +
[docs] def set(self, key, value): + """Set the environment variable "key" to value "value" + + :param key str: the environment variable to set + :param value str: the value + """ + self.output.write('%s="%s"\n' % (key, value)) + self.environ[key] = value +
+
[docs] def get(self, key): + """Get the value of the environment variable "key" + + :param key str: the environment variable + """ + return '%({0})s'.format(key) +
+
[docs] def command_value(self, key, command): + """\ + Get the value given by the system command "command" + and put it in the environment variable key. + Has to be overwritten in the derived classes + This can be seen as a virtual method + + :param key str: the environment variable + :param command str: the command to execute + """ + raise NotImplementedError("command_value is not implement " + "for salome context files!") +
+
[docs] def add_echo(self, text): + """Add a comment + + :param text str: the comment to add + """ + self.add_comment(text) +
+
[docs] def add_warning(self, warning): + """Add a warning + + :param text str: the warning to add + """ + self.add_comment("WARNING %s" % warning) +
+
[docs] def prepend_value(self, key, value, sep=os.pathsep): + """prepend value to key using sep + + :param key str: the environment variable to prepend + :param value str: the value to prepend to key + :param sep str: the separator string + """ + self.output.write('ADD_TO_%s: %s\n' % (key, value)) +
+
[docs] def append_value(self, key, value, sep=os.pathsep): + """append value to key using sep + + :param key str: the environment variable to append + :param value str: the value to append to key + :param sep str: the separator string + """ + self.prepend_value(key, value) +
+
[docs] def finish(self, required=True): + """Add a final instruction in the out file (in case of file generation) + + :param required bool: Do nothing if required is False + """ + return +
+
[docs]def special_path_separator(name): + """\ + TCLLIBPATH, TKLIBPATH, PV_PLUGIN_PATH environments variables need + some exotic path separator. + This function gives the separator regarding the name of the variable + to append or prepend. + + :param name str: The name of the variable to find the separator + """ + special_blanks_keys=["TCLLIBPATH", "TKLIBPATH"] + special_semicolon_keys=["PV_PLUGIN_PATH"] + res=os.pathsep + if name in special_blanks_keys: res=" " + if name in special_semicolon_keys: res=";" + return res +
+
[docs]class LauncherFileEnviron: + """\ + Class to generate a launcher file script + (in python syntax) SalomeContext API + """ + def __init__(self, output, environ=None): + """Initialization + + :param output file: the output file stream. + :param environ dict: a potential additional environment. + """ + self.output = output + self.toclean = [] + if environ is not None: + self.environ = environ + else: + self.environ = os.environ + # Initialize some variables + if not "PATH" in self.environ.keys(): + self.environ["PATH"]="" + if not "LD_LIBRARY_PATH" in self.environ.keys(): + self.environ["LD_LIBRARY_PATH"]="" + if not "PYTHONPATH" in self.environ.keys(): + self.environ["PYTHONPATH"]="" + if not "TCLLIBPATH" in self.environ.keys(): + self.environ["TCLLIBPATH"]="" + if not "TKLIBPATH" in self.environ.keys(): + self.environ["TKLIBPATH"]="" + + # four whitespaces for first indentation in a python script + self.indent=" " + self.prefix="context." + self.setVarEnv="setVariable" + + self.begin=self.indent+self.prefix + self.output.write(Launcher_header) + self.specialKeys={"PATH": "Path", + "LD_LIBRARY_PATH": "LdLibraryPath", + "PYTHONPATH": "PythonPath"} + +
[docs] def change_to_launcher(self, value): + res=value + return res +
+
[docs] def add_line(self, number): + """Add some empty lines in the launcher file + + :param number int: the number of lines to add + """ + self.output.write("\n" * number) +
+
[docs] def add_echo(self, text): + """Add a comment + + :param text str: the comment to add + """ + self.output.write('# %s"\n' % text) +
+
[docs] def add_warning(self, warning): + """Add a warning + + :param text str: the warning to add + """ + self.output.write('# "WARNING %s"\n' % warning) +
+
[docs] def append_value(self, key, value, sep=":"): + """append value to key using sep + + :param key str: the environment variable to append + :param value str: the value to append to key + :param sep str: the separator string + """ + if self.is_defined(key) : + self.add(key, value) + else : + self.set(key, value) +
+
[docs] def append(self, key, value, sep=":"): + """Same as append_value but the value argument can be a list + + :param key str: the environment variable to append + :param value str or list: the value(s) to append to key + :param sep str: the separator string + """ + if isinstance(value, list): + self.append_value(key, sep.join(value), sep) + else: + self.append_value(key, value, sep) +
+
[docs] def prepend_value(self, key, value, sep=":"): + """prepend value to key using sep + + :param key str: the environment variable to prepend + :param value str: the value to prepend to key + :param sep str: the separator string + """ + if self.is_defined(key) : + self.add(key, value) + else : + self.set(key, value) +
+
[docs] def prepend(self, key, value, sep=":"): + """Same as prepend_value but the value argument can be a list + + :param key str: the environment variable to prepend + :param value str or list: the value(s) to prepend to key + :param sep str: the separator string + """ + if isinstance(value, list): + self.prepend_value(key, sep.join(value), sep) + else: + self.prepend_value(key, value, sep) +
+
[docs] def is_defined(self, key): + """Check if the key exists in the environment + + :param key str: the environment variable to check + """ + return key in self.environ.keys() +
+
[docs] def get(self, key): + """Get the value of the environment variable "key" + + :param key str: the environment variable + """ + return '${%s}' % key +
+
[docs] def set(self, key, value): + """Set the environment variable "key" to value "value" + + :param key str: the environment variable to set + :param value str: the value + """ + self.output.write(self.begin+self.setVarEnv+ + '(r"%s", r"%s", overwrite=True)\n' % + (key, self.change_to_launcher(value))) + self.environ[key] = value +
+
[docs] def add(self, key, value): + """prepend value to key using sep + + :param key str: the environment variable to prepend + :param value str: the value to prepend to key + """ + if key in self.specialKeys.keys(): + self.output.write(self.begin+'addTo%s(r"%s")\n' % + (self.specialKeys[key], + self.change_to_launcher(value))) + self.environ[key]+=":"+value + return + sep=special_path_separator(key) + self.output.write(self.indent+ + '#temporary solution!!! have to be defined in API a ' + '?dangerous? addToSpecial(r"%s", r"%s")\n' % + (key, value)) + #pathsep not precised because do not know future os launch? + self.output.write(self.begin+'addToSpecial(r"%s", r"%s")\n' + % (key, self.change_to_launcher(value))) + self.environ[key]+=sep+value #here yes we know os for current execution +
+
[docs] def command_value(self, key, command): + """\ + Get the value given by the system command "command" + and put it in the environment variable key. + + :param key str: the environment variable + :param command str: the command to execute + """ + self.output.write(self.indent+'#`%s`\n' % command) + + import shlex, subprocess + args = shlex.split(command) + res=subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, __ = res.communicate() + self.output.write(self.begin+ + self.setVarEnv+ + '(r"%s", r"%s", overwrite=True)\n' % (key, out)) +
+
[docs] def add_comment(self, comment): + # Special comment in case of the distène licence + if comment=="DISTENE license": + self.output.write(self.indent+ + "#"+ + self.prefix+ + self.setVarEnv+ + '(r"%s", r"%s", overwrite=True)\n' % + ('DISTENE_LICENSE_FILE', + self.change_to_launcher( + 'Use global envvar: DLIM8VAR'))) + self.output.write(self.indent+ + "#"+ + self.prefix+ + self.setVarEnv+ + '(r"%s", r"%s", overwrite=True)\n' % + ('DLIM8VAR', + self.change_to_launcher( + '<your licence>'))) + return + if "setting environ for" in comment: + self.output.write(self.indent+"#[%s]\n" % + comment.split("setting environ for ")[1]) + return + + self.output.write(self.indent+"# %s\n" % comment) +
+
[docs] def finish(self, required=True): + """\ + Add a final instruction in the out file (in case of file generation) + In the particular launcher case, do nothing + + :param required bool: Do nothing if required is False + """ + return +
+
[docs]class ScreenEnviron(FileEnviron): + def __init__(self, output, environ=None): + self._do_init(output, environ) + self.defined = {} + +
[docs] def add_line(self, number): + pass +
+
[docs] def add_comment(self, comment): + pass +
+
[docs] def add_echo(self, text): + pass +
+
[docs] def add_warning(self, warning): + pass +
+
[docs] def write(self, command, name, value, sign="="): + import src + self.output.write(" %s%s %s %s %s\n" % \ + (src.printcolors.printcLabel(command), + " " * (12 - len(command)), + src.printcolors.printcInfo(name), sign, value)) +
+
[docs] def is_defined(self, name): + return self.defined.has_key(name) +
+
[docs] def get(self, name): + return "${%s}" % name +
+
[docs] def set(self, name, value): + self.write("set", name, value) + self.defined[name] = value +
+
[docs] def prepend(self, name, value, sep=":"): + if isinstance(value, list): + value = sep.join(value) + value = value + sep + self.get(name) + self.write("prepend", name, value) +
+
[docs] def append(self, name, value, sep=":"): + if isinstance(value, list): + value = sep.join(value) + value = self.get(name) + sep + value + self.write("append", name, value) +
+
[docs] def command_value(self, key, command): + pass +
+
[docs] def run_env_script(self, module, script): + self.write("load", script, "", sign="") + +# The SALOME launcher template
+withProfile = """\ + #! /usr/bin/env python + +################################################################ +# WARNING: this file is automatically generated by SalomeTools # +# WARNING: and so could be overwritten at any time. # +################################################################ + +import os +import sys +import subprocess + + +# Add the pwdPath to able to run the launcher after unpacking a package +# Used only in case of a salomeTools package +out_dir_Path=os.path.abspath(os.path.dirname(__file__)) + +# Preliminary work to initialize path to SALOME Python modules +def __initialize(): + + sys.path[:0] = [ 'BIN_KERNEL_INSTALL_DIR' ] + os.environ['ABSOLUTE_APPLI_PATH'] = 'KERNEL_INSTALL_DIR' + + # define folder to store omniorb config (initially in virtual application folder) + try: + from salomeContextUtils import setOmniOrbUserPath + setOmniOrbUserPath() + except Exception, e: + print e + sys.exit(1) +# End of preliminary work + +# salome doc only works for virtual applications. Therefore we overwrite it with this function +def _showDoc(modules): + for module in modules: + modulePath = os.getenv(module+"_ROOT_DIR") + if modulePath != None: + baseDir = os.path.join(modulePath, "share", "doc", "salome") + docfile = os.path.join(baseDir, "gui", module.upper(), "index.html") + if not os.path.isfile(docfile): + docfile = os.path.join(baseDir, "tui", module.upper(), "index.html") + if not os.path.isfile(docfile): + docfile = os.path.join(baseDir, "dev", module.upper(), "index.html") + if os.path.isfile(docfile): + out, err = subprocess.Popen(["xdg-open", docfile]).communicate() + else: + print "Online documentation is not accessible for module:", module + else: + print module+"_ROOT_DIR not found!" + +def main(args): + # Identify application path then locate configuration files + __initialize() + + if args == ['--help']: + from salomeContext import usage + usage() + sys.exit(0) + + #from salomeContextUtils import getConfigFileNames + #configFileNames, args, unexisting = getConfigFileNames( args, checkExistence=True ) + #if len(unexisting) > 0: + # print "ERROR: unexisting configuration file(s): " + ', '.join(unexisting) + # sys.exit(1) + + # Create a SalomeContext which parses configFileNames to initialize environment + try: + from salomeContext import SalomeContext, SalomeContextException + SalomeContext.addToSpecial=addToSpecial + context = SalomeContext(None) + + # Here set specific variables, if needed + # context.addToPath('mypath') + # context.addToLdLibraryPath('myldlibrarypath') + # context.addToPythonPath('mypythonpath') + # context.setVariable('myvarname', 'value') + + # Logger level error + context.getLogger().setLevel(40) + + context.setVariable(r"PRODUCT_ROOT_DIR", out_dir_Path, overwrite=True) + # here your local standalone environment + + if len(args) >1 and args[0]=='doc': + _showDoc(args[1:]) + return + + # Start SALOME, parsing command line arguments + context.runSalome(args) + #print 'Thank you for using SALOME!' + + # Logger level info + context.getLogger().setLevel(20) + + except SalomeContextException, e: + import logging + logging.getLogger("salome").error(e) + sys.exit(1) +# +def addToSpecial(self, name, value, pathSep=None): + # add special dangerous cases: TCLLIBPATH PV_PLUGIN_PATH etc... + # http://computer-programming-forum.com/57-tcl/1dfddc136afccb94.htm + # TCLLIBPATH: Tcl treats the contents of that variable as a list. Be happy, for you can now use drive letters on windows. + if value == '': + return + + specialBlanksKeys=["TCLLIBPATH", "TKLIBPATH"] + specialSemicolonKeys=["PV_PLUGIN_PATH"] + res=os.pathsep + if name in specialBlanksKeys: res=" " + if name in specialSemicolonKeys: res=";" + + if pathSep==None: + sep=res + else: + sep=pathSep + value = os.path.expandvars(value) # expand environment variables + self.getLogger().debug("Add to %s: %s", name, value) + env = os.getenv(name, None) + if env is None: + os.environ[name] = value + else: + os.environ[name] = value + sep + env #explicitely or not special path separator ?whitespace, semicolon? + +if __name__ == "__main__": + args = sys.argv[1:] + main(args) +# +""" + +
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/fork.html b/doc/build/html/_modules/src/fork.html new file mode 100644 index 0000000..890c570 --- /dev/null +++ b/doc/build/html/_modules/src/fork.html @@ -0,0 +1,256 @@ + + + + + + + + + src.fork — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.fork

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+import os
+import sys
+import time
+import pickle
+import subprocess
+
+
[docs]def show_progress(logger, top, delai, ss=""): + """shortcut function to display the progression + + :param logger Logger: The logging instance + :param top int: the number to display + :param delai int: the number max + :param ss str: the string to display + """ + logger.write("\r%s\r%s %s / %s " % ((" " * 30), ss, top, (delai - top)), 4, + False) + logger.flush() +
+
[docs]def write_back(logger, message, level): + """shortcut function to write at the begin of the line + + :param logger Logger: The logging instance + :param message str: the text to display + :param level int: the level of verbosity + """ + logger.write("\r%s\r%s" % ((" " * 40), message), level) + +# Launch command +# --------------
+
[docs]def launch_command(cmd, logger, cwd, args=[], log=None): + if log: + log = file(log, "a") + logger.write("launch: %s\n" % cmd, 5, screenOnly=True) + for arg in args: + cmd += " " + arg + prs = subprocess.Popen(cmd, + shell=True, + stdout=log, + stderr=subprocess.STDOUT, + cwd=cwd, + executable='/bin/bash') + return prs + +# Launch a batch +# --------------
+
[docs]def batch(cmd, logger, cwd, args=[], log=None, delai=20, sommeil=1): + proc = launch_command(cmd, logger, cwd, args, log) + top = 0 + sys.stdout.softspace = True + begin = time.time() + while proc.poll() is None: + if time.time() - begin >= 1: + show_progress(logger, top, delai, "batch:") + if top == delai: + logger.write("batch: time out KILL\n", 3) + import signal + os.kill(proc.pid, signal.SIGTERM) + break + else: + begin = time.time() + time.sleep(sommeil) + top += 1 + sys.stdout.flush() + else: + write_back(logger, "batch: exit (%s)\n" % str(proc.returncode), 5) + return (proc.returncode == 0), top + +# Launch a salome process +# -----------------------
+
[docs]def batch_salome(cmd, logger, cwd, args, getTmpDir, + pendant="SALOME_Session_Server", fin="killSalome.py", + log=None, delai=20, sommeil=1, delaiapp=0): + + beginTime = time.time() + launch_command(cmd, logger, cwd, args, log) + + if delaiapp == 0: + delaiapp = delai + + # first launch salome (looking for .pidict file) + top = 0 + found = False + tmp_dir = getTmpDir() + while (not found and top < delaiapp): + if os.path.exists(tmp_dir): + listFile = os.listdir(tmp_dir) + else: + listFile = [] + + for file_name in listFile: + if file_name.endswith("pidict"): + # sometime we get a old file that will be removed by runSalome. + # So we test that we can read it. + currentTime = None + try: + statinfo = os.stat(os.path.join(tmp_dir, file_name)) + currentTime = statinfo.st_mtime + except: pass + + if currentTime and currentTime > beginTime: + try: + file_ = open(os.path.join(tmp_dir, file_name), "r") + process_ids = pickle.load(file_) + file_.close() + for process_id in process_ids: + for __, cmd in process_id.items(): + if cmd == [pendant]: + found = True + pidictFile = file_name + except: + file_.close() + + time.sleep(sommeil) + top += 1 + show_progress(logger, top, delaiapp, "launching salome or appli:") + + # continue or not + if found: + write_back(logger, "batch_salome: started\n", 5) + else: + logger.write("batch_salome: FAILED to launch salome or appli\n", 3) + return False, -1 + + # salome launched run the script + top = 0 + code = None + while code is None: + show_progress(logger, top, delai, "running salome or appli:") + + if not os.access(os.path.join(tmp_dir, pidictFile), os.F_OK): + write_back(logger, "batch_salome: exit\n", 5) + code = True + elif top >= delai: + # timeout kill the test + os.system(fin) + logger.write("batch_salome: time out KILL\n", 3) + code = False + else: + # still waiting + time.sleep(sommeil) + top = top + 1 + + return code, top
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/logger.html b/doc/build/html/_modules/src/logger.html new file mode 100644 index 0000000..3521621 --- /dev/null +++ b/doc/build/html/_modules/src/logger.html @@ -0,0 +1,506 @@ + + + + + + + + + src.logger — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.logger

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2012  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+"""\
+Implements the classes and method relative to the logging
+"""
+
+import sys
+import os
+import datetime
+import re
+import tempfile
+
+import src
+from . import printcolors
+from . import xmlManager
+
+log_macro_command_file_expression = "^[0-9]{8}_+[0-9]{6}_+.*\.xml$"
+log_all_command_file_expression = "^.*[0-9]{8}_+[0-9]{6}_+.*\.xml$"
+
+
[docs]class Logger(object): + """\ + Class to handle log mechanism. + """ + def __init__(self, + config, + silent_sysstd=False, + all_in_terminal=False, + micro_command = False): + """Initialization + + :param config pyconf.Config: The global configuration. + :param silent_sysstd boolean: if True, do not write anything + in terminal. + """ + self.config = config + self.default_level = 3 + self.silentSysStd = silent_sysstd + + # Construct xml log file location for sat prints. + prefix = "" + if micro_command: + prefix = "micro_" + hour_command_host = (config.VARS.datehour + "_" + + config.VARS.command + "_" + + config.VARS.hostname) + logFileName = prefix + hour_command_host + ".xml" + log_dir = src.get_log_path(config) + logFilePath = os.path.join(log_dir, logFileName) + # Construct txt file location in order to log + # the external commands calls (cmake, make, git clone, etc...) + txtFileName = prefix + hour_command_host + ".txt" + txtFilePath = os.path.join(log_dir, "OUT", txtFileName) + + src.ensure_path_exists(os.path.dirname(logFilePath)) + src.ensure_path_exists(os.path.dirname(txtFilePath)) + + # The path of the log files (one for sat traces, and the other for + # the system commands traces) + self.logFileName = logFileName + self.logFilePath = logFilePath + self.txtFileName = txtFileName + self.txtFilePath = txtFilePath + + # The list of all log files corresponding to the current command and + # the commands called by the current command + self.l_logFiles = [logFilePath, txtFilePath] + + # Initialize xml instance and put first fields + # like beginTime, user, command, etc... + self.xmlFile = xmlManager.XmlLogFile(logFilePath, "SATcommand", + attrib = {"application" : config.VARS.application}) + self.put_initial_xml_fields() + # Initialize the txt file for reading + try: + self.logTxtFile = open(str(self.txtFilePath), 'w') + except IOError: + #msg1 = _("WARNING! Trying to write to a file that" + # " is not accessible:") + #msg2 = _("The logs won't be written.") + #print("%s\n%s\n%s\n" % (src.printcolors.printcWarning(msg1), + # src.printcolors.printcLabel(str(self.txtFilePath)), + # src.printcolors.printcWarning(msg2) )) + self.logTxtFile = tempfile.TemporaryFile() + + # If the option all_in_terminal was called, all the system commands + # are redirected to the terminal + if all_in_terminal: + self.logTxtFile = sys.__stdout__ + +
[docs] def put_initial_xml_fields(self): + """\ + Called at class initialization: Put all fields + corresponding to the command context (user, time, ...) + """ + # command name + self.xmlFile.add_simple_node("Site", attrib={"command" : + self.config.VARS.command}) + # version of salomeTools + self.xmlFile.append_node_attrib("Site", attrib={"satversion" : + self.config.INTERNAL.sat_version}) + # machine name on which the command has been launched + self.xmlFile.append_node_attrib("Site", attrib={"hostname" : + self.config.VARS.hostname}) + # Distribution of the machine + self.xmlFile.append_node_attrib("Site", attrib={"OS" : + self.config.VARS.dist}) + # The user that have launched the command + self.xmlFile.append_node_attrib("Site", attrib={"user" : + self.config.VARS.user}) + # The time when command was launched + Y, m, dd, H, M, S = date_to_datetime(self.config.VARS.datehour) + date_hour = "%2s/%2s/%4s %2sh%2sm%2ss" % (dd, m, Y, H, M, S) + self.xmlFile.append_node_attrib("Site", attrib={"beginTime" : + date_hour}) + # The application if any + if "APPLICATION" in self.config: + self.xmlFile.append_node_attrib("Site", + attrib={"application" : self.config.VARS.application}) + # The initialization of the trace node + self.xmlFile.add_simple_node("Log",text="") + # The system commands logs + self.xmlFile.add_simple_node("OutLog", + text=os.path.join("OUT", self.txtFileName)) + # The initialization of the node where + # to put the links to the other sat commands that can be called by any + # command + self.xmlFile.add_simple_node("Links") +
+ +
[docs] def write(self, message, level=None, screenOnly=False): + """\ + function used in the commands + to print in the terminal and the log file. + + :param message str: The message to print. + :param level int: The output level corresponding + to the message 0 < level < 6. + :param screenOnly boolean: if True, do not write in log file. + """ + # do not write message starting with \r to log file + if not message.startswith("\r") and not screenOnly: + self.xmlFile.append_node_text("Log", + printcolors.cleancolor(message)) + + # get user or option output level + current_output_verbose_level = self.config.USER.output_verbose_level + if not ('isatty' in dir(sys.stdout) and sys.stdout.isatty()): + # clean the message color if the terminal is redirected by user + # ex: sat compile appli > log.txt + message = printcolors.cleancolor(message) + + # Print message regarding the output level value + if level: + if level <= current_output_verbose_level and not self.silentSysStd: + sys.stdout.write(message) + else: + if self.default_level <= current_output_verbose_level and not self.silentSysStd: + sys.stdout.write(message) + self.flush() +
+
[docs] def error(self, message): + """Print an error. + + :param message str: The message to print. + """ + # Print in the log file + self.xmlFile.append_node_text("traces", _('ERROR:') + message) + + # Print in the terminal and clean colors if the terminal + # is redirected by user + if not ('isatty' in dir(sys.stderr) and sys.stderr.isatty()): + sys.stderr.write(printcolors.printcError(_('ERROR:') + message)) + else: + sys.stderr.write(_('ERROR:') + message) +
+
[docs] def flush(self): + """Flush terminal""" + sys.stdout.flush() + self.logTxtFile.flush() +
+
[docs] def end_write(self, attribute): + """\ + Called just after command end: Put all fields + corresponding to the command end context (time). + Write the log xml file on the hard drive. + And display the command to launch to get the log + + :param attribute dict: the attribute to add to the node "Site". + """ + # Get current time (end of command) and format it + dt = datetime.datetime.now() + Y, m, dd, H, M, S = date_to_datetime(self.config.VARS.datehour) + t0 = datetime.datetime(int(Y), int(m), int(dd), int(H), int(M), int(S)) + tf = dt + delta = tf - t0 + total_time = timedelta_total_seconds(delta) + hours = int(total_time / 3600) + minutes = int((total_time - hours*3600) / 60) + seconds = total_time - hours*3600 - minutes*60 + # Add the fields corresponding to the end time + # and the total time of command + endtime = dt.strftime('%Y/%m/%d %Hh%Mm%Ss') + self.xmlFile.append_node_attrib("Site", attrib={"endTime" : endtime}) + self.xmlFile.append_node_attrib("Site", + attrib={"TotalTime" : "%ih%im%is" % (hours, minutes, seconds)}) + + # Add the attribute passed to the method + self.xmlFile.append_node_attrib("Site", attrib=attribute) + + # Call the method to write the xml file on the hard drive + self.xmlFile.write_tree(stylesheet = "command.xsl") + + # Dump the config in a pyconf file in the log directory + logDir = src.get_log_path(self.config) + dumpedPyconfFileName = (self.config.VARS.datehour + + "_" + + self.config.VARS.command + + ".pyconf") + dumpedPyconfFilePath = os.path.join(logDir, 'OUT', dumpedPyconfFileName) + try: + f = open(dumpedPyconfFilePath, 'w') + self.config.__save__(f) + f.close() + except IOError: + pass +
+
[docs]def date_to_datetime(date): + """\ + From a string date in format YYYYMMDD_HHMMSS + returns list year, mon, day, hour, minutes, seconds + + :param date str: The date in format YYYYMMDD_HHMMSS + :return: the same date and time in separate variables. + :rtype: (str,str,str,str,str,str) + """ + Y = date[:4] + m = date[4:6] + dd = date[6:8] + H = date[9:11] + M = date[11:13] + S = date[13:15] + return Y, m, dd, H, M, S +
+
[docs]def timedelta_total_seconds(timedelta): + """\ + Replace total_seconds from datetime module + in order to be compatible with old python versions + + :param timedelta datetime.timedelta: The delta between two dates + :return: The number of seconds corresponding to timedelta. + :rtype: float + """ + return ( + timedelta.microseconds + 0.0 + + (timedelta.seconds + timedelta.days * 24 * 3600) * 10 ** 6) / 10 ** 6 +
+
[docs]def show_command_log(logFilePath, cmd, application, notShownCommands): + """\ + Used in updateHatXml. + Determine if the log xml file logFilePath + has to be shown or not in the hat log. + + :param logFilePath str: the path to the command xml log file + :param cmd str: the command of the log file + :param application str: the application passed as parameter + to the salomeTools command + :param notShownCommands list: the list of commands + that are not shown by default + + :return: True if cmd is not in notShownCommands and the application + in the log file corresponds to application + :rtype: boolean + """ + # When the command is not in notShownCommands, no need to go further : + # Do not show + if cmd in notShownCommands: + return False, None, None + + # Get the application of the log file + try: + logFileXml = src.xmlManager.ReadXmlFile(logFilePath) + except Exception as e: + msg = _("WARNING: the log file %s cannot be read:" % logFilePath) + sys.stdout.write(printcolors.printcWarning("%s\n%s\n" % (msg, e))) + return False, None, None + + if 'application' in logFileXml.xmlroot.keys(): + appliLog = logFileXml.xmlroot.get('application') + launched_cmd = logFileXml.xmlroot.find('Site').attrib['launchedCommand'] + # if it corresponds, then the log has to be shown + if appliLog == application: + return True, appliLog, launched_cmd + elif application != 'None': + return False, appliLog, launched_cmd + + return True, appliLog, launched_cmd + + if application == 'None': + return True, None, None + + return False, None, None +
+
[docs]def list_log_file(dirPath, expression): + """Find all files corresponding to expression in dirPath + + :param dirPath str: the directory where to search the files + :param expression str: the regular expression of files to find + :return: the list of files path and informations about it + :rtype: list + """ + lRes = [] + for fileName in os.listdir(dirPath): + # YYYYMMDD_HHMMSS_namecmd.xml + sExpr = expression + oExpr = re.compile(sExpr) + if oExpr.search(fileName): + file_name = fileName + if fileName.startswith("micro_"): + file_name = fileName[len("micro_"):] + # get date and hour and format it + date_hour_cmd_host = file_name.split('_') + date_not_formated = date_hour_cmd_host[0] + date = "%s/%s/%s" % (date_not_formated[6:8], + date_not_formated[4:6], + date_not_formated[0:4]) + hour_not_formated = date_hour_cmd_host[1] + hour = "%s:%s:%s" % (hour_not_formated[0:2], + hour_not_formated[2:4], + hour_not_formated[4:6]) + if len(date_hour_cmd_host) < 4: + cmd = date_hour_cmd_host[2][:-len('.xml')] + host = "" + else: + cmd = date_hour_cmd_host[2] + host = date_hour_cmd_host[3][:-len('.xml')] + lRes.append((os.path.join(dirPath, fileName), + date_not_formated, + date, + hour_not_formated, + hour, + cmd, + host)) + return lRes +
+
[docs]def update_hat_xml(logDir, application=None, notShownCommands = []): + """\ + Create the xml file in logDir that contain all the xml file + and have a name like YYYYMMDD_HHMMSS_namecmd.xml + + :param logDir str: the directory to parse + :param application str: the name of the application if there is any + """ + # Create an instance of XmlLogFile class to create hat.xml file + xmlHatFilePath = os.path.join(logDir, 'hat.xml') + xmlHat = src.xmlManager.XmlLogFile(xmlHatFilePath, + "LOGlist", {"application" : application}) + # parse the log directory to find all the command logs, + # then add it to the xml file + lLogFile = list_log_file(logDir, log_macro_command_file_expression) + for filePath, __, date, __, hour, cmd, __ in lLogFile: + showLog, cmdAppli, full_cmd = show_command_log(filePath, cmd, + application, notShownCommands) + #if cmd not in notShownCommands: + if showLog: + # add a node to the hat.xml file + xmlHat.add_simple_node("LogCommand", + text=os.path.basename(filePath), + attrib = {"date" : date, + "hour" : hour, + "cmd" : cmd, + "application" : cmdAppli, + "full_command" : full_cmd}) + + # Write the file on the hard drive + xmlHat.write_tree('hat.xsl')
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/options.html b/doc/build/html/_modules/src/options.html new file mode 100644 index 0000000..3b43764 --- /dev/null +++ b/doc/build/html/_modules/src/options.html @@ -0,0 +1,290 @@ + + + + + + + + + src.options — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.options

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+'''The Options class that manages the access to all options passed as 
+   parameters in salomeTools command lines
+'''
+import getopt
+import sys
+from . import printcolors
+
+
[docs]class OptResult(object): + '''An instance of this class will be the object manipulated + in code of all salomeTools commands + The aim of this class is to have an elegant syntax + to manipulate the options. + ex: + print(options.level) + 5 + ''' + def __init__(self): + '''Initialization + ''' + self.__dict__ = dict() + + def __getattr__(self, name): + '''Overwrite of the __getattr__ function + to customize it for option usage + + :param name str: The attribute to get the value. + :return: the value corresponding to the attribute. + :rtype: str,int,list,boolean + ''' + if name in self.__dict__: + return self.__dict__[name] + else: + raise AttributeError(name + _(u" is not a valid option")) + + def __setattr__(self, name, value): + '''Overwrite of the __setattr__ function + to customize it for option usage + + :param name str: The attribute to set. + :param value str: The value corresponding to the attribute. + :return: Nothing. + :rtype: N\A + ''' + object.__setattr__(self,name,value) +
+
[docs]class Options: + '''Class to manage all salomeTools options + ''' + def __init__(self): + '''Initialization + ''' + # The options field stocks all options of a command + # in a list that contains dicts + self.options = [] + # The list of available option type + self.availableOptions = ["boolean", "string", "int", "float", + "long", "list", "list2"] + self.default = None + +
[docs] def add_option(self, shortName, longName, + optionType, destName, helpString="", default = None): + '''Method to add an option to a command. It gets all attributes + of an option and append it in the options field + + :param shortName str: The short name of the option + (ex "l" for level option). + :param longName str: The long name of the option + (ex "level" for level option). + :param optionType str: The type of the option (ex "int"). + :param destName str: The name that will be used in the code. + :param helpString str: The text to display + when user ask for help on a command. + :return: Nothing. + :rtype: N\A + ''' + option = dict() + option['shortName'] = shortName + option['longName'] = longName + + if optionType not in self.availableOptions: + print("error optionType", optionType, "not available.") + sys.exit(-1) + + option['optionType'] = optionType + option['destName'] = destName + option['helpString'] = helpString + option['result'] = default + self.options.append(option) +
+
[docs] def print_help(self): + '''Method that display all options stored in self.options and there help + + :return: Nothing. + :rtype: N\A + ''' + # Do nothing if there are no options + if len(self.options) == 0: + return + + # for all options, print its values. + # "shortname" is an optional field of the options + print(printcolors.printcHeader(_("Available options are:"))) + for option in self.options: + if 'shortName' in option and len(option['shortName']) > 0: + print(" -%(shortName)1s, --%(longName)s" + " (%(optionType)s)\n\t%(helpString)s\n" % option) + else: + print(" --%(longName)s (%(optionType)s)\n\t%(helpString)s\n" + % option) +
+
[docs] def parse_args(self, argList=None): + '''Method that instantiates the class OptResult + that gives access to all options in the code + + :param argList list: the raw list of arguments that were passed + :return: optResult, args : optResult is the option instance + to manipulate in the code. args + is the full raw list of passed options + :rtype: (class 'common.options.OptResult',list) + ''' + if argList is None: + argList = sys.argv[1:] + + # format shortNameOption and longNameOption + # to make right arguments to getopt.getopt function + shortNameOption = "" + longNameOption = [] + for option in self.options: + shortNameOption = shortNameOption + option['shortName'] + if option['shortName'] != "" and option['optionType'] != "boolean": + shortNameOption = shortNameOption + ":" + + if option['longName'] != "": + if option['optionType'] != "boolean": + longNameOption.append(option['longName'] + "=") + else: + longNameOption.append(option['longName']) + + # call to getopt.getopt function to get the option + # passed in the command regarding the available options + optlist, args = getopt.getopt(argList, shortNameOption, longNameOption) + + # instantiate and completing the optResult that will be returned + optResult = OptResult() + for option in self.options: + shortOption = "-" + option['shortName'] + longOption = "--" + option['longName'] + optionType = option['optionType'] + for opt in optlist: + if opt[0] in [shortOption, longOption]: + if optionType == "string": + option['result'] = opt[1] + elif optionType == "boolean": + option['result'] = True + elif optionType == "int": + option['result'] = int(opt[1]) + elif optionType == "float": + option['result'] = float(opt[1]) + elif optionType == "long": + option['result'] = long(opt[1]) + elif optionType == "list": + if option['result'] is None: + option['result'] = list() + option['result'].append(opt[1]) + elif optionType == "list2": + if option['result'] is None: + option['result'] = list() + if opt[1].find(",") == -1: + option['result'].append(opt[1]) + else: + elts = filter(lambda l: len(l) > 0, opt[1].split(",")) + option['result'].extend(elts) + + optResult.__setattr__(option['destName'], option['result']) + # free the option in order to be able to make + # a new free call of options (API case) + option['result'] = None + return optResult, args +
+ +
+
+ +
+
+
+

Related Topics

+ +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/printcolors.html b/doc/build/html/_modules/src/printcolors.html new file mode 100644 index 0000000..1e82e1d --- /dev/null +++ b/doc/build/html/_modules/src/printcolors.html @@ -0,0 +1,278 @@ + + + + + + + + + src.printcolors — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.printcolors

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+'''In this file is stored the mechanism that manage color prints in the terminal
+'''
+
+# define constant to use in scripts
+COLOR_ERROR = 'ERROR'
+COLOR_WARNING = 'WARNING'
+COLOR_SUCCESS = 'SUCCESS'
+COLOR_LABEL = 'LABEL'
+COLOR_HEADER = 'HEADER'
+COLOR_INFO = 'INFO'
+COLOR_HIGLIGHT = 'HIGHLIGHT'
+
+# the color map to use to print the colors
+__colormap__ = {
+    COLOR_ERROR: '\033[1m\033[31m',
+    COLOR_SUCCESS: '\033[1m\033[32m',
+    COLOR_WARNING: '\033[33m',
+    COLOR_HEADER: '\033[34m',
+    COLOR_INFO: '\033[35m',
+    COLOR_LABEL: '\033[36m',
+    COLOR_HIGLIGHT: '\033[97m\033[43m'
+}
+
+# list of available codes
+__code_range__ = ([1, 4] + list(range(30, 38)) + list(range(40, 48))
+                + list(range(90, 98)) + list(range(100, 108)))
+
+
[docs]def printc(txt, code=''): + '''print a text with colors + + :param txt str: The text to be printed. + :param code str: The color to use. + :return: The colored text. + :rtype: str + ''' + # no code means 'auto mode' (works only for OK, KO, NO and ERR*) + if code == '': + striptxt = txt.strip().upper() + if striptxt == "OK": + code = COLOR_SUCCESS + elif striptxt in ["KO", "NO"] or striptxt.startswith("ERR"): + code = COLOR_ERROR + else: + return txt + + # no code => output the originial text + if code not in __colormap__.keys() or __colormap__[code] == '': + return txt + + return __colormap__[code] + txt + '\033[0m' +
+
[docs]def printcInfo(txt): + '''print a text info color + + :param txt str: The text to be printed. + :return: The colored text. + :rtype: str + ''' + return printc(txt, COLOR_INFO) +
+
[docs]def printcError(txt): + '''print a text error color + + :param txt str: The text to be printed. + :return: The colored text. + :rtype: str + ''' + return printc(txt, COLOR_ERROR) +
+
[docs]def printcWarning(txt): + '''print a text warning color + + :param txt str: The text to be printed. + :return: The colored text. + :rtype: str + ''' + return printc(txt, COLOR_WARNING) +
+
[docs]def printcHeader(txt): + '''print a text header color + + :param txt str: The text to be printed. + :return: The colored text. + :rtype: str + ''' + return printc(txt, COLOR_HEADER) +
+
[docs]def printcLabel(txt): + '''print a text label color + + :param txt str: The text to be printed. + :return: The colored text. + :rtype: str + ''' + return printc(txt, COLOR_LABEL) +
+
[docs]def printcSuccess(txt): + '''print a text success color + + :param txt str: The text to be printed. + :return: The colored text. + :rtype: str + ''' + return printc(txt, COLOR_SUCCESS) +
+
[docs]def printcHighlight(txt): + '''print a text highlight color + + :param txt str: The text to be printed. + :return: The colored text. + :rtype: str + ''' + return printc(txt, COLOR_HIGLIGHT) +
+
[docs]def cleancolor(message): + '''remove color from a colored text. + + :param message str: The text to be cleaned. + :return: The cleaned text. + :rtype: str + ''' + if message == None: + return message + + message = message.replace('\033[0m', '') + for i in __code_range__: + message = message.replace('\033[%dm' % i, '') + return message +
+ + +
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/product.html b/doc/build/html/_modules/src/product.html new file mode 100644 index 0000000..91fe3a2 --- /dev/null +++ b/doc/build/html/_modules/src/product.html @@ -0,0 +1,917 @@ + + + + + + + + + src.product — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.product

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2012  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+"""\
+In this file are implemented the methods 
+relative to the product notion of salomeTools
+"""
+
+import os
+import re
+
+import src
+import src.debug as DBG
+
+AVAILABLE_VCS = ['git', 'svn', 'cvs']
+config_expression = "^config-\d+$"
+VERSION_DELIMITER = "_to_"
+
+
[docs]def get_product_config(config, product_name, with_install_dir=True): + """Get the specific configuration of a product from the global configuration + + :param config Config: The global configuration + :param product_name str: The name of the product + :param with_install_dir boolean: If false, do not provide an install + directory (at false only for internal use + of the function check_config_exists) + :return: the specific configuration of the product + :rtype: Config + """ + + # Get the version of the product from the application definition + version = config.APPLICATION.products[product_name] + # if no version, then take the default one defined in the application + if isinstance(version, bool): + version = config.APPLICATION.tag + + # Define debug and dev modes + # Get the tag if a dictionary is given in APPLICATION.products for the + # current product + debug = 'no' + dev = 'no' + base = 'maybe' + section = None + if isinstance(version, src.pyconf.Mapping): + dic_version = version + # Get the version/tag + if not 'tag' in dic_version: + version = config.APPLICATION.tag + else: + version = dic_version.tag + + # Get the debug if any + if 'debug' in dic_version: + debug = dic_version.debug + + # Get the dev if any + if 'dev' in dic_version: + dev = dic_version.dev + + # Get the base if any + if 'base' in dic_version: + base = dic_version.base + + # Get the section if any + if 'section' in dic_version: + section = dic_version.section + + vv = version + # substitute some character with _ in order to get the correct definition + # in config.PRODUCTS. This is done because the pyconf tool does not handle + # the . and - characters + for c in ".-": vv = vv.replace(c, "_") + + prod_info = None + if product_name in config.PRODUCTS: + # Search for the product description in the configuration + prod_info = get_product_section(config, product_name, vv, section) + + # merge opt_depend in depend + if prod_info is not None and 'opt_depend' in prod_info: + for depend in prod_info.opt_depend: + if depend in config.APPLICATION.products: + prod_info.depend.append(depend,'') + + # In case of a product get with a vcs, + # put the tag (equal to the version) + if prod_info is not None and prod_info.get_source in AVAILABLE_VCS: + + if prod_info.get_source == 'git': + prod_info.git_info.tag = version + + if prod_info.get_source == 'svn': + prod_info.svn_info.tag = version + + if prod_info.get_source == 'cvs': + prod_info.cvs_info.tag = version + + # In case of a fixed product, + # define the install_dir (equal to the version) + if prod_info is not None and os.path.isdir(version): + prod_info.install_dir = version + prod_info.get_source = "fixed" + + # Check if the product is defined as native in the application + if prod_info is not None: + if version == "native": + prod_info.get_source = "native" + elif prod_info.get_source == "native": + msg = _("The product %(prod)s has version %(ver)s but is " + "declared as native in its definition" % + { 'prod': prod_info.name, 'ver': version}) + raise src.SatException(msg) + + # If there is no definition but the product is declared as native, + # construct a new definition containing only the get_source key + if prod_info is None and version == "native": + prod_info = src.pyconf.Config() + prod_info.name = product_name + prod_info.get_source = "native" + + # If there is no definition but the product is fixed, + # construct a new definition containing only the product name + if prod_info is None and os.path.isdir(version): + prod_info = src.pyconf.Config() + prod_info.name = product_name + prod_info.get_source = "fixed" + prod_info.addMapping("environ", src.pyconf.Mapping(prod_info), "") + + + # If prod_info is still None, it means that there is no product definition + # in the config. The user has to provide it. + if prod_info is None: + prod_pyconf_path = src.find_file_in_lpath(product_name + ".pyconf", + config.PATHS.PRODUCTPATH) + if not prod_pyconf_path: + msg = _("""\ +No definition found for the product %(1)s. +Please create a %(2)s.pyconf file somewhere in: +%(3)s""") % { + "1": product_name, + "2": product_name, + "3": config.PATHS.PRODUCTPATH } + else: + msg = _("""\ +No definition corresponding to the version %(1)s was found in the file: + %(2)s. +Please add a section in it.""") % {"1" : vv, "2" : prod_pyconf_path} + raise src.SatException(msg) + + # Set the debug, dev and version keys + prod_info.debug = debug + prod_info.dev = dev + prod_info.version = version + + # Set the archive_info if the product is get in archive mode + if prod_info.get_source == "archive": + if not "archive_info" in prod_info: + prod_info.addMapping("archive_info", + src.pyconf.Mapping(prod_info), + "") + if "archive_name" not in prod_info.archive_info: + arch_name = product_name + "-" + version + ".tar.gz" + arch_path = src.find_file_in_lpath(arch_name, + config.PATHS.ARCHIVEPATH) + if not arch_path: + msg = _("Archive %(1)s for %(2)s not found in config.PATHS.ARCHIVEPATH") % \ + {"1" : arch_name, "2" : prod_info.name} + DBG.tofix(msg, config.PATHS.ARCHIVEPATH) + prod_info.archive_info.archive_name = arch_name #without path + # raise src.SatException(msg) #may be a warning, continue #8646 + else: + prod_info.archive_info.archive_name = arch_path + else: + if (os.path.basename(prod_info.archive_info.archive_name) == + prod_info.archive_info.archive_name): + arch_name = prod_info.archive_info.archive_name + arch_path = src.find_file_in_lpath( + arch_name, + config.PATHS.ARCHIVEPATH) + if not arch_path: + msg = _("Archive %(1)s for %(2)s not found in config.PATHS.ARCHIVEPATH") % \ + {"1" : arch_name, "2" : prod_info.name} + DBG.tofix(msg, config.PATHS.ARCHIVEPATH) #avoid 2 messages in compile + prod_info.archive_info.archive_name = arch_name #without path + # raise src.SatException(msg) #may be a warning, continue #8646 + prod_info.archive_info.archive_name = arch_path + + # If the product compiles with a script, check the script existence + # and if it is executable + if product_has_script(prod_info): + # Check the compil_script key existence + if "compil_script" not in prod_info: + msg = _("""\ +No compilation script found for the product %s. +Please provide a 'compil_script' key in its definition.""") % product_name + raise src.SatException(msg) + + # Get the path of the script + script = prod_info.compil_script + script_name = os.path.basename(script) + if script == script_name: + # Only a name is given. Search in the default directory + script_path = src.find_file_in_lpath(script_name, + config.PATHS.PRODUCTPATH, + "compil_scripts") + if not script_path: + raise src.SatException( + _("Compilation script not found: %s") % script_name) + prod_info.compil_script = script_path + if src.architecture.is_windows(): + prod_info.compil_script = prod_info.compil_script[:-len(".sh")] + ".bat" + + # Check that the script is executable + if not os.access(prod_info.compil_script, os.X_OK): + #raise src.SatException( + # _("Compilation script cannot be executed: %s") % + # prod_info.compil_script) + DBG.tofix("Compilation script cannot be executed:", prod_info.compil_script) + + # Get the full paths of all the patches + if product_has_patches(prod_info): + patches = [] + try: + for patch in prod_info.patches: + patch_path = patch + # If only a filename, then search for the patch in the PRODUCTPATH + if os.path.basename(patch_path) == patch_path: + # Search in the PRODUCTPATH/patches + patch_path = src.find_file_in_lpath(patch, + config.PATHS.PRODUCTPATH, + "patches") + if not patch_path: + msg = _("Patch %(patch_name)s for %(prod_name)s not found:" + "\n" % {"patch_name" : patch, + "prod_name" : prod_info.name}) + raise src.SatException(msg) + patches.append(patch_path) + except: + DBG.tofix("problem in prod_info.patches", prod_info) + prod_info.patches = patches + + # Get the full paths of the environment scripts + if product_has_env_script(prod_info): + env_script_path = prod_info.environ.env_script + # If only a filename, then search for the environment script + # in the PRODUCTPATH/env_scripts + if os.path.basename(env_script_path) == env_script_path: + # Search in the PRODUCTPATH/env_scripts + env_script_path = src.find_file_in_lpath( + prod_info.environ.env_script, + config.PATHS.PRODUCTPATH, + "env_scripts") + if not env_script_path: + msg = _("Environment script %(env_name)s for %(prod_name)s not " + "found.\n" % {"env_name" : env_script_path, + "prod_name" : prod_info.name}) + raise src.SatException(msg) + + prod_info.environ.env_script = env_script_path + + if with_install_dir: + # The variable with_install_dir is at false only for internal use + # of the function get_install_dir + + # Save the install_dir key if there is any + if "install_dir" in prod_info and not "install_dir_save" in prod_info: + prod_info.install_dir_save = prod_info.install_dir + + # if it is not the first time the install_dir is computed, it means + # that install_dir_save exists and it has to be taken into account. + if "install_dir_save" in prod_info: + prod_info.install_dir = prod_info.install_dir_save + + # Set the install_dir key + prod_info.install_dir = get_install_dir(config, base, version, prod_info) + + return prod_info +
+
[docs]def get_product_section(config, product_name, version, section=None): + """Get the product description from the configuration + + :param config Config: The global configuration + :param product_name str: The product name + :param version str: The version of the product + :param section str: The searched section (if not None, the section is + explicitly given + :return: The product description + :rtype: Config + """ + + # if section is not None, try to get the corresponding section + if section: + if section not in config.PRODUCTS[product_name]: + return None + # returns specific information for the given version + prod_info = config.PRODUCTS[product_name][section] + prod_info.section = section + prod_info.from_file = config.PRODUCTS[product_name].from_file + return prod_info + + # If it exists, get the information of the product_version + if "version_" + version in config.PRODUCTS[product_name]: + # returns specific information for the given version + prod_info = config.PRODUCTS[product_name]["version_" + version] + prod_info.section = "version_" + version + prod_info.from_file = config.PRODUCTS[product_name].from_file + return prod_info + + # Else, check if there is a description for multiple versions + l_section_name = config.PRODUCTS[product_name].keys() + l_section_ranges = [section_name for section_name in l_section_name + if VERSION_DELIMITER in section_name] + for section_range in l_section_ranges: + minimum, maximum = section_range.split(VERSION_DELIMITER) + if (src.only_numbers(version) >= src.only_numbers(minimum) + and src.only_numbers(version) <= src.only_numbers(maximum)): + # returns specific information for the versions + prod_info = config.PRODUCTS[product_name][section_range] + prod_info.section = section_range + prod_info.from_file = config.PRODUCTS[product_name].from_file + return prod_info + + # Else, get the standard informations + if "default" in config.PRODUCTS[product_name]: + # returns the generic information (given version not found) + prod_info = config.PRODUCTS[product_name].default + prod_info.section = "default" + prod_info.from_file = config.PRODUCTS[product_name].from_file + return prod_info + + # if noting was found, return None + return None +
+
[docs]def get_install_dir(config, base, version, prod_info): + """Compute the installation directory of a given product + + :param config Config: The global configuration + :param base str: This corresponds to the value given by user in its + application.pyconf for the specific product. If "yes", the + user wants the product to be in base. If "no", he wants the + product to be in the application workdir + :param version str: The version of the product + :param product_info Config: The configuration specific to + the product + + :return: The path of the product installation + :rtype: str + """ + install_dir = "" + in_base = False + if (("install_dir" in prod_info and prod_info.install_dir == "base") + or base == "yes"): + in_base = True + if (base == "no" or ("no_base" in config.APPLICATION + and config.APPLICATION.no_base == "yes")): + in_base = False + + if in_base: + install_dir = get_base_install_dir(config, prod_info, version) + else: + if "install_dir" not in prod_info or prod_info.install_dir == "base": + # Set it to the default value (in application directory) + install_dir = os.path.join(config.APPLICATION.workdir, + "INSTALL", + prod_info.name) + else: + install_dir = prod_info.install_dir + + return install_dir +
+
[docs]def get_base_install_dir(config, prod_info, version): + """Compute the installation directory of a product in base + + :param config Config: The global configuration + :param product_info Config: The configuration specific to + the product + :param version str: The version of the product + :return: The path of the product installation + :rtype: str + """ + base_path = src.get_base_path(config) + prod_dir = os.path.join(base_path, prod_info.name + "-" + version) + if not os.path.exists(prod_dir): + return os.path.join(prod_dir, "config-1") + + exists, install_dir = check_config_exists(config, prod_dir, prod_info) + if exists: + return install_dir + + # Find the first config-<i> directory that is available in the product + # directory + found = False + label = 1 + while not found: + install_dir = os.path.join(prod_dir, "config-%i" % label) + if os.path.exists(install_dir): + label+=1 + else: + found = True + + return install_dir +
+
[docs]def check_config_exists(config, prod_dir, prod_info): + """\ + Verify that the installation directory of a product in a base exists + Check all the config-<i> directory and verify the sat-config.pyconf file + that is in it + + :param config Config: The global configuration + :param prod_dir str: The product installation directory path + (without config-<i>) + :param product_info Config: The configuration specific to + the product + :return: True or false is the installation is found or not + and if it is found, the path of the found installation + :rtype: (boolean, str) + """ + # check if the directories or files of the directory corresponds to the + # directory installation of the product + l_dir_and_files = os.listdir(prod_dir) + for dir_or_file in l_dir_and_files: + oExpr = re.compile(config_expression) + if not(oExpr.search(dir_or_file)): + # not config-<i>, not interesting + continue + # check if there is the file sat-config.pyconf file in the installation + # directory + config_file = os.path.join(prod_dir, dir_or_file, src.CONFIG_FILENAME) + if not os.path.exists(config_file): + continue + + # If there is no dependency, it is the right path + if len(prod_info.depend)==0: + compile_cfg = src.pyconf.Config(config_file) + if len(compile_cfg) == 0: + return True, os.path.join(prod_dir, dir_or_file) + continue + + # check if there is the config described in the file corresponds the + # dependencies of the product + config_corresponds = True + compile_cfg = src.pyconf.Config(config_file) + for prod_dep in prod_info.depend: + # if the dependency is not in the config, + # the config does not correspond + if prod_dep not in compile_cfg: + config_corresponds = False + break + else: + prod_dep_info = get_product_config(config, prod_dep, False) + # If the version of the dependency does not correspond, + # the config does not correspond + if prod_dep_info.version != compile_cfg[prod_dep]: + config_corresponds = False + break + + for prod_name in compile_cfg: + if prod_name not in prod_info.depend: + config_corresponds = False + break + + if config_corresponds: + return True, os.path.join(prod_dir, dir_or_file) + + return False, None + + +
+
[docs]def get_products_infos(lproducts, config): + """Get the specific configuration of a list of products + + :param lproducts List: The list of product names + :param config Config: The global configuration + :return: the list of tuples + (product name, specific configuration of the product) + :rtype: [(str, Config)] + """ + products_infos = [] + # Loop on product names + for prod in lproducts: + # Get the specific configuration of the product + prod_info = get_product_config(config, prod) + if prod_info is not None: + products_infos.append((prod, prod_info)) + else: + msg = _("The %s product has no definition " + "in the configuration.") % prod + raise src.SatException(msg) + return products_infos +
+
[docs]def get_product_dependencies(config, product_info): + """\ + Get recursively the list of products that are + in the product_info dependencies + + :param config Config: The global configuration + :param product_info Config: The configuration specific to + the product + :return: the list of products in dependence + :rtype: list + """ + if "depend" not in product_info or product_info.depend == []: + return [] + res = [] + for prod in product_info.depend: + if prod == product_info.name: + continue + if prod not in res: + res.append(prod) + prod_info = get_product_config(config, prod) + dep_prod = get_product_dependencies(config, prod_info) + for prod_in_dep in dep_prod: + if prod_in_dep not in res: + res.append(prod_in_dep) + return res +
+
[docs]def check_installation(product_info): + """\ + Verify if a product is well installed. Checks install directory presence + and some additional files if it is defined in the config + + :param product_info Config: The configuration specific to + the product + :return: True if it is well installed + :rtype: boolean + """ + if not product_compiles(product_info): + return True + install_dir = product_info.install_dir + if not os.path.exists(install_dir): + return False + if ("present_files" in product_info and + "install" in product_info.present_files): + for file_relative_path in product_info.present_files.install: + file_path = os.path.join(install_dir, file_relative_path) + if not os.path.exists(file_path): + return False + return True +
+
[docs]def check_source(product_info): + """Verify if a sources of product is preset. Checks source directory presence + + :param product_info Config: The configuration specific to + the product + :return: True if it is well installed + :rtype: boolean + """ + DBG.write("check_source product_info", product_info) + source_dir = product_info.source_dir + if not os.path.exists(source_dir): + return False + if ("present_files" in product_info and + "source" in product_info.present_files): + for file_relative_path in product_info.present_files.source: + file_path = os.path.join(source_dir, file_relative_path) + if not os.path.exists(file_path): + return False + return True +
+
[docs]def product_is_sample(product_info): + """Know if a product has the sample type + + :param product_info Config: The configuration specific to + the product + :return: True if the product has the sample type, else False + :rtype: boolean + """ + if 'type' in product_info: + ptype = product_info.type + return ptype.lower() == 'sample' + else: + return False +
+
[docs]def product_is_salome(product_info): + """Know if a product is a SALOME module + + :param product_info Config: The configuration specific to + the product + :return: True if the product is a SALOME module, else False + :rtype: boolean + """ + return ("properties" in product_info and + "is_SALOME_module" in product_info.properties and + product_info.properties.is_SALOME_module == "yes") +
+
[docs]def product_is_fixed(product_info): + """Know if a product is fixed + + :param product_info Config: The configuration specific to + the product + :return: True if the product is fixed, else False + :rtype: boolean + """ + get_src = product_info.get_source + return get_src.lower() == 'fixed' +
+
[docs]def product_is_native(product_info): + """Know if a product is native + + :param product_info Config: The configuration specific to + the product + :return: True if the product is native, else False + :rtype: boolean + """ + get_src = product_info.get_source + return get_src.lower() == 'native' +
+
[docs]def product_is_dev(product_info): + """Know if a product is in dev mode + + :param product_info Config: The configuration specific to + the product + :return: True if the product is in dev mode, else False + :rtype: boolean + """ + dev = product_info.dev + res = (dev.lower() == 'yes') + DBG.write('product_is_dev %s' % product_info.name, res) + # if product_info.name == "XDATA": return True #test #10569 + return res +
+
[docs]def product_is_debug(product_info): + """Know if a product is in debug mode + + :param product_info Config: The configuration specific to + the product + :return: True if the product is in debug mode, else False + :rtype: boolean + """ + debug = product_info.debug + return debug.lower() == 'yes' +
+
[docs]def product_is_autotools(product_info): + """Know if a product is compiled using the autotools + + :param product_info Config: The configuration specific to + the product + :return: True if the product is autotools, else False + :rtype: boolean + """ + build_src = product_info.build_source + return build_src.lower() == 'autotools' +
+
[docs]def product_is_cmake(product_info): + """Know if a product is compiled using the cmake + + :param product_info Config: The configuration specific to + the product + :return: True if the product is cmake, else False + :rtype: boolean + """ + build_src = product_info.build_source + return build_src.lower() == 'cmake' +
+
[docs]def product_is_vcs(product_info): + """Know if a product is download using git, svn or cvs (not archive) + + :param product_info Config: The configuration specific to + the product + :return: True if the product is vcs, else False + :rtype: boolean + """ + return product_info.get_source in AVAILABLE_VCS +
+
[docs]def product_is_smesh_plugin(product_info): + """Know if a product is a SMESH plugin + + :param product_info Config: The configuration specific to + the product + :return: True if the product is a SMESH plugin, else False + :rtype: boolean + """ + return ("properties" in product_info and + "smesh_plugin" in product_info.properties and + product_info.properties.smesh_plugin == "yes") +
+
[docs]def product_is_cpp(product_info): + """Know if a product is cpp + + :param product_info Config: The configuration specific to + the product + :return: True if the product is a cpp, else False + :rtype: boolean + """ + return ("properties" in product_info and + "cpp" in product_info.properties and + product_info.properties.cpp == "yes") +
+
[docs]def product_compiles(product_info): + """\ + Know if a product compiles or not + (some products do not have a compilation procedure) + + :param product_info Config: The configuration specific to + the product + :return: True if the product compiles, else False + :rtype: boolean + """ + return not("properties" in product_info and + "compilation" in product_info.properties and + product_info.properties.compilation == "no") +
+
[docs]def product_has_script(product_info): + """Know if a product has a compilation script + + :param product_info Config: The configuration specific to + the product + :return: True if the product it has a compilation script, else False + :rtype: boolean + """ + if "build_source" not in product_info: + # Native case + return False + build_src = product_info.build_source + return build_src.lower() == 'script' +
+
[docs]def product_has_env_script(product_info): + """Know if a product has an environment script + + :param product_info Config: The configuration specific to + the product + :return: True if the product it has an environment script, else False + :rtype: boolean + """ + return "environ" in product_info and "env_script" in product_info.environ +
+
[docs]def product_has_patches(product_info): + """Know if a product has one or more patches + + :param product_info Config: The configuration specific to + the product + :return: True if the product has one or more patches + :rtype: boolean + """ + res = ( "patches" in product_info and len(product_info.patches) > 0 ) + DBG.write('product_has_patches %s' % product_info.name, res) + # if product_info.name == "XDATA": return True #test #10569 + return res +
+ +
[docs]def product_has_salome_gui(product_info): + """Know if a product has a SALOME gui + + :param product_info Config: The configuration specific to + the product + :return: True if the product has a SALOME gui, else False + :rtype: Boolean + """ + return ("properties" in product_info and + "has_salome_gui" in product_info.properties and + product_info.properties.has_salome_gui == "yes") +
+
[docs]def product_is_mpi(product_info): + """Know if a product has openmpi in its dependencies + + :param product_info Config: The configuration specific to + the product + :return: True if the product has openmpi inits dependencies + :rtype: boolean + """ + return "openmpi" in product_info.depend +
+
[docs]def product_is_generated(product_info): + """Know if a product is generated (YACSGEN) + + :param product_info Config: The configuration specific to + the product + :return: True if the product is generated + :rtype: boolean + """ + return ("properties" in product_info and + "generate" in product_info.properties and + product_info.properties.generate == "yes") +
+
[docs]def get_product_components(product_info): + """Get the component list to generate with the product + + :param product_info Config: The configuration specific to + the product + :return: The list of names of the components + :rtype: List + + """ + if not product_is_generated(product_info): + return [] + + compo_list = [] + if "component_name" in product_info: + compo_list = product_info.component_name + + if isinstance(compo_list, str): + compo_list = [ compo_list ] + + return compo_list
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/pyconf.html b/doc/build/html/_modules/src/pyconf.html new file mode 100644 index 0000000..fd3372e --- /dev/null +++ b/doc/build/html/_modules/src/pyconf.html @@ -0,0 +1,1836 @@ + + + + + + + + + src.pyconf — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.pyconf

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+
+# Copyright 2004-2007 by Vinay Sajip. All Rights Reserved.
+#
+# Permission to use, copy, modify, and distribute this software and its
+# documentation for any purpose and without fee is hereby granted,
+# provided that the above copyright notice appear in all copies and that
+# both that copyright notice and this permission notice appear in
+# supporting documentation, and that the name of Vinay Sajip
+# not be used in advertising or publicity pertaining to distribution
+# of the software without specific, written prior permission.
+# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+# CEA adds : 
+# Possibility to overwrites value in a pyconf file
+# Python 3 porting
+
+
+"""
+This is a configuration module for Python.
+
+This module should work under Python versions >= 2.2, and cannot be used with
+earlier versions since it uses new-style classes.
+
+Development and testing has only been carried out (so far) on Python 2.3.4 and
+Python 2.4.2. See the test module (test_config.py) included in the
+U{distribution<http://www.red-dove.com/python_config.html|_blank>} (follow the
+download link).
+
+A simple example - with the example configuration file::
+
+    messages:
+    [
+      {
+        stream : `sys.stderr`
+        message: 'Welcome'
+        name: 'Harry'
+      }
+      {
+        stream : `sys.stdout`
+        message: 'Welkom'
+        name: 'Ruud'
+      }
+      {
+        stream : $messages[0].stream
+        message: 'Bienvenue'
+        name: Yves
+      }
+    ]
+
+a program to read the configuration would be::
+
+    from config import Config
+
+    f = file('simple.cfg')
+    cfg = Config(f)
+    for m in cfg.messages:
+        s = '%s, %s' % (m.message, m.name)
+        try:
+            print >> m.stream, s
+        except IOError, e:
+            print e
+
+which, when run, would yield the console output::
+
+    Welcome, Harry
+    Welkom, Ruud
+    Bienvenue, Yves
+
+See U{this tutorial<http://www.red-dove.com/python_config.html|_blank>} for more
+information.
+
+#modified for salomeTools
+@version: 0.3.7.1
+
+@author: Vinay Sajip
+
+@copyright: Copyright (C) 2004-2007 Vinay Sajip. All Rights Reserved.
+
+
+@var streamOpener: The default stream opener. This is a factory function which
+takes a string (e.g. filename) and returns a stream suitable for reading. If
+unable to open the stream, an IOError exception should be thrown.
+
+The default value of this variable is L{defaultStreamOpener}. For an example
+of how it's used, see test_config.py (search for streamOpener).
+"""
+
+__author__  = "Vinay Sajip <vinay_sajip@red-dove.com>"
+__status__  = "alpha"
+__version__ = "0.3.7.1" #modified for salomeTools
+__date__    = "05 October 2007"
+
+import codecs
+import os
+import sys
+
+WORD = 'a'
+NUMBER = '9'
+STRING = '"'
+EOF = ''
+LCURLY = '{'
+RCURLY = '}'
+LBRACK = '['
+LBRACK2 = 'a['
+RBRACK = ']'
+LPAREN = '('
+LPAREN2 = '(('
+RPAREN = ')'
+DOT = '.'
+COMMA = ','
+COLON = ':'
+AT = '@'
+PLUS = '+'
+MINUS = '-'
+STAR = '*'
+SLASH = '/'
+MOD = '%'
+BACKTICK = '`'
+DOLLAR = '$'
+TRUE = 'True'
+FALSE = 'False'
+NONE = 'None'
+
+WORDCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_"
+
+if sys.platform == 'win32':
+    NEWLINE = '\r\n'
+elif os.name == 'mac':
+    NEWLINE = '\r'
+else:
+    NEWLINE = '\n'
+
+try:
+    has_utf32 = True
+except:
+    has_utf32 = False
+
+
[docs]class ConfigInputStream(object): + """ + An input stream which can read either ANSI files with default encoding + or Unicode files with BOMs. + + Handles UTF-8, UTF-16LE, UTF-16BE. Could handle UTF-32 if Python had + built-in support. + """ + def __init__(self, stream): + """ + Initialize an instance. + + @param stream: The underlying stream to be read. Should be seekable. + @type stream: A stream (file-like object). + """ + encoding = None + signature = stream.read(4) + used = -1 + if has_utf32: + if signature == codecs.BOM_UTF32_LE: + encoding = 'utf-32le' + elif signature == codecs.BOM_UTF32_BE: + encoding = 'utf-32be' + if encoding is None: + if signature[:3] == codecs.BOM_UTF8: + used = 3 + encoding = 'utf-8' + elif signature[:2] == codecs.BOM_UTF16_LE: + used = 2 + encoding = 'utf-16le' + elif signature[:2] == codecs.BOM_UTF16_BE: + used = 2 + encoding = 'utf-16be' + else: + used = 0 + if used >= 0: + stream.seek(used) + if encoding: + reader = codecs.getreader(encoding) + stream = reader(stream) + self.stream = stream + self.encoding = encoding + +
[docs] def read(self, size): + if (size == 0) or (self.encoding is None): + rv = self.stream.read(size) + else: + rv = u'' + while size > 0: + rv += self.stream.read(1) + size -= 1 + return rv +
+
[docs] def close(self): + self.stream.close() +
+
[docs] def readline(self): + if self.encoding is None: + line = '' + else: + line = u'' + while True: + c = self.stream.read(1) + if isinstance(c, bytes): + c = c.decode() + if c: + line += c + if c == '\n': + break + return line +
+
[docs]class ConfigOutputStream(object): + """ + An output stream which can write either ANSI files with default encoding + or Unicode files with BOMs. + + Handles UTF-8, UTF-16LE, UTF-16BE. Could handle UTF-32 if Python had + built-in support. + """ + + def __init__(self, stream, encoding=None): + """ + Initialize an instance. + + @param stream: The underlying stream to be written. + @type stream: A stream (file-like object). + @param encoding: The desired encoding. + @type encoding: str + """ + if encoding is not None: + encoding = str(encoding).lower() + self.encoding = encoding + if encoding == "utf-8": + stream.write(codecs.BOM_UTF8) + elif encoding == "utf-16be": + stream.write(codecs.BOM_UTF16_BE) + elif encoding == "utf-16le": + stream.write(codecs.BOM_UTF16_LE) + elif encoding == "utf-32be": + stream.write(codecs.BOM_UTF32_BE) + elif encoding == "utf-32le": + stream.write(codecs.BOM_UTF32_LE) + + if encoding is not None: + writer = codecs.getwriter(encoding) + stream = writer(stream) + self.stream = stream + +
[docs] def write(self, data): + self.stream.write(data) +
+
[docs] def flush(self): + self.stream.flush() +
+
[docs] def close(self): + self.stream.close() +
+
[docs]def defaultStreamOpener(name): + """\ + This function returns a read-only stream, given its name. The name passed + in should correspond to an existing stream, otherwise an exception will be + raised. + + This is the default value of L{streamOpener}; assign your own callable to + streamOpener to return streams based on names. For example, you could use + urllib2.urlopen(). + + @param name: The name of a stream, most commonly a file name. + @type name: str + @return: A stream with the specified name. + @rtype: A read-only stream (file-like object) + """ + return ConfigInputStream(open(name, 'rb')) +
+streamOpener = None + +__resolveOverwrite__ = True + +
[docs]class ConfigError(Exception): + """ + This is the base class of exceptions raised by this module. + """ + pass +
+
[docs]class ConfigFormatError(ConfigError): + """ + This is the base class of exceptions raised due to syntax errors in + configurations. + """ + pass +
+
[docs]class ConfigResolutionError(ConfigError): + """ + This is the base class of exceptions raised due to semantic errors in + configurations. + """ + pass +
+
[docs]def isWord(s): + """ + See if a passed-in value is an identifier. If the value passed in is not a + string, False is returned. An identifier consists of alphanumerics or + underscore characters. + + Examples:: + + isWord('a word') ->False + isWord('award') -> True + isWord(9) -> False + isWord('a_b_c_') ->True + + @note: isWord('9abc') will return True - not exactly correct, but adequate + for the way it's used here. + + @param s: The name to be tested + @type s: any + @return: True if a word, else False + @rtype: bool + """ + if type(s) != type(''): + return False + s = s.replace('_', '') + return s.isalnum() +
+
[docs]def makePath(prefix, suffix): + """\ + Make a path from a prefix and suffix. + + Examples: + makePath('', 'suffix') -> 'suffix' + makePath('prefix', 'suffix') -> 'prefix.suffix' + makePath('prefix', '[1]') -> 'prefix[1]' + + @param prefix: The prefix to use. If it evaluates as false, the suffix is returned. + @type prefix: str + @param suffix: The suffix to use. It is either an identifier or an index in brackets. + @type suffix: str + @return: The path concatenation of prefix and suffix, with adot if the suffix is not a bracketed index. + @rtype: str + """ + if not prefix: + rv = suffix + elif suffix[0] == '[': + rv = prefix + suffix + else: + rv = prefix + '.' + suffix + return rv + +
+
[docs]class Container(object): + """ + This internal class is the base class for mappings and sequences. + + @ivar path: A string which describes how to get + to this instance from the root of the hierarchy. + + Example:: + + a.list.of[1].or['more'].elements + """ + def __init__(self, parent): + """ + Initialize an instance. + + @param parent: The parent of this instance in the hierarchy. + @type parent: A L{Container} instance. + """ + object.__setattr__(self, 'parent', parent) + +
[docs] def setPath(self, path): + """ + Set the path for this instance. + @param path: The path - a string which describes how to get + to this instance from the root of the hierarchy. + @type path: str + """ + object.__setattr__(self, 'path', path) +
+
[docs] def evaluate(self, item): + """ + Evaluate items which are instances of L{Reference} or L{Expression}. + + L{Reference} instances are evaluated using L{Reference.resolve}, + and L{Expression} instances are evaluated using + L{Expression.evaluate}. + + @param item: The item to be evaluated. + @type item: any + @return: If the item is an instance of L{Reference} or L{Expression}, + the evaluated value is returned, otherwise the item is returned + unchanged. + """ + if isinstance(item, Reference): + item = item.resolve(self) + elif isinstance(item, Expression): + item = item.evaluate(self) + return item +
+
[docs] def writeToStream(self, stream, indent, container): + """ + Write this instance to a stream at the specified indentation level. + + Should be redefined in subclasses. + + @param stream: The stream to write to + @type stream: A writable stream (file-like object) + @param indent: The indentation level + @type indent: int + @param container: The container of this instance + @type container: L{Container} + @raise NotImplementedError: If a subclass does not override this + """ + raise NotImplementedError +
+
[docs] def writeValue(self, value, stream, indent): + if isinstance(self, Mapping): + indstr = ' ' + else: + indstr = indent * ' ' + if isinstance(value, Reference) or isinstance(value, Expression): + stream.write('%s%r%s' % (indstr, value, NEWLINE)) + else: + if isinstance(value, str): # and not isWord(value): + value = repr(value) + stream.write('%s%s%s' % (indstr, value, NEWLINE)) +
+
[docs]class Mapping(Container): + """ + This internal class implements key-value mappings in configurations. + """ + + def __init__(self, parent=None): + """ + Initialize an instance. + + @param parent: The parent of this instance in the hierarchy. + @type parent: A L{Container} instance. + """ + Container.__init__(self, parent) + object.__setattr__(self, 'path', '') + object.__setattr__(self, 'data', {}) + object.__setattr__(self, 'order', []) # to preserve ordering + object.__setattr__(self, 'comments', {}) + + def __delitem__(self, key): + """ + Remove an item + """ + data = object.__getattribute__(self, 'data') + if key not in data: + raise AttributeError(key) + order = object.__getattribute__(self, 'order') + comments = object.__getattribute__(self, 'comments') + del data[key] + order.remove(key) + del comments[key] + + def __getitem__(self, key): + data = object.__getattribute__(self, 'data') + if key not in data: + raise AttributeError(key) + rv = data[key] + return self.evaluate(rv) + + __getattr__ = __getitem__ + + ''' + def __getattribute__(self, name): + if name == "__dict__": + return {} + if name in ["__methods__", "__members__"]: + return [] + #if name == "__class__": + # return '' + data = object.__getattribute__(self, "data") + useData = data.has_key(name) + if useData: + rv = getattr(data, name) + else: + rv = object.__getattribute__(self, name) + if rv is None: + raise AttributeError(name) + return rv + ''' + +
[docs] def iteritems(self): + for key in self.keys(): + yield(key, self[key]) + raise StopIteration +
+ def __contains__(self, item): + order = object.__getattribute__(self, 'order') + return item in order + +
[docs] def addMapping(self, key, value, comment, setting=False): + """ + Add a key-value mapping with a comment. + + @param key: The key for the mapping. + @type key: str + @param value: The value for the mapping. + @type value: any + @param comment: The comment for the key (can be None). + @type comment: str + @param setting: If True, ignore clashes. This is set + to true when called from L{__setattr__}. + @raise ConfigFormatError: If an existing key is seen + again and setting is False. + """ + data = object.__getattribute__(self, 'data') + order = object.__getattribute__(self, 'order') + comments = object.__getattribute__(self, 'comments') + + data[key] = value + if key not in order: + order.append(key) + elif not setting: + raise ConfigFormatError("repeated key: %s" % key) + comments[key] = comment +
+ def __setattr__(self, name, value): + self.addMapping(name, value, None, True) + + __setitem__ = __setattr__ + +
[docs] def keys(self): + """ + Return the keys in a similar way to a dictionary. + """ + return object.__getattribute__(self, 'order') +
+
[docs] def get(self, key, default=None): + """ + Allows a dictionary-style get operation. + """ + if key in self: + return self[key] + return default +
+ def __str__(self): + return str(object.__getattribute__(self, 'data')) + + def __repr__(self): + return repr(object.__getattribute__(self, 'data')) + + def __len__(self): + return len(object.__getattribute__(self, 'order')) + + def __iter__(self): + return self.iterkeys() + +
[docs] def iterkeys(self): + order = object.__getattribute__(self, 'order') + return order.__iter__() +
+
[docs] def writeToStream(self, stream, indent, container): + """ + Write this instance to a stream at the specified indentation level. + + Should be redefined in subclasses. + + @param stream: The stream to write to + @type stream: A writable stream (file-like object) + @param indent: The indentation level + @type indent: int + @param container: The container of this instance + @type container: L{Container} + """ + indstr = indent * ' ' + if len(self) == 0: + stream.write(' { }%s' % NEWLINE) + else: + if isinstance(container, Mapping): + stream.write(NEWLINE) + stream.write('%s{%s' % (indstr, NEWLINE)) + self.__save__(stream, indent + 1) + stream.write('%s}%s' % (indstr, NEWLINE)) +
+ def __save__(self, stream, indent=0): + """ + Save this configuration to the specified stream. + @param stream: A stream to which the configuration is written. + @type stream: A write-only stream (file-like object). + @param indent: The indentation level for the output. + @type indent: int + """ + indstr = indent * ' ' + order = object.__getattribute__(self, 'order') + data = object.__getattribute__(self, 'data') + maxlen = 0 # max(map(lambda x: len(x), order)) + for key in order: + comment = self.comments[key] + if isWord(key): + skey = key + else: + skey = repr(key) + if comment: + stream.write('%s#%s' % (indstr, comment)) + if skey.startswith("u'"): + skey = skey[1:] + stream.write('%s%-*s :' % (indstr, maxlen, skey)) + value = data[key] + if isinstance(value, Container): + value.writeToStream(stream, indent, self) + else: + self.writeValue(value, stream, indent) +
+
[docs]class Config(Mapping): + """ + This class represents a configuration, and is the only one which clients + need to interface to, under normal circumstances. + """ + +
[docs] class Namespace(object): + """ + This internal class is used for implementing default namespaces. + + An instance acts as a namespace. + """ + def __init__(self): + self.sys = sys + self.os = os +
+ def __init__(self, streamOrFile=None, parent=None, PWD = None): + """ + Initializes an instance. + + @param streamOrFile: If specified, causes this instance to be loaded + from the stream (by calling L{load}). If a string is provided, it is + passed to L{streamOpener} to open a stream. Otherwise, the passed + value is assumed to be a stream and used as is. + @type streamOrFile: A readable stream (file-like object) or a name. + @param parent: If specified, this becomes the parent of this instance + in the configuration hierarchy. + @type parent: a L{Container} instance. + """ + try: # Python 3 compatibility + if isinstance(streamOrFile, unicode): + streamOrFile = streamOrFile.encode() + except NameError: + pass + Mapping.__init__(self, parent) + object.__setattr__(self, 'reader', ConfigReader(self)) + object.__setattr__(self, 'namespaces', [Config.Namespace()]) + if streamOrFile is not None: + if isinstance(streamOrFile, str) or isinstance(streamOrFile, bytes): + global streamOpener + if streamOpener is None: + streamOpener = defaultStreamOpener + streamOrFile = streamOpener(streamOrFile) + load = object.__getattribute__(self, "load") + load(streamOrFile) + # Specific add for salomeTools : PWD + if PWD: + key, pwd = PWD + if key == "": + self.PWD = pwd + else: + self[key].PWD = pwd + +
[docs] def load(self, stream): + """ + Load the configuration from the specified stream. Multiple streams can + be used to populate the same instance, as long as there are no + clashing keys. The stream is closed. + @param stream: A stream from which the configuration is read. + @type stream: A read-only stream (file-like object). + @raise ConfigError: if keys in the loaded configuration clash with + existing keys. + @raise ConfigFormatError: if there is a syntax error in the stream. + """ + reader = object.__getattribute__(self, 'reader') + reader.load(stream) + stream.close() +
+
[docs] def addNamespace(self, ns, name=None): + """ + Add a namespace to this configuration which can be used to evaluate + (resolve) dotted-identifier expressions. + @param ns: The namespace to be added. + @type ns: A module or other namespace suitable for passing as an + argument to vars(). + @param name: A name for the namespace, which, if specified, provides + an additional level of indirection. + @type name: str + """ + namespaces = object.__getattribute__(self, 'namespaces') + if name is None: + namespaces.append(ns) + else: + setattr(namespaces[0], name, ns) +
+
[docs] def removeNamespace(self, ns, name=None): + """ + Remove a namespace added with L{addNamespace}. + @param ns: The namespace to be removed. + @param name: The name which was specified when L{addNamespace} was + called. + @type name: str + """ + namespaces = object.__getattribute__(self, 'namespaces') + if name is None: + namespaces.remove(ns) + else: + delattr(namespaces[0], name) +
+ def __save__(self, stream, indent=0, no_close=False): + """ + Save this configuration to the specified stream. The stream is + closed if this is the top-level configuration in the hierarchy. + L{Mapping.__save__} is called to do all the work. + @param stream: A stream to which the configuration is written. + @type stream: A write-only stream (file-like object). + @param indent: The indentation level for the output. + @type indent: int + """ + Mapping.__save__(self, stream, indent) + if indent == 0 and not no_close: + stream.close() + +
[docs] def getByPath(self, path): + """ + Obtain a value in the configuration via its path. + @param path: The path of the required value + @type path: str + @return the value at the specified path. + @rtype: any + @raise ConfigError: If the path is invalid + """ + s = 'self.' + path + try: + return eval(s) + except Exception as e: + raise ConfigError(str(e)) +
+
[docs]class Sequence(Container): + """ + This internal class implements a value which is a sequence of other values. + """ +
[docs] class SeqIter(object): + """ + This internal class implements an iterator for a L{Sequence} instance. + """ + def __init__(self, seq): + self.seq = seq + self.limit = len(object.__getattribute__(seq, 'data')) + self.index = 0 + + def __iter__(self): + return self + +
[docs] def next(self): + if self.index >= self.limit: + raise StopIteration + rv = self.seq[self.index] + self.index += 1 + return rv + + # This method is for python3 compatibility
+ def __next__(self): + if self.index >= self.limit: + raise StopIteration + rv = self.seq[self.index] + self.index += 1 + return rv +
+ def __init__(self, parent=None): + """ + Initialize an instance. + + @param parent: The parent of this instance in the hierarchy. + @type parent: A L{Container} instance. + """ + Container.__init__(self, parent) + object.__setattr__(self, 'data', []) + object.__setattr__(self, 'comments', []) + +
[docs] def append(self, item, comment): + """ + Add an item to the sequence. + + @param item: The item to add. + @type item: any + @param comment: A comment for the item. + @type comment: str + """ + data = object.__getattribute__(self, 'data') + comments = object.__getattribute__(self, 'comments') + data.append(item) + comments.append(comment) +
+ def __getitem__(self, index): + data = object.__getattribute__(self, 'data') + try: + rv = data[index] + except (IndexError, KeyError, TypeError): + raise ConfigResolutionError('%r is not a valid index for %r' % (index, object.__getattribute__(self, 'path'))) + if not isinstance(rv, list): + rv = self.evaluate(rv) + else: + # deal with a slice + result = [] + for a in rv: + result.append(self.evaluate(a)) + rv = result + return rv + + def __iter__(self): + return Sequence.SeqIter(self) + + def __repr__(self): + return repr(object.__getattribute__(self, 'data')) + + def __str__(self): + return str(self[:]) # using the slice evaluates the contents + + def __len__(self): + return len(object.__getattribute__(self, 'data')) + +
[docs] def writeToStream(self, stream, indent, container): + """ + Write this instance to a stream at the specified indentation level. + + Should be redefined in subclasses. + + @param stream: The stream to write to + @type stream: A writable stream (file-like object) + @param indent: The indentation level + @type indent: int + @param container: The container of this instance + @type container: L{Container} + """ + indstr = indent * ' ' + if len(self) == 0: + stream.write(' [ ]%s' % NEWLINE) + else: + if isinstance(container, Mapping): + stream.write(NEWLINE) + stream.write('%s[%s' % (indstr, NEWLINE)) + self.__save__(stream, indent + 1) + stream.write('%s]%s' % (indstr, NEWLINE)) +
+ def __save__(self, stream, indent): + """ + Save this instance to the specified stream. + @param stream: A stream to which the configuration is written. + @type stream: A write-only stream (file-like object). + @param indent: The indentation level for the output, > 0 + @type indent: int + """ + if indent == 0: + raise ConfigError("sequence cannot be saved as a top-level item") + data = object.__getattribute__(self, 'data') + comments = object.__getattribute__(self, 'comments') + indstr = indent * ' ' + for i in range(0, len(data)): + value = data[i] + comment = comments[i] + if comment: + stream.write('%s#%s' % (indstr, comment)) + if isinstance(value, Container): + value.writeToStream(stream, indent, self) + else: + self.writeValue(value, stream, indent) +
+
[docs]class Reference(object): + """ + This internal class implements a value which is a reference to another value. + """ + def __init__(self, config, type, ident): + """ + Initialize an instance. + + @param config: The configuration which contains this reference. + @type config: A L{Config} instance. + @param type: The type of reference. + @type type: BACKTICK or DOLLAR + @param ident: The identifier which starts the reference. + @type ident: str + """ + self.config = config + self.type = type + self.elements = [ident] + +
[docs] def addElement(self, type, ident): + """ + Add an element to the reference. + + @param type: The type of reference. + @type type: BACKTICK or DOLLAR + @param ident: The identifier which continues the reference. + @type ident: str + """ + self.elements.append((type, ident)) +
+
[docs] def findConfig(self, container): + """ + Find the closest enclosing configuration to the specified container. + + @param container: The container to start from. + @type container: L{Container} + @return: The closest enclosing configuration, or None. + @rtype: L{Config} + """ + while (container is not None) and not isinstance(container, Config): + container = object.__getattribute__(container, 'parent') + return container +
+
[docs] def resolve(self, container): + """ + Resolve this instance in the context of a container. + + @param container: The container to resolve from. + @type container: L{Container} + @return: The resolved value. + @rtype: any + @raise ConfigResolutionError: If resolution fails. + """ + rv = None + path = object.__getattribute__(container, 'path') + current = container + while current is not None: + if self.type == BACKTICK: + namespaces = object.__getattribute__(current, 'namespaces') + found = False + for ns in namespaces: + try: + rv = eval(str(self)[1:-1], vars(ns)) + found = True + break + except: + pass + if found: + break + else: + key = self.elements[0] + try: + rv = current[key] + for item in self.elements[1:]: + key = item[1] + rv = rv[key] + break + except: + rv = None + pass + current = object.__getattribute__(current, 'parent') + if current is None: + raise ConfigResolutionError("unable to evaluate %r in the configuration %s" % (self, path)) + return rv +
+ def __str__(self): + s = self.elements[0] + for tt, tv in self.elements[1:]: + if tt == DOT: + s += '.%s' % tv + else: + s += '[%r]' % tv + if self.type == BACKTICK: + return BACKTICK + s + BACKTICK + else: + return DOLLAR + s + + def __repr__(self): + return self.__str__() +
+
[docs]class Expression(object): + """ + This internal class implements a value which is obtained by evaluating an expression. + """ + def __init__(self, op, lhs, rhs): + """ + Initialize an instance. + + @param op: the operation expressed in the expression. + @type op: PLUS, MINUS, STAR, SLASH, MOD + @param lhs: the left-hand-side operand of the expression. + @type lhs: any Expression or primary value. + @param rhs: the right-hand-side operand of the expression. + @type rhs: any Expression or primary value. + """ + self.op = op + self.lhs = lhs + self.rhs = rhs + + def __str__(self): + return '%r %s %r' % (self.lhs, self.op, self.rhs) + + def __repr__(self): + return self.__str__() + +
[docs] def evaluate(self, container): + """ + Evaluate this instance in the context of a container. + + @param container: The container to evaluate in from. + @type container: L{Container} + @return: The evaluated value. + @rtype: any + @raise ConfigResolutionError: If evaluation fails. + @raise ZeroDivideError: If division by zero occurs. + @raise TypeError: If the operation is invalid, e.g. + subtracting one string from another. + """ + lhs = self.lhs + if isinstance(lhs, Reference): + lhs = lhs.resolve(container) + elif isinstance(lhs, Expression): + lhs = lhs.evaluate(container) + rhs = self.rhs + if isinstance(rhs, Reference): + rhs = rhs.resolve(container) + elif isinstance(rhs, Expression): + rhs = rhs.evaluate(container) + op = self.op + if op == PLUS: + rv = lhs + rhs + elif op == MINUS: + rv = lhs - rhs + elif op == STAR: + rv = lhs * rhs + elif op == SLASH: + rv = lhs / rhs + else: + rv = lhs % rhs + return rv +
+
[docs]class ConfigReader(object): + """ + This internal class implements a parser for configurations. + """ + + def __init__(self, config): + self.filename = None + self.config = config + self.lineno = 0 + self.colno = 0 + self.lastc = None + self.last_token = None + self.commentchars = '#' + self.whitespace = ' \t\r\n' + self.quotes = '\'"' + self.punct = ':-+*/%,.{}[]()@`$' + self.digits = '0123456789' + self.wordchars = '%s' % WORDCHARS # make a copy + self.identchars = self.wordchars + self.digits + self.pbchars = [] + self.pbtokens = [] + self.comment = None + +
[docs] def location(self): + """ + Return the current location (filename, line, column) in the stream + as a string. + + Used when printing error messages, + + @return: A string representing a location in the stream being read. + @rtype: str + """ + return "%s(%d,%d)" % (self.filename, self.lineno, self.colno) +
+
[docs] def getChar(self): + """ + Get the next char from the stream. Update line and column numbers + appropriately. + + @return: The next character from the stream. + @rtype: str + """ + if self.pbchars: + c = self.pbchars.pop() + if isinstance(c,bytes): + c = c.decode() + else: + c = self.stream.read(1) + if isinstance(c,bytes): + c = c.decode() + self.colno += 1 + if c == '\n': + self.lineno += 1 + self.colno = 1 + return c +
+ def __repr__(self): + return "<ConfigReader at 0x%08x>" % id(self) + + __str__ = __repr__ + +
[docs] def getToken(self): + """ + Get a token from the stream. String values are returned in a form + where you need to eval() the returned value to get the actual + string. The return value is (token_type, token_value). + + Multiline string tokenizing is thanks to David Janes (BlogMatrix) + + @return: The next token. + @rtype: A token tuple. + """ + if self.pbtokens: + return self.pbtokens.pop() + stream = self.stream + self.comment = None + token = '' + tt = EOF + while True: + c = self.getChar() + if not c: + break + elif c == '#': + if self.comment : + self.comment += '#' + stream.readline() + else : + self.comment = stream.readline() + self.lineno += 1 + continue + if c in self.quotes: + token = c + quote = c + tt = STRING + escaped = False + multiline = False + c1 = self.getChar() + if c1 == quote: + c2 = self.getChar() + if c2 == quote: + multiline = True + token += quote + token += quote + else: + self.pbchars.append(c2) + self.pbchars.append(c1) + else: + self.pbchars.append(c1) + while True: + c = self.getChar() + if not c: + break + token += c + if (c == quote) and not escaped: + if not multiline or (len(token) >= 6 and token.endswith(token[:3]) and token[-4] != '\\'): + break + if c == '\\': + escaped = not escaped + else: + escaped = False + if not c: + raise ConfigFormatError('%s: Unterminated quoted string: %r, %r' % (self.location(), token, c)) + break + if c in self.whitespace: + self.lastc = c + continue + elif c in self.punct: + token = c + tt = c + if (self.lastc == ']') or (self.lastc in self.identchars): + if c == '[': + tt = LBRACK2 + elif c == '(': + tt = LPAREN2 + break + elif c in self.digits: + token = c + tt = NUMBER + while True: + c = self.getChar() + if not c: + break + if c in self.digits: + token += c + elif (c == '.') and token.find('.') < 0: + token += c + else: + if c and (c not in self.whitespace): + self.pbchars.append(c) + break + break + elif c in self.wordchars: + token = c + tt = WORD + c = self.getChar() + while c and (c in self.identchars): + token += c + c = self.getChar() + if c: # and c not in self.whitespace: + self.pbchars.append(c) + if token == "True": + tt = TRUE + elif token == "False": + tt = FALSE + elif token == "None": + tt = NONE + break + else: + raise ConfigFormatError('%s: Unexpected character: %r' % (self.location(), c)) + if token: + self.lastc = token[-1] + else: + self.lastc = None + self.last_token = tt + + # Python 2.x specific unicode conversion + if sys.version_info[0] == 2 and tt == WORD and isinstance(token, unicode): + token = token.encode('ascii') + return (tt, token) +
+
[docs] def load(self, stream, parent=None, suffix=None): + """ + Load the configuration from the specified stream. + + @param stream: A stream from which to load the configuration. + @type stream: A stream (file-like object). + @param parent: The parent of the configuration (to which this reader + belongs) in the hierarchy. Specified when the configuration is + included in another one. + @type parent: A L{Container} instance. + @param suffix: The suffix of this configuration in the parent + configuration. Should be specified whenever the parent is not None. + @raise ConfigError: If parent is specified but suffix is not. + @raise ConfigFormatError: If there are syntax errors in the stream. + """ + if parent is not None: + if suffix is None: + raise ConfigError("internal error: load called with parent but no suffix") + self.config.setPath(makePath(object.__getattribute__(parent, 'path'), suffix)) + self.setStream(stream) + self.token = self.getToken() + self.parseMappingBody(self.config) + if self.token[0] != EOF: + raise ConfigFormatError('%s: expecting EOF, found %r' % (self.location(), self.token[1])) +
+
[docs] def setStream(self, stream): + """ + Set the stream to the specified value, and prepare to read from it. + + @param stream: A stream from which to load the configuration. + @type stream: A stream (file-like object). + """ + self.stream = stream + if hasattr(stream, 'name'): + filename = stream.name + else: + filename = '?' + self.filename = filename + self.lineno = 1 + self.colno = 1 +
+
[docs] def match(self, t): + """ + Ensure that the current token type matches the specified value, and + advance to the next token. + + @param t: The token type to match. + @type t: A valid token type. + @return: The token which was last read from the stream before this + function is called. + @rtype: a token tuple - see L{getToken}. + @raise ConfigFormatError: If the token does not match what's expected. + """ + if self.token[0] != t: + raise ConfigFormatError("%s: expecting %s, found %r" % (self.location(), t, self.token[1])) + rv = self.token + self.token = self.getToken() + return rv +
+
[docs] def parseMappingBody(self, parent): + """ + Parse the internals of a mapping, and add entries to the provided + L{Mapping}. + + @param parent: The mapping to add entries to. + @type parent: A L{Mapping} instance. + """ + while self.token[0] in [WORD, STRING]: + self.parseKeyValuePair(parent) +
+
[docs] def parseKeyValuePair(self, parent): + """ + Parse a key-value pair, and add it to the provided L{Mapping}. + + @param parent: The mapping to add entries to. + @type parent: A L{Mapping} instance. + @raise ConfigFormatError: if a syntax error is found. + """ + comment = self.comment + tt, tv = self.token + if tt == WORD: + key = tv + suffix = tv + elif tt == STRING: + key = eval(tv) + suffix = '[%s]' % tv + else: + msg = "%s: expecting word or string, found %r" + raise ConfigFormatError(msg % (self.location(), tv)) + self.token = self.getToken() + # for now, we allow key on its own as a short form of key : True + if self.token[0] == COLON: + self.token = self.getToken() + value = self.parseValue(parent, suffix) + else: + value = True + try: + parent.addMapping(key, value, comment) + except Exception as e: + raise ConfigFormatError("%s: %s, %r" % (self.location(), e, + self.token[1])) + tt = self.token[0] + if tt not in [EOF, WORD, STRING, RCURLY, COMMA]: + msg = "%s: expecting one of EOF, WORD, STRING, \ +RCURLY, COMMA, found %r" + raise ConfigFormatError(msg % (self.location(), self.token[1])) + if tt == COMMA: + self.token = self.getToken() +
+
[docs] def parseValue(self, parent, suffix): + """ + Parse a value. + + @param parent: The container to which the value will be added. + @type parent: A L{Container} instance. + @param suffix: The suffix for the value. + @type suffix: str + @return: The value + @rtype: any + @raise ConfigFormatError: if a syntax error is found. + """ + tt = self.token[0] + if tt in [STRING, WORD, NUMBER, LPAREN, DOLLAR, + TRUE, FALSE, NONE, BACKTICK, MINUS]: + rv = self.parseScalar() + elif tt == LBRACK: + rv = self.parseSequence(parent, suffix) + elif tt in [LCURLY, AT]: + rv = self.parseMapping(parent, suffix) + else: + raise ConfigFormatError("%s: unexpected input: %r" % + (self.location(), self.token[1])) + return rv +
+
[docs] def parseSequence(self, parent, suffix): + """ + Parse a sequence. + + @param parent: The container to which the sequence will be added. + @type parent: A L{Container} instance. + @param suffix: The suffix for the value. + @type suffix: str + @return: a L{Sequence} instance representing the sequence. + @rtype: L{Sequence} + @raise ConfigFormatError: if a syntax error is found. + """ + rv = Sequence(parent) + rv.setPath(makePath(object.__getattribute__(parent, 'path'), suffix)) + self.match(LBRACK) + comment = self.comment + tt = self.token[0] + while tt in [STRING, WORD, NUMBER, LCURLY, LBRACK, LPAREN, DOLLAR, + TRUE, FALSE, NONE, BACKTICK]: + suffix = '[%d]' % len(rv) + value = self.parseValue(parent, suffix) + rv.append(value, comment) + tt = self.token[0] + comment = self.comment + if tt == COMMA: + self.match(COMMA) + tt = self.token[0] + comment = self.comment + continue + self.match(RBRACK) + return rv +
+
[docs] def parseMapping(self, parent, suffix): + """ + Parse a mapping. + + @param parent: The container to which the mapping will be added. + @type parent: A L{Container} instance. + @param suffix: The suffix for the value. + @type suffix: str + @return: a L{Mapping} instance representing the mapping. + @rtype: L{Mapping} + @raise ConfigFormatError: if a syntax error is found. + """ + if self.token[0] == LCURLY: + self.match(LCURLY) + rv = Mapping(parent) + rv.setPath( + makePath(object.__getattribute__(parent, 'path'), suffix)) + self.parseMappingBody(rv) + self.match(RCURLY) + else: + self.match(AT) + _, fn = self.match(STRING) + rv = Config(eval(fn), parent) + return rv +
+
[docs] def parseScalar(self): + """ + Parse a scalar - a terminal value such as a string or number, or + an L{Expression} or L{Reference}. + + @return: the parsed scalar + @rtype: any scalar + @raise ConfigFormatError: if a syntax error is found. + """ + lhs = self.parseTerm() + tt = self.token[0] + while tt in [PLUS, MINUS]: + self.match(tt) + rhs = self.parseTerm() + lhs = Expression(tt, lhs, rhs) + tt = self.token[0] + return lhs +
+
[docs] def parseTerm(self): + """ + Parse a term in an additive expression (a + b, a - b) + + @return: the parsed term + @rtype: any scalar + @raise ConfigFormatError: if a syntax error is found. + """ + lhs = self.parseFactor() + tt = self.token[0] + while tt in [STAR, SLASH, MOD]: + self.match(tt) + rhs = self.parseFactor() + lhs = Expression(tt, lhs, rhs) + tt = self.token[0] + return lhs +
+
[docs] def parseFactor(self): + """ + Parse a factor in an multiplicative expression (a * b, a / b, a % b) + + @return: the parsed factor + @rtype: any scalar + @raise ConfigFormatError: if a syntax error is found. + """ + tt = self.token[0] + if tt in [NUMBER, WORD, STRING, TRUE, FALSE, NONE]: + rv = self.token[1] + if tt != WORD: + rv = eval(rv) + self.match(tt) + elif tt == LPAREN: + self.match(LPAREN) + rv = self.parseScalar() + self.match(RPAREN) + elif tt == DOLLAR: + self.match(DOLLAR) + rv = self.parseReference(DOLLAR) + elif tt == BACKTICK: + self.match(BACKTICK) + rv = self.parseReference(BACKTICK) + self.match(BACKTICK) + elif tt == MINUS: + self.match(MINUS) + rv = -self.parseScalar() + else: + raise ConfigFormatError("%s: unexpected input: %r" % + (self.location(), self.token[1])) + return rv +
+
[docs] def parseReference(self, type): + """ + Parse a reference. + + @return: the parsed reference + @rtype: L{Reference} + @raise ConfigFormatError: if a syntax error is found. + """ + word = self.match(WORD) + rv = Reference(self.config, type, word[1]) + while self.token[0] in [DOT, LBRACK2]: + self.parseSuffix(rv) + return rv +
+
[docs] def parseSuffix(self, ref): + """ + Parse a reference suffix. + + @param ref: The reference of which this suffix is a part. + @type ref: L{Reference}. + @raise ConfigFormatError: if a syntax error is found. + """ + tt = self.token[0] + if tt == DOT: + self.match(DOT) + word = self.match(WORD) + ref.addElement(DOT, word[1]) + else: + self.match(LBRACK2) + tt, tv = self.token + if tt not in [NUMBER, STRING]: + raise ConfigFormatError("%s: expected number or string, found %r" % (self.location(), tv)) + self.token = self.getToken() + tv = eval(tv) + self.match(RBRACK) + ref.addElement(LBRACK, tv) +
+
[docs]def defaultMergeResolve(map1, map2, key): + """\ + A default resolver for merge conflicts. + Returns a string indicating what action to take to resolve the conflict. + + @param map1: The map being merged into. + @type map1: L{Mapping}. + @param map2: The map being used as the merge operand. + @type map2: L{Mapping}. + @param key: The key in map2 (which also exists in map1). + @type key: str + + @return: One of "merge", "append", "mismatch" or "overwrite" + indicating what action should be taken. This should + be appropriate to the objects being merged - e.g. + there is no point returning "merge" if the two objects + are instances of L{Sequence}. + + @rtype: str + """ + obj1 = map1[key] + obj2 = map2[key] + if isinstance(obj1, Mapping) and isinstance(obj2, Mapping): + rv = "merge" + elif isinstance(obj1, Sequence) and isinstance(obj2, Sequence): + rv = "append" + else: + rv = "mismatch" + return rv +
+
[docs]def overwriteMergeResolve(map1, map2, key): + """ + An overwriting resolver for merge conflicts. Calls L{defaultMergeResolve}, + but where a "mismatch" is detected, returns "overwrite" instead. + + @param map1: The map being merged into. + @type map1: L{Mapping}. + @param map2: The map being used as the merge operand. + @type map2: L{Mapping}. + @param key: The key in map2 (which also exists in map1). + @type key: str + """ + rv = defaultMergeResolve(map1, map2, key) + if rv == "mismatch": + rv = "overwrite" + return rv +
+
[docs]def deepCopyMapping(inMapping): + res = Mapping() + for element in inMapping: + res[element] = inMapping[element] + return res +
+
[docs]class ConfigMerger(object): + """ + This class is used for merging two configurations. If a key exists in the + merge operand but not the merge target, then the entry is copied from the + merge operand to the merge target. If a key exists in both configurations, + then a resolver (a callable) is called to decide how to handle the + conflict. + """ + + def __init__(self, resolver=defaultMergeResolve): + """ + Initialise an instance. + + @param resolver: + @type resolver: A callable which takes the argument list + (map1, map2, key) where map1 is the mapping being merged into, + map2 is the merge operand and key is the clashing key. The callable + should return a string indicating how the conflict should be resolved. + For possible return values, see L{defaultMergeResolve}. The default + value preserves the old behaviour + """ + self.resolver = resolver + +
[docs] def merge(self, merged, mergee): + """ + Merge two configurations. The second configuration is unchanged, + and the first is changed to reflect the results of the merge. + + @param merged: The configuration to merge into. + @type merged: L{Config}. + @param mergee: The configuration to merge. + @type mergee: L{Config}. + """ + self.mergeMapping(merged, mergee) +
+
[docs] def overwriteKeys(self, map1, seq2): + """ + Renint variables. The second mapping is unchanged, + and the first is changed depending the keys of the second mapping. + @param map1: The mapping to reinit keys into. + @type map1: L{Mapping}. + @param map2: The mapping container reinit information. + @type map2: L{Mapping}. + """ + + overwrite_list = object.__getattribute__(seq2, 'data') + for overwrite_instruction in overwrite_list: + object.__setattr__(overwrite_instruction, 'parent', map1) + if "__condition__" in overwrite_instruction.keys(): + overwrite_condition = overwrite_instruction["__condition__"] + if eval(overwrite_condition, globals(), map1): + for key in overwrite_instruction.keys(): + if key == "__condition__": + continue + try: + exec( 'map1.' + key + " = " + repr(overwrite_instruction[key])) + except: + exec('map1.' + key + " = " + str(overwrite_instruction[key])) + else: + for key in overwrite_instruction.keys(): + try: + exec('map1.' + key + " = " + repr(overwrite_instruction[key])) + except: + exec('map1.' + key + " = " + str(overwrite_instruction[key])) +
+
[docs] def mergeMapping(self, map1, map2): + """ + Merge two mappings recursively. The second mapping is unchanged, + and the first is changed to reflect the results of the merge. + + @param map1: The mapping to merge into. + @type map1: L{Mapping}. + @param map2: The mapping to merge. + @type map2: L{Mapping}. + """ + keys = map1.keys() + global __resolveOverwrite__ + for key in map2.keys(): + if __resolveOverwrite__ and key == "__overwrite__": + self.overwriteKeys(map1,map2[key]) + + elif key not in keys: + map1[key] = map2[key] + if isinstance(map1[key], Container) : + object.__setattr__(map1[key], 'parent', map1) + else: + obj1 = map1[key] + obj2 = map2[key] + decision = self.resolver(map1, map2, key) + if decision == "merge": + self.mergeMapping(obj1, obj2) + elif decision == "append": + self.mergeSequence(obj1, obj2) + elif decision == "overwrite": + map1[key] = obj2 + if isinstance(map1[key], Container): + object.__setattr__(map1[key], 'parent', map1) + elif decision == "mismatch": + self.handleMismatch(obj1, obj2) + else: + msg = "unable to merge: don't know how to implement %r" + raise ValueError(msg % decision) +
+
[docs] def mergeSequence(self, seq1, seq2): + """ + Merge two sequences. The second sequence is unchanged, + and the first is changed to have the elements of the second + appended to it. + + @param seq1: The sequence to merge into. + @type seq1: L{Sequence}. + @param seq2: The sequence to merge. + @type seq2: L{Sequence}. + """ + data1 = object.__getattribute__(seq1, 'data') + data2 = object.__getattribute__(seq2, 'data') + for obj in data2: + data1.append(obj) + comment1 = object.__getattribute__(seq1, 'comments') + comment2 = object.__getattribute__(seq2, 'comments') + for obj in comment2: + comment1.append(obj) +
+
[docs] def handleMismatch(self, obj1, obj2): + """ + Handle a mismatch between two objects. + + @param obj1: The object to merge into. + @type obj1: any + @param obj2: The object to merge. + @type obj2: any + """ + raise ConfigError("unable to merge %r with %r" % (obj1, obj2)) +
+
[docs]class ConfigList(list): + """ + This class implements an ordered list of configurations and allows you + to try getting the configuration from each entry in turn, returning + the first successfully obtained value. + """ + +
[docs] def getByPath(self, path): + """ + Obtain a value from the first configuration in the list which defines + it. + + @param path: The path of the value to retrieve. + @type path: str + @return: The value from the earliest configuration in the list which + defines it. + @rtype: any + @raise ConfigError: If no configuration in the list has an entry with + the specified path. + """ + found = False + rv = None + for entry in self: + try: + rv = entry.getByPath(path) + found = True + break + except ConfigError: + pass + if not found: + raise ConfigError("unable to resolve %r" % path) + return rv
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/system.html b/doc/build/html/_modules/src/system.html new file mode 100644 index 0000000..e500c7a --- /dev/null +++ b/doc/build/html/_modules/src/system.html @@ -0,0 +1,311 @@ + + + + + + + + + src.system — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.system

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+'''
+In this file : all functions that do a system call, 
+like open a browser or an editor, or call a git command
+'''
+
+import subprocess
+import os
+import tarfile
+
+from . import printcolors
+
+
[docs]def show_in_editor(editor, filePath, logger): + '''open filePath using editor. + + :param editor str: The editor to use. + :param filePath str: The path to the file to open. + ''' + # default editor is vi + if editor is None or len(editor) == 0: + editor = 'vi' + + if '%s' not in editor: + editor += ' %s' + + try: + # launch cmd using subprocess.Popen + cmd = editor % filePath + logger.write('Launched command:\n' + cmd + '\n', 5) + p = subprocess.Popen(cmd, shell=True) + p.communicate() + except: + logger.write(printcolors.printcError(_("Unable to edit file %s\n") + % filePath), 1) + +
+
[docs]def git_extract(from_what, tag, where, logger, environment=None): + '''Extracts sources from a git repository. + + :param from_what str: The remote git repository. + :param tag str: The tag. + :param where str: The path where to extract. + :param logger Logger: The logger instance to use. + :param environment src.environment.Environ: The environment to source when + extracting. + :return: True if the extraction is successful + :rtype: boolean + ''' + if not where.exists(): + where.make() + if tag == "master" or tag == "HEAD": + command = "git clone %(remote)s %(where)s" % \ + { 'remote': from_what, 'tag': tag, 'where': str(where) } + else: + # NOTICE: this command only works with recent version of git + # because --work-tree does not work with an absolute path + where_git = os.path.join( str(where), ".git" ) + command = "rmdir %(where)s && git clone %(remote)s %(where)s && " + \ + "git --git-dir=%(where_git)s --work-tree=%(where)s checkout %(tag)s" + command = command % {'remote': from_what, + 'tag': tag, + 'where': str(where), + 'where_git': where_git } + + logger.write(command + "\n", 5) + + logger.logTxtFile.write("\n" + command + "\n") + logger.logTxtFile.flush() + res = subprocess.call(command, + cwd=str(where.dir()), + env=environment.environ.environ, + shell=True, + stdout=logger.logTxtFile, + stderr=subprocess.STDOUT) + return (res == 0) +
+
[docs]def archive_extract(from_what, where, logger): + '''Extracts sources from an archive. + + :param from_what str: The path to the archive. + :param where str: The path where to extract. + :param logger Logger: The logger instance to use. + :return: True if the extraction is successful + :rtype: boolean + ''' + try: + archive = tarfile.open(from_what) + for i in archive.getmembers(): + archive.extract(i, path=str(where)) + return True, os.path.commonprefix(archive.getnames()) + except Exception as exc: + logger.write("archive_extract: %s\n" % exc) + return False, None +
+
[docs]def cvs_extract(protocol, user, server, base, tag, product, where, + logger, checkout=False, environment=None): + '''Extracts sources from a cvs repository. + + :param protocol str: The cvs protocol. + :param user str: The user to be used. + :param server str: The remote cvs server. + :param base str: . + :param tag str: The tag. + :param product str: The product. + :param where str: The path where to extract. + :param logger Logger: The logger instance to use. + :param checkout boolean: If true use checkout cvs. + :param environment src.environment.Environ: The environment to source when + extracting. + :return: True if the extraction is successful + :rtype: boolean + ''' + + opttag = '' + if tag is not None and len(tag) > 0: + opttag = '-r ' + tag + + cmd = 'export' + if checkout: + cmd = 'checkout' + elif len(opttag) == 0: + opttag = '-DNOW' + + if len(protocol) > 0: + root = "%s@%s:%s" % (user, server, base) + command = "cvs -d :%(protocol)s:%(root)s %(command)s -d %(where)s %(tag)s %(product)s" % \ + { 'protocol': protocol, 'root': root, 'where': str(where.base()), + 'tag': opttag, 'product': product, 'command': cmd } + else: + command = "cvs -d %(root)s %(command)s -d %(where)s %(tag)s %(base)s/%(product)s" % \ + { 'root': server, 'base': base, 'where': str(where.base()), + 'tag': opttag, 'product': product, 'command': cmd } + + logger.write(command + "\n", 5) + + if not where.dir().exists(): + where.dir().make() + + logger.logTxtFile.write("\n" + command + "\n") + logger.logTxtFile.flush() + res = subprocess.call(command, + cwd=str(where.dir()), + env=environment.environ.environ, + shell=True, + stdout=logger.logTxtFile, + stderr=subprocess.STDOUT) + return (res == 0) +
+
[docs]def svn_extract(user, + from_what, + tag, + where, + logger, + checkout=False, + environment=None): + '''Extracts sources from a svn repository. + + :param user str: The user to be used. + :param from_what str: The remote git repository. + :param tag str: The tag. + :param where str: The path where to extract. + :param logger Logger: The logger instance to use. + :param checkout boolean: If true use checkout svn. + :param environment src.environment.Environ: The environment to source when + extracting. + :return: True if the extraction is successful + :rtype: boolean + ''' + if not where.exists(): + where.make() + + if checkout: + command = "svn checkout --username %(user)s %(remote)s %(where)s" % \ + { 'remote': from_what, 'user' : user, 'where': str(where) } + else: + command = "" + if os.path.exists(str(where)): + command = "/bin/rm -rf %(where)s && " % \ + { 'remote': from_what, 'where': str(where) } + + if tag == "master": + command += "svn export --username %(user)s %(remote)s %(where)s" % \ + { 'remote': from_what, 'user' : user, 'where': str(where) } + else: + command += "svn export -r %(tag)s --username %(user)s %(remote)s %(where)s" % \ + { 'tag' : tag, 'remote': from_what, 'user' : user, 'where': str(where) } + + logger.logTxtFile.write(command + "\n") + + logger.write(command + "\n", 5) + logger.logTxtFile.write("\n" + command + "\n") + logger.logTxtFile.flush() + res = subprocess.call(command, + cwd=str(where.dir()), + env=environment.environ.environ, + shell=True, + stdout=logger.logTxtFile, + stderr=subprocess.STDOUT) + return (res == 0)
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/template.html b/doc/build/html/_modules/src/template.html new file mode 100644 index 0000000..48ccb8e --- /dev/null +++ b/doc/build/html/_modules/src/template.html @@ -0,0 +1,123 @@ + + + + + + + + + src.template — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.template

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+import string
+
+
[docs]class MyTemplate(string.Template): + delimiter = '¤' +
+
[docs]def substitute(template_file, subst_dic): + template = open(template_file, 'r') + template = MyTemplate(template.read()) + + return template.safe_substitute(subst_dic) +
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/test_module.html b/doc/build/html/_modules/src/test_module.html new file mode 100644 index 0000000..ea3f4f3 --- /dev/null +++ b/doc/build/html/_modules/src/test_module.html @@ -0,0 +1,995 @@ + + + + + + + + + src.test_module — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.test_module

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+# Python 2/3 compatibility for execfile function
+try:
+    execfile
+except:
+    def execfile(somefile, global_vars, local_vars):
+        with open(somefile) as f:
+            code = compile(f.read(), somefile, 'exec')
+            exec(code, global_vars, local_vars)
+
+
+import os
+import sys
+import datetime
+import shutil
+import string
+import imp
+import subprocess
+
+from . import fork
+import src
+
+# directories not considered as test grids
+C_IGNORE_GRIDS = ['.git', '.svn', 'RESSOURCES']
+
+DEFAULT_TIMEOUT = 150
+
+# Get directory to be used for the temporary files.
+#
+
[docs]def getTmpDirDEFAULT(): + if src.architecture.is_windows(): + directory = os.getenv("TEMP") + else: + # for Linux: use /tmp/logs/{user} folder + directory = os.path.join( '/tmp', 'logs', os.getenv("USER", "unknown")) + return directory +
+
[docs]class Test: + def __init__(self, + config, + logger, + tmp_working_dir, + testbase="", + grids=None, + sessions=None, + launcher="", + show_desktop=True): + self.grids = grids + self.config = config + self.logger = logger + self.tmp_working_dir = tmp_working_dir + self.sessions = sessions + self.launcher = launcher + self.show_desktop = show_desktop + + res = self.prepare_testbase(testbase) + self.test_base_found = True + if res == 1: + # Fail + self.test_base_found = False + + self.settings = {} + self.known_errors = None + + # create section for results + self.config.TESTS = src.pyconf.Sequence(self.config) + + self.nb_run = 0 + self.nb_succeed = 0 + self.nb_timeout = 0 + self.nb_not_run = 0 + self.nb_acknoledge = 0 + + def _copy_dir(self, source, target): + if self.config.VARS.python >= "2.6": + shutil.copytree(source, target, + symlinks=True, + ignore=shutil.ignore_patterns('.git*','.svn*')) + else: + shutil.copytree(source, target, + symlinks=True) + +
[docs] def prepare_testbase_from_dir(self, testbase_name, testbase_dir): + self.logger.write(_("get test base from dir: %s\n") % \ + src.printcolors.printcLabel(testbase_dir), 3) + if not os.access(testbase_dir, os.X_OK): + raise src.SatException(_("testbase %(name)s (%(dir)s) does not " + "exist ...\n") % { 'name': testbase_name, + 'dir': testbase_dir }) + + self._copy_dir(testbase_dir, + os.path.join(self.tmp_working_dir, 'BASES', testbase_name)) +
+
[docs] def prepare_testbase_from_git(self, + testbase_name, + testbase_base, + testbase_tag): + self.logger.write( + _("get test base '%(testbase)s' with '%(tag)s' tag from git\n") % { + "testbase" : src.printcolors.printcLabel(testbase_name), + "tag" : src.printcolors.printcLabel(testbase_tag)}, + 3) + try: + def set_signal(): # pragma: no cover + """see http://bugs.python.org/issue1652""" + import signal + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + + cmd = "git clone --depth 1 %(base)s %(dir)s" + cmd += " && cd %(dir)s" + if testbase_tag=='master': + cmd += " && git fetch origin %(branch)s" + else: + cmd += " && git fetch origin %(branch)s:%(branch)s" + cmd += " && git checkout %(branch)s" + cmd = cmd % { 'branch': testbase_tag, + 'base': testbase_base, + 'dir': testbase_name } + + self.logger.write("> %s\n" % cmd, 5) + if src.architecture.is_windows(): + # preexec_fn not supported on windows platform + res = subprocess.call(cmd, + cwd=os.path.join(self.tmp_working_dir, 'BASES'), + shell=True, + stdout=self.logger.logTxtFile, + stderr=subprocess.PIPE) + else: + res = subprocess.call(cmd, + cwd=os.path.join(self.tmp_working_dir, 'BASES'), + shell=True, + preexec_fn=set_signal, + stdout=self.logger.logTxtFile, + stderr=subprocess.PIPE) + if res != 0: + raise src.SatException(_("Error: unable to get test base " + "'%(name)s' from git '%(repo)s'.") % \ + { 'name': testbase_name, + 'repo': testbase_base }) + + except OSError: + self.logger.error(_("git is not installed. exiting...\n")) + sys.exit(0) +
+
[docs] def prepare_testbase_from_svn(self, user, testbase_name, testbase_base): + self.logger.write(_("get test base '%s' from svn\n") % \ + src.printcolors.printcLabel(testbase_name), 3) + try: + def set_signal(): # pragma: no cover + """see http://bugs.python.org/issue1652""" + import signal + signal.signal(signal.SIGPIPE, signal.SIG_DFL) + + cmd = "svn checkout --username %(user)s %(base)s %(dir)s" + cmd = cmd % { 'user': user, + 'base': testbase_base, + 'dir': testbase_name } + + # Get the application environment + self.logger.write(_("Set the application environment\n"), 5) + env_appli = src.environment.SalomeEnviron(self.config, + src.environment.Environ(dict(os.environ))) + env_appli.set_application_env(self.logger) + + self.logger.write("> %s\n" % cmd, 5) + if src.architecture.is_windows(): + # preexec_fn not supported on windows platform + res = subprocess.call(cmd, + cwd=os.path.join(self.tmp_working_dir, 'BASES'), + shell=True, + stdout=self.logger.logTxtFile, + stderr=subprocess.PIPE) + else: + res = subprocess.call(cmd, + cwd=os.path.join(self.tmp_working_dir, 'BASES'), + shell=True, + preexec_fn=set_signal, + stdout=self.logger.logTxtFile, + stderr=subprocess.PIPE, + env=env_appli.environ.environ,) + + if res != 0: + raise src.SatException(_("Error: unable to get test base '%(nam" + "e)s' from svn '%(repo)s'.") % \ + { 'name': testbase_name, + 'repo': testbase_base }) + + except OSError: + self.logger.error(_("svn is not installed. exiting...\n")) + sys.exit(0) + + ## + # Configure tests base.
+
[docs] def prepare_testbase(self, test_base_name): + src.printcolors.print_value(self.logger, + _("Test base"), + test_base_name, + 3) + self.logger.write("\n", 3, False) + + # search for the test base + test_base_info = None + for project_name in self.config.PROJECTS.projects: + project_info = self.config.PROJECTS.projects[project_name] + if "test_bases" not in project_info: + continue + for t_b_info in project_info.test_bases: + if t_b_info.name == test_base_name: + test_base_info = t_b_info + + if not test_base_info: + if os.path.exists(test_base_name): + self.prepare_testbase_from_dir("DIR", test_base_name) + self.currentTestBase = "DIR" + return 0 + + if not test_base_info: + message = (_("########## ERROR: test base '%s' not found\n") % + test_base_name) + self.logger.write("%s\n" % src.printcolors.printcError(message)) + return 1 + + if test_base_info.get_sources == "dir": + self.prepare_testbase_from_dir(test_base_name, + test_base_info.info.dir) + elif test_base_info.get_sources == "git": + self.prepare_testbase_from_git(test_base_name, + test_base_info.info.base, + self.config.APPLICATION.test_base.tag) + elif test_base_info.get_sources == "svn": + svn_user = src.get_cfg_param(test_base_info.info, + "svn_user", + self.config.USER.svn_user) + self.prepare_testbase_from_svn(svn_user, + test_base_name, + test_base_info.info.base) + else: + raise src.SatException(_("unknown source type '%(type)s' for test b" + "ase '%(base)s' ...\n") % { + 'type': test_base_info.get_sources, + 'base': test_base_name }) + + self.currentTestBase = test_base_name + + ## + # Searches if the script is declared in known errors pyconf. + # Update the status if needed.
+
[docs] def search_known_errors(self, status, test_grid, test_session, test): + test_path = os.path.join(test_grid, test_session, test) + if not src.config_has_application(self.config): + return status, [] + + if self.known_errors is None: + return status, [] + + platform = self.config.VARS.arch + application = self.config.VARS.application + error = self.known_errors.get_error(test_path, application, platform) + if error is None: + return status, [] + + if status == src.OK_STATUS: + if not error.fixed: + # the error is fixed + self.known_errors.fix_error(error) + #import testerror + #testerror.write_test_failures( + # self.config.TOOLS.testerror.file_path, + # self.known_errors.errors) + return status, [ error.date, + error.expected, + error.comment, + error.fixed ] + + if error.fixed: + self.known_errors.unfix_error(error) + #import testerror + #testerror.write_test_failures(self.config.TOOLS.testerror.file_path, + # self.known_errors.errors) + + delta = self.known_errors.get_expecting_days(error) + kfres = [ error.date, error.expected, error.comment, error.fixed ] + if delta < 0: + return src.KO_STATUS, kfres + return src.KNOWNFAILURE_STATUS, kfres + + ## + # Read the *.result.py files.
+
[docs] def read_results(self, listTest, has_timed_out): + results = {} + for test in listTest: + resfile = os.path.join(self.currentDir, + self.currentgrid, + self.currentsession, + test[:-3] + ".result.py") + + # check if <test>.result.py file exists + if not os.path.exists(resfile): + results[test] = ["?", -1, "", []] + else: + gdic, ldic = {}, {} + execfile(resfile, gdic, ldic) + + status = src.TIMEOUT_STATUS + if not has_timed_out: + status = src.KO_STATUS + + if ldic.has_key('status'): + status = ldic['status'] + + expected = [] + if status == src.KO_STATUS or status == src.OK_STATUS: + status, expected = self.search_known_errors(status, + self.currentgrid, + self.currentsession, + test) + + callback = "" + if ldic.has_key('callback'): + callback = ldic['callback'] + elif status == src.KO_STATUS: + callback = "CRASH" + + exec_time = -1 + if ldic.has_key('time'): + try: + exec_time = float(ldic['time']) + except: + pass + + results[test] = [status, exec_time, callback, expected] + + # check if <test>.py file exists + testfile = os.path.join(self.currentDir, + self.currentgrid, + self.currentsession, + test) + + if not os.path.exists(testfile): + results[test].append('') + else: + text = open(testfile, "r").read() + results[test].append(text) + + # check if <test>.out.py file exists + outfile = os.path.join(self.currentDir, + self.currentgrid, + self.currentsession, + test[:-3] + ".out.py") + + if not os.path.exists(outfile): + results[test].append('') + else: + text = open(outfile, "r").read() + results[test].append(text) + + return results + + ## + # Generates the script to be run by Salome. + # This python script includes init and close statements and a loop + # calling all the scripts of a single directory.
+
[docs] def generate_script(self, listTest, script_path, ignoreList): + # open template file + template_file = open(os.path.join(self.config.VARS.srcDir, + "test", + "scriptTemplate.py"), 'r') + template = string.Template(template_file.read()) + + # create substitution dictionary + d = dict() + d['resourcesWay'] = os.path.join(self.currentDir, 'RESSOURCES') + d['tmpDir'] = os.path.join(self.tmp_working_dir, 'WORK') + d['toolsWay'] = os.path.join(self.config.VARS.srcDir, "test") + d['sessionDir'] = os.path.join(self.currentDir, + self.currentgrid, + self.currentsession) + d['resultFile'] = os.path.join(self.tmp_working_dir, + 'WORK', + 'exec_result') + d['listTest'] = listTest + d['sessionName'] = self.currentsession + d['ignore'] = ignoreList + + # create script with template + script = open(script_path, 'w') + script.write(template.safe_substitute(d)) + script.close() + + # Find the getTmpDir function that gives access to *pidict file directory. + # (the *pidict file exists when SALOME is launched)
+
[docs] def get_tmp_dir(self): + # Rare case where there is no KERNEL in grid list + # (for example MED_STANDALONE) + if ('APPLICATION' in self.config + and 'KERNEL' not in self.config.APPLICATION.products + and 'KERNEL_ROOT_DIR' not in os.environ): + return getTmpDirDEFAULT + + # Case where "sat test" is launched in an existing SALOME environment + if 'KERNEL_ROOT_DIR' in os.environ: + root_dir = os.environ['KERNEL_ROOT_DIR'] + + if ('APPLICATION' in self.config + and 'KERNEL' in self.config.APPLICATION.products): + root_dir = src.product.get_product_config(self.config, + "KERNEL").install_dir + + # Case where there the appli option is called (with path to launcher) + if len(self.launcher) > 0: + # There are two cases : The old application (runAppli) + # and the new one + launcherName = os.path.basename(self.launcher) + launcherDir = os.path.dirname(self.launcher) + if launcherName == 'runAppli': + # Old application + cmd = ("for i in " + launcherDir + "/env.d/*.sh; do source ${i};" + " done ; echo $KERNEL_ROOT_DIR") + else: + # New application + cmd = ("echo -e 'import os\nprint os.environ[\"KERNEL_" + + "ROOT_DIR\"]' > tmpscript.py; %s shell" + + " tmpscript.py") % self.launcher + + # OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb + # de remontee de log des tests + #root_dir = subprocess.Popen(cmd, + # stdout=subprocess.PIPE, + # shell=True, + # executable='/bin/bash').communicate()[0].split()[-1] + subproc_res = subprocess.Popen(cmd, + stdout=subprocess.PIPE, + shell=True, + executable='/bin/bash').communicate() + #print "TRACES OP - test_module.py/Test.get_tmp_dir() subproc_res = " + for resLine in subproc_res: + print "- '#%s#'" %resLine + + root_dir = subproc_res[0].split()[-1] + + # OP 14/11/2017 Ajout de traces pour essayer de decouvrir le pb + # de remontee de log des tests + #print "TRACES OP - test_module.py/Test.get_tmp_dir() root_dir = '#%s#'" %root_dir + + # import grid salome_utils from KERNEL that gives + # the right getTmpDir function + (file_, pathname, description) = imp.find_module("salome_utils", + [os.path.join(root_dir, + 'bin', + 'salome')]) + try: + grid = imp.load_module("salome_utils", + file_, + pathname, + description) + return grid.getLogDir + except: + grid = imp.load_module("salome_utils", + file_, + pathname, + description) + return grid.getTmpDir + finally: + if file_: + file_.close() + +
+
[docs] def get_test_timeout(self, test_name, default_value): + if ("timeout" in self.settings and + test_name in self.settings["timeout"]): + return self.settings["timeout"][test_name] + + return default_value +
+
[docs] def generate_launching_commands(self): + # Case where "sat test" is launched in an existing SALOME environment + if 'KERNEL_ROOT_DIR' in os.environ: + binSalome = "runSalome" + binPython = "python" + killSalome = "killSalome.py" + + # Rare case where there is no KERNEL in grid list + # (for example MED_STANDALONE) + if ('APPLICATION' in self.config and + 'KERNEL' not in self.config.APPLICATION.products): + binSalome = "runSalome" + binPython = "python" + killSalome = "killSalome.py" + src.environment.load_environment(self.config, False, self.logger) + return binSalome, binPython, killSalome + + # Case where there the appli option is called (with path to launcher) + if len(self.launcher) > 0: + # There are two cases : The old application (runAppli) + # and the new one + launcherName = os.path.basename(self.launcher) + launcherDir = os.path.dirname(self.launcher) + if launcherName == 'runAppli': + # Old application + binSalome = self.launcher + binPython = ("for i in " + + launcherDir + + "/env.d/*.sh; do source ${i}; done ; python") + killSalome = ("for i in " + + launcherDir + + "/env.d/*.sh; do source ${i}; done ; killSalome.py'") + return binSalome, binPython, killSalome + else: + # New application + binSalome = self.launcher + binPython = self.launcher + ' shell' + killSalome = self.launcher + ' killall' + return binSalome, binPython, killSalome + + # SALOME version detection and APPLI repository detection + VersionSalome = src.get_salome_version(self.config) + appdir = 'APPLI' + if "APPLI" in self.config and "application_name" in self.config.APPLI: + appdir = self.config.APPLI.application_name + + # Case where SALOME has NOT the launcher that uses the SalomeContext API + if VersionSalome < 730: + binSalome = os.path.join(self.config.APPLICATION.workdir, + appdir, + "runAppli") + binPython = "python" + killSalome = "killSalome.py" + src.environment.load_environment(self.config, False, self.logger) + return binSalome, binPython, killSalome + + # Case where SALOME has the launcher that uses the SalomeContext API + else: + launcher_name = src.get_launcher_name(self.config) + binSalome = os.path.join(self.config.APPLICATION.workdir, + launcher_name) + + binPython = binSalome + ' shell' + killSalome = binSalome + ' killall' + return binSalome, binPython, killSalome + + return binSalome, binPython, killSalome + + + ## + # Runs tests of a session (using a single instance of Salome).
+
[docs] def run_tests(self, listTest, ignoreList): + out_path = os.path.join(self.currentDir, + self.currentgrid, + self.currentsession) + sessionname = "%s/%s" % (self.currentgrid, self.currentsession) + time_out = self.get_test_timeout(sessionname, + DEFAULT_TIMEOUT) + + time_out_salome = DEFAULT_TIMEOUT + + # generate wrapper script + script_path = os.path.join(out_path, 'wrapperScript.py') + self.generate_script(listTest, script_path, ignoreList) + + tmpDir = self.get_tmp_dir() + + binSalome, binPython, killSalome = self.generate_launching_commands() + if self.settings.has_key("run_with_grids") \ + and self.settings["run_with_grids"].has_key(sessionname): + binSalome = (binSalome + + " -m %s" % self.settings["run_with_grids"][sessionname]) + + logWay = os.path.join(self.tmp_working_dir, "WORK", "log_cxx") + + status = False + elapsed = -1 + if self.currentsession.startswith("NOGUI_"): + # runSalome -t (bash) + status, elapsed = fork.batch(binSalome, self.logger, + os.path.join(self.tmp_working_dir, + "WORK"), + [ "-t", + "--shutdown-server=1", + script_path ], + delai=time_out, + log=logWay) + + elif self.currentsession.startswith("PY_"): + # python script.py + status, elapsed = fork.batch(binPython, self.logger, + os.path.join(self.tmp_working_dir, + "WORK"), + [script_path], + delai=time_out, log=logWay) + + else: + opt = "-z 0" + if self.show_desktop: opt = "--show-desktop=0" + status, elapsed = fork.batch_salome(binSalome, + self.logger, + os.path.join( + self.tmp_working_dir, + "WORK"), + [ opt, + "--shutdown-server=1", + script_path ], + getTmpDir=tmpDir, + fin=killSalome, + delai=time_out, + log=logWay, + delaiapp=time_out_salome) + + self.logger.write("status = %s, elapsed = %s\n" % (status, elapsed), + 5) + + # create the test result to add in the config object + test_info = src.pyconf.Mapping(self.config) + test_info.testbase = self.currentTestBase + test_info.grid = self.currentgrid + test_info.session = self.currentsession + test_info.script = src.pyconf.Sequence(self.config) + + script_results = self.read_results(listTest, elapsed == time_out) + for sr in sorted(script_results.keys()): + self.nb_run += 1 + + # create script result + script_info = src.pyconf.Mapping(self.config) + script_info.name = sr + script_info.res = script_results[sr][0] + script_info.time = script_results[sr][1] + if script_info.res == src.TIMEOUT_STATUS: + script_info.time = time_out + if script_info.time < 1e-3: script_info.time = 0 + + callback = script_results[sr][2] + if script_info.res != src.OK_STATUS and len(callback) > 0: + script_info.callback = callback + + kfres = script_results[sr][3] + if len(kfres) > 0: + script_info.known_error = src.pyconf.Mapping(self.config) + script_info.known_error.date = kfres[0] + script_info.known_error.expected = kfres[1] + script_info.known_error.comment = kfres[2] + script_info.known_error.fixed = kfres[3] + + script_info.content = script_results[sr][4] + script_info.out = script_results[sr][5] + + # add it to the list of results + test_info.script.append(script_info, '') + + # display the results + if script_info.time > 0: + exectime = "(%7.3f s)" % script_info.time + else: + exectime = "" + + sp = "." * (35 - len(script_info.name)) + self.logger.write(self.write_test_margin(3), 3) + self.logger.write("script %s %s %s %s\n" % ( + src.printcolors.printcLabel(script_info.name), + sp, + src.printcolors.printc(script_info.res), + exectime), 3, False) + if script_info and len(callback) > 0: + self.logger.write("Exception in %s\n%s\n" % \ + (script_info.name, + src.printcolors.printcWarning(callback)), 2, False) + + if script_info.res == src.OK_STATUS: + self.nb_succeed += 1 + elif script_info.res == src.KNOWNFAILURE_STATUS: + self.nb_acknoledge += 1 + elif script_info.res == src.TIMEOUT_STATUS: + self.nb_timeout += 1 + elif script_info.res == src.NA_STATUS: + self.nb_run -= 1 + elif script_info.res == "?": + self.nb_not_run += 1 + + self.config.TESTS.append(test_info, '') + + ## + # Runs all tests of a session.
+
[docs] def run_session_tests(self): + + self.logger.write(self.write_test_margin(2), 3) + self.logger.write("Session = %s\n" % src.printcolors.printcLabel( + self.currentsession), 3, False) + + # prepare list of tests to run + tests = os.listdir(os.path.join(self.currentDir, + self.currentgrid, + self.currentsession)) + tests = filter(lambda l: l.endswith(".py"), tests) + tests = sorted(tests, key=str.lower) + + # build list of known failures + cat = "%s/%s/" % (self.currentgrid, self.currentsession) + ignoreDict = {} + for k in self.ignore_tests.keys(): + if k.startswith(cat): + ignoreDict[k[len(cat):]] = self.ignore_tests[k] + + self.run_tests(tests, ignoreDict) + + ## + # Runs all tests of a grid.
+
[docs] def run_grid_tests(self): + self.logger.write(self.write_test_margin(1), 3) + self.logger.write("grid = %s\n" % src.printcolors.printcLabel( + self.currentgrid), 3, False) + + grid_path = os.path.join(self.currentDir, self.currentgrid) + + sessions = [] + if self.sessions is not None: + sessions = self.sessions # user choice + else: + # use all scripts in grid + sessions = filter(lambda l: l not in C_IGNORE_GRIDS, + os.listdir(grid_path)) + sessions = filter(lambda l: os.path.isdir(os.path.join(grid_path, + l)), sessions) + + sessions = sorted(sessions, key=str.lower) + for session_ in sessions: + if not os.path.exists(os.path.join(grid_path, session_)): + self.logger.write(self.write_test_margin(2), 3) + self.logger.write(src.printcolors.printcWarning("Session %s not" + " found" % session_) + "\n", 3, False) + else: + self.currentsession = session_ + self.run_session_tests() + + ## + # Runs test testbase.
+
[docs] def run_testbase_tests(self): + res_dir = os.path.join(self.currentDir, "RESSOURCES") + os.environ['PYTHONPATH'] = (res_dir + + os.pathsep + + os.environ['PYTHONPATH']) + os.environ['TT_BASE_RESSOURCES'] = res_dir + src.printcolors.print_value(self.logger, + "TT_BASE_RESSOURCES", + res_dir, + 4) + self.logger.write("\n", 4, False) + + self.logger.write(self.write_test_margin(0), 3) + testbase_label = "Test base = %s\n" % src.printcolors.printcLabel( + self.currentTestBase) + self.logger.write(testbase_label, 3, False) + self.logger.write("-" * len(src.printcolors.cleancolor(testbase_label)), + 3) + self.logger.write("\n", 3, False) + + # load settings + settings_file = os.path.join(res_dir, "test_settings.py") + if os.path.exists(settings_file): + gdic, ldic = {}, {} + execfile(settings_file, gdic, ldic) + self.logger.write(_("Load test settings\n"), 3) + self.settings = ldic['settings_dic'] + self.ignore_tests = ldic['known_failures_list'] + if isinstance(self.ignore_tests, list): + self.ignore_tests = {} + self.logger.write(src.printcolors.printcWarning("known_failur" + "es_list must be a dictionary (not a list)") + "\n", 1, False) + else: + self.ignore_tests = {} + self.settings.clear() + + # read known failures pyconf + if "testerror" in self.config.LOCAL: + #import testerror + #self.known_errors = testerror.read_test_failures( + # self.config.TOOLS.testerror.file_path, + # do_error=False) + pass + else: + self.known_errors = None + + if self.grids is not None: + grids = self.grids # given by user + else: + # select all the grids (i.e. directories) in the directory + grids = filter(lambda l: l not in C_IGNORE_GRIDS, + os.listdir(self.currentDir)) + grids = filter(lambda l: os.path.isdir( + os.path.join(self.currentDir, l)), + grids) + + grids = sorted(grids, key=str.lower) + for grid in grids: + if not os.path.exists(os.path.join(self.currentDir, grid)): + self.logger.write(self.write_test_margin(1), 3) + self.logger.write(src.printcolors.printcWarning( + "grid %s does not exist\n" % grid), 3, False) + else: + self.currentgrid = grid + self.run_grid_tests() +
+
[docs] def run_script(self, script_name): + if ('APPLICATION' in self.config and + script_name in self.config.APPLICATION): + script = self.config.APPLICATION[script_name] + if len(script) == 0: + return + + self.logger.write("\n", 2, False) + if not os.path.exists(script): + self.logger.write(src.printcolors.printcWarning("WARNING: scrip" + "t not found: %s" % script) + "\n", 2) + else: + self.logger.write(src.printcolors.printcHeader("----------- sta" + "rt %s" % script_name) + "\n", 2) + self.logger.write("Run script: %s\n" % script, 2) + subprocess.Popen(script, shell=True).wait() + self.logger.write(src.printcolors.printcHeader("----------- end" + " %s" % script_name) + "\n", 2) +
+
[docs] def run_all_tests(self): + initTime = datetime.datetime.now() + + self.run_script('test_setup') + self.logger.write("\n", 2, False) + + self.logger.write(src.printcolors.printcHeader( + _("=== STARTING TESTS")) + "\n", 2) + self.logger.write("\n", 2, False) + self.currentDir = os.path.join(self.tmp_working_dir, + 'BASES', + self.currentTestBase) + self.run_testbase_tests() + + # calculate total execution time + totalTime = datetime.datetime.now() - initTime + totalTime -= datetime.timedelta(microseconds=totalTime.microseconds) + self.logger.write("\n", 2, False) + self.logger.write(src.printcolors.printcHeader(_("=== END TESTS")), 2) + self.logger.write(" %s\n" % src.printcolors.printcInfo(str(totalTime)), + 2, + False) + + # + # Start the tests + # + self.run_script('test_cleanup') + self.logger.write("\n", 2, False) + + # evaluate results + res_count = "%d / %d" % (self.nb_succeed, + self.nb_run - self.nb_acknoledge) + + res_out = _("Tests Results: %(succeed)d / %(total)d\n") % \ + { 'succeed': self.nb_succeed, 'total': self.nb_run } + if self.nb_succeed == self.nb_run: + res_out = src.printcolors.printcSuccess(res_out) + else: + res_out = src.printcolors.printcError(res_out) + self.logger.write(res_out, 1) + + if self.nb_timeout > 0: + self.logger.write(_("%d tests TIMEOUT\n") % self.nb_timeout, 1) + res_count += " TO: %d" % self.nb_timeout + if self.nb_not_run > 0: + self.logger.write(_("%d tests not executed\n") % self.nb_not_run, 1) + res_count += " NR: %d" % self.nb_not_run + + status = src.OK_STATUS + if self.nb_run - self.nb_succeed - self.nb_acknoledge > 0: + status = src.KO_STATUS + elif self.nb_acknoledge: + status = src.KNOWNFAILURE_STATUS + + self.logger.write(_("Status: %s\n" % status), 3) + + return self.nb_run - self.nb_succeed - self.nb_acknoledge + + ## + # Write margin to show test results.
+
[docs] def write_test_margin(self, tab): + if tab == 0: + return "" + return "| " * (tab - 1) + "+ " +
+ +
+
+ +
+
+
+

Related Topics

+ +
+ + +
+
+
+ + + + + + + + \ No newline at end of file diff --git a/doc/build/html/_modules/src/xmlManager.html b/doc/build/html/_modules/src/xmlManager.html new file mode 100644 index 0000000..1656e12 --- /dev/null +++ b/doc/build/html/_modules/src/xmlManager.html @@ -0,0 +1,307 @@ + + + + + + + + + src.xmlManager — salomeTools 5.0.0dev documentation + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ +

Source code for src.xmlManager

+#!/usr/bin/env python
+#-*- coding:utf-8 -*-
+#  Copyright (C) 2010-2013  CEA/DEN
+#
+#  This library is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU Lesser General Public
+#  License as published by the Free Software Foundation; either
+#  version 2.1 of the License.
+#
+#  This library is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  Lesser General Public License for more details.
+#
+#  You should have received a copy of the GNU Lesser General Public
+#  License along with this library; if not, write to the Free Software
+#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+
+import os
+try: # For python2
+    import sys
+    reload(sys)  
+    sys.setdefaultencoding('utf8')
+except:
+    pass
+
+import src
+from . import ElementTree as etree
+
+
[docs]class XmlLogFile(object): + '''Class to manage writing in salomeTools xml log file + ''' + def __init__(self, filePath, rootname, attrib = {}): + '''Initialization + + :param filePath str: The path to the file where to write the log file + :param rootname str: The name of the root node of the xml file + :param attrib dict: the dictionary that contains the attributes + and value of the root node + ''' + # Initialize the filePath and ensure that the directory + # that contain the file exists (make it if necessary) + self.logFile = filePath + src.ensure_path_exists(os.path.dirname(filePath)) + # Initialize the field that contain the xml in memory + self.xmlroot = etree.Element(rootname, attrib = attrib) + +
[docs] def write_tree(self, stylesheet=None, file_path = None): + '''Write the xml tree in the log file path. Add the stylesheet if asked. + + :param stylesheet str: The stylesheet to apply to the xml file + ''' + log_file_path = self.logFile + if file_path: + log_file_path = file_path + try: + f = open(log_file_path, 'w') + f.write("<?xml version='1.0' encoding='utf-8'?>\n") + if stylesheet: + f.write("<?xml-stylesheet type='text/xsl' href='%s'?>\n" % + stylesheet) + f.write(etree.tostring(self.xmlroot, encoding='utf-8')) + f.close() + except IOError: + pass +
+
[docs] def add_simple_node(self, node_name, text=None, attrib={}): + '''Add a node with some attibutes and text to the root node. + + :param node_name str: the name of the node to add + :param text str: the text of the node + :param attrib dict: the dictionary containing the + attribute of the new node + ''' + n = etree.Element(node_name, attrib=attrib) + n.text = text + self.xmlroot.append(n) + return n +
+
[docs] def append_node_text(self, node_name, text): + '''Append a new text to the node that has node_name as name + + :param node_name str: The name of the node on which append text + :param text str: The text to append + ''' + # find the corresponding node + for field in self.xmlroot: + if field.tag == node_name: + # append the text + field.text += text +
+
[docs] def append_node_attrib(self, node_name, attrib): + '''Append a new attributes to the node that has node_name as name + + :param node_name str: The name of the node on which append text + :param attrib dixt: The attrib to append + ''' + self.xmlroot.find(node_name).attrib.update(attrib) +
+
[docs]class ReadXmlFile(object): + '''Class to manage reading of an xml log file + ''' + def __init__(self, filePath): + '''Initialization + + :param filePath str: The xml file to be read + ''' + self.filePath = filePath + etree_inst = etree.parse(filePath) + self.xmlroot = etree_inst.parse(filePath) + +
[docs] def getRootAttrib(self): + '''Get the attibutes of the self.xmlroot + + :return: The attributes of the root node + :rtype: dict + ''' + return self.xmlroot.attrib +
+
[docs] def get_attrib(self, node_name): + '''Get the attibutes of the node node_name in self.xmlroot + + :param node_name str: the name of the node + :return: the attibutes of the node node_name in self.xmlroot + :rtype: dict + ''' + attrib = self.xmlroot.find(node_name).attrib + # To be python 3 compatible, convert bytes to str if there are any + fixedAttrib = {} + for k in attrib.keys(): + if isinstance(k, bytes): + key = k.decode() + else: + key = k + if isinstance(attrib[k], bytes): + value = attrib[k].decode() + else: + value = attrib[k] + fixedAttrib[key] = value + return fixedAttrib +
+
[docs] def get_node_text(self, node): + '''Get the text of the first node that has name + that corresponds to the parameter node + + :param node str: the name of the node from which get the text + :return: the text of the first node that has name + that corresponds to the parameter node + :rtype: str + ''' + return self.xmlroot.find(node).text +
+
[docs]def add_simple_node(root_node, node_name, text=None, attrib={}): + '''Add a node with some attibutes and text to the root node. + + :param root_node etree.Element: the Etree element where to add the new node + :param node_name str: the name of the node to add + :param text str: the text of the node + :param attrib dict: the dictionary containing the + attribute of the new node + ''' + n = etree.Element(node_name, attrib=attrib) + n.text = text + root_node.append(n) + return n +
+
[docs]def append_node_attrib(root_node, attrib): + '''Append a new attributes to the node that has node_name as name + + :param root_node etree.Element: the Etree element + where to append the new attibutes + :param attrib dixt: The attrib to append + ''' + root_node.attrib.update(attrib) +
+
[docs]def find_node_by_attrib(xmlroot, name_node, key, value): + '''Find the nfirst ode from xmlroot that has name name_node and that has in + its attributes {key : value}. Return the node + + :param xmlroot etree.Element: the Etree element where to search + :param name_node str: the name of node to search + :param key str: the key to search + :param value str: the value to search + :return: the found node + :rtype: xmlroot etree.Element + ''' + l_nodes = xmlroot.findall(name_node) + for node in l_nodes: + if key not in node.attrib.keys(): + continue + if node.attrib[key] == value: + return node + return None + +
+
[docs]def write_report(filename, xmlroot, stylesheet): + """Writes a report file from a XML tree. + + :param filename str: The path to the file to create + :param xmlroot etree.Element: the Etree element to write to the file + :param stylesheet str: The stylesheet to add to the begin of the file + """ + if not os.path.exists(os.path.dirname(filename)): + os.makedirs(os.path.dirname(filename)) + + f = open(filename, "w") + f.write("<?xml version='1.0' encoding='utf-8'?>\n") + if len(stylesheet) > 0: + f.write("<?xml-stylesheet type='text/xsl' href='%s'?>\n" % stylesheet) + f.write(etree.tostring(xmlroot, encoding='utf-8')) + f.close() +
+
+ +
+
+
+
+
+
+

Related Topics

+ +
+ + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/doc/build/html/_sources/commands/apidoc/modules.txt b/doc/build/html/_sources/commands/apidoc/modules.txt new file mode 100644 index 0000000..e9ff8ac --- /dev/null +++ b/doc/build/html/_sources/commands/apidoc/modules.txt @@ -0,0 +1,7 @@ +src +=== + +.. toctree:: + :maxdepth: 4 + + src diff --git a/doc/build/html/_sources/commands/apidoc/src.colorama.txt b/doc/build/html/_sources/commands/apidoc/src.colorama.txt new file mode 100644 index 0000000..ba8c5f6 --- /dev/null +++ b/doc/build/html/_sources/commands/apidoc/src.colorama.txt @@ -0,0 +1,51 @@ +colorama Package +================ + +:mod:`colorama` Package +----------------------- + +.. automodule:: src.colorama + :members: + :undoc-members: + :show-inheritance: + +:mod:`ansi` Module +------------------ + +.. automodule:: src.colorama.ansi + :members: + :undoc-members: + :show-inheritance: + +:mod:`ansitowin32` Module +------------------------- + +.. automodule:: src.colorama.ansitowin32 + :members: + :undoc-members: + :show-inheritance: + +:mod:`initialise` Module +------------------------ + +.. automodule:: src.colorama.initialise + :members: + :undoc-members: + :show-inheritance: + +:mod:`win32` Module +------------------- + +.. automodule:: src.colorama.win32 + :members: + :undoc-members: + :show-inheritance: + +:mod:`winterm` Module +--------------------- + +.. automodule:: src.colorama.winterm + :members: + :undoc-members: + :show-inheritance: + diff --git a/doc/build/html/_sources/commands/apidoc/src.txt b/doc/build/html/_sources/commands/apidoc/src.txt new file mode 100644 index 0000000..ac8627e --- /dev/null +++ b/doc/build/html/_sources/commands/apidoc/src.txt @@ -0,0 +1,146 @@ +src Package +=========== + +:mod:`src` Package +------------------ + +.. automodule:: src.__init__ + :members: + :undoc-members: + :show-inheritance: + +:mod:`ElementTree` Module +------------------------- + +.. automodule:: src.ElementTree + :members: + :undoc-members: + :show-inheritance: + +:mod:`architecture` Module +-------------------------- + +.. automodule:: src.architecture + :members: + :undoc-members: + :show-inheritance: + +:mod:`compilation` Module +------------------------- + +.. automodule:: src.compilation + :members: + :undoc-members: + :show-inheritance: + +:mod:`debug` Module +------------------- + +.. automodule:: src.debug + :members: + :undoc-members: + :show-inheritance: + +:mod:`environment` Module +------------------------- + +.. automodule:: src.environment + :members: + :undoc-members: + :show-inheritance: + +:mod:`fileEnviron` Module +------------------------- + +.. automodule:: src.fileEnviron + :members: + :undoc-members: + :show-inheritance: + +:mod:`fork` Module +------------------ + +.. automodule:: src.fork + :members: + :undoc-members: + :show-inheritance: + +:mod:`logger` Module +-------------------- + +.. automodule:: src.logger + :members: + :undoc-members: + :show-inheritance: + +:mod:`options` Module +--------------------- + +.. automodule:: src.options + :members: + :undoc-members: + :show-inheritance: + +:mod:`printcolors` Module +------------------------- + +.. automodule:: src.printcolors + :members: + :undoc-members: + :show-inheritance: + +:mod:`product` Module +--------------------- + +.. automodule:: src.product + :members: + :undoc-members: + :show-inheritance: + +:mod:`pyconf` Module +-------------------- + +.. automodule:: src.pyconf + :members: + :undoc-members: + :show-inheritance: + +:mod:`system` Module +-------------------- + +.. automodule:: src.system + :members: + :undoc-members: + :show-inheritance: + +:mod:`template` Module +---------------------- + +.. automodule:: src.template + :members: + :undoc-members: + :show-inheritance: + +:mod:`test_module` Module +------------------------- + +.. automodule:: src.test_module + :members: + :undoc-members: + :show-inheritance: + +:mod:`xmlManager` Module +------------------------ + +.. automodule:: src.xmlManager + :members: + :undoc-members: + :show-inheritance: + +Subpackages +----------- + +.. toctree:: + + src.colorama + diff --git a/doc/build/html/_sources/commands/application.txt b/doc/build/html/_sources/commands/application.txt new file mode 100644 index 0000000..2052da0 --- /dev/null +++ b/doc/build/html/_sources/commands/application.txt @@ -0,0 +1,55 @@ + +.. include:: ../../rst_prolog.rst + +Command application +********************* + +Description +=========== +The **application** command creates a virtual SALOME_ application. +Virtual SALOME applications are used to start SALOME when distribution is needed. + +Usage +===== +* Create an application: :: + + sat application + + Create the virtual application directory in the salomeTool application directory ``$APPLICATION.workdir``. + +* Give a name to the application: :: + + sat application --name + + *Remark*: this option overrides the name given in the virtual_app section of the configuration file ``$APPLICATION.virtual_app.name``. + +* Change the directory where the application is created: :: + + sat application --target + +* Set a specific SALOME_ resources catalog (it will be used for the distribution of components on distant machines): :: + + sat application --catalog + + Note that the catalog specified will be copied to the application directory. + +* Generate the catalog for a list of machines: :: + + sat application --gencat machine1,machine2,machine3 + + This will create a catalog by querying each machine through ssh protocol (memory, number of processor) with ssh. + +* Generate a mesa application (if mesa and llvm are parts of the application). Use this option only if you have to use salome through ssh and have problems with ssh X forwarding of OpengGL modules (like Paravis): :: + + sat launcher --use_mesa + +Some useful configuration pathes +================================= + +The virtual application can be configured with the virtual_app section of the configutation file. + +* **APPLICATION.virtual_app** + + * **name** : name of the launcher (to replace the default runAppli). + * **application_name** : (optional) the name of the virtual application directory, if missing the default value is ``$name + _appli``. + diff --git a/doc/build/html/_sources/commands/clean.txt b/doc/build/html/_sources/commands/clean.txt new file mode 100644 index 0000000..e5d2f38 --- /dev/null +++ b/doc/build/html/_sources/commands/clean.txt @@ -0,0 +1,61 @@ + +.. include:: ../../rst_prolog.rst + +Command clean +**************** + +Description +============ + +The **clean** command removes products in the *source, build, or install* directories of an application. Theses directories are usually named ``SOURCES, BUILD, INSTALL``. + +Use the options to define what directories you want to suppress and to set the list of products + + +Usage +======= + +* Clean all previously created *build* and *install* directories (example application as *SALOME_xx*): + + .. code-block:: bash + + # take care, is long time to restore, sometimes + sat clean SALOME-xx --build --install + +* Clean previously created *build* and *install* directories, only for products with property *is_salome_module*: + + .. code-block:: bash + + sat clean SALOME-xxx --build --install \ + --properties is_salome_module:yes + + +Availables options +====================== + + * **--products** : Products to clean. + + * **--properties** : + + | Filter the products by their properties. + | Syntax: *--properties :* + + * **--sources** : Clean the product source directories. + + * **--build** : Clean the product build directories. + + * **--install** : Clean the product install directories. + + * **--all** : Clean the product source, build and install directories. + + * **--sources_without_dev** : + + | Do not clean the products in development mode, + | (they could have VCS_ commits pending). + + + +Some useful configuration pathes +================================= + +No specific configuration. diff --git a/doc/build/html/_sources/commands/compile.txt b/doc/build/html/_sources/commands/compile.txt new file mode 100644 index 0000000..915705e --- /dev/null +++ b/doc/build/html/_sources/commands/compile.txt @@ -0,0 +1,75 @@ + +.. include:: ../../rst_prolog.rst + +Command compile +**************** + +Description +=========== +The **compile** command allows compiling the products of a SALOME_ application. + + +Usage +===== +* Compile a complete application: :: + + sat compile + +* Compile only some products: :: + + sat compile --products , ... + +* Use *sat -t* to duplicate the logs in the terminal (by default the log are stored and displayed with *sat log* command): :: + + sat -t compile --products + +* Compile a module and its dependencies: :: + + sat compile --products med --with_fathers + +* Compile a module and the modules depending on it (for example plugins): :: + + sat compile --products med --with_children + +* Clean the build and install directories before starting compilation: :: + + sat compile --products GEOM --clean_all + + .. note:: | a warning will be shown if option *--products* is missing + | (as it will clean everything) + +* Clean only the install directories before starting compilation: :: + + sat compile --clean_install + +* Add options for make: :: + + sat compile --products --make_flags + +* Use the *--check* option to execute the unit tests after compilation: :: + + sat compile --check + +* Remove the build directory after successful compilation (some build directory like qt are big): :: + + sat compile --products qt --clean_build_after + +* Stop the compilation as soon as the compilation of a module fails: :: + + sat compile --stop_first_fail + +* Do not compile, just show if products are installed or not, and where is the installation: :: + + sat compile --show + + +Some useful configuration pathes +================================= + +The way to compile a product is defined in the *pyconf file configuration*. +The main options are: + + * **build_source** : the method used to build the product (cmake/autotools/script) + * **compil_script** : the compilation script if build_source is equal to "script" + * **cmake_options** : additional options for cmake. + * **nb_proc** : number of jobs to use with make for this product. diff --git a/doc/build/html/_sources/commands/config.txt b/doc/build/html/_sources/commands/config.txt new file mode 100644 index 0000000..79a4a46 --- /dev/null +++ b/doc/build/html/_sources/commands/config.txt @@ -0,0 +1,89 @@ + +.. include:: ../../rst_prolog.rst + +Command config +****************** + +Description +=========== +The **config** command manages sat configuration. +It allows display, manipulation and operation on configuration files + +Usage +===== +* Edit the user personal configuration file ``$HOME/.salomeTools/SAT.pyconf``. It is used to store the user personal choices, like the favorite editor, browser, pdf viewer: :: + + sat config --edit + +* List the available applications (they come from the sat projects defined in ``data/local.pyconf``: :: + + sat config --list + +* Edit the configuration of an application: :: + + sat config --edit + +* Copy an application configuration file into the user personal directory: :: + + sat config --copy [new_name] + +* | Print the value of a configuration parameter. + | Use the automatic completion to get recursively the parameter names. + | Use *--no_label* option to get *only* the value, *without* label (useful in automatic scripts). + | Examples (with *SALOME-xx* as *SALOME-8.4.0* ): + + .. code-block:: bash + + # sat config --value + sat config --value . # all the configuration + sat config --value LOCAL + sat config --value LOCAL.workdir + + # sat config --value + sat config SALOME-xx --value APPLICATION.workdir + sat config SALOME-xx --no_label --value APPLICATION.workdir + +* | Print in one-line-by-value mode the value of a configuration parameter, + | with its source *expression*, if any. + | This is a debug mode, useful for developers. + | Prints the parameter path, the source expression if any, and the final value: + + :: + + sat config SALOME-xx -g USER + + .. note:: And so, *not only for fun*, to get **all expressions** of configuration + + .. code-block:: bash + + sat config SALOME-xx -g . | grep -e "-->" + + +* Print the patches that are applied: :: + + sat config SALOME-xx --show_patchs + +* Get information on a product configuration: + + .. code-block:: bash + + # sat config --info + sat config SALOME-xx --info KERNEL + sat config SALOME-xx --info qt + +Some useful configuration pathes +================================= + +Exploring a current configuration. + +* **PATHS**: To get list of directories where to find files. + +* **USER**: To get user preferences (editor, pdf viewer, web browser, default working dir). + +sat commands: :: + + sat config SALOME-xx -v PATHS + sat config SALOME-xx -v USERS + + + diff --git a/doc/build/html/_sources/commands/environ.txt b/doc/build/html/_sources/commands/environ.txt new file mode 100644 index 0000000..13b9508 --- /dev/null +++ b/doc/build/html/_sources/commands/environ.txt @@ -0,0 +1,139 @@ + +.. include:: ../../rst_prolog.rst + +Command environ +**************** + +Description +=========== +The **environ** command generates the environment files used +to run and compile your application (as SALOME_ is an example). + +.. note :: + these files are **not** required, + salomeTool set the environment himself, when compiling. + And so does the salome launcher. + + These files are useful when someone wants to check the environment. + They could be used in debug mode to set the environment for *gdb*. + +The configuration part at the end of this page explains how +to specify the environment used by sat (at build or run time), +and saved in some files by *sat environ* command. + +Usage +===== +* Create the shell environment files of the application: :: + + sat environ + +* Create the environment files of the application for a given shell. + Options are bash, bat (for windows) and cfg (the configuration format used by SALOME_): :: + + sat environ --shell [bash|cfg|all] + +* Use a different prefix for the files (default is 'env'): + + .. code-block:: bash + + # This will create file _launch.sh, _build.sh + sat environ --prefix + +* Use a different target directory for the files: + + .. code-block:: bash + + # This will create file env_launch.sh, env_build.sh + # in the directory corresponding to + sat environ --target + +* Generate the environment files only with the given products: + + .. code-block:: bash + + # This will create the environment files only for the given products + # and their prerequisites. + # It is useful when you want to visualise which environment uses + # sat to compile a given product. + sat environ --product ,, ... + + +Configuration +============= + +The specification of the environment can be done through several mechanisms. + +1. For salome products (the products with the property ``is_SALOME_module`` as ``yes``) the environment is set automatically by sat, in respect with SALOME_ requirements. + +2. For other products, the environment is set with the use of the environ section within the pyconf file of the product. The user has two possibilities, either set directly the environment within the section, or specify a python script which wil be used to set the environment programmatically. + +Within the section, the user can define environment variables. He can also modify PATH variables, by appending or prepending directories. +In the following example, we prepend */lib* to ``LD_LIBRARY_PATH`` (note the *left first* underscore), append */lib* to ``PYTHONPATH`` (note the *right last* underscore), and set ``LAPACK_ROOT_DIR`` to **: + +.. code-block:: python + + environ : + { + _LD_LIBRARY_PATH : $install_dir + $VARS.sep + "lib" + PYTHONPATH_ : $install_dir + $VARS.sep + "lib" + LAPACK_ROOT_DIR : $install_dir + } + +It is possible to distinguish the build environment from the launch environment: use a subsection called *build* or *launch*. In the example below, ``LD_LIBRARY_PATH`` and ``PYTHONPATH`` are only modified at run time, not at compile time: + +.. code-block:: python + + environ : + { + build : + { + LAPACK_ROOT_DIR : $install_dir + } + launch : + { + LAPACK_ROOT_DIR : $install_dir + _LD_LIBRARY_PATH : $install_dir + $VARS.sep + "lib" + PYTHONPATH_ : $install_dir + $VARS.sep + "lib" + } + } + +3. The last possibility is to set the environment with a python script. The script should be provided in the *products/env_scripts* directory of the sat project, and its name is specified in the environment section with the key ``environ.env_script``: + +.. code-block:: python + + environ : + { + env_script : 'lapack.py' + } + +Please note that the two modes are complementary and are both taken into account. +Most of the time, the first mode is sufficient. + +The second mode can be used when the environment has to be set programmatically. +The developer implements a handle (as a python method) +which is called by sat to set the environment. +Here is an example: + +.. code-block:: python + + + #!/usr/bin/env python + #-*- coding:utf-8 -*- + + import os.path + import platform + + def set_env(env, prereq_dir, version): + env.set("TRUST_ROOT_DIR",prereq_dir) + env.prepend('PATH', os.path.join(prereq_dir, 'bin')) + env.prepend('PATH', os.path.join(prereq_dir, 'include')) + env.prepend('LD_LIBRARY_PATH', os.path.join(prereq_dir, 'lib')) + return + +SalomeTools defines four handles: + +* **set_env(env, prereq_dir, version)** : used at build and run time. +* **set_env_launch(env, prereq_dir, version)** : used only at run time (if defined!) +* **set_env_build(env, prereq_dir, version)** : used only at build time (if defined!) +* **set_native_env(env)** : used only for native products, at build and run time. + diff --git a/doc/build/html/_sources/commands/generate.txt b/doc/build/html/_sources/commands/generate.txt new file mode 100644 index 0000000..f753261 --- /dev/null +++ b/doc/build/html/_sources/commands/generate.txt @@ -0,0 +1,39 @@ + +.. include:: ../../rst_prolog.rst + +Command generate +**************** + +Description +=========== +The **generate** command generates and compile SALOME modules from cpp modules using YACSGEN. + +.. note:: This command uses YACSGEN to generate the module. It needs to be specified with *--yacsgen* option, or defined in the product or by the environment variable ``$YACSGEN_ROOT_DIR``. + + +Remarks +======= +* This command will only apply on the CPP modules of the application, those who have both properties: :: + + cpp : "yes" + generate : "yes" + +* The cpp module are usually computational components, and the generated module brings the CORBA layer which allows distributing the compononent on remore machines. cpp modules should conform to YACSGEN/hxx2salome requirements (please refer to YACSGEN documentation) + + +Usage +===== +* Generate all the modules of a product: :: + + sat generate + +* Generate only specific modules: :: + + sat generate --products + + Remark: modules which don't have the *generate* property are ignored. + +* Use a specific version of YACSGEN: :: + + sat generate --yacsgen + diff --git a/doc/build/html/_sources/commands/launcher.txt b/doc/build/html/_sources/commands/launcher.txt new file mode 100644 index 0000000..864a31a --- /dev/null +++ b/doc/build/html/_sources/commands/launcher.txt @@ -0,0 +1,52 @@ + +.. include:: ../../rst_prolog.rst + +Command launcher +****************** + +Description +=========== +The **launcher** command creates a SALOME launcher, a python script file to start SALOME_. + + +Usage +===== +* Create a launcher: :: + + sat launcher + + Generate a launcher in the application directory, i.e ``$APPLICATION.workdir``. + +* Create a launcher with a given name (default name is ``APPLICATION.profile.launcher_name``) :: + + sat launcher --name ZeLauncher + + The launcher will be called *ZeLauncher*. + +* Set a specific resources catalog: :: + + sat launcher --catalog + + Note that the catalog specified will be copied to the profile directory. + +* Generate the catalog for a list of machines: :: + + sat launcher --gencat + + This will create a catalog by querying each machine (memory, number of processor) with ssh. + +* Generate a mesa launcher (if mesa and llvm are parts of the application). Use this option only if you have to use salome through ssh and have problems with ssh X forwarding of OpengGL modules (like Paravis): :: + + sat launcher --use_mesa + + +Configuration +============= + +Some useful configuration pathes: + +* **APPLICATION.profile** + + * **product** : the name of the profile product (the product in charge of holding the application stuff, like logos, splashscreen) + * **launcher_name** : the name of the launcher. + diff --git a/doc/build/html/_sources/commands/log.txt b/doc/build/html/_sources/commands/log.txt new file mode 100644 index 0000000..9908f4b --- /dev/null +++ b/doc/build/html/_sources/commands/log.txt @@ -0,0 +1,46 @@ + +.. include:: ../../rst_prolog.rst + +Command log +**************** + +Description +=========== +The **log** command displays sat log in a web browser or in a terminal. + +Usage +===== +* Show (in a web browser) the log of the commands corresponding to an application: :: + + sat log + +* Show the log for commands that do not use any application: :: + + sat log + +* The --terminal (or -t) display the log directly in the terminal, through a CLI_ interactive menu: :: + + sat log --terminal + +* The --last option displays only the last command: :: + + sat log --last + +* To access the last compilation log in terminal mode, use --last_terminal option: :: + + sat log --last_terminal + +* The --clean (int) option erases the n older log files and print the number of remaining log files: :: + + sat log --clean 50 + + + +Some useful configuration pathes +================================= + +* **USER** + + * **browser** : The browser used to show the log (by default *firefox*). + * **log_dir** : The directory used to store the log files. + diff --git a/doc/build/html/_sources/commands/package.txt b/doc/build/html/_sources/commands/package.txt new file mode 100644 index 0000000..6d6648a --- /dev/null +++ b/doc/build/html/_sources/commands/package.txt @@ -0,0 +1,81 @@ + +.. include:: ../../rst_prolog.rst + +Command package +**************** + +Description +============ +The **package** command creates a SALOME_ archive (usually a compressed Tar_ file .tgz). +This tar file is used later to intall SALOME on other remote computer. + +Depending on the selected options, the archive includes sources and binaries +of SALOME products and prerequisites. + +Usually utility *salomeTools* is included in the archive. + +.. note:: + By default the package includes the sources of prerequisites and products. + To select a subset use the *--without_property* or *--with_vcs* options. + + +Usage +===== +* Create a package for a product (example as *SALOME_xx*): :: + + sat package SALOME_xx + + This command will create an archive named ``SALOME_xx.tgz`` + in the working directory (``USER.workDir``). + If the archive already exists, do nothing. + + +* Create a package with a specific name: :: + + sat package SALOME_xx --name YourSpecificName + +.. note:: + By default, the archive is created in the working directory of the user (``USER.workDir``). + + If the option *--name* is used with a path (relative or absolute) it will be used. + + If the option *--name* is not used and binaries (prerequisites and products) + are included in the package, the OS_ architecture + will be appended to the name (example: ``SALOME_xx-CO7.tgz``). + + Examples: :: + + # Creates SALOME_xx.tgz in $USER.workDir + sat package SALOME_xx + + # Creates SALOME_xx_.tgz in $USER.workDir + sat package SALOME_xx --binaries + + # Creates MySpecificName.tgz in $USER.workDir + sat package SALOME_xx --name MySpecificName + + +* Force the creation of the archive (if it already exists): :: + + sat package SALOME_xx --force + + +* Include the binaries in the archive (products and prerequisites): :: + + sat package SALOME_xx --binaries + + This command will create an archive named ``SALOME_xx _.tgz`` + where is the OS_ architecture of the machine. + + +* Do not delete Version Control System (VCS_) informations from the configurations files of the embedded salomeTools: :: + + sat package SALOME_xx --with_vcs + + The version control systems known by this option are CVS_, SVN_ and Git_. + + +Some useful configuration pathes +================================= + +No specific configuration. diff --git a/doc/build/html/_sources/commands/prepare.txt b/doc/build/html/_sources/commands/prepare.txt new file mode 100644 index 0000000..a28fdae --- /dev/null +++ b/doc/build/html/_sources/commands/prepare.txt @@ -0,0 +1,100 @@ + +.. include:: ../../rst_prolog.rst + +Command prepare +**************** + +Description +=========== +The **prepare** command brings the sources of an application in the *sources +application directory*, in order to compile them with the compile command. + +The sources can be prepared from VCS software (*cvs, svn, git*), an archive or a directory. + +.. warning:: When sat prepares a product, it first removes the + existing directory, except if the development mode is activated. + When you are working on a product, you need to declare in + the application configuration this product in **dev** mode. + +Remarks +======= + +VCS bases (git, svn, cvs) +------------------------- + +The *prepare* command does not manage authentication on the cvs server. +For example, to prepare modules from a cvs server, you first need to login once. + +To avoid typing a password for each product, +you may use a ssh key with passphrase, or store your password +(in .cvspass or .gitconfig files). +If you have security concerns, it is also possible to use +a bash agent and type your password only once. + + + +Dev mode +-------- + +By default *prepare* uses *export* mode: it creates an image +of the sources, corresponding to the tag or branch specified, +without any link to the VCS base. +To perform a *checkout* (svn, cvs) or a *git clone* (git), +you need to declare the product in dev mode in your application configuration: +edit the application configuration file (pyconf) and modify the product declaration: + +.. code-block:: bash + + sat config -e + # and edit the product section: + # : {tag : "my_tag", dev : "yes", debug : "yes"} + +The first time you will execute the *sat prepare* command, +your module will be downloaded in *checkout* mode +(inside the SOURCES directory of the application. +Then, you can develop in this repository, and finally push +them in the base when they are ready. +If you type during the development process by mistake +a *sat prepare* command, the sources in dev mode will +not be altered/removed (Unless you use -f option) + + +Usage +===== +* Prepare the sources of a complete application in SOURCES directory (all products): :: + + sat prepare + +* Prepare only some modules: :: + + sat prepare --products , ... + +* Use --force to force to prepare the products in development mode + (this will remove the sources and do a new clone/checkout): :: + + sat prepare --force + +* Use --force_patch to force to apply patch to the products + in development mode (otherwise they are not applied): :: + + sat prepare --force_patch + + +Some useful configuration pathes +================================= + +Command *sat prepare* uses the *pyconf file configuration* of each product to know how to get the sources. + +.. note:: to verify configuration of a product, and get name of this *pyconf files configuration* + + .. code-block :: bash + + sat config --info + + +* **get_method**: the method to use to prepare the module, possible values are cvs, git, archive, dir. +* **git_info** : (used if get_method = git) information to prepare sources from git. +* **svn_info** : (used if get_method = svn) information to prepare sources from cvs. +* **cvs_info** : (used if get_method = cvs) information to prepare sources from cvs. +* **archive_info** : (used if get_method = archive) the path to the archive. +* **dir_info** : (used if get_method = dir) the directory with the sources. diff --git a/doc/build/html/_sources/configuration.txt b/doc/build/html/_sources/configuration.txt new file mode 100644 index 0000000..7f415a3 --- /dev/null +++ b/doc/build/html/_sources/configuration.txt @@ -0,0 +1,88 @@ +************* +Configuration +************* + +*salomeTools* uses files to store its configuration parameters. + +There are several configuration files which are loaded by salomeTools in a specific order. +When all the files are loaded a *config* object is created. +Then, this object is passed to all command scripts. + + +Syntax +====== +The configuration files use a python-like structure format +(see `config module `_ for a complete description). + +* **{}** define a dictionary, +* **[]** define a list, +* **@** can be used to include a file, +* **$prefix** reference to another parameter (ex: ``$PRODUCT.name``), +* **#** comments. + +.. note:: in this documentation a reference to a configuration parameter will be noted ``XXX.YYY``. + +Description +=========== + +.. _VARS-Section: + +VARS section +------------- +| This section is dynamically created by salomeTools at run time. +| It contains information about the environment: date, time, OS, architecture etc. + +:: + + # to get the current setting + sat config --value VARS + +PRODUCTS section +------------------ +| This section is defined in the product file. +| It contains instructions on how to build a version of SALOME (list of prerequisites-products and versions) + +:: + + # to get the current setting + sat config SALOME-xx --value PRODUCTS + +APPLICATION section +--------------------- +| This section is optional, it is also defined in the product file. +| It gives additional parameters to create an application based on SALOME, as versions of products to use. + +:: + + # to get the current setting + sat config SALOME-xx --value APPLICATION + + +.. _USER-Section: + +USER section +-------------- +This section is defined by the user configuration file, +``~/.salomeTools/salomeTools.pyconf``. + +The ``USER`` section defines some parameters (not exhaustive): + +* **workDir** : + + | The working directory. + | Each product will be usually installed here (in sub-directories). + +* **browser** : The web browser to use (*firefox*). + +* **editor** : The editor to use (*vi, pluma*). + +* and other user preferences. + +:: + + # to get the current setting + sat config SALOME-xx --value USER + + + + diff --git a/doc/build/html/_sources/index.txt b/doc/build/html/_sources/index.txt new file mode 100644 index 0000000..2cfb090 --- /dev/null +++ b/doc/build/html/_sources/index.txt @@ -0,0 +1,76 @@ + +.. include:: ../rst_prolog.rst + +************ +Salome Tools +************ + +.. image:: images/sat_about.png + :scale: 100 % + :align: center + +.. warning:: This documentation is under construction. + +The **Sa**\ lome\ **T**\ ools (sat) is a suite of commands +that can be used to perform operations on SALOME_. + +For example, sat allows you to compile SALOME's codes +(prerequisites, products) +create application, run tests, create package, etc. + +This utility code is a set of Python_ scripts files. + + +Quick start +=========== + +.. toctree:: + :maxdepth: 1 + + Installation of salomeTools + Configuration + Usage of salomeTools + +List of Commands +================ + +.. toctree:: + :maxdepth: 1 + + config + prepare + compile + launcher + application + log + environ + clean + package + generate + +Developer documentation +======================= + +.. toctree:: + :maxdepth: 1 + + Add a command + + +Code documentation +================== + +.. toctree:: + :maxdepth: 1 + + SAT modules + + +Release Notes +============= + +.. toctree:: + :maxdepth: 1 + + Release Notes 5.0.0 + diff --git a/doc/build/html/_sources/installation_of_sat.txt b/doc/build/html/_sources/installation_of_sat.txt new file mode 100644 index 0000000..da661be --- /dev/null +++ b/doc/build/html/_sources/installation_of_sat.txt @@ -0,0 +1,15 @@ +************ +Installation +************ + +Usually user could find (and use) command **sat** directly after a 'detar' installation of SALOME. + +.. code-block:: bash + + tar -xf .../SALOME_xx.tgz + cd SALOME_xx + ls -l sat # sat -> salomeTools/sat + + +Python package (scripts of salomeTools) actually remains in directory *salomeTools*. + diff --git a/doc/build/html/_sources/release_notes/release_notes_5.0.0.txt b/doc/build/html/_sources/release_notes/release_notes_5.0.0.txt new file mode 100644 index 0000000..55b6aad --- /dev/null +++ b/doc/build/html/_sources/release_notes/release_notes_5.0.0.txt @@ -0,0 +1,5 @@ +*************** +Release notes +*************** + +In construction. diff --git a/doc/build/html/_sources/usage_of_sat.txt b/doc/build/html/_sources/usage_of_sat.txt new file mode 100644 index 0000000..80c7b46 --- /dev/null +++ b/doc/build/html/_sources/usage_of_sat.txt @@ -0,0 +1,97 @@ + +.. include:: ../rst_prolog.rst + +******************** +Usage of SAlomeTools +******************** + +Usage +===== +sat usage is a Command Line Interface (CLI_). + +.. code-block:: bash + + sat [generic_options] [command] [product] [command_options] + +Options of sat +-------------- + +Useful *not exhaustive* generic options of *sat* CLI. + +*--help or -h* +............... + +Get help as simple text. + +.. code-block:: bash + + sat --help # get the list of existing commands + sat --help compile # get the help on a specific command 'compile' + + +*--debug or -g* +................ + +Execution in debug mode allows to see more trace and *stack* if an exception is raised. + +*--verbose or -v* +.................. + +Change verbosity level (default is 3). + +.. code-block:: bash + + # for product 'SALOME_xx' for example + # execute compile command in debug mode with trace level 4 + sat -g -v 4 compile SALOME_xx + + +Build a SALOME product +====================== + +Get the list of available products +---------------------------------- + +To get the list of the current available products in your context: + +.. code-block:: bash + + sat config --list + +Prepare sources of a product +---------------------------- + +To prepare (get) *all* the sources of a product (*SALOME_xx* for example): + +.. code-block:: bash + + sat prepare SALOME_xx + +| The sources are usually copied in directories +| *$USER.workDir + SALOME_xx... + SOURCES + $PRODUCT.name* + + +Compile SALOME +---------------- + +To compile products: + +.. code-block:: bash + + # compile all prerequisites/products + sat compile SALOME_xx + + # compile only 2 products (KERNEL and SAMPLES), if not done yet + sat compile SALOME_xx --products KERNEL,SAMPLES + + # compile only 2 products, unconditionaly + sat compile SALOME_xx ---products SAMPLES --clean_all + + +| The products are usually build in the directories +| *$USER.workDir + SALOME_xx... + BUILD + $PRODUCT.name* +| +| The products are usually installed in the directories +| *$USER.workDir + SALOME_xx... + INSTALL + $PRODUCT.name* + + diff --git a/doc/build/html/_sources/write_command.txt b/doc/build/html/_sources/write_command.txt new file mode 100644 index 0000000..9a68de8 --- /dev/null +++ b/doc/build/html/_sources/write_command.txt @@ -0,0 +1,157 @@ + +.. include:: ../rst_prolog.rst + + +Add a user custom command +*************************** + +Introduction +============ + +.. note:: This documentation is for Python_ developers. + + +The salomeTools product provides a simple way to develop commands. +The first thing to do is to add a file with *.py* extension in the ``commands`` directory of salomeTools. + +Here are the basic requirements that must be followed in this file in order to add a command. + +Basic requirements +================== + +By adding a file *mycommand.py* in the ``commands`` directory, salomeTools will define a new command named ``mycommand``. + +In *mycommand.py*, there must be the following method: :: + + def run(args, runner, logger): + # your algorithm ... + pass + +In fact, at this point, the command will already be functional. +But there are some useful services provided by salomeTools : + +* You can give some options to your command: + +.. code-block:: python + + import src + + # Define all possible option for mycommand command : 'sat mycommand ' + parser = src.options.Options() + parser.add_option('m', 'myoption', \ + 'boolean', 'myoption', \ + 'My option changes the behavior of my command.') + + def run(args, runner, logger): + # Parse the options + (options, args) = parser.parse_args(args) + # algorithm + + +* You can add a *description* method that will display a message when the user will call the help: + + +.. code-block:: python + :emphasize-lines: 9,10 + + import src + + # Define all possible option for mycommand command : 'sat mycommand ' + parser = src.options.Options() + parser.add_option('m', 'myoption', \ + 'boolean', 'myoption', \ + 'My option changes the behavior of my command.') + + def description(): + return _("The help of mycommand.") + + def run(args, runner, logger): + # Parse the options + (options, args) = parser.parse_args(args) + # algorithm + +HowTo access salomeTools config and other commands +======================================================== + +The *runner* variable is an python instance of *Sat* class. +It gives access to *runner.cfg* which is the data model defined from all +*configuration pyconf files* of salomeTools +For example, *runner.cfg.APPLICATION.workdir* +contains the root directory of the current application. + +The *runner* variable gives also access to other commands of salomeTools: + +.. code-block:: python + + # as CLI_ 'sat prepare ...' + runner.prepare(runner.cfg.VARS.application) + +HowTo logger +============== + +The logger variable is an instance of the Logger class. +It gives access to the write method. + +When this method is called, the message passed as parameter +will be displayed in the terminal and written in an xml log file. + +.. code-block:: python + + logger.write("My message", 3) # 3 as default + +The second argument defines the level of verbosity +that is wanted for this message. +It has to be between 1 and 5 (the most verbose level). + +HELLO example +============== + +Here is a *hello* command, file *commands/hello.py*: + +.. code-block:: python + + import src + + """ + hello.py + Define all possible options for hello command: + sat hello + """ + + parser = src.options.Options() + parser.add_option('f', 'french', 'boolean', 'french', "french set hello message in french.") + + def description(): + return _("The help of hello.") + + def run(args, runner, logger): + # Parse the options + (options, args) = parser.parse_args(args) + # algorithm + if not options.french: + logger.write('HELLO! WORLD!\n') + else: + logger.write('Bonjour tout le monde!\n') + +A first call of hello: + +.. code-block:: bash + + # Get the help of hello: + ./sat --help hello + + # To get bonjour + ./sat hello --french + Bonjour tout le monde! + + # To get hello + ./sat hello + HELLO! WORLD! + + # To get the log + ./sat log + + + + + diff --git a/doc/build/html/_static/ajax-loader.gif b/doc/build/html/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/doc/build/html/_static/alabaster.css b/doc/build/html/_static/alabaster.css new file mode 100644 index 0000000..1d88b3e --- /dev/null +++ b/doc/build/html/_static/alabaster.css @@ -0,0 +1,689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; + font-size: 0.9em; + background-color: #fff; + color: #000; + margin: 0; + padding: 0; +} + + +div.document { + width: 1000px; + margin: 30px auto 0 auto; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 250px; +} + +div.sphinxsidebar { + width: 250px; + font-size: 14px; + line-height: 1.5; +} + +hr { + border: 1px solid #B1B4B6; +} + +div.body { + background-color: #fff; + color: #3E4349; + padding: 0 30px 0 30px; +} + +div.body > .section { + text-align: left; +} + +div.footer { + width: 1000px; + margin: 20px auto 30px auto; + font-size: 14px; + color: #888; + text-align: right; +} + +div.footer a { + color: #888; +} + +p.caption { + font-family: inherit; + font-size: inherit; +} + + + +div.sphinxsidebar a { + color: #444; + text-decoration: none; + border-bottom: 1px dotted #999; +} + +div.sphinxsidebar a:hover { + border-bottom: 1px solid #999; +} + +div.sphinxsidebarwrapper { + padding: 18px 10px; +} + +div.sphinxsidebarwrapper p.logo { + padding: 0; + margin: -10px 0 0 0px; + text-align: center; +} + +div.sphinxsidebarwrapper h1.logo { + margin-top: -10px; + text-align: center; + margin-bottom: 5px; + text-align: left; +} + +div.sphinxsidebarwrapper h1.logo-name { + margin-top: 0px; +} + +div.sphinxsidebarwrapper p.blurb { + margin-top: 0; + font-style: normal; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: 'Garamond', 'Georgia', serif; + color: #444; + font-size: 24px; + font-weight: normal; + margin: 0 0 5px 0; + padding: 0; +} + +div.sphinxsidebar h4 { + font-size: 20px; +} + +div.sphinxsidebar h3 a { + color: #444; +} + +div.sphinxsidebar p.logo a, +div.sphinxsidebar h3 a, +div.sphinxsidebar p.logo a:hover, +div.sphinxsidebar h3 a:hover { + border: none; +} + +div.sphinxsidebar p { + color: #555; + margin: 10px 0; +} + +div.sphinxsidebar ul { + margin: 10px 0; + padding: 0; + color: #000; +} + +div.sphinxsidebar ul li.toctree-l1 > a { + font-size: 120%; +} + +div.sphinxsidebar ul li.toctree-l2 > a { + font-size: 110%; +} + +div.sphinxsidebar input { + border: 1px solid #CCC; + font-family: 'goudy old style', 'minion pro', 'bell mt', Georgia, 'Hiragino Mincho Pro', serif; + font-size: 1em; +} + +div.sphinxsidebar hr { + border: none; + height: 1px; + color: #AAA; + background: #AAA; + + text-align: left; + margin-left: 0; + width: 50%; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: #004B6B; + text-decoration: underline; +} + +a:hover { + color: #6D4100; + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Garamond', 'Georgia', serif; + font-weight: normal; + margin: 30px 0px 10px 0px; + padding: 0; +} + +div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } +div.body h2 { font-size: 180%; } +div.body h3 { font-size: 150%; } +div.body h4 { font-size: 130%; } +div.body h5 { font-size: 100%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #DDD; + padding: 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + color: #444; + background: #EAEAEA; +} + +div.body p, div.body dd, div.body li { + line-height: 1.4em; +} + +div.admonition { + margin: 20px 0px; + padding: 10px 30px; + background-color: #EEE; + border: 1px solid #CCC; +} + +div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fafafa; +} + +div.admonition p.admonition-title { + font-family: 'Garamond', 'Georgia', serif; + font-weight: normal; + font-size: 24px; + margin: 0 0 10px 0; + padding: 0; + line-height: 1; +} + +div.admonition p.last { + margin-bottom: 0; +} + +div.highlight { + background-color: #fff; +} + +dt:target, .highlight { + background: #FAF3E8; +} + +div.warning { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.danger { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.error { + background-color: #FCC; + border: 1px solid #FAA; + -moz-box-shadow: 2px 2px 4px #D52C2C; + -webkit-box-shadow: 2px 2px 4px #D52C2C; + box-shadow: 2px 2px 4px #D52C2C; +} + +div.caution { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.attention { + background-color: #FCC; + border: 1px solid #FAA; +} + +div.important { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.note { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.tip { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.hint { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.seealso { + background-color: #EEE; + border: 1px solid #CCC; +} + +div.topic { + background-color: #EEE; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre, tt, code { + font-family: 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; + font-size: 0.8em; +} + +.hll { + background-color: #FFC; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +img.screenshot { +} + +tt.descname, tt.descclassname, code.descname, code.descclassname { + font-size: 0.95em; +} + +tt.descname, code.descname { + padding-right: 0.08em; +} + +img.screenshot { + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils { + border: 1px solid #888; + -moz-box-shadow: 2px 2px 4px #EEE; + -webkit-box-shadow: 2px 2px 4px #EEE; + box-shadow: 2px 2px 4px #EEE; +} + +table.docutils td, table.docutils th { + border: 1px solid #888; + padding: 0.25em 0.7em; +} + +table.field-list, table.footnote { + border: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +table.footnote { + margin: 15px 0; + width: 100%; + border: 1px solid #EEE; + background: #FDFDFD; + font-size: 0.9em; +} + +table.footnote + table.footnote { + margin-top: -15px; + border-top: none; +} + +table.field-list th { + padding: 0 0.8em 0 0; +} + +table.field-list td { + padding: 0; +} + +table.field-list p { + margin-bottom: 0.8em; +} + +/* Cloned from + * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 + */ +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +table.footnote td.label { + width: .1px; + padding: 0.3em 0 0.3em 0.5em; +} + +table.footnote td { + padding: 0.3em 0.5em; +} + +dl { + margin: 0; + padding: 0; +} + +dl dd { + margin-left: 30px; +} + +blockquote { + margin: 0 0 0 30px; + padding: 0; +} + +ul, ol { + /* Matches the 30px from the narrow-screen "li > ul" selector below */ + margin: 10px 0 10px 30px; + padding: 0; +} + +pre { + background: #fee; + padding: 7px 30px; + margin: 15px 0px; + line-height: 1.3em; +} + +div.viewcode-block:target { + background: #ffd; +} + +dl pre, blockquote pre, li pre { + margin-left: 0; + padding-left: 30px; +} + +tt, code { + background-color: #ecf0f3; + color: #222; + /* padding: 1px 2px; */ +} + +tt.xref, code.xref, a tt { + background-color: #FBFBFB; + border-bottom: 1px solid #fff; +} + +a.reference { + text-decoration: none; + border-bottom: 1px dotted #004B6B; +} + +/* Don't put an underline on images */ +a.image-reference, a.image-reference:hover { + border-bottom: none; +} + +a.reference:hover { + border-bottom: 1px solid #6D4100; +} + +a.footnote-reference { + text-decoration: none; + font-size: 0.7em; + vertical-align: top; + border-bottom: 1px dotted #004B6B; +} + +a.footnote-reference:hover { + border-bottom: 1px solid #6D4100; +} + +a:hover tt, a:hover code { + background: #EEE; +} + + +@media screen and (max-width: 870px) { + + div.sphinxsidebar { + display: none; + } + + div.document { + width: 100%; + + } + + div.documentwrapper { + margin-left: 0; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + } + + div.bodywrapper { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + } + + ul { + margin-left: 0; + } + + li > ul { + /* Matches the 30px from the "ul, ol" selector above */ + margin-left: 30px; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .bodywrapper { + margin: 0; + } + + .footer { + width: auto; + } + + .github { + display: none; + } + + + +} + + + +@media screen and (max-width: 875px) { + + body { + margin: 0; + padding: 20px 30px; + } + + div.documentwrapper { + float: none; + background: #fff; + } + + div.sphinxsidebar { + display: block; + float: none; + width: 102.5%; + margin: 50px -30px -20px -30px; + padding: 10px 20px; + background: #333; + color: #FFF; + } + + div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, + div.sphinxsidebar h3 a { + color: #fff; + } + + div.sphinxsidebar a { + color: #AAA; + } + + div.sphinxsidebar p.logo { + display: none; + } + + div.document { + width: 100%; + margin: 0; + } + + div.footer { + display: none; + } + + div.bodywrapper { + margin: 0; + } + + div.body { + min-height: 0; + padding: 0; + } + + .rtd_doc_footer { + display: none; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .footer { + width: auto; + } + + .github { + display: none; + } +} + + +/* misc. */ + +.revsys-inline { + display: none!important; +} + +/* Make nested-list/multi-paragraph items look better in Releases changelog + * pages. Without this, docutils' magical list fuckery causes inconsistent + * formatting between different release sub-lists. + */ +div#changelog > div.section > ul > li > p:only-child { + margin-bottom: 0; +} + +/* Hide fugly table cell borders in ..bibliography:: directive output */ +table.docutils.citation, table.docutils.citation td, table.docutils.citation th { + border: none; + /* Below needed in some edge cases; if not applied, bottom shadows appear */ + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} \ No newline at end of file diff --git a/doc/build/html/_static/basic.css b/doc/build/html/_static/basic.css new file mode 100644 index 0000000..43e8baf --- /dev/null +++ b/doc/build/html/_static/basic.css @@ -0,0 +1,540 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + width: 30px; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/doc/build/html/_static/comment-bright.png b/doc/build/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..551517b8c83b76f734ff791f847829a760ad1903 GIT binary patch literal 3500 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/doc/build/html/_static/comment.png b/doc/build/html/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..92feb52b8824c6b0f59b658b1196c61de9162a95 GIT binary patch literal 3445 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 Xn!ZpXD%P(H00000NkvXXu0mjf= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/doc/build/html/_static/down-pressed.png b/doc/build/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7ad782782e4f8e39b0c6e15c7344700cdd2527 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}Z23@f-Ava~9&<9T!#}JFtXD=!G zGdl{fK6ro2OGiOl+hKvH6i=D3%%Y^j`yIkRn!8O>@bG)IQR0{Kf+mxNd=_WScA8u_ z3;8(7x2){m9`nt+U(Nab&1G)!{`SPVpDX$w8McLTzAJ39wprG3p4XLq$06M`%}2Yk zRPPsbES*dnYm1wkGL;iioAUB*Or2kz6(-M_r_#Me-`{mj$Z%( literal 0 HcmV?d00001 diff --git a/doc/build/html/_static/down.png b/doc/build/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..3003a88770de3977d47a2ba69893436a2860f9e7 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}xaV3tUZ$qnrLa#kt978NlpS`ru z&)HFc^}^>{UOEce+71h5nn>6&w6A!ieNbu1wh)UGh{8~et^#oZ1# z>T7oM=FZ~xXWnTo{qnXm$ZLOlqGswI_m2{XwVK)IJmBjW{J3-B3x@C=M{ShWt#fYS9M?R;8K$~YwlIqwf>VA7q=YKcwf2DS4Zj5inDKXXB1zl=(YO3ST6~rDq)&z z*o>z)=hxrfG-cDBW0G$!?6{M<$@{_4{m1o%Ub!naEtn|@^frU1tDnm{r-UW|!^@B8 literal 0 HcmV?d00001 diff --git a/doc/build/html/_static/file.png b/doc/build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/doc/build/html/_static/jquery.js b/doc/build/html/_static/jquery.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/doc/build/html/_static/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/doc/build/html/_static/minus.png b/doc/build/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/doc/build/html/_static/pygments.css b/doc/build/html/_static/pygments.css new file mode 100644 index 0000000..1a14f2a --- /dev/null +++ b/doc/build/html/_static/pygments.css @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #303030 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/doc/build/html/_static/sat_v5.0.png b/doc/build/html/_static/sat_v5.0.png new file mode 100644 index 0000000000000000000000000000000000000000..1057f5b8f07071382476cd8963dd0316c03248e1 GIT binary patch literal 10035 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 -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('

<=img2<(R~ra!m8HG{)J| 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%0DS*J?fL?%s4;-YU&En2KIp}kFR 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�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 l~mf; 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 literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/commands/application.doctree b/doc/build/doctrees/commands/application.doctree new file mode 100644 index 0000000000000000000000000000000000000000..90f3f1b17e2c67493514806d57ceeb55050ecf37 GIT binary patch literal 22946 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 YPGrTNHm-c$Bhk7G5l7yQD-PcJKMH&p7XSbN literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/commands/compile.doctree b/doc/build/doctrees/commands/compile.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a595a1eadf1c06a9833e53814931b747d56991be GIT binary patch literal 25904 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 S{=9+w1a@5cNo=tq_5T8q)DPbP literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/commands/config.doctree b/doc/build/doctrees/commands/config.doctree new file mode 100644 index 0000000000000000000000000000000000000000..52f56f6aded120feb596ff48a5c48d29dc31debf GIT binary patch literal 26162 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 bj{G1*v5t)^|9J=^^I_cJqZC|mPWS%;_S{Fx literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/commands/environ.doctree b/doc/build/doctrees/commands/environ.doctree new file mode 100644 index 0000000000000000000000000000000000000000..62663397d9c1c814958d1c9d9e835cfe2dd96b7b GIT binary patch literal 34698 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�eI7-Tr{fT3t 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 literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/commands/log.doctree b/doc/build/doctrees/commands/log.doctree new file mode 100644 index 0000000000000000000000000000000000000000..9cc7f1590aad826aa9b509a3dd2a90054b5deb49 GIT binary patch literal 18705 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 literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/commands/package.doctree b/doc/build/doctrees/commands/package.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4ca44f4d5f8d86a5e0b7d840869a7af4a3ab7333 GIT binary patch literal 24403 zcmd^H2Y4IDv6fXyNTizOCYN)kC=s+R*_P?T(3C7IlqlQe$#5J70)ZnJ5D4(*02U|b z*s-0+>50>uUwZFxx)Uc%@73wO$LY=KdH>Ar0fz%vWGi{^eee6oTiou<>_4-!eQ$4C zoX!-}i zRK7UoxGN8d*wJjsU8TjQ$5IC!w?)UN^I5m`P+~P0(#5f{R3T%Hr_u*gqmH|}KVh*P zNU_SEGg8i5$Y3NpS|$K17C=~1z`mwma+pYa?pmEg*<=27{fU*}hxTd8jx&e5zF(k? zPnQ(ljy{xV0Rf<;m6IxY%5h5W293*`D7eQMMaEUOFy$U=08e=Capvdd&F=AtV$pLq9xB^wz4EYE%9cUUjCk&ezI&403e$N`a?J4$iSM~cN#p;&T~9tx`Dp4NAiy@HD|oAKP! zefNwuwcK99Wq77qVK37qc$R9io2%t_wraMUDy7$^Vs=xd>^7;D_Ht8l?P`_1gv)KS zYO$B;Qrn_h?Im1h9cs0`+LTyFP-1bl#oS)}jHDs?y=Tn}C-&YUW%XI8DL+*fDnJU{$^Vx#q4)(18i)ngXTP;>y zL*-$`#@+9`*S4wd#HoQruex$~f1+YhU8Ei0WkV_$OkJ*as$J?z1(gzQsxPsjs!D_! z(63V$q}0A4b=8o%dPo7*!_={Y9C5 z?B27p6Nc%`7BbFMT$RT1QB=c>>NJruFDvk+)mgRpGHQk3i`C+De0PNLX~|Zyck|}3 zrQ+%FeA(mwI9i6zD5y~eb$pGfq8z}YP;+a+WYzHkW@RmyobMiFFee#f_3lNtqTzU` zlG0wW@6_SQGmdozM}!mr#?+SD{0pi@@?TY(f6;fxIsdaw{#Qw-QU!n#^5VJ$6By^k zFN|8mWh5IzNE-0~5~;1VkUVv?Kx(OlRPx<2Lpn2ngf4nNy6Boh3R?a~^=g6v9cuuY zcCCgUU?x>tEto0QEMQt|!A$$^4GgBsfax*ggNTLDMU=9Ia(OJCEp`U|Q0Mr;QLg*m z=~0tCk`Zo+nruEHfc+@7sTQ`cVgh@0E$kb8_t6add;@!LFz%@s5t(IDDA`P^l#-II zbgd2R;!TYBtg21tV+Yoo)!DUJAETNC>zZ1uxA^X@jP*o=byv1jwJti$4lg~%RZ*eu zi5l`YhP6Iq$Pm5zSOpZ1Q=4m198#+U#oAgFxBKqn8O60#6ums28sPC%6_4l8L^kbs zab%>*!_q_?%$CrSO&0RSRL1Mn2^|bX24o#FB8!h_Mxx-Kz~Fa;z&|MA(DjLGTdl57 zQX53qb+x)a*>|79x?XB@?cKAxs-aVePi7Bh$DK@8I|jdX_Ud762X~0cY@y`PNGk0_ zHF_#*v@N93VF`lz!;eUEpT&OmY;|TW^5>}Kg8b-O?2hV|h2j66Os@~9~H1q}U#>Y`fcFH#!?`i5HQclz#sg`w~7ofrFlhdiD(aMOm7 zUn8Txcwt75NOE7o$X}|?sYU)WwN{WHQ;YoNzWWMB-ecUQcYg@^2sL*2LNJ$^&`Nl7 z*#DKR#P*Q=4_B!BD%R)K>cU!mUZai^eU7cw=e553I@X7Cl!5&I{`tJ92h$tnBnQgF zMx91w@p@LHGo(i23Q#A@eFLL^qdLD9{hQP=g8sM)`sggdbJ9GmjJa>dVEQe-`&MXW zFEY(aZ(=u~bWRj88Oi3I&dJo+uyfGq9OxN5UmnSU?c2^t%8>HBZ5$&5N{`Z=sOLNj z_d3m_P9_|0!-V55-+lYA+GVdWIlJ%Rk@!2?%n%!6Z7A|C6;JVK``v1_;9q9&yYH!= zX=O`!OmN-{_;>s6`?yee6~Hu?l~sWEL#4N1?0*-sUWUnZ-f{2Yj6YD5G4kZWeI>gO zM$I+oOkq|x(=dwqYNimf?P?O|gcb_TA60hP)uLBeWp#S!DN7t(_9JK35~xs8x~nc{Nif;tN3kMc@4r zqi1oS7W7g5c@#HFsc{u^zYIM0`tDa4&z- zX{890=LyGZD|_WsK0l2l?iL6O8BWIH#@!l$yIJwl=nb3Vu|bvftWt_}Bz|L6AY;KL z9kNPA3wAwUFIh(Zc;I`@q*487r7mxnFOCwU!zM z-EY85-}K#YvDQH(MBiH;j+)9tds`Tdx!;DJzT>;!4azNKBhLJL^_fE)Cb;hRk?#uR z8!U_b09pUgcYg#yQbWIk5`s4`*BQA#hOf=YP^^LJ-JgK@r@s3$M#00i1~iS;s4P9i z+@C{}`+WBoEQ5iW^0b>!a>e`v7AJlw1H^lQs=31F{)*N7b(_7E=k~I2rWsYA+Jnj- zo?e$(@83WTUis5h?r(wocfR}kK<)c z4FBcRqN5fqVqN}C*=Vad@ISN(bQCi4X|c(YpxF**+$m%*e&X7R%4vB{9^DQqaZ%P& zy)6hb2H>!bHn~)!gB1Aw^lNKo>`Xs*aVcOgUZB>1aL3am!gRi?$|C zOOQQa1#Kc%b6P5p^h%C&Gp1P#Cgik?nPw9ILy(sv_uFo!6$pH460F@htw)Y+s(pnm z+$7Pd`8%1iax(zMmCR}lw`#k|*Up~*Bh&EQAa)^S=1DN#eM63O+33Z}T! zA_OyuH4U<+RwP1?)d+lABb40@DOFF7HK}hoow0G1^0Hox)*>AWuM=78jVxYluThW- z_h?CsV%9mJQK1b;N7-`68L|x>gJ^&~7J*O4i4196bDX7aUz-9rbiBkt3Qv^hwCV|< zgxHM;d^!XQ=3qMYATCVub?iWw=J6LiC&pE9-I>Qw<4jvqhk`2?qXS1kufPMO}AS`vP^su zi}85ZRXW_?E@kv&0WX)-se(INQiJ_wh)1U}9lQDI_~FwTLf)PDU#n)0i^Gh)q@6ia z5Z5W#w~qbrEJ>V6jQqz+jm}1vaK<(SK5dfxyZ?jv!>zd_%fmTSo7)A*W&`AC7^0D5 zv8!wmny4kUJT_(r(or3G5w_knDUMX=-HE`bb3~M`+YCVJcCJ#RxtC{GrgJsZdBU_+ zGszf$Q|naOCS>OuvQ<@8q%N=u7f9OdDqM(ks1U2Dz?`%lv4DON0-w4>goe%;MxgVq zYNgiE#hUXH;k;CH%EoJjq@o0x8O%?(+r|`yE)$M!%^~B<@I-|kA_*Zqs0T6XT%NAb z<@^)-ikLbD^JMB3225IL2Y&gqQ{KB}N7&{KOS*!&dUBj`XzD_{gfNto>82}^uVjXq zkf7a&fVCcqz^6W8@6H+NoVn;3ZBd8I`Mgs~=CfWYMteX7qn3W%$ri4)o#Y-Q&a7mx~#6QSj@7#RH?#QNsj61RWMnb z%wj5~XKd&fDx+&2xo4~c2P$klH9K%1W=0c}MLNjCyG)iat}D{C)pp>3J+SkdIH&B$ z(t!h*$L$^o4?V0@9_nPKEoTat4i!BF-#+fcU!5i#5mkr}` z+Kg-^H_V&}1Td0^z^4+PW(t^N^wK_wua+f!LZ{1+M;1T+ch%0olCqelWXLlqh@*}( z*moiuXG#)hzTI&1gf7~0v*M4J^w|}E0@8t)2SDLw zpPq<#KztGcpPnp2wBDSpZW}7<^0v=m^%C?HE&Zt?{b^dd>>eGKn2Jfz;@~f5y5FaZ z)H{sS>jAE=`{l_H&yvQSbao`0wz!v^v$M52I+(_~4pXrK!_|+7+U_nF^l{IS%%fJX z&Xk@h={!|>mVkY>0lVpNz(RdiHQb{;N95Gy+jlDa_;ZTyFpmK=fUSN7Jjk3zRAj#EEziv zOEwt{;mmNaflLhZ^csG6Vb5xteN|#p4Cmc~)r^XsW)!T=v2VcaE0iz-Et3-q(4@wB z@e!j}Y!$E(qyh#*<*x9Uwxf67g?e0z_9M1a52n4KLR;49mUej0EI=lwrkI?U)XoUE zdKhZYI@so<26B>@@Z#rXhba#3U0D{DOskUjPKVoosuhAtQ=O{iEVw5346hIu zt!pbP`#eS_M&d7e}5rajq zgH+V|*CX)h4U$Fok<9{nvR%<_ng0BZlGmF|UbFS*ZfDo;>P&uu>}~3OwNxBL0&`{M~bU!vBHpq=D0YN_2}B^I%^)m+_}1v7ys_ z21&60XA$`HIiZ`y>DY!(H&#@HYj0hO+??p8|?gD1U`L_h3M`79A_*eN6_*qQ@vPs zn8P3Xz83!j5&uIi{(+0Dm?r3sek5{#Y~=FdOlV?V9dL2G_Y)zS-35P&bg0Uc^UCBp zkU&2}BCPat1U}s-l5`Wu02+5pztAkd6qa9UmTJeOOE_qbel0}5F+@Dg4G#|+)b8I3 zX;hiPzBpH=-ysp2@G@FO4E-LF(BKaUeEOrXch{028^$4J9!!M(B;@xSa$Y2^jsYuH zYCQaFIAe;%8t~6KI&CPXW@K8GSUaFR3|PTLu2w)`_v$q6&uoY}r*XTu0R93p6u|#8 zbJ1U+HeBp)2z>fGo60mL>_y^M@b}yvyr5nChfw`9L=_tS??W`#*?)0z?rJ;}_;0xF z(G~3LE<%IW7Obuug%=zW;V29rlHk3fh_fCtLzC?XoJq9Iv^6*v(v}_JX=d%d!Q8tW z@Eh!rq#fB%V2$*Ipt8cUL;%!P)5`2+sigDlWtjk8ZUFOm=fMDm=duOD(~}hv$Y7FrGoUpfgxYHn__U6N8?R@i6|WzFbD)^l3)Rt@D)B?0->pw0iDw40 z?Z_z_Ub>j=DAK(C8OVHq8*x^samI$+B#u5hmR?QZVLq>TM3+W_dNqdg$oQB*@3u9l z92>+6bskx%9LGpHSB_)FYR4I??KnbKgKKbcge%GMl0_Y)zHau26PS1=(Q_oSr;QK> zuQ?HcPbW#X`tkRC6$ND4ex{_KrPC8rK)>)Un$U3Y2)J@!mC)AI*#fKHWqR2d zZIXD{TT`3B2D`K)@M*KicmP{dY_{sc%@z^XVTAGbjkB7Dd)~MZM%C)cu~62mlS92D zSs4e04NT{N06LtDz^C)@49b>)plsEy+^uL6eN@I`0KqIQU>A!>iw+Lyy6V_H0cI zulDmPB<_(M%Y3YY^WyRWk)=O@@~nded~jzCPXhw_8MDgI%k=oPC%MHM*x!!@c^ur` zl`SP_?P4w$Lqxr}y2I5g>D>hMV{wGaOw32q;`G$Z*fJOOVxR(kJtcD0+!SR>vs`se!Jc4)}m%R$nvvSjChi>IJL^goK760g9&) z_>>WG`m5^)Bo6r5M5f+2B6P$E<$A-7o2fTU7u1_kCJEIWkfGl27ln28MlqYNH=v>{ zUI9Ocz^8*O#*`c99n>5AT(rfaJVMZpA;57ZJV7g+-4?4BcTp(D4F%)o=C}cFmq|jn zK?dCXEnyvQ0;$0bD)R6OEF}a!m066z&3Om7`Su^_1ZYB&PYU^zCYKYOl3a^^T8M5i zM2w#MkOt@<$s{54AOm{-=)4a7qd;oVgNl5-0{x8$aH@yJ81$TXfFAXIQ5;k^3DwP- zO4d1e=SsVY?%nlMj?q3wh;Pxv^~Y#$m4r}bpxY3mI^`JcWBKPAIYzrLST%W^Fz_+j zL-^&>?eg9&@v%sDlV={f!J>1GaL1ctLm=m^@OrOXMdX6w}9!~--jPzs# zK0QSwcjrvT47u9&JXJ`Zrb!Yfz`FhT)*v`MgYiZ6PNq0L9b~o8<)GOe!d(yj>cC#l zV7{68q(2i>0R1ckK0RAxcIQl%3{yaxvSrV(SC%MM@Obp)5IqMJ{dP;`4kf!Ua=pH>^B42=Kn|uU@tA>W?g?PQIF6l9$Kh+oA-WT<>V6%8 z>xgjrgo(IaNXhP>9?}ibi<#~|O^0FI5WR%yxZh1l>rh10OYznwTL!rc@Y5;VYrN^P z;bJ}+XyMVzkT66q$J53)+@U+7M88)^>MJ?*=m=|42wo)wuV#Ygbhe~Nsq`9&eJ!3` zLiVcQlWxAofL@1aTu4>1ZRIX2dcCl{0nfUV(s}?IkjChZAVT$c69S*!%p6je;pcCW z7u+zkEbmM>d3>8FEkkf+67B(#JAL#eLw!y5Qoh8@Ub?&gihcA}@bcG)^fvsES?*o< z;nUkiChsjEgLlYF)Ej$pjD>mM$>EILGjb(F6O=y4U$WwADC;zR+0bdcO2hkNu%Wr) zDNgSKAKdfZ2z+`Eo9K7AC=z#5Dp zY>iy4_8$|5k5?F={U_vQq1wly+J6%4qWz~t^ryq3KVw8kwPzHp{bxDU2f^!oK`vNp zsQl-^2IW7Gz^53smxZdnDysVT zz%HtPUqt^PEc%B=bX0Xl!K(j=!`aGRZkKAP{Exu~<$r>}r=Q{(D9;e)Q2uAa@bd}- zl)q127OH$pRQX?kU6lW&i2hYr^skNRsPc@0mH!QgvsHP0sZ~Sme+xcn|2qUe{T|Oi zd&V$__J0tDKUNr^{h#Dzq1v}bwZ9+iqWzym^k2fF|7t`>wPzHp{ogp8ky~Nvy*{`P ztD*jX2PgFZ2Lhk|iD#fcqnJbge+k1POx-mD^gl{o7OMa1sQ!z=F8VLQ4}3!%7QM`f zj_S`SSpVhBJDdK&9bFCeUja_&--N)YX30ix=QD~q^p6R{$_fMYUnMUK)qhP?{}!-| z{;eW?~C*&EF*q$R%UAf9zfBl@yN+-BKHT};u8=|$R++ea_P`yt$$ z>x{FedbsV;B_g{O*QjL2aZlD5-*4>Er4rjxDsqki#LHOVGNjWqb@T6*e5x>7#@DQ1 z%sBKAj$7;$sE2M=#4b!{t%h&64ajvQq$$na1t`-?&E)Mf~mdN%-0y7q-nNzmEm+4K&$wiT3bI z3*YNhD32wlc(zP?5r;xuohgrvCo2;@kNOdhIW#V3ES1eCQyECIOb}1*`;Fq`o>R_1%dtFNC(&!1sqrHGST6D_r1Bm;OybwE^>FQi+)!n# za=pl0sqb&V2g`+n^l%|=S9xQ&BRlDqaf^jVV~D%mUd7H>X^9Gmvrh@#ha9@EHRDWlg4pY% zB2!`61@~1=B~^A*_lZm-fnNyjR^J{rIAA+VXMzvzf2P#L6tP6D^<;-Nkk6W$4I@)7VrU)Tte;? z*bg!^g;dn;mAKm)ErgDn)^ROj%Ssn<0}C$?+Z&>5M{)rF{cXy5xbbJJDynVjc6Gjb zE#Kbls5mZuyFl$%7pj-5?dp1Uk$SG`ltt09y{_hNb-ieJqvZc+Jh9GV^E%H>f(7e5 pwd+TBahH!9~fY_f?Y9R_e6W@mc0dUmd^p4rWc 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 E19jXO`v3p{ literal 0 HcmV?d00001 diff --git a/doc/build/doctrees/environment.pickle b/doc/build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..8b1f6c44f68cefd0d3f23012284953bdcbf6538f GIT binary patch literal 508083 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%0AoZmn_5YbAy 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�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