From de3bef95cad2de43beecf656bf3fc344b9a2a7b8 Mon Sep 17 00:00:00 2001 From: manuegrx Date: Mon, 21 Aug 2023 11:37:29 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20populse/?= =?UTF-8?q?capsul@f820f5e9a5c6ae927c77d295fa9b45e81f0eb1f6=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .buildinfo | 2 +- .doctrees/api/api.doctree | Bin 11667 -> 12043 bytes .doctrees/api/attributes.doctree | Bin 216386 -> 220161 bytes .doctrees/api/engine.doctree | Bin 317847 -> 324725 bytes .doctrees/api/in_context.doctree | Bin 36524 -> 37593 bytes .doctrees/api/index.doctree | Bin 120122 -> 120174 bytes .doctrees/api/info.doctree | Bin 2700 -> 2752 bytes .doctrees/api/pipeline.doctree | Bin 923244 -> 933701 bytes .doctrees/api/plugins.doctree | Bin 3518 -> 3651 bytes .doctrees/api/process.doctree | Bin 288385 -> 291377 bytes .doctrees/api/qt_apps.doctree | Bin 68143 -> 70410 bytes .doctrees/api/qt_gui.doctree | Bin 407857 -> 414589 bytes .doctrees/api/sphinxext.doctree | Bin 123370 -> 124313 bytes .doctrees/api/study_config.doctree | Bin 442671 -> 449911 bytes .doctrees/api/subprocess.doctree | Bin 66740 -> 67995 bytes .doctrees/api/utils.doctree | Bin 17611 -> 18061 bytes .doctrees/documentation.doctree | Bin 4952 -> 5004 bytes .doctrees/environment.pickle | Bin 8636334 -> 8619910 bytes .doctrees/index.doctree | Bin 16814 -> 16866 bytes .doctrees/installation.doctree | Bin 15609 -> 15661 bytes .../nbsphinx/tutorial/capsul_tutorial.ipynb | 482 +++++++------- .doctrees/status.doctree | Bin 14343 -> 14086 bytes .doctrees/tutorial/capsul_tutorial.doctree | Bin 258042 -> 259383 bytes .../user_guide_tree/advanced_usage.doctree | Bin 36098 -> 36150 bytes .doctrees/user_guide_tree/index.doctree | Bin 34724 -> 34776 bytes .doctrees/user_guide_tree/xml_spec.doctree | Bin 109341 -> 109393 bytes ...634bbb1e238ef3c961df47bf1fe5761c78907.png} | Bin ...bb1e238ef3c961df47bf1fe5761c78907.png.map} | 6 +- ...231e14284be742c4fb61bec12cd51dc39a7c5.png} | Bin ...14284be742c4fb61bec12cd51dc39a7c5.png.map} | 6 +- ...5f64e448b26e8cfe0c5e670481400d0fcb077.png} | Bin ...4e448b26e8cfe0c5e670481400d0fcb077.png.map | 7 + ...47d19fa4223bea6ca58b453fd030115dd7f5e.png} | Bin ...9fa4223bea6ca58b453fd030115dd7f5e.png.map} | 8 +- ...aa85cf41038337f705bce1b1ac33df2b967a5.png} | Bin ...cf41038337f705bce1b1ac33df2b967a5.png.map} | 12 +- ...92d3fe30d0b7b20cc7b4a4b8906ed8efbc241.png} | Bin ...fe30d0b7b20cc7b4a4b8906ed8efbc241.png.map} | 6 +- ...f649f3ecdc0c12213c361e1381c7b0d057c7f.png} | Bin ...f3ecdc0c12213c361e1381c7b0d057c7f.png.map} | 6 +- ...49aa2052c6b4b35b5c08c42c8fa268d6c2.png.map | 7 - ...51d35121ed07b7c0aa61e635fe72939b0f8fd.png} | Bin ...5121ed07b7c0aa61e635fe72939b0f8fd.png.map} | 2 +- ...c89b2e1071c61c0f95fe3469c0fbf0fe9c2d9.png} | Bin ...2e1071c61c0f95fe3469c0fbf0fe9c2d9.png.map} | 8 +- ...00181268e267f2c8d7f18fcd6a9541f7d7983.png} | Bin ...1268e267f2c8d7f18fcd6a9541f7d7983.png.map} | 2 +- .../capsul/attributes/attributes_factory.html | 23 +- .../capsul/attributes/attributes_schema.html | 60 +- .../capsul/attributes/completion_engine.html | 146 ++-- .../attributes/completion_engine_factory.html | 30 +- .../completion_engine_iteration.html | 50 +- .../attributes/fom_completion_engine.html | 82 ++- _modules/capsul/engine.html | 125 +++- _modules/capsul/engine/database.html | 65 +- _modules/capsul/engine/database_json.html | 60 +- _modules/capsul/engine/database_populse.html | 60 +- _modules/capsul/engine/module/attributes.html | 23 +- _modules/capsul/engine/module/axon.html | 38 +- _modules/capsul/engine/module/fom.html | 28 +- _modules/capsul/engine/module/fsl.html | 43 +- _modules/capsul/engine/module/matlab.html | 33 +- _modules/capsul/engine/module/python.html | 33 +- _modules/capsul/engine/module/spm.html | 33 +- _modules/capsul/engine/run.html | 58 +- _modules/capsul/engine/settings.html | 87 ++- _modules/capsul/in_context/fsl.html | 48 +- _modules/capsul/in_context/spm.html | 38 +- .../capsul/pipeline/custom_nodes/cv_node.html | 23 +- .../pipeline/custom_nodes/loo_node.html | 23 +- .../pipeline/custom_nodes/map_node.html | 23 +- .../pipeline/custom_nodes/reduce_node.html | 23 +- .../pipeline/custom_nodes/strcat_node.html | 23 +- .../capsul/pipeline/custom_nodes/strconv.html | 35 +- _modules/capsul/pipeline/pipeline.html | 235 +++++-- .../pipeline/pipeline_construction.html | 108 ++- _modules/capsul/pipeline/pipeline_nodes.html | 207 ++++-- _modules/capsul/pipeline/pipeline_tools.html | 133 +++- .../capsul/pipeline/pipeline_workflow.html | 33 +- .../capsul/pipeline/process_iteration.html | 33 +- _modules/capsul/pipeline/python_export.html | 23 +- .../capsul/pipeline/topological_sort.html | 72 +- _modules/capsul/pipeline/xml.html | 28 +- _modules/capsul/process/nipype_process.html | 23 +- _modules/capsul/process/process.html | 209 ++++-- _modules/capsul/process/runprocess.html | 43 +- _modules/capsul/process/xml.html | 43 +- .../capsul/qt_apps/utils/application.html | 28 +- .../capsul/qt_apps/utils/fill_treectrl.html | 33 +- .../capsul/qt_apps/utils/find_pipelines.html | 33 +- _modules/capsul/qt_apps/utils/window.html | 23 +- _modules/capsul/qt_gui/board_widget.html | 45 +- .../qt_gui/widgets/activation_inspector.html | 72 +- .../widgets/attributed_process_widget.html | 58 +- .../capsul/qt_gui/widgets/links_debugger.html | 28 +- .../widgets/pipeline_developer_view.html | 440 ++++++++++--- .../widgets/pipeline_file_warning_widget.html | 23 +- .../qt_gui/widgets/pipeline_user_view.html | 28 +- .../capsul/qt_gui/widgets/viewer_widget.html | 30 +- _modules/capsul/sphinxext/layoutdocgen.html | 55 +- _modules/capsul/sphinxext/load_pilots.html | 23 +- _modules/capsul/sphinxext/pipelinedocgen.html | 50 +- _modules/capsul/sphinxext/usecasesdocgen.html | 45 +- .../config_modules/attributes_config.html | 33 +- .../config_modules/brainvisa_config.html | 33 +- .../config_modules/fom_config.html | 33 +- .../config_modules/freesurfer_config.html | 33 +- .../config_modules/fsl_config.html | 33 +- .../config_modules/matlab_config.html | 33 +- .../config_modules/nipype_config.html | 35 +- .../config_modules/smartcaching_config.html | 23 +- .../config_modules/somaworkflow_config.html | 60 +- .../config_modules/spm_config.html | 33 +- .../capsul/study_config/config_utils.html | 23 +- _modules/capsul/study_config/memory.html | 80 ++- .../capsul/study_config/process_instance.html | 43 +- _modules/capsul/study_config/run.html | 23 +- .../capsul/study_config/study_config.html | 135 ++-- _modules/capsul/subprocess/fsl.html | 58 +- _modules/capsul/subprocess/spm.html | 58 +- _modules/capsul/utils/finder.html | 23 +- _modules/capsul/utils/version_utils.html | 28 +- _modules/index.html | 18 +- _static/basic.css | 22 + _static/classic.css | 2 +- _static/documentation_options.js | 3 +- _static/pygments.css | 1 + _static/searchtools.js | 26 +- _static/sphinx_highlight.js | 16 +- api/api.html | 28 +- api/attributes.html | 244 +++---- api/engine.html | 327 ++++----- api/in_context.html | 61 +- api/index.html | 89 +-- api/info.html | 18 +- api/pipeline.html | 621 +++++++++--------- api/plugins.html | 22 +- api/process.html | 226 +++---- api/qt_apps.html | 104 +-- api/qt_gui.html | 430 ++++++------ api/sphinxext.html | 70 +- api/study_config.html | 447 +++++++------ api/subprocess.html | 115 ++-- api/utils.html | 42 +- documentation.html | 20 +- genindex.html | 18 +- index.html | 28 +- installation.html | 32 +- objects.inv | Bin 22289 -> 22441 bytes py-modindex.html | 18 +- search.html | 18 +- searchindex.js | 2 +- status.html | 20 +- tutorial/capsul_tutorial.html | 44 +- tutorial/capsul_tutorial.ipynb | 482 +++++++------- user_guide_tree/advanced_usage.html | 44 +- user_guide_tree/index.html | 32 +- user_guide_tree/xml_spec.html | 72 +- 158 files changed, 5231 insertions(+), 3422 deletions(-) rename _images/{inheritance-778392b974ccb936fc9ac25731b090c41de9fc74.png => inheritance-075634bbb1e238ef3c961df47bf1fe5761c78907.png} (100%) rename _images/{inheritance-778392b974ccb936fc9ac25731b090c41de9fc74.png.map => inheritance-075634bbb1e238ef3c961df47bf1fe5761c78907.png.map} (69%) rename _images/{inheritance-6f0196adf61b3efabfc081a361eed3bbcc53b302.png => inheritance-247231e14284be742c4fb61bec12cd51dc39a7c5.png} (100%) rename _images/{inheritance-6f0196adf61b3efabfc081a361eed3bbcc53b302.png.map => inheritance-247231e14284be742c4fb61bec12cd51dc39a7c5.png.map} (53%) rename _images/{inheritance-7d05cf49aa2052c6b4b35b5c08c42c8fa268d6c2.png => inheritance-2c75f64e448b26e8cfe0c5e670481400d0fcb077.png} (100%) create mode 100644 _images/inheritance-2c75f64e448b26e8cfe0c5e670481400d0fcb077.png.map rename _images/{inheritance-e458fdc02f95c90895615cf6e4253e87f5bab7f8.png => inheritance-66047d19fa4223bea6ca58b453fd030115dd7f5e.png} (100%) rename _images/{inheritance-e458fdc02f95c90895615cf6e4253e87f5bab7f8.png.map => inheritance-66047d19fa4223bea6ca58b453fd030115dd7f5e.png.map} (67%) rename _images/{inheritance-aeb97b1b1acc22b633a578d3c7bff9bd0c2673b9.png => inheritance-704aa85cf41038337f705bce1b1ac33df2b967a5.png} (100%) rename _images/{inheritance-aeb97b1b1acc22b633a578d3c7bff9bd0c2673b9.png.map => inheritance-704aa85cf41038337f705bce1b1ac33df2b967a5.png.map} (93%) rename _images/{inheritance-6e23f62006d4fa6a2a1ee5f83ef2807b1b8f84d3.png => inheritance-75892d3fe30d0b7b20cc7b4a4b8906ed8efbc241.png} (100%) rename _images/{inheritance-6e23f62006d4fa6a2a1ee5f83ef2807b1b8f84d3.png.map => inheritance-75892d3fe30d0b7b20cc7b4a4b8906ed8efbc241.png.map} (84%) rename _images/{inheritance-c26322b89f25833a7eabedb52256b05c4fc4badc.png => inheritance-779f649f3ecdc0c12213c361e1381c7b0d057c7f.png} (100%) rename _images/{inheritance-c26322b89f25833a7eabedb52256b05c4fc4badc.png.map => inheritance-779f649f3ecdc0c12213c361e1381c7b0d057c7f.png.map} (78%) delete mode 100644 _images/inheritance-7d05cf49aa2052c6b4b35b5c08c42c8fa268d6c2.png.map rename _images/{inheritance-818b2b3daf1391fb8caf178679e6aed9d6d1f1a3.png => inheritance-7dd51d35121ed07b7c0aa61e635fe72939b0f8fd.png} (100%) rename _images/{inheritance-818b2b3daf1391fb8caf178679e6aed9d6d1f1a3.png.map => inheritance-7dd51d35121ed07b7c0aa61e635fe72939b0f8fd.png.map} (67%) rename _images/{inheritance-1d084e6cbc7e1df0d0fac53b60908681eeb6362e.png => inheritance-937c89b2e1071c61c0f95fe3469c0fbf0fe9c2d9.png} (100%) rename _images/{inheritance-1d084e6cbc7e1df0d0fac53b60908681eeb6362e.png.map => inheritance-937c89b2e1071c61c0f95fe3469c0fbf0fe9c2d9.png.map} (76%) rename _images/{inheritance-5868c3805ac0910bcaeb83cf91b24e7037470b3f.png => inheritance-ee200181268e267f2c8d7f18fcd6a9541f7d7983.png} (100%) rename _images/{inheritance-5868c3805ac0910bcaeb83cf91b24e7037470b3f.png.map => inheritance-ee200181268e267f2c8d7f18fcd6a9541f7d7983.png.map} (67%) diff --git a/.buildinfo b/.buildinfo index 68132b609..99a19f1c8 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 539498812a7cbcaec0feb775425499c5 +config: 8fb6fb9f6aab4d84e0fbac6b9e61d16b tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/api/api.doctree b/.doctrees/api/api.doctree index e62b036cb06c0c3803ddb5db837f2d47fb591edf..c0e30bb2be034967bec254e552cfa774433b2df3 100644 GIT binary patch literal 12043 zcmcIqO^h5z6<*sryF2@5uVYUV9Gh`|*Ku|?A|WBhpol1ju*o<|0tkty(=**O)w4a_ zP5;=tiX37@2rKFm(jbHc;=qppAwUtJNFWZJxFK;t$^k_Ye~N_QkP{caSJgk&Jv-CG zZnDzMPQ8Bh>ec(+tLpChUaWn6YGX?L@uPvqEN6RNHw?!$%pm4-hTDk-rW3}m#^$+z(2d)v}Dk(#E`WbVZoY+g{rC544Mn7eNYcUSqer(1r^kIN{2xS0nQ zA(X;3MaE`YVXQ~&JX_1>&|+s0DFlBe)cu~B=RgYLXkThpfI;G~@EXEo88N#^wm*uv zJX#f(BuW$yZ|4G{6kt|PujzKxNgzyzQcs1Cb%3w;eBEP8$oOZTVP=zAJ+@|>S4>;6 zkmOg>^UXDD;JJPnG(#v4bjxYF?LP80Xm)*f&{4}viw2&EdJ2v8B~Qk{JcX)-O+W1$_{wi#-+g&IrO zvfPnenlXX$~*4(*oTY%;nm+xgJ7pB3k+X^HxuRXW}*h4CNm1OuakiT zL;I_WD2#&k_vp7jXm1+@trD#QxQhVmwF);?a7q7X6X?G?;I{DkX$ai6FnkHzOq7G0 zi2yE{QNVqh3>+BTe^f+a6u9r8-+KeDn5MccF9EE-R=BBxOZsn4pg$Je`zNkk`OLg0 z#wQOCVVsF_j5AS#FC=$zC8$r6odZMtK3Lh$z1Lmnw?C-wuBziac7<|Y27)(Mc&j2# z`Zr9VKNj&1PKHlZ~{jtgLU^y9rFfw+uj_Y)--g=?&G+lW_TzGE2^hTUNus=J}O!msO|0d=m zvMEoUOoY1u#RVl}{zjb+oH1`zgmP5I{2TrDmofJw8B>UIp`p%KO_k$-{x22&s;NTy zZ%m*+oGRv+V+48V67xfMi+#&iUfPQzny8)k&JSL*gDq8*oN|)Sc!`i6vt}neV~&^V zmm)_TLI>%oog&FjR{Cd;jLVVo847KsXR;o`jgvSj2(nlC$tib!ba4BHF8s((l1!&Z zuPh|OnrsbimiN;TbON3iKqkryAQRzrWWnC*Ii(0LX6}xC9XX4GBl2|5bEE!4FtVRJ z;!EhK)WEbDVf3Lgnrq28t8il}Fz9Q91p;Elb^7QlD185{uot%`7sS^&4v zZ(ra)wAcDq4&R6S;F}n~ zlmnS4&w)(T;Kzyv3+R8Bj8*S{<4gbB6%iSQ{*TdbU+CYOpg$&T1(A1+OCjAx2XVgf6@+89KI}QUBPlm( z4Tts#Q$;bk2e(R3xkKbA?W#wTMeZKSLK?>qNGMh89)2S9btkZOngbH*B``?EE8eL!wvF)h;so< zo{|#NHibmPgE7+tZvxI^#H2&Qf@$$Z-y}kkCOAv+=3ze1bUSO-_=>r0A!?x>MnS4n z<2A!<<6U-(FB9>CI47`c>H|pX2!F?DijvKex<6UO|gjI?5aTM1N))%fYg=oBNRVzNL7f)R`Zn zIUv^ph7j49Q_Poa-RVVo&qT!WwwE6U6_MZIn;q9TG{YqR4Td3JT#L`hrxuEcMT;-E zY1=WI;mdjyx>_#chrwOqOGY&Cv@8V?SRt_JP!SKkWbmkvh~y^tbCDOAk>P6F14^l5 zAjY_XiMxQjr^pfzs;*dpB~$dMW>|sVwrL{tY=w@qX=$L$7BQIs#USbo*On4Bt&1aV z!B%Y0FS^w*eNl_1L)M6ew*by2pps3b=nB;rGRNs55p8P#%FZXJ-h8LVmp#+VIbJj! z5STnn88i-T?C;p+P@*CU zlA0EHlq0+RSg_-S`nE!*N=;6OS7`1Et=)*71>aQ|V2h$R z(?wUgnOKOHxsH6rE<9T$AX_lDnI+9zhe*S>Hm#tE z4Y7&XC7jUpW`+aGTFJ#dWS-)U89Xm3p%6i1?o;PTNNY+xi>xtUy{{uAucJlxL literal 11667 zcmcIqO>87b751(@V~>B=o9qy@+2H(pv+HrB{1GRCh!sJw!W(U(AS9yRo}QYi9`|%N z{j+NyLV`rlT9i1DMt~5Y2v8&t2Tt6OxFF?#qKH35LLkJ68yD_;ulldL=ck8pVrj-x zuV1}-^}hG2y1TwNYTv!RGbjJVhVOFIK5Xfoj_q`qABm-oV}t`{2hm&6#ji)NMcbm` z>9>3*^b8h>IcON%v^pNMqgNxbPU?Ya`K_e?qR))LbnL79aXv5ViNE_|!7^NHnYVk(@eX$5$)*3`;BM^KE~ZPLmgmFyd#={PHlGtU z)9$cCB|357_$S~jzZXHdAD;*Dc^IFI-#~Zhx`)X$>*@o??I#x{00K6_dMO@iaX*ns@VC02GuZOc)6=ajKWy*BUio`5%r*M7x zDNuS|i`6-%e04#ByV4FViv^lxBKy)R&z%AKbVV}*Hc&2$?LAp1dpEw8q><}62J`(^ z`v1kaeIthR)9IYJDd#dLR$XRy5FG6gm84is6dGdD!k9>o;cEy)Vm-3hV~`XP{gM99VBFg6oJ9nJz*R9jNC5f(%eQEo^44Y7z;aO7ffti^+f z6-d~jYng@_M8{I$mhRd3*+7yc%bZwNs*zlb!yD~O^MUU5SP+SOCdWFWIoSMyM7NH) z988)^lGT}VuS%K0Vmr?tS{u44tfEzw5BsKzu#C%!pUbRpQgb|R2c>pXtQE{C@c(K8 z{QUK)kpIP`0A$E>Q9%4R{}1B)JNzvk?ep)72gV>-oSus3BBKA!Bo9?QN%^N$$|u7! zLGn7oh8+x5`Cm(T#_b%>xD7lDW)wXCadJHWHYot(@cj3Oi)V3qDxOP#=z~cfs(6y} zpR1H7;`wM*eZF8??26+ajj7On`stKX23CihJ{$Xx$;gR8_A25q4&>L- zZ#IzcO+ik>G!(DGz10f9aw?ou!6p5JDfB0TyHg3SCZD=nFIr)52;QGy_!7LCD2F!_ zHN^s%QJ{T?44fF+pH)O*9JIeizuBO@e;l+*v|{k!1`l_n<}`Z|K1e( z6Ty9a>dK9unMYzge|iYxOq64siJD?1xsxkFy+U?Q4D}MM%yRE_4*h0>`jM(S&SO_7 z=XD@htMFDuob*pkp+6DvC#FU`*>FZe{si18m31b{A9{vTIFX&n5&M8DbKf2;!jk<(U_ zVH4o~u)=LM8A$(oQ|M1jhNsHO;0IynNHZL}YxY`&#!GbNio9@Rx%5U{JUN@4*i81y zwErIFBeN+_olJzg0mTI+WBx>)PMk6CSA=q0#{3=qX3Ln%NyZeSTxh8CRa50Gp#MXK zziO(G{<~A?52p&7aEuTixJtO@0}k>>gl1MDoW1($Y;DnNDm;h z6P^jjON|#oTOQB)>6x1%$xc@K8}pNLq8iLM-^8(03c>!c1ypAl`+rFq2!6TWw6JJLz;^2rp9eHll ze;7t)xg&lY{gfJ5kRyygG|G<<&L<@>DqMw|p^pKP2P(W%GoJLfrqD;m_b)&%UOx!w z;*rp2O1Kuv(~WP}HPiM3-8NVY2V7cNIE4DkG+Yt&Oq8RZiJGE0%4`AruVgbg0r+38 z2-mm;u#0{(f&cWV^{*Vhkufc##$AB$l?vb0)FA!qQ|MQv#-&nf#H5ifQ69V&{Yz7U z`9nGIO^jd4flQR=KqhL6Gev_1^uJBUs`tOirT?vph>S!3`{*|l`u8R1PY7E9=8prm z+Z9f#Fq8f_rqCY=bG~t7Rzp{yZ7RW|i)FwA`c{Mq%4)&{9aZ(SDR~dU&D8 z8=*(cBrW41t)`Ngk0h3S76c$efO54-%q7X80z(F;Gb zya9$lkAY*P2aZQ{fsPJFQ=kuAG*;pP!R@dQ&|FTMp=Y7B7C44ROeVUDfosGc0zcwx z*Kq>d37B&6>M5~CR4zLlXop?L8$^(-6T8L5{qBGmVm?fsk0s1vQljBGmur#+0p~Gd z(jg(W?2A>85j#ke1fuBbX|c?8D{I!oCOb3{wLlL-KUJ!UT8FjqYIg1{c z%Ed+;X~jxST8YGk(v^~l{(q3?Vm-E-`;hj&yLh40S)8Fc_y`n7h%C%05^I)j_d>nL z5OKV`6{o?u6L)ybaJ-JzVMM3FFhl^`7xnldgd$?nTFScSVZ`fVT@M3C%SGa}iS%0Q zgacR0QV@Za0+Y@N@eE4_H>3p7wS9s=7r8zQJC1fZpp-fTo{Qr%Z0dPWnI%S`-86kO zPSFjmWBPjAqKVL>5;`uXrNJ+YRZPZ5G3b&wh^$G}v@TAlB`vQ>zv#|^d87ku$XW-G zuYjDGHIbs5RA0y(yN5)y%mElUUzq#ne`{jhWv)iV9MmOfOK<^vBo`SE@2Nb*T|5X} ze{XjeVvw4S0`Ax?$LsAz;v8v87oe$u7X^R<0I~%6&V!FWj)<;%U87{4B)R#AQu8QR zos#wd8=uL7t{j87fjk&k7_1TKZPZaG;L+73aRFI5(6R!}CZPE)<;bx(;~&|9ey9;I z&%y^8ykI$${Hy*zN2z@^L}mL3)g7`OH#N&K^dz_!3=X!R0RZEQL!4z0(fc5DF$9r3 zC37=b367CJj$zteWI?(#oTbGAq`s1#IiU2l96hc_Vq+de$eKZ$bx_1daDg)rosPvh z16l_f1Fg!^z(@5!Et76-U=2{Y|R!D1sFRdzaCu#YXo3uwqI=)W0VM}314i_MB511{E1@THImPxr{+J+T&s0ez*FkbG^`kgFwbb}GL GTmJ))Xw1j} diff --git a/.doctrees/api/attributes.doctree b/.doctrees/api/attributes.doctree index d22c49cb8866b9dc2f7b5c1b03d714be5a7cb483..0fade719e9518d0cd7ead0e762c4b7e2d899f24c 100644 GIT binary patch literal 220161 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 EKMy{qL;wH) literal 216386 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 diff --git a/.doctrees/api/engine.doctree b/.doctrees/api/engine.doctree index 844492b7c6f1072619fdd20dfc3b9ef559165c47..1e8072ea955fbdbab31434789b8893640ea36964 100644 GIT binary patch literal 324725 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 \ No newline at end of file diff --git a/_modules/capsul/attributes/attributes_schema.html b/_modules/capsul/attributes/attributes_schema.html index cad0cac15..e72a8c771 100644 --- a/_modules/capsul/attributes/attributes_schema.html +++ b/_modules/capsul/attributes/attributes_schema.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -135,7 +135,9 @@

Source code for capsul.attributes.attributes_schema

from capsul.pipeline.pipeline_nodes import ProcessNode -
[docs]class AttributesSchema(object): +
+[docs] +class AttributesSchema(object): ''' An AttributesSchema has a name, which is used as an identifier to specify completion. ''' @@ -152,7 +154,10 @@

Source code for capsul.attributes.attributes_schema

self.attribute_sets = sets
-
[docs]class EditableAttributes(Controller): + +
+[docs] +class EditableAttributes(Controller): ''' A set of attributes (group) used to define process parameters attributes. Attributes are traits in the EditableAttributes Controller. ''' @@ -161,13 +166,19 @@

Source code for capsul.attributes.attributes_schema

[docs]def set_attribute(object, name, value): + +
+[docs] +def set_attribute(object, name, value): ''' ''' setattr(object, name, value)
-
[docs]class ProcessAttributes(Controller): + +
+[docs] +class ProcessAttributes(Controller): ''' This is the base class for managing attributes for a process. @@ -198,7 +209,9 @@

Source code for capsul.attributes.attributes_schema

# needed for self.copy() return (self._process, self._schema_dict) -
[docs] def set_parameter_attributes(self, parameter, schema, editable_attributes, +
+[docs] + def set_parameter_attributes(self, parameter, schema, editable_attributes, fixed_attibute_values, allow_list=True): ''' Set attributes associated with a single process parameter. @@ -285,7 +298,10 @@

Source code for capsul.attributes.attributes_schema

self.parameter_attributes[parameter] = (parameter_editable_attributes, fixed_attibute_values)
-
[docs] def get_parameters_attributes(self): + +
+[docs] + def get_parameters_attributes(self): ''' Get attributes for each process parameter ''' pa = {} @@ -314,7 +330,10 @@

Source code for capsul.attributes.attributes_schema

pa[parameter] = attributes return pa
-
[docs] def copy(self, with_values=True): + +
+[docs] + def copy(self, with_values=True): ''' overloads :meth:`soma.Controller.copy` ''' other = self.__class__(self._process, self._schema_dict) @@ -344,7 +363,10 @@

Source code for capsul.attributes.attributes_schema

return other
-
[docs] def copy_to_single(self, with_values=True): + +
+[docs] + def copy_to_single(self, with_values=True): ''' Similar to :meth:`copy`, excepts that it converts list attributes into single values. This is useful within the completion system infrastructure, to get from an attributes set containing lists @@ -384,7 +406,9 @@

Source code for capsul.attributes.attributes_schema

value = self.trait(name).inner_traits[0].default if value is not None: setattr(other, name, value) - return other
+ return other
+
+
@@ -412,8 +436,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/attributes/completion_engine.html b/_modules/capsul/attributes/completion_engine.html index 4773f8d1c..ee599b914 100644 --- a/_modules/capsul/attributes/completion_engine.html +++ b/_modules/capsul/attributes/completion_engine.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -146,7 +146,9 @@

Source code for capsul.attributes.completion_engine

#ce_calls = 0 -
[docs]class ProcessCompletionEngine(traits.HasTraits): +
+[docs] +class ProcessCompletionEngine(traits.HasTraits): ''' Parameters completion from attributes for a process or pipeline node instance, in the context of a specific data organization. @@ -226,7 +228,9 @@

Source code for capsul.attributes.completion_engine

''' self.process = None -
[docs] def get_attribute_values(self): +
+[docs] + def get_attribute_values(self): ''' Get attributes Controller associated to a process or node Returns @@ -321,6 +325,7 @@

Source code for capsul.attributes.completion_engine

return self.capsul_attributes
+ def _get_linked_attributes(self): # for parameters which still do not have attributes, we can try # using links: if a linked parameter in a sub-process has @@ -382,7 +387,9 @@

Source code for capsul.attributes.completion_engine

break -
[docs] def complete_parameters(self, process_inputs={}, complete_iterations=True): +
+[docs] + def complete_parameters(self, process_inputs={}, complete_iterations=True): ''' Completes file parameters from given inputs parameters, which may include both "regular" process parameters (file names) and attributes. @@ -599,7 +606,10 @@

Source code for capsul.attributes.completion_engine

self.completion_progress = self.completion_progress_total
-
[docs] def attributes_to_path(self, parameter, attributes): + +
+[docs] + def attributes_to_path(self, parameter, attributes): ''' Build a path from attributes for a given parameter in a process. Parameters @@ -611,7 +621,10 @@

Source code for capsul.attributes.completion_engine

.attributes_to_path(self.process, parameter, attributes)
-
[docs] def set_parameters(self, process_inputs): + +
+[docs] + def set_parameters(self, process_inputs): ''' Set the given parameters dict to the given process. process_inputs may include regular parameters of the underlying process, and attributes (capsul_attributes: dict). @@ -637,7 +650,10 @@

Source code for capsul.attributes.completion_engine

process.import_from_dict(process_inputs)
-
[docs] def attributes_changed(self, obj, name, old, new): + +
+[docs] + def attributes_changed(self, obj, name, old, new): ''' Traits changed callback which triggers parameters update. This method basically calls complete_parameters() (after some checks). @@ -655,7 +671,10 @@

Source code for capsul.attributes.completion_engine

self.completion_ongoing = False
-
[docs] def nodes_selection_changed(self, obj, name, old, new): + +
+[docs] + def nodes_selection_changed(self, obj, name, old, new): ''' Traits changed callback which triggers parameters update. This method basically calls complete_parameters() (after some checks). @@ -672,7 +691,10 @@

Source code for capsul.attributes.completion_engine

self.completion_ongoing = False
-
[docs] def install_auto_completion(self): + +
+[docs] + def install_auto_completion(self): ''' Monitor attributes changes and switches changes (which may influence attributes) and recompute parameters completion when needed. ''' @@ -691,7 +713,10 @@

Source code for capsul.attributes.completion_engine

'switch')
-
[docs] def remove_auto_completion(self): + +
+[docs] + def remove_auto_completion(self): ''' Remove attributes monitoring and auto-recomputing of parameters. Reverts install_auto_completion() @@ -716,7 +741,10 @@

Source code for capsul.attributes.completion_engine

'switch', remove=True)
-
[docs] def get_path_completion_engine(self): + +
+[docs] + def get_path_completion_engine(self): ''' Get a PathCompletionEngine object for the given process. The default implementation queries PathCompletionEngineFactory, but some specific ProcessCompletionEngine implementations may override @@ -738,7 +766,10 @@

Source code for capsul.attributes.completion_engine

return engine_factory.get_path_completion_engine(self.process)
-
[docs] @staticmethod + +
+[docs] + @staticmethod def get_completion_engine(process, name=None): ''' Get a ProcessCompletionEngine instance for a given process/node within the framework of its StudyConfig factory function. @@ -800,6 +831,7 @@

Source code for capsul.attributes.completion_engine

'use_fom,input_fom,output_fom,shared_fom') return completion_engine
+ @staticmethod def _remove_completion_engine(process): if hasattr(process, 'completion_engine'): @@ -872,7 +904,9 @@

Source code for capsul.attributes.completion_engine

+ sub_completion_rate -
[docs] def remove_attributes(self): +
+[docs] + def remove_attributes(self): '''Clear attributes controller cache, to allow rebuilding it after a change. This is generally a callback attached to switches changes. ''' @@ -880,7 +914,10 @@

Source code for capsul.attributes.completion_engine

self.remove_trait('capsul_attributes')
-
[docs] def remove_switch_observers(self): + +
+[docs] + def remove_switch_observers(self): '''Remove notification callbacks previously set to listen switches state changes. ''' @@ -896,10 +933,14 @@

Source code for capsul.attributes.completion_engine

completion_engine.remove_switch_observer(self) except ReferenceError: # the process has already been destroyed - pass
+ pass
+
+ -
[docs]class SwitchCompletionEngine(ProcessCompletionEngine): +
+[docs] +class SwitchCompletionEngine(ProcessCompletionEngine): ''' Completion engine specislization for a switch. The switch will propagate attributes from its selected inputs to corresponding outputs, if they can be retrieved from parameters links. Otherwise the countrary @@ -909,7 +950,9 @@

Source code for capsul.attributes.completion_engine

def __del__(self): self.remove_switch_observer() -
[docs] def get_attribute_values(self): +
+[docs] + def get_attribute_values(self): if 'capsul_attributes' in self._instance_traits(): return self.capsul_attributes @@ -1009,7 +1052,10 @@

Source code for capsul.attributes.completion_engine

return capsul_attributes
-
[docs] def install_switch_observer(self, observer=None): + +
+[docs] + def install_switch_observer(self, observer=None): '''Setup a switch change observation, to remove parameters attributes when the switch state changes. @@ -1026,7 +1072,10 @@

Source code for capsul.attributes.completion_engine

self.process.on_trait_change(observer.remove_attributes, 'switch')
-
[docs] def remove_switch_observer(self, observer=None): + +
+[docs] + def remove_switch_observer(self, observer=None): '''Remove notification previously set by install_switch_observer() ''' if observer is None: @@ -1035,15 +1084,21 @@

Source code for capsul.attributes.completion_engine

self.process.on_trait_change(observer.remove_attributes, 'switch', remove=True) except Exception: - pass # probably already deleted object
+ pass # probably already deleted object
+
+ -
[docs]class PathCompletionEngine(object): +
+[docs] +class PathCompletionEngine(object): ''' Implements building of a single path from a set of attributes for a specific process / parameter ''' -
[docs] def attributes_to_path(self, process, parameter, attributes): +
+[docs] + def attributes_to_path(self, process, parameter, attributes): ''' Build a path from attributes for a given parameter in a process. This method has to be specialized. The default implementation returns @@ -1057,24 +1112,36 @@

Source code for capsul.attributes.completion_engine

''' return None
-
[docs] def allowed_formats(self, process, parameter): + +
+[docs] + def allowed_formats(self, process, parameter): ''' List of possible formats names associated with a parameter ''' return []
-
[docs] def allowed_extensions(self, process, parameter): + +
+[docs] + def allowed_extensions(self, process, parameter): ''' List of possible file extensions associated with a parameter ''' - return []
+ return []
+
+ -
[docs]class ProcessCompletionEngineFactory(object): +
+[docs] +class ProcessCompletionEngineFactory(object): ''' Get a :class:`ProcessCompletionEngine` instance ''' factory_id = 'basic' -
[docs] def get_completion_engine(self, process, name=None): +
+[docs] + def get_completion_engine(self, process, name=None): ''' Factory for ProcessCompletionEngine: get an ProcessCompletionEngine instance for a process in the context of a given StudyConfig. @@ -1093,10 +1160,14 @@

Source code for capsul.attributes.completion_engine

if isinstance(process, Switch): return SwitchCompletionEngine(process, name=name) - return ProcessCompletionEngine(process, name=name)
+ return ProcessCompletionEngine(process, name=name)
+
-
[docs]class PathCompletionEngineFactory(object): + +
+[docs] +class PathCompletionEngineFactory(object): ''' Get a :class:`PathCompletionEngine` instance ''' @@ -1106,6 +1177,7 @@

Source code for capsul.attributes.completion_engine

def get_path_completion_engine(self, process): raise RuntimeError('PathCompletionEngineFactory is pure virtual. ' 'It must be derived to do actual work.')
+
@@ -1133,8 +1205,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/attributes/completion_engine_factory.html b/_modules/capsul/attributes/completion_engine_factory.html index f1415ea06..6ffc54997 100644 --- a/_modules/capsul/attributes/completion_engine_factory.html +++ b/_modules/capsul/attributes/completion_engine_factory.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -126,12 +126,16 @@

Source code for capsul.attributes.completion_engine_factory

from capsul.pipeline.pipeline_nodes import ProcessNode -
[docs]class BuiltinProcessCompletionEngineFactory(ProcessCompletionEngineFactory): +
+[docs] +class BuiltinProcessCompletionEngineFactory(ProcessCompletionEngineFactory): ''' ''' factory_id = 'builtin' -
[docs] def get_completion_engine(self, process, name=None): +
+[docs] + def get_completion_engine(self, process, name=None): ''' Factory for ProcessCompletionEngine: get an ProcessCompletionEngine instance for a node or process in the context of a given StudyConfig. @@ -173,7 +177,9 @@

Source code for capsul.attributes.completion_engine_factory

# standard ProcessCompletionEngine return super(BuiltinProcessCompletionEngineFactory, - self).get_completion_engine(process, name)
+ self).get_completion_engine(process, name)
+
+
@@ -201,8 +207,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/attributes/completion_engine_iteration.html b/_modules/capsul/attributes/completion_engine_iteration.html index e72cdaf95..eea1b1b67 100644 --- a/_modules/capsul/attributes/completion_engine_iteration.html +++ b/_modules/capsul/attributes/completion_engine_iteration.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -133,7 +133,9 @@

Source code for capsul.attributes.completion_engine_iteration

xrange = range -
[docs]class ProcessCompletionEngineIteration(ProcessCompletionEngine): +
+[docs] +class ProcessCompletionEngineIteration(ProcessCompletionEngine): ''' :class:`~capsul.attributes.completion_engine.ProcessCompletionEngine` specialization for iterative process. @@ -150,7 +152,9 @@

Source code for capsul.attributes.completion_engine_iteration

#self.iterated_attributes = self.get_iterated_attributes() -
[docs] def get_iterated_attributes(self): +
+[docs] + def get_iterated_attributes(self): ''' ''' process = self.process @@ -174,7 +178,10 @@

Source code for capsul.attributes.completion_engine_iteration

if param in attribs]
-
[docs] def get_induced_iterative_parameters(self): + +
+[docs] + def get_induced_iterative_parameters(self): '''Iterating over some parameters, and triggering completion through attributes, imply that some other parameters will also vary with the iteration. @@ -208,7 +215,10 @@

Source code for capsul.attributes.completion_engine_iteration

return induced_params
-
[docs] def get_attribute_values(self): + +
+[docs] + def get_attribute_values(self): ''' Get attributes Controller associated to a process Returns @@ -247,6 +257,7 @@

Source code for capsul.attributes.completion_engine_iteration

return self.capsul_attributes
+ def iteration_size(self, process_inputs={}): process = self.process if isinstance(process, ProcessNode): @@ -284,7 +295,9 @@

Source code for capsul.attributes.completion_engine_iteration

return size -
[docs] def complete_parameters(self, process_inputs={}, +
+[docs] + def complete_parameters(self, process_inputs={}, complete_iterations=True): if not complete_iterations: @@ -361,7 +374,10 @@

Source code for capsul.attributes.completion_engine_iteration

file=sys.stderr)
-
[docs] def complete_iteration_step(self, step): + +
+[docs] + def complete_iteration_step(self, step): ''' Complete the parameters on the iterated process for a given iteration step. ''' @@ -405,7 +421,9 @@

Source code for capsul.attributes.completion_engine_iteration

values = getattr(process, parameter) if len(values) > self.capsul_iteration_step: parameters[parameter] = values[self.capsul_iteration_step] - completion_engine.complete_parameters(parameters)
+ completion_engine.complete_parameters(parameters)
+
+
@@ -433,8 +451,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/attributes/fom_completion_engine.html b/_modules/capsul/attributes/fom_completion_engine.html index 04bdad614..ed368613f 100644 --- a/_modules/capsul/attributes/fom_completion_engine.html +++ b/_modules/capsul/attributes/fom_completion_engine.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -142,7 +142,9 @@

Source code for capsul.attributes.fom_completion_engine

from soma.sorted_dictionary import SortedDictionary -
[docs]class FomProcessCompletionEngine(ProcessCompletionEngine): +
+[docs] +class FomProcessCompletionEngine(ProcessCompletionEngine): """ FOM (File Organization Model) implementation of completion engine. @@ -191,7 +193,9 @@

Source code for capsul.attributes.fom_completion_engine

self.shared_fom = None -
[docs] def get_attribute_values(self): +
+[docs] + def get_attribute_values(self): ''' Get attributes Controller associated to a process Returns @@ -209,7 +213,10 @@

Source code for capsul.attributes.fom_completion_engine

return self.capsul_attributes
-
[docs] def create_attributes_with_fom(self): + +
+[docs] + def create_attributes_with_fom(self): """To get useful attributes by the fom""" # print('create_attributes_with_fom for', self.process, ', FCE:', self) @@ -407,6 +414,7 @@

Source code for capsul.attributes.fom_completion_engine

else: self.shared_fom = study_config.shared_fom
+ @staticmethod def setup_fom(process): completion_engine \ @@ -431,7 +439,9 @@

Source code for capsul.attributes.fom_completion_engine

process.study_config.shared_fom = completion_engine.shared_fom -
[docs] def path_attributes(self, filename, parameter=None): +
+[docs] + def path_attributes(self, filename, parameter=None): """By the path, find value of attributes""" pta = self.process.study_config.modules_data.fom_pta['input'] @@ -467,12 +477,16 @@

Source code for capsul.attributes.fom_completion_engine

return attributes
-
[docs] def get_path_completion_engine(self): + +
+[docs] + def get_path_completion_engine(self): ''' ''' return FomPathCompletionEngine()
+ @staticmethod def _fom_completion_factory(process, name): ''' Factoty inserted in attributed_processFactory @@ -492,9 +506,14 @@

Source code for capsul.attributes.fom_completion_engine

return None
-
[docs]class FomPathCompletionEngine(PathCompletionEngine): -
[docs] def attributes_to_path(self, process, parameter, attributes): +
+[docs] +class FomPathCompletionEngine(PathCompletionEngine): + +
+[docs] + def attributes_to_path(self, process, parameter, attributes): ''' Build a path from attributes Parameters @@ -573,7 +592,10 @@

Source code for capsul.attributes.fom_completion_engine

return path_value
-
[docs] def open_values_attributes(self, process, parameter): + +
+[docs] + def open_values_attributes(self, process, parameter): ''' Attributes with "open" values, not restricted to a list of possible values ''' @@ -611,7 +633,10 @@

Source code for capsul.attributes.fom_completion_engine

return None
-
[docs] def allowed_formats(self, process, parameter): + +
+[docs] + def allowed_formats(self, process, parameter): ''' List of possible formats names associated with a parameter ''' FomProcessCompletionEngine.setup_fom(process) @@ -624,7 +649,10 @@

Source code for capsul.attributes.fom_completion_engine

return formats
-
[docs] def allowed_extensions(self, process, parameter): + +
+[docs] + def allowed_extensions(self, process, parameter): ''' List of possible file extensions associated with a parameter ''' FomProcessCompletionEngine.setup_fom(process) @@ -639,12 +667,18 @@

Source code for capsul.attributes.fom_completion_engine

exts2 = sorted(['.%s' % e for e in exts if e]) if '' in exts: exts2.append('') - return exts2
+ return exts2
+
-
[docs]class FomProcessCompletionEngineIteration(ProcessCompletionEngineIteration): -
[docs] def get_iterated_attributes(self): +
+[docs] +class FomProcessCompletionEngineIteration(ProcessCompletionEngineIteration): + +
+[docs] + def get_iterated_attributes(self): process = self.process if isinstance(process, ProcessNode): process = process.process @@ -688,7 +722,9 @@

Source code for capsul.attributes.fom_completion_engine

fom_parameter=parameter, fom_process=name) if not x.startswith('fom_')]) iter_attrib.update(parameter_attributes) - return iter_attrib
+ return iter_attrib
+
+ #class FomPathCompletionEngineFactory(PathCompletionEngineFactory): @@ -724,8 +760,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine.html b/_modules/capsul/engine.html index ea17acb09..0857d87df 100644 --- a/_modules/capsul/engine.html +++ b/_modules/capsul/engine.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -170,7 +170,9 @@

Source code for capsul.engine

   #* integrate soma-workflow config + CE.computing_resource
 
 
-
[docs]class CapsulEngine(Controller): +
+[docs] +class CapsulEngine(Controller): ''' A CapsulEngine is the mandatory entry point of all software using Capsul. It contains objects to store configuration and metadata, defines execution @@ -344,7 +346,9 @@

Source code for capsul.engine

         self.database.set_json_value('metadata_engine', 
                                      to_json(self._metadata_engine))
     
-
[docs] def load_modules(self, require): +
+[docs] + def load_modules(self, require): ''' Call self.load_module for each required module. The list of modules to load is located in self.modules (if it is None, @@ -356,7 +360,10 @@

Source code for capsul.engine

         for module in require:
             self.load_module(module)
-
[docs] def load_module(self, module_name): + +
+[docs] + def load_module(self, module_name): ''' Load a module if it has not already been loaded (is this case, nothing is done) @@ -395,6 +402,7 @@

Source code for capsul.engine

             return True
         return False
+ # # Method imported from self.database # @@ -422,7 +430,9 @@

Source code for capsul.engine

     def path_metadata(self, path, named_directory=None):
         return self.database.set_path_metadata(path, named_directory)
 
-
[docs] def import_configs(self, environment, config_dict, cont_on_error=False): +
+[docs] + def import_configs(self, environment, config_dict, cont_on_error=False): ''' Import config values from a dictionary as given by :meth:`Settings.select_configurations`. @@ -435,10 +445,13 @@

Source code for capsul.engine

             self.load_module(module)
         self.settings.import_configs(environment, config_dict, cont_on_error)
+ # # Processes and pipelines related methods # -
[docs] def get_process_instance(self, process_or_id, **kwargs): +
+[docs] + def get_process_instance(self, process_or_id, **kwargs): ''' The only official way to get a process instance is to use this method. For now, it simply calls self.study_config.get_process_instance @@ -448,7 +461,10 @@

Source code for capsul.engine

                                                           **kwargs)
         return instance
-
[docs] def get_iteration_pipeline(self, pipeline_name, node_name, process_or_id, + +
+[docs] + def get_iteration_pipeline(self, pipeline_name, node_name, process_or_id, iterative_plugs=None, do_not_export=None, make_optional=None, **kwargs): """ Create a pipeline with an iteration node iterating the given @@ -484,7 +500,10 @@

Source code for capsul.engine

         pipeline.autoexport_nodes_parameters(include_optional=True)
         return pipeline
-
[docs] def start(self, process, workflow=None, history=True, get_pipeline=False, **kwargs): + +
+[docs] + def start(self, process, workflow=None, history=True, get_pipeline=False, **kwargs): ''' Asynchronously start the execution of a process or pipeline in the connected computing environment. Returns an identifier of @@ -521,27 +540,39 @@

Source code for capsul.engine

         '''
         return run.start(self, process, workflow, history, get_pipeline, **kwargs)
-
[docs] def connect(self, computing_resource): + +
+[docs] + def connect(self, computing_resource): ''' Connect the capsul engine to a computing resource ''' self._connected_resource = computing_resource
-
[docs] def connected_to(self): + +
+[docs] + def connected_to(self): ''' Return the name of the computing resource this capsul engine is connected to or None if it is not connected. ''' return self._connected_resource
-
[docs] def disconnect(self): + +
+[docs] + def disconnect(self): ''' Disconnect from a computing resource. ''' self._connected_resource = None
-
[docs] def executions(self): + +
+[docs] + def executions(self): ''' List the execution identifiers of all processes that have been started but not disposed in the connected computing resource. Raises an @@ -549,7 +580,10 @@

Source code for capsul.engine

         '''
         raise NotImplementedError()
-
[docs] def dispose(self, execution_id, conditional=False): + +
+[docs] + def dispose(self, execution_id, conditional=False): ''' Update the database with the current state of a process execution and free the resources used in the computing resource (i.e. remove the @@ -560,51 +594,70 @@

Source code for capsul.engine

         '''
         run.dispose(self, execution_id, conditional=conditional)
-
[docs] def interrupt(self, execution_id): + +
+[docs] + def interrupt(self, execution_id): ''' Try to stop the execution of a process. Does not wait for the process to be terminated. ''' return run.interrupt(self, execution_id)
-
[docs] def wait(self, execution_id, timeout=-1, pipeline=None): + +
+[docs] + def wait(self, execution_id, timeout=-1, pipeline=None): ''' Wait for the end of a process execution (either normal termination, interruption or error). ''' return run.wait(self, execution_id, timeout=timeout, pipeline=pipeline)
-
[docs] def status(self, execution_id): + +
+[docs] + def status(self, execution_id): ''' Return a simple value with the status of an execution (queued, running, terminated, error, etc.) ''' return run.status(self, execution_id)
-
[docs] def detailed_information(self, execution_id): + +
+[docs] + def detailed_information(self, execution_id): ''' Return complete (and possibly big) information about a process execution. ''' return run.detailed_information(self, execution_id)
+ def call(self, process, history=True, *kwargs): return run.call(self, process, history=history, **kwargs) def check_call(self, process, history=True, **kwargs): return run.check_call(self, process, history=history, **kwargs) -
[docs] def raise_for_status(self, status, execution_id=None): +
+[docs] + def raise_for_status(self, status, execution_id=None): ''' Raise an exception if a process execution failed ''' - run.raise_for_status(self, status, execution_id)
+ run.raise_for_status(self, status, execution_id)
+
+ _populsedb_url_re = re.compile(r'^\w+(\+\w+)?://(.*)') -
[docs]def database_factory(database_location): +
+[docs] +def database_factory(database_location): ''' Create a DatabaseEngine from its location string. This location can be either a sqlite file path (ending with '.sqlite' or ':memory:' for an @@ -636,7 +689,10 @@

Source code for capsul.engine

         engine.set_named_directory('capsul_engine', engine_directory)
     return engine
-
[docs]def capsul_engine(database_location=None, require=None): + +
+[docs] +def capsul_engine(database_location=None, require=None): ''' User facrory for creating capsul engines. @@ -663,10 +719,13 @@

Source code for capsul.engine

     return capsul_engine
+ configurations = None activated_modules = set() -
[docs]def activate_configuration(selected_configurations): +
+[docs] +def activate_configuration(selected_configurations): ''' Activate a selected configuration (set of modules) for runtime. ''' @@ -677,7 +736,10 @@

Source code for capsul.engine

     for m in modules:
         activate_module(m)
-
[docs]def activate_module(module_name): + +
+[docs] +def activate_module(module_name): ''' Activate a module configuration for runtime. This function is called by activate_configuration() and assumes the global variable @@ -701,6 +763,7 @@

Source code for capsul.engine

         activate_configurations = getattr(module, 'activate_configurations', None)
         if activate_configurations:
             activate_configurations()
+
@@ -728,8 +791,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/database.html b/_modules/capsul/engine/database.html index 0d2dc1062..1d5909b1b 100644 --- a/_modules/capsul/engine/database.html +++ b/_modules/capsul/engine/database.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -109,7 +109,9 @@

Source code for capsul.engine.database

 from __future__ import absolute_import
 import os.path as osp
 
-
[docs]class DatabaseEngine(object): +
+[docs] +class DatabaseEngine(object): ''' A :py:class:`DatabaseEngine` is the base class for all engines allowing to store, retrieve and search metadata associated with @@ -133,7 +135,9 @@

Source code for capsul.engine.database

         doc['named_directory'] = named_directory
         return doc
 
-
[docs] def check_path(self, path, named_directory=None): +
+[docs] + def check_path(self, path, named_directory=None): ''' Find a pair (named_directory, path) given a path and eventually a named_directory. @@ -171,9 +175,12 @@

Source code for capsul.engine.database

                         raise ValueError('Path "%s" is defined as relative to named directory %s but it does not start with "%s"' % (path, named_directory, base_path))
                     path = path[len(base_path)+1:]
         return (named_directory, path)
+ -
[docs] def set_json_value(self, name, json_value): +
+[docs] + def set_json_value(self, name, json_value): ''' Store a json value and associate it with a key given in "name". The value can be retrieved with method json_value(). @@ -185,14 +192,20 @@

Source code for capsul.engine.database

         '''
         raise NotImplementedError()
-
[docs] def json_value(self, name): + +
+[docs] + def json_value(self, name): ''' Retrieve a value previously stored with set_json_value() ''' raise NotImplementedError()
+ -
[docs] def set_named_directory(self, name, path): +
+[docs] + def set_named_directory(self, name, path): ''' Associate an absolute path to a generic name. This allow to always use a location independent name for a directory such as 'spm_template' @@ -201,34 +214,48 @@

Source code for capsul.engine.database

         set_path_metadata() and path_metadata().
         '''
         raise NotImplementedError()
+ -
[docs] def named_directory(self, name): +
+[docs] + def named_directory(self, name): ''' Return the absolute path of a named directory. ''' raise NotImplementedError()
+ -
[docs] def named_directories(self): +
+[docs] + def named_directories(self): ''' List the names of all named directories. This method may return any iterable value (list, generator, etc.) ''' raise NotImplementedError()
+ -
[docs] def set_path_metadata(self, path, metadata, named_directory=None): +
+[docs] + def set_path_metadata(self, path, metadata, named_directory=None): ''' Set metadata associated to a path. The metadata are associated to the result of self.check_path(path, named_directory). metadata can be any JSON serializable value. ''' raise NotImplementedError()
+ -
[docs] def path_metadata(self, path, named_directory=None): +
+[docs] + def path_metadata(self, path, named_directory=None): ''' Retrieve metadata associated with a path. ''' - raise NotImplementedError()
+ raise NotImplementedError()
+
+
@@ -257,8 +284,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/database_json.html b/_modules/capsul/engine/database_json.html index e83961d7d..1f1c1cf43 100644 --- a/_modules/capsul/engine/database_json.html +++ b/_modules/capsul/engine/database_json.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -115,7 +115,9 @@

Source code for capsul.engine.database_json

 
 from capsul.engine.database import DatabaseEngine
 
-
[docs]class JSONDBEngine(DatabaseEngine): +
+[docs] +class JSONDBEngine(DatabaseEngine): ''' A JSON dictionary implementation of :py:class:`capsul.engine.database.DatabaseEngine` ''' @@ -146,7 +148,9 @@

Source code for capsul.engine.database_json

         self.read_json()
     
     
-
[docs] def set_named_directory(self, name, path): +
+[docs] + def set_named_directory(self, name, path): if path: path = osp.normpath(osp.abspath(path)) self.json_dict.setdefault('named_directory', {})[name] = {'name': name, @@ -158,33 +162,53 @@

Source code for capsul.engine.database_json

                 named_directory.pop(name, None)
                 self.modified = True
-
[docs] def named_directory(self, name): + +
+[docs] + def named_directory(self, name): return self.json_dict.get('named_directory', {}).get(name, {}).get('path')
+ -
[docs] def named_directories(self): +
+[docs] + def named_directories(self): return self.json_dict.get('named_directory', {}).values()
+ -
[docs] def set_json_value(self, name, json_value): +
+[docs] + def set_json_value(self, name, json_value): self.json_dict.setdefault('json_value', {})[name] = json_value self.modified = True
-
[docs] def json_value(self, name): + +
+[docs] + def json_value(self, name): return self.json_dict.get('json_value', {}).get(name)
+ -
[docs] def set_path_metadata(self, path, metadata, named_directory=None): +
+[docs] + def set_path_metadata(self, path, metadata, named_directory=None): metadata = self.check_path_metadata(path, metadata, named_directory) path = metadata['path'] named_directory = metadata['named_directory'] self.json_dict.setdefault('path_metadata', {})[ (named_directory, path)] = metadata self.modified = True
+ -
[docs] def path_metadata(self, path, named_directory=None): +
+[docs] + def path_metadata(self, path, named_directory=None): named_directory, path = self.check_path(path, named_directory) - return self.json_dict.get('path_metadata', {}).get((named_directory, path))
+ return self.json_dict.get('path_metadata', {}).get((named_directory, path))
+
+
@@ -213,8 +237,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/database_populse.html b/_modules/capsul/engine/database_populse.html index a3620e728..9dbf984f3 100644 --- a/_modules/capsul/engine/database_populse.html +++ b/_modules/capsul/engine/database_populse.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -116,7 +116,9 @@

Source code for capsul.engine.database_populse

from populse_db.database import Database -

[docs]class PopulseDBEngine(DatabaseEngine): +
+[docs] +class PopulseDBEngine(DatabaseEngine): def __init__(self, database_engine): self.db = Database(database_engine) with self.db as dbs: @@ -155,7 +157,9 @@

Source code for capsul.engine.database_populse

with self.db as dbs: dbs.unsave_modifications() -

[docs] def set_named_directory(self, name, path): +
+[docs] + def set_named_directory(self, name, path): if path: path = osp.normpath(osp.abspath(path)) #doc = self.dbs.get_document('named_directory', name) @@ -182,17 +186,26 @@

Source code for capsul.engine.database_populse

else: dbs.remove_document('named_directory', name)

-
[docs] def named_directory(self, name): + +
+[docs] + def named_directory(self, name): #return self.dbs.get_value('named_directory', name, 'path') with self.db as dbs: return dbs.get_value('named_directory', name, 'path')
-
[docs] def named_directories(self): + +
+[docs] + def named_directories(self): #return self.dbs.filter_documents('named_directory', 'all') with self.db as dbs: return dbs.filter_documents('named_directory', 'all')
-
[docs] def set_json_value(self, name, json_value): + +
+[docs] + def set_json_value(self, name, json_value): #doc = self.dbs.get_document('json_value', name) #json_dict = {'value': json_value} #if doc is None: @@ -213,7 +226,10 @@

Source code for capsul.engine.database_populse

else: dbs.set_value('json_value', name, 'json_dict', json_dict)

-
[docs] def json_value(self, name): + +
+[docs] + def json_value(self, name): #doc = self.dbs.get_document('json_value', name) #if doc: #return doc['json_dict']['value'] @@ -224,7 +240,10 @@

Source code for capsul.engine.database_populse

return doc['json_dict']['value'] return None

-
[docs] def set_path_metadata(self, path, metadata): + +
+[docs] + def set_path_metadata(self, path, metadata): named_directory = metadata.get('named_directory') if named_directory: base_path = self.named_directory('capsul_engine') @@ -254,16 +273,21 @@

Source code for capsul.engine.database_populse

doc['named_directory'] = named_directory with self.db as dbs: dbs.add_document('path_metadata', doc)

+ -
[docs] def path_metadata(self, path): +
+[docs] + def path_metadata(self, path): if osp.isabs(path): for nd in self.named_directories(): if path.startswith(nd.path): path = path[len(nd.path)+1:] break with self.db as dbs: - return dbs.get_document('path_metadata', path)
+ return dbs.get_document('path_metadata', path)
+
+
@@ -292,8 +316,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/module/attributes.html b/_modules/capsul/engine/module/attributes.html index 0de39ce36..558989931 100644 --- a/_modules/capsul/engine/module/attributes.html +++ b/_modules/capsul/engine/module/attributes.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -213,7 +213,9 @@

Source code for capsul.engine.module.attributes

< factory.module_path = config.attributes_schema_paths -
[docs]def edition_widget(engine, environment, config_id='attributes'): +
+[docs] +def edition_widget(engine, environment, config_id='attributes'): ''' Edition GUI for attributes config - see :class:`~capsul.qt_gui.widgets.settings_editor.SettingsEditor` ''' @@ -279,6 +281,7 @@

Source code for capsul.engine.module.attributes

< widget.accept = types.MethodType(validate_config, widget) return widget
+
@@ -307,8 +310,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/module/axon.html b/_modules/capsul/engine/module/axon.html index af5d64956..e7e17537f 100644 --- a/_modules/capsul/engine/module/axon.html +++ b/_modules/capsul/engine/module/axon.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -155,7 +155,9 @@

Source code for capsul.engine.module.axon

             scmod = capsul_engine.study_config.modules['BrainVISAConfig']
             scmod.sync_to_engine()
 
-
[docs]def check_configurations(): +
+[docs] +def check_configurations(): ''' Checks if the activated configuration is valid to use BrainVisa and returns an error message if there is an error or None if everything is good. @@ -167,7 +169,10 @@

Source code for capsul.engine.module.axon

     return None
-
[docs]def check_notably_invalid_config(conf): + +
+[docs] +def check_notably_invalid_config(conf): ''' Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled @@ -183,7 +188,10 @@

Source code for capsul.engine.module.axon

     return invalid
-
[docs]def complete_configurations(): + +
+[docs] +def complete_configurations(): ''' Try to automatically set or complete the capsul.engine.configurations for Axon. @@ -198,7 +206,10 @@

Source code for capsul.engine.module.axon

             config['shared_directory'] = shared_dir
-
[docs]def edition_widget(engine, environment, config_id='axon'): + +
+[docs] +def edition_widget(engine, environment, config_id='axon'): ''' Edition GUI for axon config - see :class:`~capsul.qt_gui.widgets.settings_editor.SettingsEditor` ''' @@ -251,6 +262,7 @@

Source code for capsul.engine.module.axon

     widget.accept = types.MethodType(validate_config, widget)
 
     return widget
+
@@ -279,8 +291,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/module/fom.html b/_modules/capsul/engine/module/fom.html index 57d5a6cbc..b9d639469 100644 --- a/_modules/capsul/engine/module/fom.html +++ b/_modules/capsul/engine/module/fom.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -224,7 +224,9 @@

Source code for capsul.engine.module.fom

     update_fom(capsul_engine, environment, param, value)
 
 
-
[docs]def update_fom(capsul_engine, environment='global', param=None, value=None): +
+[docs] +def update_fom(capsul_engine, environment='global', param=None, value=None): '''Load configured FOMs and create FOM completion data ''' #print('***update_fom ***') @@ -293,6 +295,7 @@

Source code for capsul.engine.module.fom

         capsul_engine.study_config.modules_data.fom_pta = store['fom_pta']
+ def update_formats(capsul_engine, environment): with capsul_engine.settings as session: config = session.config('fom', environment) @@ -394,7 +397,9 @@

Source code for capsul.engine.module.fom

     update_fom(capsul_engine, environment)
 
 
-
[docs]def edition_widget(engine, environment, config_id='fom'): +
+[docs] +def edition_widget(engine, environment, config_id='fom'): ''' Edition GUI for FOM config - see :class:`~capsul.qt_gui.widgets.settings_editor.SettingsEditor` ''' @@ -497,6 +502,7 @@

Source code for capsul.engine.module.fom

     widget.accept = types.MethodType(validate_config, widget)
 
     return widget
+
@@ -525,8 +531,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/module/fsl.html b/_modules/capsul/engine/module/fsl.html index b43181913..73772b8eb 100644 --- a/_modules/capsul/engine/module/fsl.html +++ b/_modules/capsul/engine/module/fsl.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -138,7 +138,9 @@

Source code for capsul.engine.module.fsl

                                     'fsl'})
 
     
-
[docs]def check_configurations(): +
+[docs] +def check_configurations(): ''' Checks if the activated configuration is valid to run FSL and returns an error message if there is an error or None if everything is good. @@ -160,7 +162,10 @@

Source code for capsul.engine.module.fsl

     return None
-
[docs]def check_notably_invalid_config(conf): + +
+[docs] +def check_notably_invalid_config(conf): ''' Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled @@ -176,7 +181,10 @@

Source code for capsul.engine.module.fsl

     return invalid
-
[docs]def complete_configurations(): + +
+[docs] +def complete_configurations(): ''' Try to automatically set or complete the capsul.engine.configurations for FSL. ''' @@ -196,7 +204,10 @@

Source code for capsul.engine.module.fsl

             config['prefix'] = os.path.basename(bet)[:-3]
-
[docs]def activate_configurations(): + +
+[docs] +def activate_configurations(): ''' Activate the FSL module (set env variables) from the global configurations, in order to use them via :mod:`capsul.in_context.fsl` functions @@ -219,7 +230,10 @@

Source code for capsul.engine.module.fsl

         del os.environ['FSL_CONFIG']
-
[docs]def edition_widget(engine, environment, config_id='fsl'): + +
+[docs] +def edition_widget(engine, environment, config_id='fsl'): ''' Edition GUI for FSL config - see :class:`~capsul.qt_gui.widgets.settings_editor.SettingsEditor` ''' @@ -272,6 +286,7 @@

Source code for capsul.engine.module.fsl

     widget.accept = types.MethodType(validate_config, widget)
 
     return widget
+
@@ -300,8 +315,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/module/matlab.html b/_modules/capsul/engine/module/matlab.html index 72685d50a..161a8c749 100644 --- a/_modules/capsul/engine/module/matlab.html +++ b/_modules/capsul/engine/module/matlab.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -128,7 +128,9 @@

Source code for capsul.engine.module.matlab

          ])
 
 
-
[docs]def check_configurations(): +
+[docs] +def check_configurations(): ''' Check if the activated configuration is valid for Matlab and return an error message if there is an error or None if everything is good. @@ -145,7 +147,10 @@

Source code for capsul.engine.module.matlab

     return None
-
[docs]def check_notably_invalid_config(conf): + +
+[docs] +def check_notably_invalid_config(conf): ''' Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled @@ -166,7 +171,10 @@

Source code for capsul.engine.module.matlab

     return invalid
-
[docs]def edition_widget(engine, environment, config_id='matlab'): + +
+[docs] +def edition_widget(engine, environment, config_id='matlab'): ''' Edition GUI for matlab config - see :class:`~capsul.qt_gui.widgets.settings_editor.SettingsEditor` ''' @@ -237,6 +245,7 @@

Source code for capsul.engine.module.matlab

     widget.accept = types.MethodType(validate_config, widget)
 
     return widget
+
@@ -265,8 +274,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/module/python.html b/_modules/capsul/engine/module/python.html index 1a287e567..8339cc7ef 100644 --- a/_modules/capsul/engine/module/python.html +++ b/_modules/capsul/engine/module/python.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -142,7 +142,9 @@

Source code for capsul.engine.module.python

          ])
 
 
-
[docs]def activate_configurations(): +
+[docs] +def activate_configurations(): ''' Activate the python module from the global configurations ''' @@ -152,7 +154,10 @@

Source code for capsul.engine.module.python

         if py_path:
             sys.path = py_path + [p for p in sys.path if p not in py_path]
-
[docs]def check_notably_invalid_config(conf): + +
+[docs] +def check_notably_invalid_config(conf): ''' Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled @@ -168,7 +173,10 @@

Source code for capsul.engine.module.python

     return invalid
-
[docs]def edition_widget(engine, environment, config_id='python'): + +
+[docs] +def edition_widget(engine, environment, config_id='python'): ''' Edition GUI for python config - see :class:`~capsul.qt_gui.widgets.settings_editor.SettingsEditor` ''' @@ -218,6 +226,7 @@

Source code for capsul.engine.module.python

     widget.accept = types.MethodType(validate_config, widget)
 
     return widget
+
@@ -246,8 +255,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/module/spm.html b/_modules/capsul/engine/module/spm.html index ff14981b5..87d3c0f5c 100644 --- a/_modules/capsul/engine/module/spm.html +++ b/_modules/capsul/engine/module/spm.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -239,7 +239,9 @@

Source code for capsul.engine.module.spm

 #
 
 
-
[docs]def activate_configurations(): +
+[docs] +def activate_configurations(): ''' Activate the SPM module (set env variables) from the global configurations, in order to use them via :mod:`capsul.in_context.spm` functions @@ -266,7 +268,10 @@

Source code for capsul.engine.module.spm

         del os.environ['SPM_STANDALONE']
-
[docs]def check_notably_invalid_config(conf): + +
+[docs] +def check_notably_invalid_config(conf): ''' Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled @@ -284,7 +289,10 @@

Source code for capsul.engine.module.spm

     return invalid
-
[docs]def edition_widget(engine, environment, config_id='any'): + +
+[docs] +def edition_widget(engine, environment, config_id='any'): ''' Edition GUI for SPM config - see :class:`~capsul.qt_gui.widgets.settings_editor.SettingsEditor` ''' @@ -375,6 +383,7 @@

Source code for capsul.engine.module.spm

     widget.accept = types.MethodType(validate_config, widget)
 
     return widget
+
@@ -403,8 +412,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/run.html b/_modules/capsul/engine/run.html index c2def7ffe..0c1f2df8a 100644 --- a/_modules/capsul/engine/run.html +++ b/_modules/capsul/engine/run.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -125,7 +125,9 @@

Source code for capsul.engine.run

 import io
 
 
-
[docs]class WorkflowExecutionError(Exception): +
+[docs] +class WorkflowExecutionError(Exception): ''' Exception class raised when a workflow execution fails. It holds references to the @@ -220,7 +222,10 @@

Source code for capsul.engine.run

             % (status, wk, wc, precisions))
-
[docs]def start(engine, process, workflow=None, history=True, get_pipeline=False, **kwargs): + +
+[docs] +def start(engine, process, workflow=None, history=True, get_pipeline=False, **kwargs): ''' Asynchronously start the execution of a process or pipeline in the connected computing environment. Returns an identifier of @@ -319,7 +324,10 @@

Source code for capsul.engine.run

     return wf_id
-
[docs]def wait(engine, execution_id, timeout=-1, pipeline=None): + +
+[docs] +def wait(engine, execution_id, timeout=-1, pipeline=None): ''' Wait for the end of a process execution (either normal termination, interruption or error). @@ -376,7 +384,10 @@

Source code for capsul.engine.run

     return status(engine, execution_id)
-
[docs]def interrupt(engine, execution_id): + +
+[docs] +def interrupt(engine, execution_id): ''' Try to stop the execution of a process. Does not wait for the process to be terminated. @@ -387,7 +398,10 @@

Source code for capsul.engine.run

     controller.stop_workflow(execution_id)
-
[docs]def status(engine, execution_id): + +
+[docs] +def status(engine, execution_id): ''' Return a simple value with the status of an execution (queued, running, terminated, error, etc.) @@ -413,7 +427,10 @@

Source code for capsul.engine.run

     return workflow_status
-
[docs]def detailed_information(engine, execution_id): + +
+[docs] +def detailed_information(engine, execution_id): ''' Return complete (and possibly big) information about a process execution. @@ -426,7 +443,10 @@

Source code for capsul.engine.run

     return elements_status
-
[docs]def dispose(engine, execution_id, conditional=False): + +
+[docs] +def dispose(engine, execution_id, conditional=False): ''' Update the database with the current state of a process execution and free the resources used in the computing resource (i.e. remove the @@ -451,6 +471,7 @@

Source code for capsul.engine.run

         swm.connect_resource(engine.connected_to())
         controller = swm.get_workflow_controller()
         controller.delete_workflow(execution_id)
+ # TODO: update engine DB @@ -472,7 +493,9 @@

Source code for capsul.engine.run

         engine.dispose(eid, conditional=True)
 
 
-
[docs]def raise_for_status(engine, status, execution_id=None): +
+[docs] +def raise_for_status(engine, status, execution_id=None): ''' Raise an exception if a process execution failed ''' @@ -485,6 +508,7 @@

Source code for capsul.engine.run

         raise WorkflowExecutionError(
             controller, execution_id, status,
             engine.study_config.somaworkflow_keep_failed_workflows)
+
@@ -513,8 +537,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/engine/settings.html b/_modules/capsul/engine/settings.html index 346e67b4f..b0afa1667 100644 --- a/_modules/capsul/engine/settings.html +++ b/_modules/capsul/engine/settings.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -150,7 +150,9 @@

Source code for capsul.engine.settings

 import sys
 
 
-
[docs]class Settings: +
+[docs] +class Settings: ''' Main class for the management of CapsulEngine settings. Since these settings are always stored in a populse_db database, it is necessary to @@ -191,7 +193,9 @@

Source code for capsul.engine.settings

     def __exit__(self, *args):
         self.populse_db.__exit__(*args)
 
-
[docs] @staticmethod +
+[docs] + @staticmethod def module_name(module_name): ''' Return a complete module name (which must be a valid Python module @@ -204,8 +208,11 @@

Source code for capsul.engine.settings

         if '.' not in module_name:
             module_name = 'capsul.engine.module.' + module_name
         return module_name
+ -
[docs] def select_configurations(self, environment, uses=None, +
+[docs] + def select_configurations(self, environment, uses=None, check_invalid_mods=False): ''' Select a configuration for a given environment. A configuration is @@ -358,6 +365,7 @@

Source code for capsul.engine.settings

 
         return configurations
+ def export_config_dict(self, environment=None): conf = {} if environment is None: @@ -398,7 +406,9 @@

Source code for capsul.engine.settings

         return conf
 
 
-
[docs] def import_configs(self, environment, config_dict, cont_on_error=False): +
+[docs] + def import_configs(self, environment, config_dict, cont_on_error=False): ''' Import config values from a dictionary as given by :meth:`select_configurations`. @@ -436,15 +446,22 @@

Source code for capsul.engine.settings

                                   'environment:', environment, ', module:',
                                   module, ', config:', config, file=sys.stderr)
-
[docs] def get_all_environments(self): + +
+[docs] + def get_all_environments(self): ''' Get all environment values in the database ''' with self as session: - return session.get_all_environments()
+ return session.get_all_environments()
+
+ -
[docs]class SettingsSession: +
+[docs] +class SettingsSession: ''' Settings use/modifiction session, returned by "with settings as session:" ''' @@ -460,7 +477,9 @@

Source code for capsul.engine.settings

         else:
             self.module_notifiers = module_notifiers
 
-
[docs] @staticmethod +
+[docs] + @staticmethod def collection_name(module): ''' Return the name of the populse_db collection corresponding to a @@ -470,8 +489,11 @@

Source code for capsul.engine.settings

         module = Settings.module_name(module)
         collection = '%s%s' % (Settings.collection_prefix, module)
         return collection
+ -
[docs] def ensure_module_fields(self, module, fields): +
+[docs] + def ensure_module_fields(self, module, fields): ''' Make sure that the given module exists in settings and create the given fields if they do not exist. `fields` is a list of dictionaries with three items: - name: the name of the key @@ -491,8 +513,11 @@

Source code for capsul.engine.settings

                                     field_type=field['type'],
                                     description=field['description'])
         return collection
+ -
[docs] def new_config(self, module, environment, values): +
+[docs] + def new_config(self, module, environment, values): ''' Creates a new configuration document for a module in the given environment. Values is a dictionary used to set values for the @@ -517,7 +542,10 @@

Source code for capsul.engine.settings

         config.notify()
         return config
-
[docs] def remove_config(self, module, environment, config_id): + +
+[docs] + def remove_config(self, module, environment, config_id): ''' Removes a configuration (document in the database) for a given module / environment, idenfified by its `Settings.config_id_field` value. @@ -526,7 +554,10 @@

Source code for capsul.engine.settings

         id = '%s-%s' % (config_id, environment)
         self._dbs.remove_document(collection, id)
-
[docs] def configs(self, module, environment, selection=None): + +
+[docs] + def configs(self, module, environment, selection=None): ''' Returns a generator that iterates over all configuration documents created for the given module and environment. @@ -555,7 +586,10 @@

Source code for capsul.engine.settings

                     notifiers=self.module_notifiers.get(Settings.module_name(
                         module), []))
-
[docs] def config(self, module, environment, selection=None, any=True): + +
+[docs] + def config(self, module, environment, selection=None, any=True): ''' Selects configurations (like in :meth:`congigs`) and ensures at most one one is selected @@ -586,7 +620,10 @@

Source code for capsul.engine.settings

             return configs[0]
         return None
-
[docs] def get_all_environments(self): + +
+[docs] + def get_all_environments(self): ''' Get all environment values in the database ''' @@ -609,7 +646,9 @@

Source code for capsul.engine.settings

                     % (Settings.environment_field, table)
                 res = self._dbs.engine.cursor.execute(query)
                 environments.update([r[0] for r in res])
-        return environments
+ return environments
+
+ class SettingsConfig(object): def __init__(self, populse_session, collection, id, environment, @@ -681,8 +720,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/in_context/fsl.html b/_modules/capsul/in_context/fsl.html index 64fc501a6..254f4d985 100644 --- a/_modules/capsul/in_context/fsl.html +++ b/_modules/capsul/in_context/fsl.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -144,7 +144,9 @@

Source code for capsul.in_context.fsl

 fsl_runtime_env = None
 
 
-
[docs]def fsl_command_with_environment(command, use_prefix=True, +
+[docs] +def fsl_command_with_environment(command, use_prefix=True, use_runtime_env=True): ''' Given an FSL command where first element is a command name without @@ -194,7 +196,10 @@

Source code for capsul.in_context.fsl

     return cmd
-
[docs]def fsl_env(): + +
+[docs] +def fsl_env(): ''' get FSL env variables by running the setup script in a separate bash process @@ -235,7 +240,10 @@

Source code for capsul.in_context.fsl

     return env
-
[docs]class FslPopen(soma.subprocess.Popen): + +
+[docs] +class FslPopen(soma.subprocess.Popen): ''' Equivalent to Python subprocess.Popen for FSL commands ''' @@ -249,7 +257,10 @@

Source code for capsul.in_context.fsl

             del kwargs['env']
         super(FslPopen, self).__init__(cmd, env=env, **kwargs)
-
[docs]def fsl_call(command, **kwargs): + +
+[docs] +def fsl_call(command, **kwargs): ''' Equivalent to Python subprocess.call for FSL commands ''' @@ -262,7 +273,10 @@

Source code for capsul.in_context.fsl

         del kwargs['env']
     return soma.subprocess.call(cmd, env=env, **kwargs)
-
[docs]def fsl_check_call(command, **kwargs): + +
+[docs] +def fsl_check_call(command, **kwargs): ''' Equivalent to Python subprocess.check_call for FSL commands ''' @@ -276,7 +290,10 @@

Source code for capsul.in_context.fsl

     return soma.subprocess.check_call(cmd, env=env, **kwargs)
-
[docs]def fsl_check_output(command, **kwargs): + +
+[docs] +def fsl_check_output(command, **kwargs): ''' Equivalent to Python subprocess.check_output for FSL commands ''' @@ -288,6 +305,7 @@

Source code for capsul.in_context.fsl

         kwargs = dict(kwargs)
         del kwargs['env']
     return soma.subprocess.check_output(cmd, env=env, **kwargs)
+
@@ -315,8 +333,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/in_context/spm.html b/_modules/capsul/in_context/spm.html index c327486ff..8c9fdf811 100644 --- a/_modules/capsul/in_context/spm.html +++ b/_modules/capsul/in_context/spm.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -161,7 +161,9 @@

Source code for capsul.in_context.spm

     return cmd
 
 
-
[docs]class SPMPopen(soma.subprocess.Popen): +
+[docs] +class SPMPopen(soma.subprocess.Popen): ''' Equivalent to Python subprocess.Popen for SPM batch ''' @@ -171,7 +173,10 @@

Source code for capsul.in_context.spm

         super(SPMPopen, self).__init__(cmd, **kwargs)
-
[docs]def spm_call(spm_batch_filename, **kwargs): + +
+[docs] +def spm_call(spm_batch_filename, **kwargs): ''' Equivalent to Python subprocess.call for SPM batch ''' @@ -179,7 +184,10 @@

Source code for capsul.in_context.spm

     return soma.subprocess.call(cmd, **kwargs)
-
[docs]def spm_check_call(spm_batch_filename, **kwargs): + +
+[docs] +def spm_check_call(spm_batch_filename, **kwargs): ''' Equivalent to Python subprocess.check_call for SPM batch ''' @@ -187,7 +195,10 @@

Source code for capsul.in_context.spm

     return soma.subprocess.check_call(cmd, **kwargs)
-
[docs]def spm_check_output(spm_batch_filename, **kwargs): + +
+[docs] +def spm_check_output(spm_batch_filename, **kwargs): ''' Equivalent to Python subprocess.check_output for SPM batch ''' @@ -195,6 +206,7 @@

Source code for capsul.in_context.spm

     return soma.subprocess.check_output(cmd, **kwargs)
+ if __name__ == '__main__': from capsul.api import capsul_engine import tempfile @@ -233,8 +245,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/custom_nodes/cv_node.html b/_modules/capsul/pipeline/custom_nodes/cv_node.html index 4e034cf78..a2785b7de 100644 --- a/_modules/capsul/pipeline/custom_nodes/cv_node.html +++ b/_modules/capsul/pipeline/custom_nodes/cv_node.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -117,7 +117,9 @@

Source code for capsul.pipeline.custom_nodes.cv_node

import traits.api as traits import sys -
[docs]class CrossValidationFoldNode(Node): +
+[docs] +class CrossValidationFoldNode(Node): ''' This "inert" node filters a list to separate it into (typically) learn and test sublists. @@ -213,6 +215,7 @@

Source code for capsul.pipeline.custom_nodes.cv_node

referenced_output_files=referenced_output_files, param_dict=param_dict) return job
+
@@ -240,8 +243,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/custom_nodes/loo_node.html b/_modules/capsul/pipeline/custom_nodes/loo_node.html index 31b324c40..822162422 100644 --- a/_modules/capsul/pipeline/custom_nodes/loo_node.html +++ b/_modules/capsul/pipeline/custom_nodes/loo_node.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -118,7 +118,9 @@

Source code for capsul.pipeline.custom_nodes.loo_node

import sys -
[docs]class LeaveOneOutNode(Node): +
+[docs] +class LeaveOneOutNode(Node): ''' This "inert" node excludes one input from the list of inputs, to allow leave-one-out applications. @@ -241,6 +243,7 @@

Source code for capsul.pipeline.custom_nodes.loo_node

referenced_output_files=referenced_output_files, param_dict=param_dict) return job
+
@@ -268,8 +271,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/custom_nodes/map_node.html b/_modules/capsul/pipeline/custom_nodes/map_node.html index f00453044..b0c6741b1 100644 --- a/_modules/capsul/pipeline/custom_nodes/map_node.html +++ b/_modules/capsul/pipeline/custom_nodes/map_node.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -120,7 +120,9 @@

Source code for capsul.pipeline.custom_nodes.map_node

from six.moves import zip -
[docs]class MapNode(Node): +
+[docs] +class MapNode(Node): ''' This node converts lists into series of single items. Typically an input named ``inputs`` is a list of items. The node will separate items and @@ -273,6 +275,7 @@

Source code for capsul.pipeline.custom_nodes.map_node

referenced_output_files=referenced_output_files, param_dict=param_dict) return job
+
@@ -300,8 +303,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/custom_nodes/reduce_node.html b/_modules/capsul/pipeline/custom_nodes/reduce_node.html index 46aefb96d..2688238c9 100644 --- a/_modules/capsul/pipeline/custom_nodes/reduce_node.html +++ b/_modules/capsul/pipeline/custom_nodes/reduce_node.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -121,7 +121,9 @@

Source code for capsul.pipeline.custom_nodes.reduce_node

from six.moves import zip -
[docs]class ReduceNode(Node): +
+[docs] +class ReduceNode(Node): ''' Reduce node: converts series of inputs into lists. Typically a series of inputs named ``input_0`` .. ``input_<n>`` will be output as a single list @@ -326,6 +328,7 @@

Source code for capsul.pipeline.custom_nodes.reduce_node

referenced_output_files=referenced_output_files, param_dict=param_dict) return job
+
@@ -353,8 +356,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/custom_nodes/strcat_node.html b/_modules/capsul/pipeline/custom_nodes/strcat_node.html index 820a34a82..a1ba6f2db 100644 --- a/_modules/capsul/pipeline/custom_nodes/strcat_node.html +++ b/_modules/capsul/pipeline/custom_nodes/strcat_node.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -119,7 +119,9 @@

Source code for capsul.pipeline.custom_nodes.strcat_node

from six.moves import zip -
[docs]class StrCatNode(Node): +
+[docs] +class StrCatNode(Node): ''' This "inert" node concatenates its inputs (as strings) and generates the concatenation on one of its plugs. All plugs may be inputs or outputs. @@ -242,6 +244,7 @@

Source code for capsul.pipeline.custom_nodes.strcat_node

referenced_output_files=referenced_output_files, param_dict=param_dict) return job
+
@@ -269,8 +272,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/custom_nodes/strconv.html b/_modules/capsul/pipeline/custom_nodes/strconv.html index ed69364bb..18fb41ed7 100644 --- a/_modules/capsul/pipeline/custom_nodes/strconv.html +++ b/_modules/capsul/pipeline/custom_nodes/strconv.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -119,7 +119,9 @@

Source code for capsul.pipeline.custom_nodes.strconv

import sys -
[docs]class StrConvNode(Node): +
+[docs] +class StrConvNode(Node): ''' This "inert" node converts the input into a string. @@ -187,10 +189,15 @@

Source code for capsul.pipeline.custom_nodes.strconv

node = StrConvNode(pipeline, name, input_type=t) return node -
[docs] def is_job(self): +
+[docs] + def is_job(self): return False
-
[docs] def get_connections_through(self, plug_name, single=False): + +
+[docs] + def get_connections_through(self, plug_name, single=False): if not self.activated or not self.enabled: return [] plug = self.plugs[plug_name] @@ -212,7 +219,9 @@

Source code for capsul.pipeline.custom_nodes.strconv

dest_plugs += other_end if other_end and single: break - return dest_plugs
+ return dest_plugs
+
+
@@ -240,8 +249,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/pipeline.html b/_modules/capsul/pipeline/pipeline.html index e7a4cd0a4..1c8d7146c 100644 --- a/_modules/capsul/pipeline/pipeline.html +++ b/_modules/capsul/pipeline/pipeline.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -159,7 +159,9 @@

Source code for capsul.pipeline.pipeline

 from soma.sorted_dictionary import SortedDictionary
 from soma.utils.functiontools import SomaPartial
 
-
[docs]class Pipeline(Process): +
+[docs] +class Pipeline(Process): """ Pipeline containing Process nodes, and links between node parameters. A Pipeline is normally subclassed, and its :py:meth:`pipeline_definition` @@ -379,7 +381,9 @@

Source code for capsul.pipeline.pipeline

     # Methods    #
     ##############
 
-
[docs] def pipeline_definition(self): +
+[docs] + def pipeline_definition(self): """ Define pipeline structure, nodes, sub-pipelines, switches, and links. @@ -388,7 +392,10 @@

Source code for capsul.pipeline.pipeline

         """
         pass
-
[docs] def autoexport_nodes_parameters(self, include_optional=False): + +
+[docs] + def autoexport_nodes_parameters(self, include_optional=False): """ Automatically export nodes plugs to the pipeline. Some parameters can be explicitly preserved from exportation if they @@ -418,7 +425,10 @@

Source code for capsul.pipeline.pipeline

 
                     self.export_parameter(node_name, parameter_name)
-
[docs] def add_trait(self, name, trait): + +
+[docs] + def add_trait(self, name, trait): """ Add a trait to the pipeline Parameters @@ -441,7 +451,10 @@

Source code for capsul.pipeline.pipeline

             plug.on_trait_change(self.update_nodes_and_plugs_activation,
                                  'enabled')
-
[docs] def remove_trait(self, name): + +
+[docs] + def remove_trait(self, name): """ Remove a trait to the pipeline Parameters @@ -472,7 +485,10 @@

Source code for capsul.pipeline.pipeline

         # Remove the trait
         super(Pipeline, self).remove_trait(name)
-
[docs] def reorder_traits(self, names): + +
+[docs] + def reorder_traits(self, names): """ Reimplementation of :class:`~soma.controller.controller.Controller` method :meth:`~~soma.controller.controller.Controller.reorder_traits` so that we also reorder the pipeline node plugs. @@ -487,6 +503,7 @@

Source code for capsul.pipeline.pipeline

             = [k for k in names if k in old_keys] \
               + [k for k in old_keys if k not in names]
+ def _make_subprocess_context_name(self, name): ''' build full contextual name on process instance ''' @@ -518,7 +535,9 @@

Source code for capsul.pipeline.pipeline

                         if isinstance(sub_proc, Pipeline):
                             todo.append(sub_proc)
 
-
[docs] def add_process(self, name, process, do_not_export=None, +
+[docs] + def add_process(self, name, process, do_not_export=None, make_optional=None, inputs_to_copy=None, inputs_to_clean=None, skip_invalid=False, **kwargs): """ Add a new node in the pipeline @@ -674,7 +693,10 @@

Source code for capsul.pipeline.pipeline

         # Add new node in pipeline process list to keep its life
         self.list_process_in_pipeline.append(process)
-
[docs] def remove_node(self, node_name): + +
+[docs] + def remove_node(self, node_name): """ Remove a node from the pipeline """ node = self.nodes[node_name] @@ -698,7 +720,10 @@

Source code for capsul.pipeline.pipeline

                 self._set_node_enabled, node_name, remove=True)
             self.nodes_activation.remove_trait(node_name)
-
[docs] def add_iterative_process(self, name, process, iterative_plugs=None, + +
+[docs] + def add_iterative_process(self, name, process, iterative_plugs=None, do_not_export=None, make_optional=None, inputs_to_copy=None, inputs_to_clean=None, **kwargs): @@ -746,7 +771,10 @@

Source code for capsul.pipeline.pipeline

             do_not_export, make_optional, **kwargs)
         return
-
[docs] def call_process_method(self, process_name, method, + +
+[docs] + def call_process_method(self, process_name, method, *args, **kwargs): """ Call a method of a process previously added with add_process or add_iterative_process. @@ -760,8 +788,11 @@

Source code for capsul.pipeline.pipeline

         """
         return getattr(self.nodes[process_name].process, method)(*args,
                                                                  **kwargs)
+ -
[docs] def add_switch(self, name, inputs, outputs, export_switch=True, +
+[docs] + def add_switch(self, name, inputs, outputs, export_switch=True, make_optional=(), output_types=None, switch_value=None, opt_nodes=None): """ Add a switch node in the pipeline @@ -846,7 +877,10 @@

Source code for capsul.pipeline.pipeline

         if study_config:
             node.set_study_config(study_config)
-
[docs] def add_optional_output_switch(self, name, input, output=None): + +
+[docs] + def add_optional_output_switch(self, name, input, output=None): """ Add an optional output switch node in the pipeline An optional switch activates or disables its input/output link @@ -911,7 +945,10 @@

Source code for capsul.pipeline.pipeline

         if study_config:
             node.set_study_config(study_config)
-
[docs] def add_custom_node(self, name, node_type, parameters=None, + +
+[docs] + def add_custom_node(self, name, node_type, parameters=None, make_optional=(), do_not_export=None, **kwargs): """ Inserts a custom node (Node subclass instance which is not a Process) @@ -973,7 +1010,10 @@

Source code for capsul.pipeline.pipeline

 
         return node
-
@@ -1870,8 +1879,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/process_iteration.html b/_modules/capsul/pipeline/process_iteration.html index 686a73f49..dc76e1851 100644 --- a/_modules/capsul/pipeline/process_iteration.html +++ b/_modules/capsul/pipeline/process_iteration.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -131,7 +131,9 @@

Source code for capsul.pipeline.process_iteration

if sys.version_info[0] >= 3: xrange = range -
[docs]class ProcessIteration(Process): +
+[docs] +class ProcessIteration(Process): _doc_path = 'api/pipeline.html#processiteration' @@ -237,7 +239,9 @@

Source code for capsul.pipeline.process_iteration

if mod: setattr(self, param, new_value) -
[docs] def change_iterative_plug(self, parameter, iterative=None): +
+[docs] + def change_iterative_plug(self, parameter, iterative=None): ''' Change a parameter to be iterative (or non-iterative) @@ -293,6 +297,7 @@

Source code for capsul.pipeline.process_iteration

# copy initial value of the underlying process to self setattr(self, parameter, getattr(self.process, parameter))
+ def _run_process(self): # Check that all iterative parameter value have the same size no_output_value = None @@ -371,10 +376,13 @@

Source code for capsul.pipeline.process_iteration

self.complete_iteration(iteration) self.process() -
[docs] def set_study_config(self, study_config): +
+[docs] + def set_study_config(self, study_config): super(ProcessIteration, self).set_study_config(study_config) self.process.set_study_config(study_config)
+ def complete_iteration(self, iteration): # don't import this at module level to avoid cyclic imports from capsul.attributes.completion_engine import ProcessCompletionEngine @@ -384,6 +392,7 @@

Source code for capsul.pipeline.process_iteration

# check if it is an iterative completion engine if hasattr(completion_engine, 'complete_iteration_step'): completion_engine.complete_iteration_step(iteration)
+
@@ -411,8 +420,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/python_export.html b/_modules/capsul/pipeline/python_export.html index 28614fc74..19f192663 100644 --- a/_modules/capsul/pipeline/python_export.html +++ b/_modules/capsul/pipeline/python_export.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -124,7 +124,9 @@

Source code for capsul.pipeline.python_export

import sys -
[docs]def save_py_pipeline(pipeline, py_file): +
+[docs] +def save_py_pipeline(pipeline, py_file): ''' Save a pipeline in an Python source file @@ -652,6 +654,7 @@

Source code for capsul.pipeline.python_export

if pyf is not py_file: pyf.close()
+
@@ -679,8 +682,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/pipeline/topological_sort.html b/_modules/capsul/pipeline/topological_sort.html index 1ae02c0f1..09dca2ffc 100644 --- a/_modules/capsul/pipeline/topological_sort.html +++ b/_modules/capsul/pipeline/topological_sort.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -124,7 +124,9 @@

Source code for capsul.pipeline.topological_sort

logger = logging.getLogger(__name__) -
[docs]class GraphNode(object): +
+[docs] +class GraphNode(object): """ Simple Graph Node Structure Attributes @@ -170,7 +172,9 @@

Source code for capsul.pipeline.topological_sort

self.links_to_degree = 0 self.links_from_degree = 0 -
@@ -542,8 +545,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/process/process.html b/_modules/capsul/process/process.html index ff0b3d421..ea90e98cd 100644 --- a/_modules/capsul/process/process.html +++ b/_modules/capsul/process/process.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -165,12 +165,16 @@

Source code for capsul.process.process

 from capsul.utils.version_utils import get_tool_version
 
 
-
[docs]class ProcessMeta(Controller.__class__): +
+[docs] +class ProcessMeta(Controller.__class__): """ Class used to complete a process docstring Use a class and not a function for inheritance. """ -
[docs] @staticmethod +
+[docs] + @staticmethod def complement_doc(name, docstr): """ complement the process docstring """ @@ -205,6 +209,7 @@

Source code for capsul.process.process

 
         return "\n".join(docstring)
+ def __new__(mcls, name, bases, attrs): """ Method to print the full help. @@ -238,7 +243,10 @@

Source code for capsul.process.process

             mcls, name, bases, attrs)
-
[docs]class Process(six.with_metaclass(ProcessMeta, Controller)): + +
+[docs] +class Process(six.with_metaclass(ProcessMeta, Controller)): """ A process is an atomic component that contains a processing. A process is typically an object with typed parameters, and an execution @@ -359,7 +367,9 @@

Source code for capsul.process.process

         state.pop('study_config', None)
         return state
     
-
[docs] def add_trait(self, name, trait): +
+[docs] + def add_trait(self, name, trait): """Ensure that trait.output and trait.optional are set to a boolean value before calling parent class add_trait. """ @@ -372,6 +382,7 @@

Source code for capsul.process.process

             trait.output = bool(trait.output)
             trait.optional = bool(trait.optional)
         super(Process, self).add_trait(name, trait)
+ def __call__(self, **kwargs): """ Method to execute the Process. @@ -412,12 +423,15 @@

Source code for capsul.process.process

         return returncode
 
 
-
[docs] def run(self, **kwargs): +
+[docs] + def run(self, **kwargs): ''' Obsolete: use self.__call__ instead ''' return self.__call__(**kwargs)
+ #################################################################### # Private methods @@ -569,7 +583,9 @@

Source code for capsul.process.process

     # Public methods
     ####################################################################
 
-
[docs] def save_log(self, returncode): +
+[docs] + def save_log(self, returncode): """ Method to save process execution information in json format. If the class attribute `log_file` is not set, a log.json output @@ -595,7 +611,10 @@

Source code for capsul.process.process

         with open(self.log_file, "w") as f:
             f.write(six.text_type(json_struct))
-
[docs] @classmethod + +
+[docs] + @classmethod def help(cls, returnhelp=False): """ Method to print the full help. @@ -610,11 +629,14 @@

Source code for capsul.process.process

         cls_instance = cls()
         return cls_instance.get_help(returnhelp)
+ #################################################################### # Accessors #################################################################### -
[docs] def get_commandline(self): +
+[docs] + def get_commandline(self): """ Method to generate a commandline representation of the process. If not implemented, it will generate a commandline running python, @@ -700,7 +722,10 @@

Source code for capsul.process.process

 
         return commandline
-
[docs] def params_to_command(self): + +
+[docs] + def params_to_command(self): ''' Generates a commandline representation of the process. @@ -755,7 +780,10 @@

Source code for capsul.process.process

             return ['format_string'] + self.get_commandline()
         return ['capsul_job', self.id]
-
[docs] def make_commandline_argument(self, *args): + +
+[docs] + def make_commandline_argument(self, *args): """This helper function may be used to build non-trivial commandline arguments in get_commandline implementations. Basically it concatenates arguments, but it also takes care of keeping @@ -783,7 +811,10 @@

Source code for capsul.process.process

                 built_arg = built_arg + repr(arg)
         return built_arg
-
[docs] @staticmethod + +
+[docs] + @staticmethod def run_from_commandline(process_definition): ''' Run a process from a commandline call. The process name (with module) @@ -884,7 +915,10 @@

Source code for capsul.process.process

             with open(out_param_file, 'w') as f:
                 json.dump(json_utils.to_json(output_params), f)
-
[docs] def get_log(self): + +
+[docs] + def get_log(self): """ Load the logging file. .. note: @@ -902,7 +936,10 @@

Source code for capsul.process.process

         else:
             return None
-
[docs] def get_input_spec(self): + +
+[docs] + def get_input_spec(self): """ Method to access the process input specifications. Returns @@ -918,7 +955,10 @@

Source code for capsul.process.process

                     trait_name, trait_ids(self.trait(trait_name)))
         return output
-
[docs] def get_output_spec(self): + +
+[docs] + def get_output_spec(self): """ Method to access the process output specifications. Returns @@ -932,7 +972,10 @@

Source code for capsul.process.process

                 trait_name, trait_ids(self.trait(trait_name)))
         return output
-
[docs] def get_inputs(self): + +
+[docs] + def get_inputs(self): """ Method to access the process inputs. Returns @@ -946,7 +989,10 @@

Source code for capsul.process.process

                 output[trait_name] = getattr(self, trait_name)
         return output
-
[docs] def get_outputs(self): + +
+[docs] + def get_outputs(self): """ Method to access the process outputs. Returns @@ -959,7 +1005,10 @@

Source code for capsul.process.process

             output[trait_name] = getattr(self, trait_name)
         return output
-
[docs] def get_help(self, returnhelp=False, use_labels=False): + +
+[docs] + def get_help(self, returnhelp=False, use_labels=False): """ Generate description of a process parameters. Parameters @@ -1030,7 +1079,10 @@

Source code for capsul.process.process

         else:
             print(full_help)
-
[docs] def get_input_help(self, rst_formating=False): + +
+[docs] + def get_input_help(self, rst_formating=False): """ Generate description for process input parameters. Parameters @@ -1105,7 +1157,10 @@

Source code for capsul.process.process

 
         return helpstr
-
[docs] def get_output_help(self, rst_formating=False): + +
+[docs] + def get_output_help(self, rst_formating=False): """ Generate description for process output parameters. Parameters @@ -1147,7 +1202,10 @@

Source code for capsul.process.process

 
         return helpstr
-
[docs] def set_parameter(self, name, value, protected=None): + +
+[docs] + def set_parameter(self, name, value, protected=None): """ Method to set a process instance trait value. For File and Directory traits the None value is replaced by the @@ -1172,7 +1230,10 @@

Source code for capsul.process.process

         # Set the new trait value
         setattr(self, name, value)
-
[docs] def get_parameter(self, name): + +
+[docs] + def get_parameter(self, name): """ Method to access the value of a process instance. Parameters @@ -1187,7 +1248,10 @@

Source code for capsul.process.process

         """
         return getattr(self, name)
-
[docs] def get_study_config(self): + +
+[docs] + def get_study_config(self): ''' Get (or create) the StudyConfig this process belongs to ''' if self.study_config is None: @@ -1196,7 +1260,10 @@

Source code for capsul.process.process

             self.set_study_config(default_study_config())
         return self.study_config
-
[docs] def set_study_config(self, study_config): + +
+[docs] + def set_study_config(self, study_config): ''' Set a StudyConfig for the process. Note that it can only be done once: once a non-null StudyConfig has been assigned to the process, it should not change. @@ -1208,7 +1275,10 @@

Source code for capsul.process.process

                              % self.name)
         self.study_config = study_config
-
[docs] def get_missing_mandatory_parameters(self): + +
+[docs] + def get_missing_mandatory_parameters(self): ''' Returns a list of parameters which are not optional, and which value is Undefined or None, or an empty string for a File or Directory parameter. @@ -1239,7 +1309,10 @@

Source code for capsul.process.process

                     missing.append(name)
         return missing
-
[docs] def requirements(self): + +
+[docs] + def requirements(self): ''' Requirements needed to run the process. It is a dictionary which keys are config/settings modules and values are requests for them. @@ -1252,7 +1325,10 @@

Source code for capsul.process.process

         '''
         return {}
-
[docs] def check_requirements(self, environment='global', message_list=None): + +
+[docs] + def check_requirements(self, environment='global', message_list=None): ''' Checks the process requirements against configuration settings values in the attached CapsulEngine. This makes use of the @@ -1304,10 +1380,14 @@

Source code for capsul.process.process

         if success:
             return config
         else:
-            return None
+ return None
+
-
[docs]class FileCopyProcess(Process): + +
+[docs] +class FileCopyProcess(Process): """ A specific process that copies all the input files. Attributes @@ -1562,7 +1642,9 @@

Source code for capsul.process.process

                     os.path.isfile(python_object)):
                 os.remove(python_object)
 
-
[docs] def _update_input_traits(self, copy=True): +
+[docs] + def _update_input_traits(self, copy=True): """ Update the process input traits: input files are copied. """ # Get the new trait values @@ -1575,7 +1657,10 @@

Source code for capsul.process.process

             self._copy_input_files(input_symlinks, True, self.copied_files,
                                    copy=copy))
-
[docs] def _copy_input_files(self, python_object, use_symlink=True, + +
+[docs] + def _copy_input_files(self, python_object, use_symlink=True, files_list=None, copy=True): """ Recursive method that copy the input process files. @@ -1681,7 +1766,10 @@

Source code for capsul.process.process

 
         return out
-
[docs] def _get_process_arguments(self): + +
+[docs] + def _get_process_arguments(self): """ Get the process arguments. The user process traits are accessed through the user_traits() @@ -1716,10 +1804,14 @@

Source code for capsul.process.process

                     else:
                         input_symlinks[name] = value
 
-        return input_parameters, input_symlinks
+ return input_parameters, input_symlinks
+
+ -
[docs]class NipypeProcess(FileCopyProcess): +
+[docs] +class NipypeProcess(FileCopyProcess): """ Base class used to wrap nipype interfaces. """ @@ -1940,7 +2032,9 @@

Source code for capsul.process.process

         pass
 
 
-
[docs] def requirements(self): +
+[docs] + def requirements(self): req = {'nipype': 'any'} if self._nipype_interface_name == "spm": req['spm'] = 'any' @@ -1951,7 +2045,10 @@

Source code for capsul.process.process

         return req
-
[docs] def set_output_directory(self, out_dir): + +
+[docs] + def set_output_directory(self, out_dir): """ Set the process output directory. Parameters @@ -1961,7 +2058,10 @@

Source code for capsul.process.process

         """
         self.output_directory = out_dir
-
[docs] def set_usedefault(self, parameter, value): + +
+[docs] + def set_usedefault(self, parameter, value): """ Set the value of the usedefault attribute on a given parameter. Parameters @@ -1973,6 +2073,7 @@

Source code for capsul.process.process

         """
         setattr(self._nipype_interface.inputs, parameter, value)
+ def _before_run_process(self): if self._nipype_interface_name == "spm": # Set the spm working @@ -2056,7 +2157,9 @@

Source code for capsul.process.process

         return super(NipypeProcess,
                      self)._after_run_process(run_process_result)
 
-
[docs] @classmethod +
+[docs] + @classmethod def help(cls, nipype_interface, returnhelp=False): """ Method to print the full wrapped nipype interface help. @@ -2072,9 +2175,13 @@

Source code for capsul.process.process

         """
         from .nipype_process import nipype_factory
         cls_instance = nipype_factory(nipype_interface)
-        return cls_instance.get_help(returnhelp)
+ return cls_instance.get_help(returnhelp)
+
+ -
[docs]class InteractiveProcess(Process): +
+[docs] +class InteractiveProcess(Process): ''' Base class for interactive processes. The value of the is_interactive parameter determine if either the process can be run in background @@ -2084,7 +2191,10 @@

Source code for capsul.process.process

     '''
     is_interactive = Bool(False)
-
[docs]class ProcessResult(object): + +
+[docs] +class ProcessResult(object): """ Object that contains running information a particular Process. Parameters @@ -2110,6 +2220,7 @@

Source code for capsul.process.process

         self.returncode = returncode
         self.inputs = inputs
         self.outputs = outputs
+
@@ -2137,8 +2248,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/process/runprocess.html b/_modules/capsul/process/runprocess.html index 51f5eb4da..812104aec 100644 --- a/_modules/capsul/process/runprocess.html +++ b/_modules/capsul/process/runprocess.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -184,13 +184,18 @@

Source code for capsul.process.runprocess

 logger = logging.getLogger(__name__)
 
 
-
[docs]class ProcessParamError(Exception): +
+[docs] +class ProcessParamError(Exception): ''' Exception used in the ``runprocess`` module ''' pass
-
[docs]def set_process_param_from_str(process, k, arg): + +
+[docs] +def set_process_param_from_str(process, k, arg): """Set a process parameter from a string representation.""" if not process.trait(k): raise ProcessParamError("Unknown parameter {0} for process {1}" @@ -204,7 +209,10 @@

Source code for capsul.process.runprocess

     setattr(process, k, arg)
-
[docs]def get_process_with_params(process_name, study_config, iterated_params=[], + +
+[docs] +def get_process_with_params(process_name, study_config, iterated_params=[], attributes={}, *args, **kwargs): ''' Instantiate a process, or an iteration over processes, and fill in its parameters. @@ -262,7 +270,10 @@

Source code for capsul.process.runprocess

     return process
-
[docs]def run_process_with_distribution( + +
+[docs] +def run_process_with_distribution( study_config, process, use_soma_workflow=False, resource_id=None, password=None, config=None, rsa_key_pass=None, queue=None, input_file_processing=None, output_file_processing=None, @@ -348,6 +359,7 @@

Source code for capsul.process.runprocess

     return res
+ def convert_commandline_parameter(i): if len(i) > 0 and ( i[0] in '[({' or i in ( 'None', 'True', 'False' ) ): try: @@ -360,7 +372,9 @@

Source code for capsul.process.runprocess

 
 
 # main
-
[docs]def main(): +
+[docs] +def main(): ''' Run the :mod:`capsul.process.runprocess` module as a commandline ''' @@ -636,6 +650,7 @@

Source code for capsul.process.runprocess

     # has succeeded...
     os._exit(0)
+ # otherwise it has raised an exception, exit "normally" @@ -668,8 +683,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/process/xml.html b/_modules/capsul/process/xml.html index 72db54539..4c25e3f20 100644 --- a/_modules/capsul/process/xml.html +++ b/_modules/capsul/process/xml.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -150,7 +150,9 @@

Source code for capsul.process.xml

     'None': Undefined
 }
     
-
[docs]def string_to_value(string): +
+[docs] +def string_to_value(string): """ Converts a string into a Python value without executing code. """ value = _known_values.get(string) @@ -161,7 +163,10 @@

Source code for capsul.process.xml

             raise ValueError('%s: %s' % (str(e), repr(string)))
     return value
-
[docs]class XMLProcess(Process): + +
+[docs] +class XMLProcess(Process): """ Base class of all generated classes for processes defined as a Python function decorated with an XML string. """ @@ -196,6 +201,7 @@

Source code for capsul.process.xml

                 raise ValueError('Value returned by process %s must be a list,'
                                  ' tuple or dict' % self.id)
+ string_to_trait = { 'int': (Int, {}), 'float': (Float, {}), @@ -214,7 +220,9 @@

Source code for capsul.process.xml

     'list_directory': (List, {'trait': Directory}),
     'list_any': (List, {'trait': Any}),
 }
-
[docs]def trait_from_xml(element, order=None): +
+[docs] +def trait_from_xml(element, order=None): """ Creates a trait from an XML element type (<input>, <output> or <return>). """ @@ -250,7 +258,10 @@

Source code for capsul.process.xml

         trait_kwargs['order'] = order
     return trait_class(*trait_args, **trait_kwargs)
-
[docs]def create_xml_process(module, name, function, xml): + +
+[docs] +def create_xml_process(module, name, function, xml): """ Create a new process class given a Python function and a string containing the corresponding Capsul XML 2.0 definition. @@ -334,7 +345,10 @@

Source code for capsul.process.xml

     return process_class
-
[docs]def xml_process(xml): + +
+[docs] +def xml_process(xml): """ Decorator used to associate a Python function to its Process XML representation. """ @@ -342,6 +356,7 @@

Source code for capsul.process.xml

         function.capsul_xml = xml
         return function
     return set_capsul_xml
+
@@ -369,8 +384,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_apps/utils/application.html b/_modules/capsul/qt_apps/utils/application.html index 10f8d5eb1..c226450be 100644 --- a/_modules/capsul/qt_apps/utils/application.html +++ b/_modules/capsul/qt_apps/utils/application.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -124,7 +124,9 @@

Source code for capsul.qt_apps.utils.application

from soma.qt_gui.qt_backend import Qt, QtCore, QtWidgets -
[docs]class Application(QtWidgets.QApplication): +
+[docs] +class Application(QtWidgets.QApplication): """ Base Application class. Used to set some user options @@ -265,11 +267,15 @@

Source code for capsul.qt_apps.utils.application

self.message_box.show()
-
[docs]class EmittingStream(QtCore.QObject): + +
+[docs] +class EmittingStream(QtCore.QObject): """ Logging emitting string basic handler. """ def write(self, text): self.textWritten.emit(str(text))
+
@@ -297,8 +303,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_apps/utils/fill_treectrl.html b/_modules/capsul/qt_apps/utils/fill_treectrl.html index e61fba69f..196c30832 100644 --- a/_modules/capsul/qt_apps/utils/fill_treectrl.html +++ b/_modules/capsul/qt_apps/utils/fill_treectrl.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -125,7 +125,9 @@

Source code for capsul.qt_apps.utils.fill_treectrl

font = QtGui.QFont("", 9, QtGui.QFont.Bold) -
[docs]def fill_treectrl(treectrl, menu, match=""): +
+[docs] +def fill_treectrl(treectrl, menu, match=""): """ Fill a tree control with the different menu items. This procedure is able to filter the menu items. @@ -148,7 +150,10 @@

Source code for capsul.qt_apps.utils.fill_treectrl

add_tree_nodes(treectrl, menu, match)
-
[docs]def add_tree_nodes(parent_item, menu, match, parent_module=""): + +
+[docs] +def add_tree_nodes(parent_item, menu, match, parent_module=""): """ Add the menu to tree control if match in current module name or child modules. @@ -189,7 +194,10 @@

Source code for capsul.qt_apps.utils.fill_treectrl

tree_item.setFont(0, font)
-
[docs]def search_in_menu(menu, match): + +
+[docs] +def search_in_menu(menu, match): """ Recursive search in tree. The search procedure is insensitive to the cast. @@ -231,6 +239,7 @@

Source code for capsul.qt_apps.utils.fill_treectrl

return is_included return is_included
+
@@ -258,8 +267,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_apps/utils/find_pipelines.html b/_modules/capsul/qt_apps/utils/find_pipelines.html index 8de18d25b..15f5f56a0 100644 --- a/_modules/capsul/qt_apps/utils/find_pipelines.html +++ b/_modules/capsul/qt_apps/utils/find_pipelines.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -134,7 +134,9 @@

Source code for capsul.qt_apps.utils.find_pipelines

logger = logging.getLogger(__name__) -
[docs]def find_pipelines_from_description(module_name, url=None): +
+[docs] +def find_pipelines_from_description(module_name, url=None): """ Function that list all the pipeline of a module. Parameters @@ -184,7 +186,10 @@

Source code for capsul.qt_apps.utils.find_pipelines

return {}, []
-
[docs]def find_pipeline_and_process(module_name): + +
+[docs] +def find_pipeline_and_process(module_name): """ Function that return all the Pipeline and Process classes of a module. All the mdoule path are scanned recuresively. Any pipeline or process will @@ -274,7 +279,10 @@

Source code for capsul.qt_apps.utils.find_pipelines

return output
-
[docs]def lists2dict(list_of_pipeline_description, url, d): + +
+[docs] +def lists2dict(list_of_pipeline_description, url, d): """ Convert a list of split module names to a hierachic dictionary with list leafs that contain the url to the module docuementation. @@ -306,6 +314,7 @@

Source code for capsul.qt_apps.utils.find_pipelines

d[l[0]].update(lists2dict([l[1:]], url, d[l[0]])) return d
+
@@ -333,8 +342,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_apps/utils/window.html b/_modules/capsul/qt_apps/utils/window.html index e6dd38b77..4b2af7b62 100644 --- a/_modules/capsul/qt_apps/utils/window.html +++ b/_modules/capsul/qt_apps/utils/window.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -120,7 +120,9 @@

Source code for capsul.qt_apps.utils.window

 from capsul.qt_apps.resources.icones import *
 
 
-
[docs]class MyQUiLoader(object): +
+[docs] +class MyQUiLoader(object): """ Base window class based on ui file description. """ @@ -133,6 +135,7 @@

Source code for capsul.qt_apps.utils.window

             a filename containing the user interface description.
         """
         self.ui = qt_backend.loadUi(uifile)
+
@@ -160,8 +163,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_gui/board_widget.html b/_modules/capsul/qt_gui/board_widget.html index 52c0d07bc..04a5761a1 100644 --- a/_modules/capsul/qt_gui/board_widget.html +++ b/_modules/capsul/qt_gui/board_widget.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -130,7 +130,9 @@

Source code for capsul.qt_gui.board_widget

 from capsul.pipeline.pipeline_nodes import Switch, PipelineNode
 
 
-
[docs]class BoardWidget(QtGui.QWidget): +
+[docs] +class BoardWidget(QtGui.QWidget): """ Class that create a widget to visualize the controller status. """ @@ -182,7 +184,9 @@

Source code for capsul.qt_gui.board_widget

     # Methods   
     ###########################################################################
 
-
[docs] def create_output_widget(self): +
+[docs] + def create_output_widget(self): """ Method to create the output controller widget built from the class controller output traits """ @@ -191,7 +195,10 @@

Source code for capsul.qt_gui.board_widget

                 hide_labels=False, select_controls="outputs")
         self.output_controller_widget.setEnabled(False)
-
[docs] def create_viewer_tree(self): + +
+[docs] + def create_viewer_tree(self): """ Method to create a tree with two columns (pipeline name - viewers) that will summarize all the available quality control nodes """ @@ -203,7 +210,10 @@

Source code for capsul.qt_gui.board_widget

         self.viewer_tree.headerItem().setText(0, "Pipeline Name")
         self.viewer_tree.headerItem().setText(1, "Viewers")
-
[docs] def create_board_tree(self): + +
+[docs] + def create_board_tree(self): """ Method to create a tree with five columns (processings - status - execution time - memory - logs) that will summarize all the available quality control nodes @@ -219,6 +229,7 @@

Source code for capsul.qt_gui.board_widget

         self.board_tree.headerItem().setText(3, "Memory")
         self.board_tree.headerItem().setText(4, "Logs")
+ ########################################################################### # Private methods ########################################################################### @@ -332,7 +343,9 @@

Source code for capsul.qt_gui.board_widget

             board_child.setText(0, process_info["name"])
             board_child.setText(4, process_info["log"])
 
-
[docs] def browse_node(self, node, process_nodes, view_nodes, parent_pipeline): +
+[docs] + def browse_node(self, node, process_nodes, view_nodes, parent_pipeline): """ Find view_node and leaf nodes, ie. Process nodes Parameters @@ -362,7 +375,9 @@

Source code for capsul.qt_gui.board_widget

                 if node.node_type == "view_node":
                     view_nodes.append((node, parent_pipeline))
                 else:
-                    process_nodes.append(node)
+ process_nodes.append(node)
+
+
@@ -392,8 +407,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_gui/widgets/activation_inspector.html b/_modules/capsul/qt_gui/widgets/activation_inspector.html index 1eee8b7f4..abb6c7679 100644 --- a/_modules/capsul/qt_gui/widgets/activation_inspector.html +++ b/_modules/capsul/qt_gui/widgets/activation_inspector.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -141,7 +141,9 @@

Source code for capsul.qt_gui.widgets.activation_inspector

from capsul.pipeline.pipeline_nodes import PipelineNode -
[docs]class ActivationInspectorApp(Application): +
+[docs] +class ActivationInspectorApp(Application): """ ActivationInspector Application. While developing a pipeline, nodes are connected through links. Nodes will be automatically activated or disabled depending on their connections (a mandatory link to a disabled node will disable the current one). You will often wonder why a node will not be activated. This tool helps to determine when and why by "playing" activation rules sequences step-by-step and displaying nodes which activate or deactivate at each step. @@ -172,7 +174,9 @@

Source code for capsul.qt_gui.widgets.activation_inspector

self.window = None self.init_window() -
[docs] def init_window(self): +
+[docs] + def init_window(self): """ Method to initialize the main window. """ # First set some meta information @@ -195,9 +199,13 @@

Source code for capsul.qt_gui.widgets.activation_inspector

self.activation_window.show() self.controller_window.show() - return True
+ return True
+
-
[docs]class ActivationInspector(QtGui.QWidget): + +
+[docs] +class ActivationInspector(QtGui.QWidget): """ A Widget to display the pipeline activation process step by step. """ def __init__(self, pipeline, ui_file=None, record_file=None, @@ -286,12 +294,17 @@

Source code for capsul.qt_gui.widgets.activation_inspector

if developper_view is not None: developper_view.plug_clicked.connect(self.set_filter_pattern) -
[docs] def show(self): +
+[docs] + def show(self): """ Shows the widget and its child widgets. """ self.ui.show()
-
[docs] def add_controls_to_ui(self): + +
+[docs] + def add_controls_to_ui(self): """ Method to find dynamic controls """ # Error message template @@ -314,11 +327,14 @@

Source code for capsul.qt_gui.widgets.activation_inspector

logger.error(error_message.format( type(self.ui), control_name))
+ ########################################################################### # Slots ########################################################################### -
[docs] def refresh_activation_from_record(self): +
+[docs] + def refresh_activation_from_record(self): """ Method to display pipeline activation steps from the recorded file. """ # Open the last recorded activation file @@ -367,7 +383,10 @@

Source code for capsul.qt_gui.widgets.activation_inspector

# in his final configuration self.ui.events.setCurrentRow(self.ui.events.count() - 1)
-
[docs] def update_pipeline_activation(self, index): + +
+[docs] + def update_pipeline_activation(self, index): """ Method that is used to replay the activation step by step. When a specific activation step is selected, the pipeline will reflect @@ -391,7 +410,10 @@

Source code for capsul.qt_gui.widgets.activation_inspector

if isinstance(node, PipelineNode): node.process.selection_changed = True
-
[docs] def find_next(self): + +
+[docs] + def find_next(self): """ Forward search for a pattern in the activation list. Returns @@ -413,8 +435,11 @@

Source code for capsul.qt_gui.widgets.activation_inspector

next_activation_row += 1 return 0
+ -
[docs] def find_previous(self): +
+[docs] + def find_previous(self): """ Backward search for a pattern in the activation list. Returns @@ -437,7 +462,10 @@

Source code for capsul.qt_gui.widgets.activation_inspector

return 0
-
[docs] def set_filter_pattern(self, filter_pattern): + +
+[docs] + def set_filter_pattern(self, filter_pattern): """ Method that set a filter pattern. Try a forward search followed by a backward one. @@ -452,7 +480,9 @@

Source code for capsul.qt_gui.widgets.activation_inspector

# Try to select an item corresponding to the filter pattern if not self.find_next(): - self.find_previous()
+ self.find_previous()
+
+ if __name__ == "__main__": @@ -507,8 +537,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_gui/widgets/attributed_process_widget.html b/_modules/capsul/qt_gui/widgets/attributed_process_widget.html index 66b4d9b0c..36b0ca957 100644 --- a/_modules/capsul/qt_gui/widgets/attributed_process_widget.html +++ b/_modules/capsul/qt_gui/widgets/attributed_process_widget.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -127,7 +127,9 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

from traits.api import File, HasTraits, Any, Directory, Undefined, List -
[docs]class AttributedProcessWidget(QtGui.QWidget): +
+[docs] +class AttributedProcessWidget(QtGui.QWidget): """Process interface with attributes completion handling""" def __init__(self, attributed_process, enable_attr_from_filename=False, enable_load_buttons=False, override_control_types=None, @@ -360,7 +362,9 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

# re-hide file params if needed self.show_completion(self._show_completion) -
[docs] def on_input_filename_changed(self, text): +
+[docs] + def on_input_filename_changed(self, text): ''' Input file path to guess completion attributes changed: update attributes @@ -377,7 +381,10 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

traceback.print_stack()
-
[docs] def on_btn_load_json(self): + +
+[docs] + def on_btn_load_json(self): """Load attributes from a json file""" completion_engine = getattr(self.attributed_process, 'completion_engine', None) @@ -395,7 +402,10 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

print("loaded:", attributes) completion_engine.get_attribute_values().import_from_dict(attributes)
-
[docs] def on_btn_save_json(self): + +
+[docs] + def on_btn_save_json(self): """Save attributes in a json file""" completion_engine = getattr(self.attributed_process, 'completion_engine', None) @@ -411,7 +421,10 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

json.dump(completion_engine.get_attribute_values().export_to_dict(), open(filename, 'w'))
-
[docs] def set_use_fom(self): + +
+[docs] + def set_use_fom(self): ''' Setup the FOM doing its job ''' @@ -457,10 +470,13 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

QtCore.QTimer.singleShot(0, self._reset_fom_checkbox)
+ def _reset_fom_checkbox(self): self.checkbox_fom.setChecked(False) -
[docs] def on_use_fom_change(self, state): +
+[docs] + def on_use_fom_change(self, state): ''' Use completion checkbox callback ''' @@ -476,7 +492,10 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

remove=True) self.btn_show_completion.setChecked(True)
-
[docs] def show_completion(self, visible=None): + +
+[docs] + def show_completion(self, visible=None): ''' Show or hide completion (File, Directory, or Any parameters) @@ -529,12 +548,16 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

else: group_widget.hide()
-
[docs] def on_show_completion(self, visible): + +
+[docs] + def on_show_completion(self, visible): ''' Toggle the visibility of paths parameters ''' self.show_completion(visible)
+ def _completion_progress_changed(self, obj, name, old, new): completion_engine = getattr(self.attributed_process, 'completion_engine', None) @@ -556,6 +579,7 @@

Source code for capsul.qt_gui.widgets.attributed_process_widget

QtGui.qApp.processEvents() else: self.progressdialog.hide()
+
@@ -583,8 +607,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_gui/widgets/links_debugger.html b/_modules/capsul/qt_gui/widgets/links_debugger.html index 0affed7f8..1b7d59d16 100644 --- a/_modules/capsul/qt_gui/widgets/links_debugger.html +++ b/_modules/capsul/qt_gui/widgets/links_debugger.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -127,7 +127,9 @@

Source code for capsul.qt_gui.widgets.links_debugger

from soma.qt_gui.qt_backend import QtGui, QtCore -
[docs]class CapsulLinkDebuggerView(QtGui.QWidget): +
+[docs] +class CapsulLinkDebuggerView(QtGui.QWidget): """ A Widget to display the links propagation when values are set in a pipeline """ @@ -184,11 +186,14 @@

Source code for capsul.qt_gui.widgets.links_debugger

def __del__(self): self.release_pipeline() -
[docs] def show(self): +
+[docs] + def show(self): """ Shows the widget and its child widgets. """ self.ui.show()
+ def set_pipeline(self, pipeline): if self.pipeline is not None: self.release_pipeline() @@ -347,6 +352,7 @@

Source code for capsul.qt_gui.widgets.links_debugger

self.ui.help.setVisible(not self.ui.help.isVisible()) if set_geom: self.ui.help.setGeometry(self.help_geom)
+
@@ -374,8 +380,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_gui/widgets/pipeline_developer_view.html b/_modules/capsul/qt_gui/widgets/pipeline_developer_view.html index e0a198f4d..703ddd23b 100644 --- a/_modules/capsul/qt_gui/widgets/pipeline_developer_view.html +++ b/_modules/capsul/qt_gui/widgets/pipeline_developer_view.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -238,7 +238,9 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

}[x] -
[docs]class Plug(QtGui.QGraphicsPolygonItem): +
+[docs] +class Plug(QtGui.QGraphicsPolygonItem): def __init__(self, color, name, height, width, activated=True, optional=False, parent=None): @@ -299,7 +301,9 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

self.boundingRect().size().height() / 2.0) return self.mapToParent(point) -
[docs] def mousePressEvent(self, event): +
+[docs] + def mousePressEvent(self, event): super(Plug, self).mousePressEvent(event) if event.button() == QtCore.Qt.LeftButton: self.scene().plug_clicked.emit(self.name) @@ -307,10 +311,14 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

elif event.button() == QtCore.Qt.RightButton: # print('plug: right click') self.scene().plug_right_clicked.emit(self.name) - event.accept()
+ event.accept()
+
+ -
[docs]class EmbeddedSubPipelineItem(QtGui.QGraphicsProxyWidget): +
+[docs] +class EmbeddedSubPipelineItem(QtGui.QGraphicsProxyWidget): ''' QGraphicsItem containing a sub-pipeline view ''' @@ -328,30 +336,45 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

self.setWidget(sub_pipeline_wid)
-
[docs]class boxItem(QtGui.QGraphicsRectItem): + +
+[docs] +class boxItem(QtGui.QGraphicsRectItem): def __init__(self, parent=None): super(boxItem, self).__init__(parent) # self.setFlags(self.ItemIsFocusable) self.penBox = 0; self.name = "" -
[docs] def focusInEvent(self, event): +
+[docs] + def focusInEvent(self, event): self.setPen(QtGui.QPen(QtGui.QColor(150, 150, 250), 3, QtCore.Qt.DashDotLine)) return QtGui.QGraphicsRectItem.focusInEvent(self, event)
-
[docs] def focusOutEvent(self, event): + +
+[docs] + def focusOutEvent(self, event): self.setPen(self.penBox) return QtGui.QGraphicsRectItem.focusOutEvent(self, event)
-
[docs] def keyPressEvent(self, event): + +
+[docs] + def keyPressEvent(self, event): if event.key() == QtCore.Qt.Key_Delete: self.scene()._node_keydelete_clicked(self) event.accept() else: - super(boxItem, self).keyPressEvent(event)
+ super(boxItem, self).keyPressEvent(event)
+
+ -
[docs]class NodeGWidget(QtGui.QGraphicsItem): +
+[docs] +class NodeGWidget(QtGui.QGraphicsItem): def __init__(self, name, parameters, pipeline, parent=None, process=None, sub_pipeline=None, colored_parameters=True, @@ -503,7 +526,9 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

self.update_node() -
[docs] def update_labels(self, labels): +
+[docs] + def update_labels(self, labels): ''' Update colored labels ''' self.labels = [] @@ -514,6 +539,7 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

self._get_label(label) self._create_label_marks()
+ def _get_label(self, label, register=True): class Label(object): def __init__(self, label, color): @@ -1263,7 +1289,9 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

brect.setBottom(item_rect.bottom()) return brect -
[docs] def boundingRect(self): +
+[docs] + def boundingRect(self): margin = 0 brect = self.contentsRect() if self.embedded_subpipeline and self.embedded_subpipeline.isVisible(): @@ -1272,9 +1300,13 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

brect.setBottom(brect.bottom() + margin) return brect
-
[docs] def paint(self, painter, option, widget=None): + +
+[docs] + def paint(self, painter, option, widget=None): pass
+ def postscript(self, file_name): printer = QtGui.QPrinter(QtGui.QPrinter.HighResolution) printer.setOutputFormat(QtGui.QPrinter.PostScriptFormat) @@ -1372,7 +1404,9 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

self.setFiltersChildEvents(False) pwid.geometryChanged.connect(self.resize_subpipeline_on_show) -
[docs] def mouseDoubleClickEvent(self, event): +
+[docs] + def mouseDoubleClickEvent(self, event): if self.sub_pipeline: if isinstance(self.sub_pipeline, weakref.ProxyTypes): # get the "real" object @@ -1385,7 +1419,10 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

else: event.ignore()
-
[docs] def mousePressEvent(self, event): + +
+[docs] + def mousePressEvent(self, event): item = self.scene().itemAt(event.scenePos(), Qt.QTransform()) # print('NodeGWidget click, item:', item) if isinstance(item, Plug): @@ -1413,7 +1450,10 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

return QtGui.QGraphicsItem.mousePressEvent(self, event) event.accept()
-
[docs] def keyPressEvent(self, event): + +
+[docs] + def keyPressEvent(self, event): super(NodeGWidget, self).keyPressEvent(event) @@ -1427,10 +1467,14 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

self.setPos(self.x() + 1, self.y()) return QtGui.QGraphicsItem.keyPressEvent(self, event) - event.accept()
+ event.accept()
+
+ -
[docs]class HandleItem(QtGui.QGraphicsRectItem): +
+[docs] +class HandleItem(QtGui.QGraphicsRectItem): """ A handle that can be moved by the mouse """ def __init__(self, parent=None): @@ -1449,7 +1493,9 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

self.effectiveOpacity() self.setOpacity(0.01) -
[docs] def itemChange(self, change, value): +
+[docs] + def itemChange(self, change, value): if change == self.ItemPositionChange: self.x, self.y = value.x(), value.y() if self.x < self.wmin: @@ -1476,13 +1522,20 @@

Source code for capsul.qt_gui.widgets.pipeline_developer_view

return super(HandleItem, self).itemChange(change, value)
-
[docs] def mouseReleaseEvent(self, mouseEvent): + +
+[docs] + def mouseReleaseEvent(self, mouseEvent): self.setSelected(False) self.setPos(self.x, self.y) - return QtGui.QGraphicsRectItem.mouseReleaseEvent(self, mouseEvent)
+ return QtGui.QGraphicsRectItem.mouseReleaseEvent(self, mouseEvent)
+
-
@@ -5249,8 +5495,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_gui/widgets/pipeline_file_warning_widget.html b/_modules/capsul/qt_gui/widgets/pipeline_file_warning_widget.html index 934394dd3..e0bd2c88c 100644 --- a/_modules/capsul/qt_gui/widgets/pipeline_file_warning_widget.html +++ b/_modules/capsul/qt_gui/widgets/pipeline_file_warning_widget.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -124,7 +124,9 @@

Source code for capsul.qt_gui.widgets.pipeline_file_warning_widget

import enthought.traits.api as traits -
[docs]class PipelineFileWarningWidget(Qt.QSplitter): +
+[docs] +class PipelineFileWarningWidget(Qt.QSplitter): """ This class is a GUI for pipeline file inputs/outputs checking. @@ -225,6 +227,7 @@

Source code for capsul.qt_gui.widgets.pipeline_file_warning_widget

row += 1 table.setSortingEnabled(True) table.resizeColumnsToContents()
+
@@ -252,8 +255,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_gui/widgets/pipeline_user_view.html b/_modules/capsul/qt_gui/widgets/pipeline_user_view.html index 580f9eaf3..2ad5aed83 100644 --- a/_modules/capsul/qt_gui/widgets/pipeline_user_view.html +++ b/_modules/capsul/qt_gui/widgets/pipeline_user_view.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -126,7 +126,9 @@

Source code for capsul.qt_gui.widgets.pipeline_user_view

from soma.qt_gui.qt_backend import QtGui -
[docs]class PipelineUserView(QtGui.QWidget): +
+[docs] +class PipelineUserView(QtGui.QWidget): """ A widget to visualize a pipeline as a simple workflow. Uses Graphviz `dot` tool. @@ -148,7 +150,9 @@

Source code for capsul.qt_gui.widgets.pipeline_user_view

self.update() -
[docs] def update(self): +
+[docs] + def update(self): image = tempfile.NamedTemporaryFile(suffix=".png") dot = tempfile.NamedTemporaryFile(suffix=".png") self.write(dot) @@ -157,6 +161,7 @@

Source code for capsul.qt_gui.widgets.pipeline_user_view

self.pixmap = QtGui.QPixmap(image.name) # .scaledToHeight(600) self.label.setPixmap(self.pixmap)
+ def write(self, out=sys.stdout): graph = self.pipeline.workflow_graph() out.write('digraph workflow {\n'.encode()) @@ -168,6 +173,7 @@

Source code for capsul.qt_gui.widgets.pipeline_user_view

for n, v in graph._links: out.write((' %s -> %s;\n' % (ids[n], ids[v])).encode()) out.write('}\n'.encode())
+
@@ -195,8 +201,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/qt_gui/widgets/viewer_widget.html b/_modules/capsul/qt_gui/widgets/viewer_widget.html index 9857fb3ac..128bd2185 100644 --- a/_modules/capsul/qt_gui/widgets/viewer_widget.html +++ b/_modules/capsul/qt_gui/widgets/viewer_widget.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -133,7 +133,9 @@

Source code for capsul.qt_gui.widgets.viewer_widget

_fromUtf8 = lambda s: s -
[docs]class ViewerWidget(QtGui.QWidget): +
+[docs] +class ViewerWidget(QtGui.QWidget): """ View result class """ @@ -166,7 +168,9 @@

Source code for capsul.qt_gui.widgets.viewer_widget

button.setIcon(icon) button.clicked.connect(self.onCreateViewerClicked) -
[docs] def onCreateViewerClicked(self): +
+[docs] + def onCreateViewerClicked(self): """ Event to create the viewer """ # Get the viewer node and process @@ -220,7 +224,9 @@

Source code for capsul.qt_gui.widgets.viewer_widget

else: logging.error("The viewer is not active yet, maybe " "because the processings steps have not run or are " - "not finished.")
+ "not finished.")
+
+
@@ -248,8 +254,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/sphinxext/layoutdocgen.html b/_modules/capsul/sphinxext/layoutdocgen.html index 2027f0f65..2a900c2d6 100644 --- a/_modules/capsul/sphinxext/layoutdocgen.html +++ b/_modules/capsul/sphinxext/layoutdocgen.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -123,7 +123,9 @@

Source code for capsul.sphinxext.layoutdocgen

import traceback -
[docs]class LayoutHelperWriter(object): +
+[docs] +class LayoutHelperWriter(object): """ A basic class to create sphinx layout and associated index. """ def __init__(self, module_names, root_module_name, rst_extension=".rst"): @@ -143,7 +145,9 @@

Source code for capsul.sphinxext.layoutdocgen

self.root_module_name = root_module_name self.rst_section_levels = ['*', '=', '-', '~', '^'] -
[docs] def generate_index_entry(self, module_name, indent=4): +
+[docs] + def generate_index_entry(self, module_name, indent=4): """ Make autodoc documentation of pilots Parameters @@ -185,7 +189,10 @@

Source code for capsul.sphinxext.layoutdocgen

return ad
-
[docs] def title_for(self, title): + +
+[docs] + def title_for(self, title): """ Create a title from a underscore-separated string. Parameters @@ -200,7 +207,10 @@

Source code for capsul.sphinxext.layoutdocgen

""" return title.replace("_", " ").capitalize()
-
[docs] def rst2html(self, rst): + +
+[docs] + def rst2html(self, rst): """ Convert a rst formatted string to an html string. Parameters @@ -216,7 +226,10 @@

Source code for capsul.sphinxext.layoutdocgen

parts = publish_parts(rst, writer_name="html") return parts["body_pre_docinfo"] + parts["body"]
-
[docs] def write_layout(self, outdir): + +
+[docs] + def write_layout(self, outdir): """Generate the sphinx layout. Parameters @@ -304,7 +317,10 @@

Source code for capsul.sphinxext.layoutdocgen

# Close the open file idx.close()
-
[docs] def write_installation(self, outdir): + +
+[docs] + def write_installation(self, outdir): """Generate the installation recommendations. Parameters @@ -349,7 +365,10 @@

Source code for capsul.sphinxext.layoutdocgen

# Close the open file idx.close()
-
[docs] def write_index(self, outdir, froot="index", rst_extension=".rst"): + +
+[docs] + def write_index(self, outdir, froot="index", rst_extension=".rst"): """ Make a reST API index file from python modules Parameters @@ -393,7 +412,9 @@

Source code for capsul.sphinxext.layoutdocgen

w("\n </div>") # Close the open file - idx.close()
+ idx.close()
+
+
@@ -421,8 +442,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/sphinxext/load_pilots.html b/_modules/capsul/sphinxext/load_pilots.html index 231d1ddaf..7f5193fab 100644 --- a/_modules/capsul/sphinxext/load_pilots.html +++ b/_modules/capsul/sphinxext/load_pilots.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -120,7 +120,9 @@

Source code for capsul.sphinxext.load_pilots

import logging
 
 
-
[docs]def load_pilots(root, path, root_module_name): +
+[docs] +def load_pilots(root, path, root_module_name): """ Load all the pilot functions. Path is recursively scanned for ``__init__.py`` files. @@ -190,6 +192,7 @@

Source code for capsul.sphinxext.load_pilots

raise
 
     return pilots
+
@@ -217,8 +220,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/sphinxext/pipelinedocgen.html b/_modules/capsul/sphinxext/pipelinedocgen.html index 4ae40e021..c2b60e150 100644 --- a/_modules/capsul/sphinxext/pipelinedocgen.html +++ b/_modules/capsul/sphinxext/pipelinedocgen.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -121,7 +121,9 @@

Source code for capsul.sphinxext.pipelinedocgen

< from capsul.api import get_process_instance -
[docs]class PipelineHelpWriter(object): +
+[docs] +class PipelineHelpWriter(object): """ Class for automatic generation of pipeline API documentations in Sphinx-parsable reST format. """ @@ -145,7 +147,9 @@

Source code for capsul.sphinxext.pipelinedocgen

< self.rst_extension = rst_extension self.short_names = short_names -
[docs] def generate_api_doc(self, pipeline, schema): +
+[docs] + def generate_api_doc(self, pipeline, schema): """ Make autodoc documentation for a pipeline python module Parameters @@ -210,7 +214,10 @@

Source code for capsul.sphinxext.pipelinedocgen

< return ad, title
-
[docs] def write_api_docs(self, outdir=None, returnrst=False): + +
+[docs] + def write_api_docs(self, outdir=None, returnrst=False): """ Generate API reST files. Parameters @@ -277,7 +284,10 @@

Source code for capsul.sphinxext.pipelinedocgen

< if returnrst is True: return rstdoc
-
[docs] def get_short_name(self, name): + +
+[docs] + def get_short_name(self, name): """ Get a short file name prefix for module/process in the short_names dict. Used to build "reasonably short" path/file names. @@ -295,7 +305,10 @@

Source code for capsul.sphinxext.pipelinedocgen

< # not found return name
-
[docs] def write_index(self, outdir, froot="index", relative_to=None, + +
+[docs] + def write_index(self, outdir, froot="index", relative_to=None, rst_extension=".rst"): """ Make a reST API index file from the list of written files @@ -376,7 +389,10 @@

Source code for capsul.sphinxext.pipelinedocgen

< # Close the file idx.close()
-
[docs] def write_main_index(self, outdir, module_name, root_module_name, + +
+[docs] + def write_main_index(self, outdir, module_name, root_module_name, froot="index", rst_extension=".rst", have_usecases=True): """ Make a reST API index file for the module @@ -467,7 +483,9 @@

Source code for capsul.sphinxext.pipelinedocgen

< w(".. include:: process/index%s\n\n" % rst_extension) # Close file - idx.close()
+ idx.close()
+
+
@@ -495,8 +513,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/sphinxext/usecasesdocgen.html b/_modules/capsul/sphinxext/usecasesdocgen.html index 989b977e9..52524f53f 100644 --- a/_modules/capsul/sphinxext/usecasesdocgen.html +++ b/_modules/capsul/sphinxext/usecasesdocgen.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -126,7 +126,9 @@

Source code for capsul.sphinxext.usecasesdocgen

< logger = logging.getLogger(__file__) -
[docs]class UseCasesHelperWriter(object): +
+[docs] +class UseCasesHelperWriter(object): """ A basic class to convert the pilot codes to rst use cases """ def __init__(self, pilots, rst_extension=".rst"): @@ -142,7 +144,9 @@

Source code for capsul.sphinxext.usecasesdocgen

< self.pilots = pilots self.rst_extension = rst_extension -
[docs] def getsource(self, function): +
+[docs] + def getsource(self, function): """ Method that returns the source code of a function Parameters @@ -157,7 +161,10 @@

Source code for capsul.sphinxext.usecasesdocgen

< """ return inspect.getsource(function)
-
[docs] def generate_usecases_doc(self, src_code, module_name): + +
+[docs] + def generate_usecases_doc(self, src_code, module_name): """ Make autodoc documentation of pilots Parameters @@ -239,7 +246,10 @@

Source code for capsul.sphinxext.usecasesdocgen

< return ad
-
[docs] def write_usecases_docs(self, outdir=None, returnrst=False): + +
+[docs] + def write_usecases_docs(self, outdir=None, returnrst=False): """ Generate Use Cases reST files. Parameters @@ -295,7 +305,10 @@

Source code for capsul.sphinxext.usecasesdocgen

< if returnrst is True: return rstdoc
-
[docs] def write_index(self, outdir, froot="index", relative_to=None, + +
+[docs] + def write_index(self, outdir, froot="index", relative_to=None, rst_extension=".rst"): """ Make a reST API index file from written files @@ -353,7 +366,9 @@

Source code for capsul.sphinxext.usecasesdocgen

< table_with_indent = [" " * 4 + line for line in table] w("\n".join(table_with_indent)) - idx.close()
+ idx.close()
+
+
@@ -381,8 +396,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/attributes_config.html b/_modules/capsul/study_config/config_modules/attributes_config.html index c5b002f10..55e35677d 100644 --- a/_modules/capsul/study_config/config_modules/attributes_config.html +++ b/_modules/capsul/study_config/config_modules/attributes_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -124,7 +124,9 @@

Source code for capsul.study_config.config_modules.attributes_config

ProcessAttributes -
[docs]class AttributesConfig(StudyConfigModule): +
+[docs] +class AttributesConfig(StudyConfigModule): '''Attributes-based completion configuration module for StudyConfig This module adds the following options (traits) in the @@ -164,7 +166,9 @@

Source code for capsul.study_config.config_modules.attributes_config

optional=True)) -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): ''' ''' from capsul.engine import CapsulEngine @@ -182,7 +186,10 @@

Source code for capsul.study_config.config_modules.attributes_config

self.sync_to_engine()
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): self.study_config.on_trait_change( self.update_module, ['attributes_schemas', 'process_completion', @@ -193,6 +200,7 @@

Source code for capsul.study_config.config_modules.attributes_config

self.sync_from_engine)
+ def update_module(self, param=None, value=None): #if param == 'attributes_schema_paths': #factory = self.study_config.modules_data.attributes_factory @@ -234,6 +242,7 @@

Source code for capsul.study_config.config_modules.attributes_config

if value is None: value = Undefined setattr(self.study_config, param, value)
+
@@ -261,8 +270,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/brainvisa_config.html b/_modules/capsul/study_config/config_modules/brainvisa_config.html index 27a74bcf9..36259a397 100644 --- a/_modules/capsul/study_config/config_modules/brainvisa_config.html +++ b/_modules/capsul/study_config/config_modules/brainvisa_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -122,7 +122,9 @@

Source code for capsul.study_config.config_modules.brainvisa_config

from capsul.study_config.study_config import StudyConfigModule -
[docs]class BrainVISAConfig(StudyConfigModule): +
+[docs] +class BrainVISAConfig(StudyConfigModule): ''' Configuration module allowing to use `BrainVISA / Axon <http://brainvisa.info/axon/user_doc>`_ shared data in Capsul processes. @@ -148,7 +150,9 @@

Source code for capsul.study_config.config_modules.brainvisa_config

#self.study_config.shared_fom = 'shared-brainvisa-1.0' -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): ''' ''' from capsul.engine import CapsulEngine @@ -173,7 +177,10 @@

Source code for capsul.study_config.config_modules.brainvisa_config

self.sync_to_engine()
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): self.study_config.on_trait_change(self.sync_to_engine, ['shared_directory', 'user_level']) # WARNING ref to self in callback @@ -181,6 +188,7 @@

Source code for capsul.study_config.config_modules.brainvisa_config

'capsul.engine.module.axon', []).append(self.sync_from_engine)
+ def sync_to_engine(self, param=None, value=None): if getattr(self, '_syncing', False): return @@ -220,6 +228,7 @@

Source code for capsul.study_config.config_modules.brainvisa_config

self.study_config.user_level = config.user_level finally: del self._syncing
+
@@ -247,8 +256,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/fom_config.html b/_modules/capsul/study_config/config_modules/fom_config.html index db631ad98..8b78d6633 100644 --- a/_modules/capsul/study_config/config_modules/fom_config.html +++ b/_modules/capsul/study_config/config_modules/fom_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -124,7 +124,9 @@

Source code for capsul.study_config.config_modules.fom_config

from capsul.engine import CapsulEngine -
[docs]class FomConfig(StudyConfigModule): +
+[docs] +class FomConfig(StudyConfigModule): '''FOM (File Organization Model) configuration module for StudyConfig .. note:: @@ -208,7 +210,9 @@

Source code for capsul.study_config.config_modules.fom_config

self.study_config.modules_data.fom_pta = {} -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): if 'capsul.engine.module.fom' \ not in self.study_config.engine._loaded_modules: self.study_config.engine.load_module('capsul.engine.module.fom') @@ -222,7 +226,10 @@

Source code for capsul.study_config.config_modules.fom_config

# 1st sync may have changed things self.sync_from_engine()
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): self.study_config.on_trait_change( self.sync_to_engine, ['input_directory', 'input_fom', 'meshes_format', @@ -233,6 +240,7 @@

Source code for capsul.study_config.config_modules.fom_config

'capsul.engine.module.fom'].append(self.sync_from_engine)
+ def sync_to_engine(self, param=None, value=None): params = ['input_fom', 'meshes_format', 'output_fom', 'shared_fom', 'volumes_format', 'input_directory', 'output_directory', @@ -288,6 +296,7 @@

Source code for capsul.study_config.config_modules.fom_config

from capsul.engine.module.fom import load_fom return load_fom(self.study_config.engine, schema, config, session, environment='global')
+
@@ -315,8 +324,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/freesurfer_config.html b/_modules/capsul/study_config/config_modules/freesurfer_config.html index 3b3f24770..6c6c4b4e5 100644 --- a/_modules/capsul/study_config/config_modules/freesurfer_config.html +++ b/_modules/capsul/study_config/config_modules/freesurfer_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -127,7 +127,9 @@

Source code for capsul.study_config.config_modules.freesurfer_config

from capsul.engine import CapsulEngine -
[docs]class FreeSurferConfig(StudyConfigModule): +
+[docs] +class FreeSurferConfig(StudyConfigModule): """ Class to set up freesurfer configuration. Parse the 'SetUpFreeSurfer.sh' file and update dynamically the system @@ -154,7 +156,9 @@

Source code for capsul.study_config.config_modules.freesurfer_config

desc="If True, FreeSurfer configuration is set up on startup", groups=['freesurfer'])) -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): """ Set up FSL environment variables according to current configuration. """ @@ -169,7 +173,10 @@

Source code for capsul.study_config.config_modules.freesurfer_config

else: self.sync_to_engine()
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): self.study_config.on_trait_change( self.sync_to_engine, ['freesurfer_config', 'freesurfer_subjectsdir']) @@ -177,6 +184,7 @@

Source code for capsul.study_config.config_modules.freesurfer_config

self.study_config.engine.settings.module_notifiers[ 'capsul.engine.module.freesurfer'] = [self.sync_from_engine]
+ def sync_to_engine(self, param=None, value=None): if getattr(self, '_syncing', False): # manage recursive calls @@ -238,6 +246,7 @@

Source code for capsul.study_config.config_modules.freesurfer_config

self.study_config.use_freesurfer = False finally: del self._syncing
+
@@ -265,8 +274,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/fsl_config.html b/_modules/capsul/study_config/config_modules/fsl_config.html index 434ed44d2..80d479151 100644 --- a/_modules/capsul/study_config/config_modules/fsl_config.html +++ b/_modules/capsul/study_config/config_modules/fsl_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -122,7 +122,9 @@

Source code for capsul.study_config.config_modules.fsl_config

from capsul.subprocess.fsl import check_fsl_configuration import os.path as osp -
[docs]class FSLConfig(StudyConfigModule): +
+[docs] +class FSLConfig(StudyConfigModule): ''' `FSL <https://fsl.fmrib.ox.ac.uk/fsl/fslwiki>`_ configuration module ''' @@ -148,7 +150,9 @@

Source code for capsul.study_config.config_modules.fsl_config

except (ValueError, ReferenceError): pass -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): """ Set up FSL environment variables according to current configuration. """ @@ -166,13 +170,17 @@

Source code for capsul.study_config.config_modules.fsl_config

if self.study_config.use_fsl is True: check_fsl_configuration(self.study_config)
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): self.study_config.on_trait_change( self.sync_to_engine, '[fsl_config, fsl_prefix, use_fsl]') # WARNING ref to self in callback self.study_config.engine.settings.module_notifiers[ 'capsul.engine.module.fsl'] = [self.sync_from_engine]
+ def sync_to_engine(self, param=None, value=None): if getattr(self, '_syncing', False): # manage recursive calls @@ -260,6 +268,7 @@

Source code for capsul.study_config.config_modules.fsl_config

pass finally: del self._syncing
+
@@ -287,8 +296,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/matlab_config.html b/_modules/capsul/study_config/config_modules/matlab_config.html index a832f200e..15488cb66 100644 --- a/_modules/capsul/study_config/config_modules/matlab_config.html +++ b/_modules/capsul/study_config/config_modules/matlab_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -123,7 +123,9 @@

Source code for capsul.study_config.config_modules.matlab_config

from capsul.engine import CapsulEngine -
[docs]class MatlabConfig(StudyConfigModule): +
+[docs] +class MatlabConfig(StudyConfigModule): ''' Matlab path configuration ''' @@ -141,7 +143,9 @@

Source code for capsul.study_config.config_modules.matlab_config

desc="If True, Matlab configuration is set up on startup", groups=['matlab'])) -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): """ Set up Matlab environment according to current configuration. """ if not self.study_config.matlab_exec and self.study_config.use_matlab: @@ -190,12 +194,16 @@

Source code for capsul.study_config.config_modules.matlab_config

self.study_config.matlab_exec) return
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): self.study_config.on_trait_change(self.sync_to_engine, 'matlab_exec') # WARNING ref to self in callback self.study_config.engine.settings.module_notifiers[ 'capsul.engine.module.matlab'] = [self.sync_from_engine]
+ def sync_to_engine(self, param=None, value=None): if param is not None: tparam = {'matlab_exec': 'executable'} @@ -247,6 +255,7 @@

Source code for capsul.study_config.config_modules.matlab_config

self.study_config.matlab_exec = matlab_exec if self.study_config.matlab_exec not in (None, Undefined): self.study_config.use_matlab = True
+
@@ -274,8 +283,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/nipype_config.html b/_modules/capsul/study_config/config_modules/nipype_config.html index 9783fa29f..0281bf7ef 100644 --- a/_modules/capsul/study_config/config_modules/nipype_config.html +++ b/_modules/capsul/study_config/config_modules/nipype_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -135,7 +135,9 @@

Source code for capsul.study_config.config_modules.nipype_config

import capsul.engine.module.nipype as ce_nipype -
[docs]class NipypeConfig(StudyConfigModule): +
+[docs] +class NipypeConfig(StudyConfigModule): """ Nipype configuration. In order to use nipype spm, fsl and freesurfer interfaces, we need to @@ -159,7 +161,9 @@

Source code for capsul.study_config.config_modules.nipype_config

groups=['nipype'])) self.has_nipype = has_nipype -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): """ Set up Nipype environment variables according to current configuration. """ @@ -209,11 +213,16 @@

Source code for capsul.study_config.config_modules.nipype_config

self.study_config.use_nipype = True
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): """ When the 'use_nipype' trait changes, configure nipype with the new setting. """ - self.study_config.on_trait_change(self.initialize_module, "use_nipype")
+ self.study_config.on_trait_change(self.initialize_module, "use_nipype")
+
+
@@ -241,8 +250,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/smartcaching_config.html b/_modules/capsul/study_config/config_modules/smartcaching_config.html index e3804ce87..8c10fdd11 100644 --- a/_modules/capsul/study_config/config_modules/smartcaching_config.html +++ b/_modules/capsul/study_config/config_modules/smartcaching_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -119,7 +119,9 @@

Source code for capsul.study_config.config_modules.smartcaching_config

< from capsul.study_config.study_config import StudyConfigModule -
[docs]class SmartCachingConfig(StudyConfigModule): +
+[docs] +class SmartCachingConfig(StudyConfigModule): ''' ''' def __init__(self, study_config, configuration): @@ -130,6 +132,7 @@

Source code for capsul.study_config.config_modules.smartcaching_config

< desc='Use smart-caching during the execution', groups=['smartcaching'])) self.study_config = study_config
+ # self.study_config.on_trait_change(self._use_smart_caching_changed, 'use_smart_caching')
@@ -158,8 +161,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/somaworkflow_config.html b/_modules/capsul/study_config/config_modules/somaworkflow_config.html index 526b89a59..fb4260f72 100644 --- a/_modules/capsul/study_config/config_modules/somaworkflow_config.html +++ b/_modules/capsul/study_config/config_modules/somaworkflow_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -121,7 +121,9 @@

Source code for capsul.study_config.config_modules.somaworkflow_config

< from capsul.study_config.study_config import StudyConfigModule from soma.controller import Controller, ControllerTrait, OpenKeyController -
[docs]class ResourceController(Controller): +
+[docs] +class ResourceController(Controller): ''' Configuration options for one Soma-Workflow computing resource Attributes @@ -158,7 +160,10 @@

Source code for capsul.study_config.config_modules.somaworkflow_config

< desc='Soma-workflow paths translations mapping: ' '{local_path: (identifier, uuid)}'))
-
[docs]class SomaWorkflowConfig(StudyConfigModule): + +
+[docs] +class SomaWorkflowConfig(StudyConfigModule): ''' Configuration module for :somaworkflow:`Soma-Workflow <index.html>` Stores configuration options which are not part of Soma-Workflow own @@ -241,11 +246,16 @@

Source code for capsul.study_config.config_modules.somaworkflow_config

< groups=['soma-workflow'])) self.study_config.modules_data.somaworkflow = {} -
[docs] def initialize_callbacks(self): +
+[docs] + def initialize_callbacks(self): self.study_config.on_trait_change( self.initialize_module, 'use_soma_workflow')
-
[docs] def get_resource_id(self, resource_id=None, set_it=False): + +
+[docs] + def get_resource_id(self, resource_id=None, set_it=False): ''' Get a computing resource name according to the (optional) input resource_id and Soma-Workflow configuration. @@ -277,7 +287,10 @@

Source code for capsul.study_config.config_modules.somaworkflow_config

< self.study_config.somaworkflow_computing_resource = resource_id return resource_id
-
[docs] def set_computing_resource_password(self, resource_id, password=None, + +
+[docs] + def set_computing_resource_password(self, resource_id, password=None, rsa_key_password=None): ''' Set credentials for a given computinf resource. @@ -299,7 +312,10 @@

Source code for capsul.study_config.config_modules.somaworkflow_config

< if rsa_key_password: r.rsa_key_password = rsa_key_password
-
[docs] def get_workflow_controller(self, resource_id=None): + +
+[docs] + def get_workflow_controller(self, resource_id=None): ''' Get a connected :somaworkflow:`WorkflowController <client_API.html>` for the given resource @@ -311,7 +327,10 @@

Source code for capsul.study_config.config_modules.somaworkflow_config

< wc = getattr(r, 'workflow_controller', None) return wc
-
[docs] def connect_resource(self, resource_id=None, force_reconnect=False): + +
+[docs] + def connect_resource(self, resource_id=None, force_reconnect=False): ''' Connect a soma-workflow computing resource. Sets the current resource to the given resource_id (transformed by @@ -370,7 +389,10 @@

Source code for capsul.study_config.config_modules.somaworkflow_config

< r.workflow_controller = wc return wc
-
[docs] def disconnect_resource(self, resource_id=None): + +
+[docs] + def disconnect_resource(self, resource_id=None): ''' Disconnect a connected :somaworkflow:`WorkflowController <client_API.html>` and removes it from the internal list @@ -381,7 +403,9 @@

Source code for capsul.study_config.config_modules.somaworkflow_config

< wc.disconnect() del self.study_config.modules_data.somaworkflow[ self.study_config.somaworkflow_computing_resource - ].workflow_controller
+ ].workflow_controller
+
+
@@ -409,8 +433,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_modules/spm_config.html b/_modules/capsul/study_config/config_modules/spm_config.html index 32fe10efb..ddd6685c2 100644 --- a/_modules/capsul/study_config/config_modules/spm_config.html +++ b/_modules/capsul/study_config/config_modules/spm_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -125,7 +125,9 @@

Source code for capsul.study_config.config_modules.spm_config

import os.path as osp -
[docs]class SPMConfig(StudyConfigModule): +
+[docs] +class SPMConfig(StudyConfigModule): """ SPM configuration. There is two ways to configure SPM: @@ -168,7 +170,9 @@

Source code for capsul.study_config.config_modules.spm_config

"initialization.", groups=['spm'])) -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): if 'capsul.engine.module.spm' \ not in self.study_config.engine._loaded_modules: self.study_config.engine.load_module('capsul.engine.module.spm') @@ -184,13 +188,17 @@

Source code for capsul.study_config.config_modules.spm_config

if self.study_config.use_spm is True: check_spm_configuration(self.study_config)
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): self.study_config.on_trait_change(self.sync_to_engine, "[use_spm, spm_+]") # WARNING ref to self in callback self.study_config.engine.settings.module_notifiers[ 'capsul.engine.module.spm'] = [self.sync_from_engine]
+ def sync_from_engine(self, param=None, value=None): if getattr(self, '_syncing', False): # manage recursive calls @@ -335,6 +343,7 @@

Source code for capsul.study_config.config_modules.spm_config

config.mcr_directory = mcr_dir finally: del self._syncing
+
@@ -362,8 +371,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/config_utils.html b/_modules/capsul/study_config/config_utils.html index cf312bfe1..72104eee4 100644 --- a/_modules/capsul/study_config/config_utils.html +++ b/_modules/capsul/study_config/config_utils.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -125,7 +125,9 @@

Source code for capsul.study_config.config_utils

logger = logging.getLogger(__name__) -
[docs]def environment(sh_file=None, env={}): +
+[docs] +def environment(sh_file=None, env={}): """ Function that return a dictionary containing the environment needed by a program (for instance FSL or FreeSurfer). @@ -173,6 +175,7 @@

Source code for capsul.study_config.config_utils

logger.debug("Parsed FSL environment: {0}.".format(environment)) return environment
+
@@ -200,8 +203,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/memory.html b/_modules/capsul/study_config/memory.html index 17bcb1c12..f168698f1 100644 --- a/_modules/capsul/study_config/memory.html +++ b/_modules/capsul/study_config/memory.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -157,7 +157,9 @@

Source code for capsul.study_config.memory

 # Proxy process objects
 ###########################################################################
 
-
[docs]class UnMemorizedProcess(object): +
+[docs] +class UnMemorizedProcess(object): """ This class replaces MemorizedProcess when there is no cache. It provides an identical API but does not write anything on disk. """ @@ -292,7 +294,10 @@

Source code for capsul.study_config.memory

         return "{0}({1})".format(self.__class__.__name__, self.process.id)
-
[docs]class MemorizedProcess(object): + +
+[docs] +class MemorizedProcess(object): """ Callable object decorating a capsul process for caching its return values each time it is called. @@ -729,7 +734,10 @@

Source code for capsul.study_config.memory

             super(MemorizedProcess, self).__setattr__(name, value)
-
[docs]def get_process_signature(process, input_parameters): + +
+[docs] +def get_process_signature(process, input_parameters): """ Generate the process signature. Parameters @@ -749,7 +757,10 @@

Source code for capsul.study_config.memory

     return "{0}({1})".format(process.id, ", ".join(kwargs))
-
[docs]def has_attribute(trait, attribute_name, attribute_value=None, + +
+[docs] +def has_attribute(trait, attribute_name, attribute_value=None, recursive=True): """ Checks if a given trait has an attribute and optionally if it is set to particular value. @@ -790,7 +801,10 @@

Source code for capsul.study_config.memory

     return count > 0
-
[docs]def file_fingerprint(afile): + +
+[docs] +def file_fingerprint(afile): """ Computes the file fingerprint. Do not consider the file content, just the fingerprint (ie. the mtime, @@ -818,10 +832,15 @@

Source code for capsul.study_config.memory

     return fingerprint
-
[docs]class CapsulResultEncoder(json.JSONEncoder): + +
+[docs] +class CapsulResultEncoder(json.JSONEncoder): """ Deal with ProcessResult in json. """ -
[docs] def default(self, obj): +
+[docs] + def default(self, obj): try: import numpy except ImportError: @@ -857,10 +876,14 @@

Source code for capsul.study_config.memory

             return obj.tolist()
 
         # Call the base class default method
-        return json.JSONEncoder.default(self, obj)
+ return json.JSONEncoder.default(self, obj)
+
+ -
[docs]def tuple_json_encoder(obj): +
+[docs] +def tuple_json_encoder(obj): """ Encode a tuple in order to save it in json format. Parameters @@ -887,7 +910,10 @@

Source code for capsul.study_config.memory

         return obj
-
[docs]class CapsulResultDecoder(json.JSONDecoder): + +
+[docs] +class CapsulResultDecoder(json.JSONDecoder): """ Deal with ProcessResult in json. """ def __init__(self, *args, **kargs): @@ -911,12 +937,15 @@

Source code for capsul.study_config.memory

             return obj
+ ############################################################################ # Memory manager: provide some tracking about what is computed when, to # be able to flush the disk ############################################################################ -
[docs]class Memory(object): +
+[docs] +class Memory(object): """ Memory context to provide caching for processes. Attributes @@ -951,7 +980,9 @@

Source code for capsul.study_config.memory

         self.cachedir = cachedir
         self.timestamp = time.time()
 
-
[docs] def cache(self, process, verbose=1): +
+[docs] + def cache(self, process, verbose=1): """ Create a proxy of the given process in order to only execute the process for input parameters not cached on disk. @@ -1007,7 +1038,10 @@

Source code for capsul.study_config.memory

             return MemorizedProcess(process, self.cachedir, self.timestamp,
                                     verbose)
-
[docs] def clear(self, skips=None): + +
+[docs] + def clear(self, skips=None): """ Remove all the cache apart from those given to the method input. @@ -1027,11 +1061,13 @@

Source code for capsul.study_config.memory

         for folder in to_remove_folders:
             shutil.rmtree(folder)
+ def __repr__(self): """ Memory class representation. """ return "{0}(cachedir={1})".format(self.__class__.__name__, self.cachedir)
+
@@ -1059,8 +1095,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/process_instance.html b/_modules/capsul/study_config/process_instance.html index f6363723a..e1d5d0e46 100644 --- a/_modules/capsul/study_config/process_instance.html +++ b/_modules/capsul/study_config/process_instance.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -175,7 +175,9 @@

Source code for capsul.study_config.process_instance

return _interface -
[docs]def is_process(item): +
+[docs] +def is_process(item): """ Check if the input item is a process class or function with decorator or XML docstring which makes it seen as a process """ @@ -194,13 +196,19 @@

Source code for capsul.study_config.process_instance

return False
-
[docs]def is_pipeline_node(item): + +
+[docs] +def is_pipeline_node(item): """ Check if the input is an instance of pipeline Node """ return item is not Node and isinstance(item, Node)
-
[docs]def get_process_instance(process_or_id, study_config=None, **kwargs): + +
+[docs] +def get_process_instance(process_or_id, study_config=None, **kwargs): """ Return a Process instance given an identifier. Note that it is convenient to create a process from a StudyConfig instance: @@ -275,6 +283,7 @@

Source code for capsul.study_config.process_instance

study_cmod._default_study_config = old_default_study_config
+ def _execfile(filename): # This chunk of code cannot be put inline in python 2.6 glob_dict = {} @@ -539,7 +548,9 @@

Source code for capsul.study_config.process_instance

return result -
[docs]def get_node_class(node_type): +
+[docs] +def get_node_class(node_type): """ Get a custom node class from module + class string. The class name is optional if the module contains only one node class. @@ -571,7 +582,10 @@

Source code for capsul.study_config.process_instance

return name, cls
-
[docs]def get_node_instance(node_type, pipeline, conf_dict=None, name=None, + +
+[docs] +def get_node_instance(node_type, pipeline, conf_dict=None, name=None, **kwargs): """ Get a custom node instance from a module + class name (see @@ -632,6 +646,7 @@

Source code for capsul.study_config.process_instance

setattr(node, name, value) return node
+
@@ -659,8 +674,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/run.html b/_modules/capsul/study_config/run.html index 0033b6418..1df02bc1c 100644 --- a/_modules/capsul/study_config/run.html +++ b/_modules/capsul/study_config/run.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -133,7 +133,9 @@

Source code for capsul.study_config.run

 logger = logging.getLogger(__name__)
 
 
-
[docs]def run_process(output_dir, process_instance, +
+[docs] +def run_process(output_dir, process_instance, generate_logging=False, verbose=0, configuration_dict=None, cachedir=None, **kwargs): @@ -279,6 +281,7 @@

Source code for capsul.study_config.run

     study_config.process_counter += 1
 
     return returncode, output_log_file
+
@@ -306,8 +309,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/study_config/study_config.html b/_modules/capsul/study_config/study_config.html index 958e7b70c..85af85db7 100644 --- a/_modules/capsul/study_config/study_config.html +++ b/_modules/capsul/study_config/study_config.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -154,7 +154,9 @@

Source code for capsul.study_config.study_config

from capsul.study_config.process_instance import get_process_instance -
[docs]class StudyConfig(Controller): +
+[docs] +class StudyConfig(Controller): """ Class to store the study parameters and processing options. StudyConfig is deprecated and will probably be removed in Capsul 3. @@ -165,7 +167,7 @@

Source code for capsul.study_config.study_config

StudyConfig has modules (see BrainVISAConfig, AFNIConfig, FSLConfig, MatlabConfig, ANTSConfig, SmartCachingConfig, SomaWorkflowConfig, - SPMConfig, FOMConfig). + SPMConfig, FOMConfig, MRTRIXConfig). Modules are initialized in the constructor, so their list has to be setup before instantiating StudyConfig. A default modules list is used when no modules are specified: StudyConfig.default_modules @@ -214,7 +216,8 @@

Source code for capsul.study_config.study_config

set_study_configuration """ - default_modules = ['AFNIConfig', 'ANTSConfig', 'FSLConfig', 'MatlabConfig', 'SmartCachingConfig', + default_modules = ['AFNIConfig', 'ANTSConfig', 'FSLConfig', 'MatlabConfig', + 'MRTRIXConfig', 'SmartCachingConfig', 'SomaWorkflowConfig', 'SPMConfig'] _user_config_directory = os.path.join("~", ".config", "capsul") @@ -285,7 +288,7 @@

Source code for capsul.study_config.study_config

""" super(StudyConfig, self).__init__() - + if study_name: self.study_name = study_name @@ -332,7 +335,9 @@

Source code for capsul.study_config.study_config

self.run_lock = threading.RLock() self.run_interruption_request = False -
[docs] def initialize_modules(self): +
+[docs] + def initialize_modules(self): """ Modules initialization, calls initialize_module on each config module. This is not done during module instantiation to allow interactions @@ -369,11 +374,14 @@

Source code for capsul.study_config.study_config

# Parameter that is incremented at each process execution self.process_counter = 1
+ #################################################################### # Methods #################################################################### -
[docs] def load_module(self, config_module_name, config): +
+[docs] + def load_module(self, config_module_name, config): """ Load an optional StudyConfig module. @@ -397,7 +405,10 @@

Source code for capsul.study_config.study_config

self.load_module(dep_module_name, config) return module
-
[docs] def run(self, process_or_pipeline, output_directory=None, + +
+[docs] + def run(self, process_or_pipeline, output_directory=None, execute_qc_nodes=True, verbose=0, configuration_dict=None, **kwargs): """Method to execute a process or a pipeline in a study configuration @@ -429,7 +440,6 @@

Source code for capsul.study_config.study_config

configuration dictionary """ - # Use soma workflow to execute the pipeline or process in parallel # on the local machine. This has now moved to CapsulEngine. if self.get_trait_value("use_soma_workflow"): @@ -457,16 +467,15 @@

Source code for capsul.study_config.study_config

% (ptype, process_or_pipeline.name, ', '.join(missing))) - # Use the local machine to execute the pipeline or process if output_directory is None or output_directory is Undefined \ or output_directory == '': if 'output_directory' in process_or_pipeline.traits(): output_directory = getattr(process_or_pipeline, - 'output_directory') + 'output_directory') if output_directory in (None, Undefined, ''): output_directory = self.output_directory - # Not all processes need an output_directory defined on + # Not all processes need an output_directory defined on # StudyConfig if output_directory not in (None, Undefined, ''): # Check the output directory is valid @@ -548,12 +557,18 @@

Source code for capsul.study_config.study_config

process_or_pipeline._free_temporary_files(temporary_files) return result
-
[docs] def reset_process_counter(self): + +
+[docs] + def reset_process_counter(self): """ Method to reset the process counter to one. """ self.process_counter = 1
-
[docs] def read_configuration(self): + +
+[docs] + def read_configuration(self): """Find the configuration for the current study (whose name is defined in self study_name) and returns a dictionary that is a merge between global options and study specific options. @@ -625,7 +640,10 @@

Source code for capsul.study_config.study_config

return config
-
[docs] def get_configuration_dict(self): + +
+[docs] + def get_configuration_dict(self): """ Returns a json compatible dictionary containing current configuration. """ @@ -634,7 +652,10 @@

Source code for capsul.study_config.study_config

exclude_none=True) return config
-
[docs] def save_configuration(self, file): + +
+[docs] + def save_configuration(self, file): """ Save study configuration as json file. Parameters @@ -650,7 +671,10 @@

Source code for capsul.study_config.study_config

else: json.dump(config, file, indent=4, separators=(",", ": "))
-
[docs] def update_study_configuration(self, json_fname): + +
+[docs] + def update_study_configuration(self, json_fname): """ Update the study configuration from a json file. Parameters @@ -666,7 +690,10 @@

Source code for capsul.study_config.study_config

# Update the study configuration self.set_study_configuration(new_config)
-
[docs] def add_trait(self, name, *trait): + +
+[docs] + def add_trait(self, name, *trait): """ Add a new trait. Parameters @@ -686,11 +713,14 @@

Source code for capsul.study_config.study_config

if self.is_user_trait(trait_instance): self.trait_get(name)
+ #################################################################### # Accessors #################################################################### -
[docs] def set_study_configuration(self, new_config): +
+[docs] + def set_study_configuration(self, new_config): """ Method to set the new configuration of the study. If a study configuration element can't be updated properly, @@ -718,7 +748,10 @@

Source code for capsul.study_config.study_config

"Could not set value for config variable {0}: " "{1}".format(trait_name, repr(trait_value)))
-
[docs] def set_trait_value(self, trait_name, trait_value): + +
+[docs] + def set_trait_value(self, trait_name, trait_value): """ Method to set the value of a parameter. Parameters @@ -731,7 +764,10 @@

Source code for capsul.study_config.study_config

if trait_name in self.user_traits(): setattr(self, trait_name, trait_value)
-
[docs] def get_trait(self, trait_name): + +
+[docs] + def get_trait(self, trait_name): """ Method to access the 'trait_name' study configuration element. Notes @@ -753,7 +789,10 @@

Source code for capsul.study_config.study_config

else: return None
-
[docs] def get_trait_value(self, trait_name): + +
+[docs] + def get_trait_value(self, trait_name): """ Method to access the value of the 'trait_name' study configuration element. @@ -776,7 +815,10 @@

Source code for capsul.study_config.study_config

else: return None
-
[docs] def get_process_instance(self, process_or_id, **kwargs): + +
+[docs] + def get_process_instance(self, process_or_id, **kwargs): """ Return a Process instance given an identifier. The identifier is either: @@ -824,7 +866,10 @@

Source code for capsul.study_config.study_config

return get_process_instance(process_or_id, study_config=self, **kwargs)
-
[docs] def get_iteration_pipeline(self, pipeline_name, node_name, process_or_id, + +
+[docs] + def get_iteration_pipeline(self, pipeline_name, node_name, process_or_id, iterative_plugs=None, do_not_export=None, make_optional=None, **kwargs): """ Create a pipeline with an iteration node iterating the given @@ -852,12 +897,16 @@

Source code for capsul.study_config.study_config

return self.engine.get_iteration_pipeline( pipeline_name, node_name, process_or_id, iterative_plugs=iterative_plugs, do_not_export=do_not_export, - make_optional=make_optional, **kwargs)
+ make_optional=make_optional, **kwargs)
+
+ _default_study_config = None -
[docs]def default_study_config(): +
+[docs] +def default_study_config(): """ On the first call create a StudyConfig instance with default configuration (eventually reading configuration files). Then returns this instance on all @@ -868,9 +917,12 @@

Source code for capsul.study_config.study_config

_default_study_config = StudyConfig() return _default_study_config
+ -
[docs]class StudyConfigModule(object): +
+[docs] +class StudyConfigModule(object): ''' :class:`StudyConfig` module base class (abstract) ''' @@ -888,14 +940,21 @@

Source code for capsul.study_config.study_config

def __init__(self, study_config, configuration): self.study_config = study_config -
[docs] def initialize_module(self): +
+[docs] + def initialize_module(self): """Method called to initialize selected study configuration modules on startup. This method does nothing but can be overridden by modules. """
-
[docs] def initialize_callbacks(self): + +
+[docs] + def initialize_callbacks(self): """Method called just after the first call to initialize_modules. - """
+ """
+
+ if __name__ == '__main__': @@ -941,8 +1000,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/subprocess/fsl.html b/_modules/capsul/subprocess/fsl.html index 7633e5621..26988aff1 100644 --- a/_modules/capsul/subprocess/fsl.html +++ b/_modules/capsul/subprocess/fsl.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -158,7 +158,9 @@

Source code for capsul.subprocess.fsl

 from capsul.engine.module import fsl as fsl_engine
 
 
-
[docs]def fsl_command_with_environment(study_config, command): +
+[docs] +def fsl_command_with_environment(study_config, command): ''' Given an FSL command where first element is a command name without any path or prefix (e.g. "bet"). Returns the appropriate command to @@ -189,7 +191,10 @@

Source code for capsul.subprocess.fsl

                     ' '.join("'%s'" % i.replace("'", "\\'") for i in command[1:])]
     return cmd
-
[docs]def check_fsl_configuration(study_config): + +
+[docs] +def check_fsl_configuration(study_config): ''' Check thas study_config configuration is valid to call FSL commands. If not, try to automatically configure FSL. Finally raises an @@ -212,8 +217,11 @@

Source code for capsul.subprocess.fsl

             raise EnvironmentError(error_message)
     study_config.use_fsl = True
     study_config._fsl_config_checked = True
+ -
[docs]def check_configuration_values(study_config): +
+[docs] +def check_configuration_values(study_config): ''' Check if the configuration is valid to run FLS and returns an error message if there is an error or None if everything is good. @@ -234,7 +242,10 @@

Source code for capsul.subprocess.fsl

             return 'File "%s" is not a path to fsl.sh script' % study_config.fsl_config
     return None
-
[docs]def auto_configuration(study_config): + +
+[docs] +def auto_configuration(study_config): ''' Try to automatically set the study_config configuration for FSL. ''' @@ -253,7 +264,10 @@

Source code for capsul.subprocess.fsl

         if bet:
             study_config.fsl_prefix = osp.basename(bet)[:-3]
-
[docs]class Popen(soma.subprocess.Popen): + +
+[docs] +class Popen(soma.subprocess.Popen): ''' Equivalent to Python subprocess.Popen for FSL commands ''' @@ -261,8 +275,11 @@

Source code for capsul.subprocess.fsl

         check_fsl_configuration(study_config)
         cmd = fsl_command_with_environment(study_config, command)
         super(Popen, self).__init__(cmd, **kwargs)
+ -
[docs]def call(study_config, command, **kwargs): +
+[docs] +def call(study_config, command, **kwargs): ''' Equivalent to Python subprocess.call for FSL commands ''' @@ -270,7 +287,10 @@

Source code for capsul.subprocess.fsl

     cmd = fsl_command_with_environment(study_config, command)
     return soma.subprocess.call(cmd, **kwargs)
-
[docs]def check_call(study_config, command, **kwargs): + +
+[docs] +def check_call(study_config, command, **kwargs): ''' Equivalent to Python subprocess.check_call for FSL commands ''' @@ -279,13 +299,17 @@

Source code for capsul.subprocess.fsl

     return soma.subprocess.check_call(cmd, **kwargs)
-
[docs]def check_output(study_config, command, **kwargs): + +
+[docs] +def check_output(study_config, command, **kwargs): ''' Equivalent to Python subprocess.check_output for FSL commands ''' check_fsl_configuration(study_config) cmd = fsl_command_with_environment(study_config, command) return soma.subprocess.check_output(cmd, **kwargs)
+
@@ -313,8 +337,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/subprocess/spm.html b/_modules/capsul/subprocess/spm.html index 20b1d07d6..bf5aa2bb0 100644 --- a/_modules/capsul/subprocess/spm.html +++ b/_modules/capsul/subprocess/spm.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -139,7 +139,9 @@

Source code for capsul.subprocess.spm

 from traits.api import Undefined
 
 
-
[docs]def find_spm(spm_version='', matlab_exec='matlab', matlab_path=None): +
+[docs] +def find_spm(spm_version='', matlab_exec='matlab', matlab_path=None): """ Function to return the root directory of SPM. Parameters @@ -187,7 +189,10 @@

Source code for capsul.subprocess.spm

     return last_line
-
[docs]def check_spm_configuration(study_config): + +
+[docs] +def check_spm_configuration(study_config): ''' Obsolete. @@ -215,7 +220,10 @@

Source code for capsul.subprocess.spm

     study_config._spm_config_checked = True
-
[docs]def check_configuration_values(study_config): + +
+[docs] +def check_configuration_values(study_config): ''' Obsolete. @@ -240,7 +248,10 @@

Source code for capsul.subprocess.spm

             return 'Matlab is disabled. Cannot use SPM via Matlab'
-
[docs]def auto_configuration(study_config): + +
+[docs] +def auto_configuration(study_config): ''' Obsolete. @@ -293,6 +304,7 @@

Source code for capsul.subprocess.spm

                    spm_version))
+ def spm_command(study_config, batch_file): if study_config.spm_standalone: cmd = [study_config.spm_exec, @@ -305,7 +317,9 @@

Source code for capsul.subprocess.spm

                                   'implemented yet')
 
 
-
[docs]class Popen(soma.subprocess.Popen): +
+[docs] +class Popen(soma.subprocess.Popen): ''' Equivalent to Python soma.subprocess.Popen for SPM batch ''' @@ -316,7 +330,10 @@

Source code for capsul.subprocess.spm

         super(Popen, self).__init__(cmd, **kwargs)
-
[docs]def call(study_config, batch_file, **kwargs): + +
+[docs] +def call(study_config, batch_file, **kwargs): ''' Equivalent to Python soma.subprocess.call for SPM batch ''' @@ -325,7 +342,10 @@

Source code for capsul.subprocess.spm

     return soma.subprocess.call(cmd, **kwargs)
-
[docs]def check_call(study_config, batch_file, **kwargs): + +
+[docs] +def check_call(study_config, batch_file, **kwargs): ''' Equivalent to Python soma.subprocess.check_call for SPM batch ''' @@ -334,7 +354,10 @@

Source code for capsul.subprocess.spm

     return soma.subprocess.check_call(cmd, **kwargs)
-
[docs]def check_output(study_config, batch_file, **kwargs): + +
+[docs] +def check_output(study_config, batch_file, **kwargs): ''' Equivalent to Python soma.subprocess.check_output for SPM batch ''' @@ -343,6 +366,7 @@

Source code for capsul.subprocess.spm

     return soma.subprocess.check_output(cmd, **kwargs)
+ if __name__ == '__main__': from capsul.api import StudyConfig from capsul.soma.subprocess.spm import check_call as call_spm @@ -380,8 +404,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/utils/finder.html b/_modules/capsul/utils/finder.html index 0d74c1a46..fedf0b88b 100644 --- a/_modules/capsul/utils/finder.html +++ b/_modules/capsul/utils/finder.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -130,7 +130,9 @@

Source code for capsul.utils.finder

 pipeline_xml_re = re.compile(r'<pipeline.*</pipeline>', re.DOTALL)
 pipeline_json_re = re.compile(r'{.*"definition":', re.DOTALL)
 
-
[docs]def find_processes(module_name, ignore_import_error=True): +
+[docs] +def find_processes(module_name, ignore_import_error=True): ''' Find processes in a module and iterate over them ''' importlib.import_module(module_name) @@ -182,6 +184,7 @@

Source code for capsul.utils.finder

             json = open(osp.join(module_dir, f)).read()
             if pipeline_json_re.search(json):
                 yield '%s.%s' % (module_name, osp.basename(f)[:-4])
+
@@ -209,8 +212,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/capsul/utils/version_utils.html b/_modules/capsul/utils/version_utils.html index 8b97b1515..8dfda54c4 100644 --- a/_modules/capsul/utils/version_utils.html +++ b/_modules/capsul/utils/version_utils.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -122,7 +122,9 @@

Source code for capsul.utils.version_utils

 logger = logging.getLogger(__name__)
 
 
-
[docs]def get_tool_version(tool): +
+[docs] +def get_tool_version(tool): """ Get the version of a python tool. Check if the python tool module has a '__version__' attribute and return @@ -154,7 +156,10 @@

Source code for capsul.utils.version_utils

     return version
-
[docs]def get_nipype_interfaces_versions(): + +
+[docs] +def get_nipype_interfaces_versions(): """ Get the versions of the nipype interfaces. If nipype is not found, return None. @@ -196,6 +201,7 @@

Source code for capsul.utils.version_utils

     logger.debug("Nipype interfaceversions are {0}".format(versions))
 
     return versions
+
@@ -223,8 +229,8 @@

Navigation

\ No newline at end of file diff --git a/_modules/index.html b/_modules/index.html index 0809280e7..b9362e2b1 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -205,8 +205,8 @@

Navigation

\ No newline at end of file diff --git a/_static/basic.css b/_static/basic.css index 7577acb1a..30fee9d0f 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -237,6 +237,10 @@ a.headerlink { visibility: hidden; } +a:visited { + color: #551A8B; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -670,6 +674,16 @@ dd { margin-left: 30px; } +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + dl > dd:last-child, dl > dd:last-child > :last-child { margin-bottom: 0; @@ -738,6 +752,14 @@ abbr, acronym { cursor: help; } +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + /* -- code displays --------------------------------------------------------- */ pre { diff --git a/_static/classic.css b/_static/classic.css index d0ed3264d..9ad992b8a 100644 --- a/_static/classic.css +++ b/_static/classic.css @@ -129,7 +129,7 @@ a { } a:visited { - color: #355f7c; + color: #551a8b; text-decoration: none; } diff --git a/_static/documentation_options.js b/_static/documentation_options.js index c91d732b1..6ad106d73 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,5 +1,4 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), +const DOCUMENTATION_OPTIONS = { VERSION: '2.4.0', LANGUAGE: 'en', COLLAPSE_INDEX: false, diff --git a/_static/pygments.css b/_static/pygments.css index 691aeb82d..0d49244ed 100644 --- a/_static/pygments.css +++ b/_static/pygments.css @@ -17,6 +17,7 @@ span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #A00000 } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #FF0000 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ diff --git a/_static/searchtools.js b/_static/searchtools.js index 97d56a74d..7918c3fab 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -57,12 +57,12 @@ const _removeChildren = (element) => { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -const _displayItem = (item, searchTerms) => { +const _displayItem = (item, searchTerms, highlightTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; const [docName, title, anchor, descr, score, _filename] = item; @@ -75,20 +75,24 @@ const _displayItem = (item, searchTerms) => { if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; - requestUrl = docUrlRoot + dirname; + requestUrl = contentRoot + dirname; linkUrl = requestUrl; } else { // normal html builders - requestUrl = docUrlRoot + docName + docFileSuffix; + requestUrl = contentRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } let linkEl = listItem.appendChild(document.createElement("a")); linkEl.href = linkUrl + anchor; linkEl.dataset.score = score; linkEl.innerHTML = title; - if (descr) + if (descr) { listItem.appendChild(document.createElement("span")).innerHTML = " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) @@ -97,6 +101,9 @@ const _displayItem = (item, searchTerms) => { listItem.appendChild( Search.makeSearchSummary(data, searchTerms) ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); }); Search.output.appendChild(listItem); }; @@ -115,14 +122,15 @@ const _finishSearch = (resultCount) => { const _displayNextItem = ( results, resultCount, - searchTerms + searchTerms, + highlightTerms, ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { - _displayItem(results.pop(), searchTerms); + _displayItem(results.pop(), searchTerms, highlightTerms); setTimeout( - () => _displayNextItem(results, resultCount, searchTerms), + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), 5 ); } @@ -360,7 +368,7 @@ const Search = { // console.info("search results:", Search.lastresults); // print the results - _displayNextItem(results, results.length, searchTerms); + _displayNextItem(results, results.length, searchTerms, highlightTerms); }, /** diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js index aae669d7e..8a96c69a1 100644 --- a/_static/sphinx_highlight.js +++ b/_static/sphinx_highlight.js @@ -29,14 +29,19 @@ const _highlight = (node, addItems, text, className) => { } span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); parent.insertBefore( span, parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), + rest, node.nextSibling ) ); node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); if (isInSVG) { const rect = document.createElementNS( @@ -140,5 +145,10 @@ const SphinxHighlight = { }, }; -_ready(SphinxHighlight.highlightSearchWords); -_ready(SphinxHighlight.initEscapeListener); +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/api/api.html b/api/api.html index 3018eff89..22f6e7382 100644 --- a/api/api.html +++ b/api/api.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -103,11 +103,11 @@

Navigation

-
-

capsul.api module

-

The high-level capsul.api module pre-imports the main objects from several sub-modules:

+
+

capsul.api module

+

The high-level capsul.api module pre-imports the main objects from several sub-modules:

-

Classes

+

Classes

\ No newline at end of file diff --git a/api/attributes.html b/api/attributes.html index 4521c6ff2..b58716aa6 100644 --- a/api/attributes.html +++ b/api/attributes.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,13 +104,17 @@

Navigation

-

capsul.attributes module

-
Inheritance diagram of capsul.attributes, capsul.attributes.attributes_factory, capsul.attributes.attributes_schema, capsul.attributes.completion_engine_factory, capsul.attributes.completion_engine_iteration, capsul.attributes.completion_engine, capsul.attributes.fom_completion_engine
+

capsul.attributes module

+
Inheritance diagram of capsul.attributes, capsul.attributes.attributes_factory, capsul.attributes.attributes_schema, capsul.attributes.completion_engine_factory, capsul.attributes.completion_engine_iteration, capsul.attributes.completion_engine, capsul.attributes.fom_completion_engine
+ + + + @@ -121,53 +125,53 @@

capsul.attributes module -

capsul.attributes module contains the infrastructure and utility functions needed to define and use a completion system in CAPSUL processes and pipelines.

-
-

capsul.attributes.attributes_factory submodule

-

Attributes factory module

+

capsul.attributes module contains the infrastructure and utility functions needed to define and use a completion system in CAPSUL processes and pipelines.

+
+

capsul.attributes.attributes_factory submodule

+

Attributes factory module

-

Classes

+

Classes

-

AttributesFactory

+

AttributesFactory

-class capsul.attributes.attributes_factory.AttributesFactory(class_types={})[source]
+class capsul.attributes.attributes_factory.AttributesFactory(class_types={})[source]

AttributesFactory holds an attributes schema

-
-

capsul.attributes.attributes_schema submodule

-

A schema defines attrinbutes used within a completion framework

+
+

capsul.attributes.attributes_schema submodule

+

A schema defines attrinbutes used within a completion framework

-

Classes

+

Classes

-

AttributesSchema

+

AttributesSchema

-

EditableAttributes

+

EditableAttributes

-

ProcessAttributes

+

ProcessAttributes

-

Functions

+

Functions

-

set_attribute()

+

set_attribute()

-class capsul.attributes.attributes_schema.AttributesSchema[source]
+class capsul.attributes.attributes_schema.AttributesSchema[source]

An AttributesSchema has a name, which is used as an identifier to specify completion.

-class capsul.attributes.attributes_schema.EditableAttributes(*args, **kwargs)[source]
+class capsul.attributes.attributes_schema.EditableAttributes(*args, **kwargs)[source]

A set of attributes (group) used to define process parameters attributes. Attributes are traits in the EditableAttributes Controller.

Initilaize the Controller class.

@@ -183,7 +187,7 @@

-class capsul.attributes.attributes_schema.ProcessAttributes(process, schema_dict)[source]
+class capsul.attributes.attributes_schema.ProcessAttributes(process, schema_dict)[source]

This is the base class for managing attributes for a process.

It stores attributes associated with a Process, for each of its parameters. Attribute values can be accessed “globally” (for the whole process) as @@ -207,13 +211,13 @@

-copy(with_values=True)[source]
+copy(with_values=True)[source]

overloads soma.Controller.copy()

-copy_to_single(with_values=True)[source]
+copy_to_single(with_values=True)[source]

Similar to copy(), excepts that it converts list attributes into single values. This is useful within the completion system infrastructure, to get from an attributes set containing lists @@ -224,13 +228,13 @@

-get_parameters_attributes()[source]
+get_parameters_attributes()[source]

Get attributes for each process parameter

-set_parameter_attributes(parameter, schema, editable_attributes, fixed_attibute_values, allow_list=True)[source]
+set_parameter_attributes(parameter, schema, editable_attributes, fixed_attibute_values, allow_list=True)[source]

Set attributes associated with a single process parameter.

Parameters:
@@ -250,25 +254,25 @@

-capsul.attributes.attributes_schema.set_attribute(object, name, value)[source]
+capsul.attributes.attributes_schema.set_attribute(object, name, value)[source]

-
-

capsul.attributes.completion_engine_factory submodule

-

Instantiate a default ProcessCompletionEngine

+
+

capsul.attributes.completion_engine_factory submodule

+

Instantiate a default ProcessCompletionEngine

-

Classes

+

Classes

-

BuiltinProcessCompletionEngineFactory

+

BuiltinProcessCompletionEngineFactory

-class capsul.attributes.completion_engine_factory.BuiltinProcessCompletionEngineFactory[source]
+class capsul.attributes.completion_engine_factory.BuiltinProcessCompletionEngineFactory[source]
-get_completion_engine(process, name=None)[source]
+get_completion_engine(process, name=None)[source]

Factory for ProcessCompletionEngine: get an ProcessCompletionEngine instance for a node or process in the context of a given StudyConfig.

The study_config should specify which completion system(s) is (are) @@ -281,19 +285,19 @@

-

capsul.attributes.completion_engine_iteration submodule

-

ProcessCompletionEngine dealing with process iterations. +

+

capsul.attributes.completion_engine_iteration submodule

+

ProcessCompletionEngine dealing with process iterations. This is an internal machinery.

-

Classes

+

Classes

-

ProcessCompletionEngineIteration

+

ProcessCompletionEngineIteration

-class capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration(process, name=None)[source]
+class capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration(process, name=None)[source]

ProcessCompletionEngine specialization for iterative process.

Iterated attributes are given by get_iterated_attributes(). @@ -301,14 +305,14 @@

-complete_iteration_step(step)[source]
+complete_iteration_step(step)[source]

Complete the parameters on the iterated process for a given iteration step.

-complete_parameters(process_inputs={}, complete_iterations=True)[source]
+complete_parameters(process_inputs={}, complete_iterations=True)[source]

Completes file parameters from given inputs parameters, which may include both “regular” process parameters (file names) and attributes.

@@ -331,7 +335,7 @@

-get_attribute_values()[source]
+get_attribute_values()[source]

Get attributes Controller associated to a process

Returns:
@@ -345,7 +349,7 @@

-get_induced_iterative_parameters()[source]
+get_induced_iterative_parameters()[source]

Iterating over some parameters, and triggering completion through attributes, imply that some other parameters will also vary with the iteration. @@ -359,53 +363,53 @@

-get_iterated_attributes()[source]
+get_iterated_attributes()[source]

-
-

capsul.attributes.completion_engine submodule

-

Completion system for Capsul

+
+

capsul.attributes.completion_engine submodule

+

Completion system for Capsul

-

Classes

+

Classes

-

ProcessCompletionEngine

+

ProcessCompletionEngine

-

SwitchCompletionEngine

+

SwitchCompletionEngine

-

PathCompletionEngine

+

PathCompletionEngine

-

ProcessCompletionEngineFactory

+

ProcessCompletionEngineFactory

-

PathCompletionEngineFactory

+

PathCompletionEngineFactory

-class capsul.attributes.completion_engine.PathCompletionEngine[source]
+class capsul.attributes.completion_engine.PathCompletionEngine[source]

Implements building of a single path from a set of attributes for a specific process / parameter

-allowed_extensions(process, parameter)[source]
+allowed_extensions(process, parameter)[source]

List of possible file extensions associated with a parameter

-allowed_formats(process, parameter)[source]
+allowed_formats(process, parameter)[source]

List of possible formats names associated with a parameter

-attributes_to_path(process, parameter, attributes)[source]
+attributes_to_path(process, parameter, attributes)[source]

Build a path from attributes for a given parameter in a process.

This method has to be specialized. The default implementation returns None.

@@ -424,13 +428,13 @@

-class capsul.attributes.completion_engine.PathCompletionEngineFactory[source]
+class capsul.attributes.completion_engine.PathCompletionEngineFactory[source]

Get a PathCompletionEngine instance

-class capsul.attributes.completion_engine.ProcessCompletionEngine(process, name=None)[source]
+class capsul.attributes.completion_engine.ProcessCompletionEngine(process, name=None)[source]

Parameters completion from attributes for a process or pipeline node instance, in the context of a specific data organization.

ProcessCompletionEngine can be used directly for a pipeline, which merely @@ -464,47 +468,47 @@

capsul.attributes.fom_completion_engine.FomProcessCompletionEngine is a specialization of ProcessCompletionEngine to manage File Organization Models (FOM).

-get_completion_engine()[source]
+get_completion_engine()[source]
-get_attribute_values()[source]
+get_attribute_values()[source]
-complete_parameters()[source]
+complete_parameters()[source]
-set_parameters()[source]
+set_parameters()[source]
-attributes_to_path()[source]
+attributes_to_path()[source]
-get_path_completion_engine()[source]
+get_path_completion_engine()[source]
-install_auto_completion()[source]
+install_auto_completion()[source]
-remove_auto_completion()[source]
+remove_auto_completion()[source]
-attributes_changed(obj, name, old, new)[source]
+attributes_changed(obj, name, old, new)[source]

Traits changed callback which triggers parameters update.

This method basically calls complete_parameters() (after some checks).

Users do not normally have to use it directly, it is used internally @@ -514,7 +518,7 @@

-attributes_to_path(parameter, attributes)[source]
+attributes_to_path(parameter, attributes)[source]

Build a path from attributes for a given parameter in a process.

Parameters:
@@ -528,7 +532,7 @@

-complete_parameters(process_inputs={}, complete_iterations=True)[source]
+complete_parameters(process_inputs={}, complete_iterations=True)[source]

Completes file parameters from given inputs parameters, which may include both “regular” process parameters (file names) and attributes.

@@ -551,7 +555,7 @@

-get_attribute_values()[source]
+get_attribute_values()[source]

Get attributes Controller associated to a process or node

Returns:
@@ -568,14 +572,14 @@

-static get_completion_engine(process, name=None)[source]
+static get_completion_engine(process, name=None)[source]

Get a ProcessCompletionEngine instance for a given process/node within the framework of its StudyConfig factory function.

-get_path_completion_engine()[source]
+get_path_completion_engine()[source]

Get a PathCompletionEngine object for the given process. The default implementation queries PathCompletionEngineFactory, but some specific ProcessCompletionEngine implementations may override @@ -584,14 +588,14 @@

-install_auto_completion()[source]
+install_auto_completion()[source]

Monitor attributes changes and switches changes (which may influence attributes) and recompute parameters completion when needed.

-nodes_selection_changed(obj, name, old, new)[source]
+nodes_selection_changed(obj, name, old, new)[source]

Traits changed callback which triggers parameters update.

This method basically calls complete_parameters() (after some checks).

Users do not normally have to use it directly, it is used internally @@ -601,28 +605,28 @@

-remove_attributes()[source]
+remove_attributes()[source]

Clear attributes controller cache, to allow rebuilding it after a change. This is generally a callback attached to switches changes.

-remove_auto_completion()[source]
+remove_auto_completion()[source]

Remove attributes monitoring and auto-recomputing of parameters.

Reverts install_auto_completion()

-remove_switch_observers()[source]
+remove_switch_observers()[source]

Remove notification callbacks previously set to listen switches state changes.

-set_parameters(process_inputs)[source]
+set_parameters(process_inputs)[source]

Set the given parameters dict to the given process. process_inputs may include regular parameters of the underlying process, and attributes (capsul_attributes: dict).

@@ -632,11 +636,11 @@

-class capsul.attributes.completion_engine.ProcessCompletionEngineFactory[source]
+class capsul.attributes.completion_engine.ProcessCompletionEngineFactory[source]

Get a ProcessCompletionEngine instance

-get_completion_engine(process, name=None)[source]
+get_completion_engine(process, name=None)[source]

Factory for ProcessCompletionEngine: get an ProcessCompletionEngine instance for a process in the context of a given StudyConfig.

The study_config should specify which completion system(s) is (are) @@ -652,14 +656,14 @@

-class capsul.attributes.completion_engine.SwitchCompletionEngine(process, name=None)[source]
+class capsul.attributes.completion_engine.SwitchCompletionEngine(process, name=None)[source]

Completion engine specislization for a switch. The switch will propagate attributes from its selected inputs to corresponding outputs, if they can be retrieved from parameters links. Otherwise the countrary will be tried (propagated from outputs to inputs).

-get_attribute_values()[source]
+get_attribute_values()[source]

Get attributes Controller associated to a process or node

Returns:
@@ -676,7 +680,7 @@

-install_switch_observer(observer=None)[source]
+install_switch_observer(observer=None)[source]

Setup a switch change observation, to remove parameters attributes when the switch state changes.

@@ -691,46 +695,46 @@

-remove_switch_observer(observer=None)[source]
+remove_switch_observer(observer=None)[source]

Remove notification previously set by install_switch_observer()

-
-

capsul.attributes.fom_completion_engine submodule

-

Completion engine for File Organization Models (FOM).

+
+

capsul.attributes.fom_completion_engine submodule

+

Completion engine for File Organization Models (FOM).

-

Classes

+

Classes

-

FomProcessCompletionEngine

+

FomProcessCompletionEngine

-

FomPathCompletionEngine

+

FomPathCompletionEngine

-

FomProcessCompletionEngineIteration

+

FomProcessCompletionEngineIteration

-class capsul.attributes.fom_completion_engine.FomPathCompletionEngine[source]
+class capsul.attributes.fom_completion_engine.FomPathCompletionEngine[source]
-allowed_extensions(process, parameter)[source]
+allowed_extensions(process, parameter)[source]

List of possible file extensions associated with a parameter

-allowed_formats(process, parameter)[source]
+allowed_formats(process, parameter)[source]

List of possible formats names associated with a parameter

-attributes_to_path(process, parameter, attributes)[source]
+attributes_to_path(process, parameter, attributes)[source]

Build a path from attributes

Parameters:
@@ -745,7 +749,7 @@

-open_values_attributes(process, parameter)[source]
+open_values_attributes(process, parameter)[source]

Attributes with “open” values, not restricted to a list of possible values

@@ -754,7 +758,7 @@

-class capsul.attributes.fom_completion_engine.FomProcessCompletionEngine(process, name=None)[source]
+class capsul.attributes.fom_completion_engine.FomProcessCompletionEngine(process, name=None)[source]

FOM (File Organization Model) implementation of completion engine.

-create_attributes_with_fom()[source]
+create_attributes_with_fom()[source]

To get useful attributes by the fom

-get_attribute_values()[source]
+get_attribute_values()[source]

Get attributes Controller associated to a process

Returns:
@@ -814,12 +818,12 @@

-get_path_completion_engine()[source]
+get_path_completion_engine()[source]

-path_attributes(filename, parameter=None)[source]
+path_attributes(filename, parameter=None)[source]

By the path, find value of attributes

@@ -827,10 +831,10 @@

-class capsul.attributes.fom_completion_engine.FomProcessCompletionEngineIteration(process, name=None)[source]
+class capsul.attributes.fom_completion_engine.FomProcessCompletionEngineIteration(process, name=None)[source]
-get_iterated_attributes()[source]
+get_iterated_attributes()[source]

@@ -849,7 +853,7 @@

Table of Contents

\ No newline at end of file diff --git a/api/engine.html b/api/engine.html index ce27d1230..2ffd43067 100644 --- a/api/engine.html +++ b/api/engine.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,40 +104,43 @@

Navigation

-

capsul.engine module

-
Inheritance diagram of capsul.engine, capsul.engine.database_json, capsul.engine.database_populse, capsul.engine.database, capsul.engine.module
+

capsul.engine module

+
Inheritance diagram of capsul.engine, capsul.engine.database_json, capsul.engine.database_populse, capsul.engine.database, capsul.engine.module
+ + + -
-

Main module

-

This module defines the main API to interact with Capsul processes. +

+

Main module

+

This module defines the main API to interact with Capsul processes. In order to execute a process, it is mandatory to have an instance of CapsulEngine. Such an instance can be created with factory capsul_engine()

-

Classes

+

Classes

-

CapsulEngine

+

CapsulEngine

-

Functions

+

Functions

-

database_factory()

+

database_factory()

-

capsul_engine()

+

capsul_engine()

-

activate_configuration()

+

activate_configuration()

-class capsul.engine.CapsulEngine(self, database_location, database, config=None)[source]
+class capsul.engine.CapsulEngine(self, database_location, database, config=None)[source]

A CapsulEngine is the mandatory entry point of all software using Capsul. It contains objects to store configuration and metadata, defines execution environment(s) (possibly remote) and performs pipelines execution.

@@ -246,33 +249,33 @@

capsul_engine() factory function instead.

-connect(computing_resource)[source]
+connect(computing_resource)[source]

Connect the capsul engine to a computing resource

-connected_to()[source]
+connected_to()[source]

Return the name of the computing resource this capsul engine is connected to or None if it is not connected.

-detailed_information(execution_id)[source]
+detailed_information(execution_id)[source]

Return complete (and possibly big) information about a process execution.

-disconnect()[source]
+disconnect()[source]

Disconnect from a computing resource.

-dispose(execution_id, conditional=False)[source]
+dispose(execution_id, conditional=False)[source]

Update the database with the current state of a process execution and free the resources used in the computing resource (i.e. remove the workflow from SomaWorkflow).

@@ -282,7 +285,7 @@

-executions()[source]
+executions()[source]

List the execution identifiers of all processes that have been started but not disposed in the connected computing resource. Raises an exception if the computing resource is not connected.

@@ -290,7 +293,7 @@

-get_iteration_pipeline(pipeline_name, node_name, process_or_id, iterative_plugs=None, do_not_export=None, make_optional=None, **kwargs)[source]
+get_iteration_pipeline(pipeline_name, node_name, process_or_id, iterative_plugs=None, do_not_export=None, make_optional=None, **kwargs)[source]

Create a pipeline with an iteration node iterating the given process.

@@ -315,7 +318,7 @@

-get_process_instance(process_or_id, **kwargs)[source]
+get_process_instance(process_or_id, **kwargs)[source]

The only official way to get a process instance is to use this method. For now, it simply calls self.study_config.get_process_instance but it will change in the future.

@@ -323,7 +326,7 @@

-import_configs(environment, config_dict, cont_on_error=False)[source]
+import_configs(environment, config_dict, cont_on_error=False)[source]

Import config values from a dictionary as given by Settings.select_configurations().

Compared to Settings.import_configs() this method (at @@ -332,14 +335,14 @@

-interrupt(execution_id)[source]
+interrupt(execution_id)[source]

Try to stop the execution of a process. Does not wait for the process to be terminated.

-load_module(module_name)[source]
+load_module(module_name)[source]

Load a module if it has not already been loaded (is this case, nothing is done)

A module is a fully qualified name of a Python module (as accepted @@ -366,7 +369,7 @@

-load_modules(require)[source]
+load_modules(require)[source]

Call self.load_module for each required module. The list of modules to load is located in self.modules (if it is None, capsul.module.default_modules is used).

@@ -374,13 +377,13 @@

-raise_for_status(status, execution_id=None)[source]
+raise_for_status(status, execution_id=None)[source]

Raise an exception if a process execution failed

-start(process, workflow=None, history=True, get_pipeline=False, **kwargs)[source]
+start(process, workflow=None, history=True, get_pipeline=False, **kwargs)[source]

Asynchronously start the execution of a process or pipeline in the connected computing environment. Returns an identifier of the process execution and can be used to get the status of the @@ -417,14 +420,14 @@

-status(execution_id)[source]
+status(execution_id)[source]

Return a simple value with the status of an execution (queued, running, terminated, error, etc.)

-wait(execution_id, timeout=-1, pipeline=None)[source]
+wait(execution_id, timeout=-1, pipeline=None)[source]

Wait for the end of a process execution (either normal termination, interruption or error).

@@ -433,13 +436,13 @@

-capsul.engine.activate_configuration(selected_configurations)[source]
+capsul.engine.activate_configuration(selected_configurations)[source]

Activate a selected configuration (set of modules) for runtime.

-capsul.engine.activate_module(module_name)[source]
+capsul.engine.activate_module(module_name)[source]

Activate a module configuration for runtime. This function is called by activate_configuration() and assumes the global variable capsul.engine.configurations is properly setup.

@@ -447,7 +450,7 @@

-capsul.engine.capsul_engine(database_location=None, require=None)[source]
+capsul.engine.capsul_engine(database_location=None, require=None)[source]

User facrory for creating capsul engines.

If no database_location is given, it will default to an internal (in- memory) database with no persistent settings or history values.

@@ -466,47 +469,47 @@

-capsul.engine.database_factory(database_location)[source]
+capsul.engine.database_factory(database_location)[source]

Create a DatabaseEngine from its location string. This location can be either a sqlite file path (ending with ‘.sqlite’ or ‘:memory:’ for an in memory database for testing) or a populse_db URL, or None.

-
-

capsul.engine.database_json submodule

-
+
+

capsul.engine.database_json submodule

+
-class capsul.engine.database_json.JSONDBEngine(json_filename)[source]
+class capsul.engine.database_json.JSONDBEngine(json_filename)[source]

A JSON dictionary implementation of capsul.engine.database.DatabaseEngine

-json_value(name)[source]
+json_value(name)[source]

Retrieve a value previously stored with set_json_value()

-named_directories()[source]
+named_directories()[source]

List the names of all named directories. This method may return any iterable value (list, generator, etc.)

-named_directory(name)[source]
+named_directory(name)[source]

Return the absolute path of a named directory.

-path_metadata(path, named_directory=None)[source]
+path_metadata(path, named_directory=None)[source]

Retrieve metadata associated with a path.

-set_json_value(name, json_value)[source]
+set_json_value(name, json_value)[source]

Store a json value and associate it with a key given in “name”. The value can be retrieved with method json_value().

@param name: unique key used to identify and retrieve the value @@ -517,7 +520,7 @@

-set_named_directory(name, path)[source]
+set_named_directory(name, path)[source]

Associate an absolute path to a generic name. This allow to always use a location independent name for a directory such as ‘spm_template’ and to customize the real absolute path in the configuration. These @@ -527,7 +530,7 @@

-set_path_metadata(path, metadata, named_directory=None)[source]
+set_path_metadata(path, metadata, named_directory=None)[source]

Set metadata associated to a path. The metadata are associated to the result of self.check_path(path, named_directory). metadata can be any JSON serializable value.

@@ -536,39 +539,39 @@

-
-

capsul.engine.database_populse submodule

-
+
+

capsul.engine.database_populse submodule

+
-class capsul.engine.database_populse.PopulseDBEngine(database_engine)[source]
+class capsul.engine.database_populse.PopulseDBEngine(database_engine)[source]
-json_value(name)[source]
+json_value(name)[source]

Retrieve a value previously stored with set_json_value()

-named_directories()[source]
+named_directories()[source]

List the names of all named directories. This method may return any iterable value (list, generator, etc.)

-named_directory(name)[source]
+named_directory(name)[source]

Return the absolute path of a named directory.

-path_metadata(path)[source]
+path_metadata(path)[source]

Retrieve metadata associated with a path.

-set_json_value(name, json_value)[source]
+set_json_value(name, json_value)[source]

Store a json value and associate it with a key given in “name”. The value can be retrieved with method json_value().

@param name: unique key used to identify and retrieve the value @@ -579,7 +582,7 @@

-set_named_directory(name, path)[source]
+set_named_directory(name, path)[source]

Associate an absolute path to a generic name. This allow to always use a location independent name for a directory such as ‘spm_template’ and to customize the real absolute path in the configuration. These @@ -589,7 +592,7 @@

-set_path_metadata(path, metadata)[source]
+set_path_metadata(path, metadata)[source]

Set metadata associated to a path. The metadata are associated to the result of self.check_path(path, named_directory). metadata can be any JSON serializable value.

@@ -598,11 +601,11 @@

-
-

capsul.engine.database submodule

-
+
+

capsul.engine.database submodule

+
-class capsul.engine.database.DatabaseEngine[source]
+class capsul.engine.database.DatabaseEngine[source]

A DatabaseEngine is the base class for all engines allowing to store, retrieve and search metadata associated with a key that can be either a string or a path (i.e. a file or directory @@ -615,7 +618,7 @@

-check_path(path, named_directory=None)[source]
+check_path(path, named_directory=None)[source]

Find a pair (named_directory, path) given a path and eventually a named_directory.

If named_directory is not given, path must be absolute or a @@ -628,32 +631,32 @@

-json_value(name)[source]
+json_value(name)[source]

Retrieve a value previously stored with set_json_value()

-named_directories()[source]
+named_directories()[source]

List the names of all named directories. This method may return any iterable value (list, generator, etc.)

-named_directory(name)[source]
+named_directory(name)[source]

Return the absolute path of a named directory.

-path_metadata(path, named_directory=None)[source]
+path_metadata(path, named_directory=None)[source]

Retrieve metadata associated with a path.

-set_json_value(name, json_value)[source]
+set_json_value(name, json_value)[source]

Store a json value and associate it with a key given in “name”. The value can be retrieved with method json_value().

@param name: unique key used to identify and retrieve the value @@ -664,7 +667,7 @@

-set_named_directory(name, path)[source]
+set_named_directory(name, path)[source]

Associate an absolute path to a generic name. This allow to always use a location independent name for a directory such as ‘spm_template’ and to customize the real absolute path in the configuration. These @@ -674,7 +677,7 @@

-set_path_metadata(path, metadata, named_directory=None)[source]
+set_path_metadata(path, metadata, named_directory=None)[source]

Set metadata associated to a path. The metadata are associated to the result of self.check_path(path, named_directory). metadata can be any JSON serializable value.

@@ -683,32 +686,32 @@

-
-

capsul.engine.module submodule

-
-

attributes

-

Attributes completion config module

+
+

capsul.engine.module submodule

+
+

attributes

+

Attributes completion config module

-capsul.engine.module.attributes.edition_widget(engine, environment, config_id='attributes')[source]
+capsul.engine.module.attributes.edition_widget(engine, environment, config_id='attributes')[source]

Edition GUI for attributes config - see SettingsEditor

-
-

axon

-

Configuration module which links with Axon

+
+

axon

+

Configuration module which links with Axon

-capsul.engine.module.axon.check_configurations()[source]
+capsul.engine.module.axon.check_configurations()[source]

Checks if the activated configuration is valid to use BrainVisa and returns an error message if there is an error or None if everything is good.

-capsul.engine.module.axon.check_notably_invalid_config(conf)[source]
+capsul.engine.module.axon.check_notably_invalid_config(conf)[source]

Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled

Returns:
@@ -722,61 +725,61 @@

-capsul.engine.module.axon.complete_configurations()[source]
+capsul.engine.module.axon.complete_configurations()[source]

Try to automatically set or complete the capsul.engine.configurations for Axon.

-capsul.engine.module.axon.edition_widget(engine, environment, config_id='axon')[source]
+capsul.engine.module.axon.edition_widget(engine, environment, config_id='axon')[source]

Edition GUI for axon config - see SettingsEditor

-
-

fom

-

Config module for File Organization models (FOMs)

+
+

fom

+

Config module for File Organization models (FOMs)

-

Classes

+

Classes

-
FomConfig
+
FomConfig
-capsul.engine.module.fom.edition_widget(engine, environment, config_id='fom')[source]
+capsul.engine.module.fom.edition_widget(engine, environment, config_id='fom')[source]

Edition GUI for FOM config - see SettingsEditor

-capsul.engine.module.fom.update_fom(capsul_engine, environment='global', param=None, value=None)[source]
+capsul.engine.module.fom.update_fom(capsul_engine, environment='global', param=None, value=None)[source]

Load configured FOMs and create FOM completion data

-
-

fsl

-
+
+

fsl

+
-capsul.engine.module.fsl.activate_configurations()[source]
+capsul.engine.module.fsl.activate_configurations()[source]

Activate the FSL module (set env variables) from the global configurations, in order to use them via capsul.in_context.fsl functions

-capsul.engine.module.fsl.check_configurations()[source]
+capsul.engine.module.fsl.check_configurations()[source]

Checks if the activated configuration is valid to run FSL and returns an error message if there is an error or None if everything is good.

-capsul.engine.module.fsl.check_notably_invalid_config(conf)[source]
+capsul.engine.module.fsl.check_notably_invalid_config(conf)[source]

Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled

Returns:
@@ -790,30 +793,30 @@
-capsul.engine.module.fsl.complete_configurations()[source]
+capsul.engine.module.fsl.complete_configurations()[source]

Try to automatically set or complete the capsul.engine.configurations for FSL.

-capsul.engine.module.fsl.edition_widget(engine, environment, config_id='fsl')[source]
+capsul.engine.module.fsl.edition_widget(engine, environment, config_id='fsl')[source]

Edition GUI for FSL config - see SettingsEditor

-
-

matlab

-
+
+

matlab

+
-capsul.engine.module.matlab.check_configurations()[source]
+capsul.engine.module.matlab.check_configurations()[source]

Check if the activated configuration is valid for Matlab and return an error message if there is an error or None if everything is good.

-capsul.engine.module.matlab.check_notably_invalid_config(conf)[source]
+capsul.engine.module.matlab.check_notably_invalid_config(conf)[source]

Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled

Returns:
@@ -827,15 +830,15 @@
-capsul.engine.module.matlab.edition_widget(engine, environment, config_id='matlab')[source]
+capsul.engine.module.matlab.edition_widget(engine, environment, config_id='matlab')[source]

Edition GUI for matlab config - see SettingsEditor

-
-

python

-

Python configuration module for CAPSUL

+
+

python

+

Python configuration module for CAPSUL

This config module allows the customization of python executable and python path in process execution. It can (as every config module) assign specific config values for different environments (computing resources, typically).

Python configuration is slightly different from other config modules in the way that it cannot be handled during execution inside a python library: python executable and modules path have to be setup before starting python and loading modules. So the config here sometimes has to be prepared from client side and hard-coded in the job to run.

For this reason, what we call here “python jobs” have a special handling. “python jobs” are Process classes defining a _run_process() method, and not get_commandline(). Processing are thus python functions or methods, and need the capsul library to run.

@@ -845,13 +848,13 @@
-capsul.engine.module.python.check_notably_invalid_config(conf)[source]
+capsul.engine.module.python.check_notably_invalid_config(conf)[source]

Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled

Returns:
@@ -865,24 +868,24 @@
-capsul.engine.module.python.edition_widget(engine, environment, config_id='python')[source]
+capsul.engine.module.python.edition_widget(engine, environment, config_id='python')[source]

Edition GUI for python config - see SettingsEditor

-
-

spm

-
+
+

spm

+
-capsul.engine.module.spm.activate_configurations()[source]
+capsul.engine.module.spm.activate_configurations()[source]

Activate the SPM module (set env variables) from the global configurations, in order to use them via capsul.in_context.spm functions

-capsul.engine.module.spm.check_notably_invalid_config(conf)[source]
+capsul.engine.module.spm.check_notably_invalid_config(conf)[source]

Checks if the given module config is obviously invalid, for instance if a mandatory path is not filled

Returns:
@@ -896,21 +899,21 @@
-capsul.engine.module.spm.edition_widget(engine, environment, config_id='any')[source]
+capsul.engine.module.spm.edition_widget(engine, environment, config_id='any')[source]

Edition GUI for SPM config - see SettingsEditor

-
-

capsul.engine.run submodule

-

Implementation of CapsulEngine processing methods. +

+

capsul.engine.run submodule

+

Implementation of CapsulEngine processing methods. They have been moved to this file for clarity.

Running is always using Soma-Workflow.

-exception capsul.engine.run.WorkflowExecutionError(controller, workflow_id, status=None, workflow_kept=True, verbose=True)[source]
+exception capsul.engine.run.WorkflowExecutionError(controller, workflow_id, status=None, workflow_kept=True, verbose=True)[source]

Exception class raised when a workflow execution fails. It holds references to the WorkflowController and the workflow id

@@ -918,14 +921,14 @@
-capsul.engine.run.detailed_information(engine, execution_id)[source]
+capsul.engine.run.detailed_information(engine, execution_id)[source]

Return complete (and possibly big) information about a process execution.

-capsul.engine.run.dispose(engine, execution_id, conditional=False)[source]
+capsul.engine.run.dispose(engine, execution_id, conditional=False)[source]

Update the database with the current state of a process execution and free the resources used in the computing resource (i.e. remove the workflow from SomaWorkflow).

@@ -935,20 +938,20 @@
-capsul.engine.run.interrupt(engine, execution_id)[source]
+capsul.engine.run.interrupt(engine, execution_id)[source]

Try to stop the execution of a process. Does not wait for the process to be terminated.

-capsul.engine.run.raise_for_status(engine, status, execution_id=None)[source]
+capsul.engine.run.raise_for_status(engine, status, execution_id=None)[source]

Raise an exception if a process execution failed

-capsul.engine.run.start(engine, process, workflow=None, history=True, get_pipeline=False, **kwargs)[source]
+capsul.engine.run.start(engine, process, workflow=None, history=True, get_pipeline=False, **kwargs)[source]

Asynchronously start the execution of a process or pipeline in the connected computing environment. Returns an identifier of the process execution and can be used to get the status of the @@ -986,22 +989,22 @@

-capsul.engine.run.status(engine, execution_id)[source]
+capsul.engine.run.status(engine, execution_id)[source]

Return a simple value with the status of an execution (queued, running, terminated, error, etc.)

-capsul.engine.run.wait(engine, execution_id, timeout=-1, pipeline=None)[source]
+capsul.engine.run.wait(engine, execution_id, timeout=-1, pipeline=None)[source]

Wait for the end of a process execution (either normal termination, interruption or error).

-
-

capsul.engine.settings submodule

-

This module provides classes to store CapsulEngine settings for several execution environment and choose a configuration for a given execution environment. Setting management in Capsul has several features that makes it different from classical ways to deal with configuration:

+
+

capsul.engine.settings submodule

+

This module provides classes to store CapsulEngine settings for several execution environment and choose a configuration for a given execution environment. Setting management in Capsul has several features that makes it different from classical ways to deal with configuration:

\ No newline at end of file diff --git a/api/in_context.html b/api/in_context.html index 1226afa24..5737fe155 100644 --- a/api/in_context.html +++ b/api/in_context.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,12 +104,13 @@

Navigation

-

capsul.in_context module

-
Inheritance diagram of capsul.in_context, capsul.in_context.fsl, capsul.in_context.spm
+

capsul.in_context module

+
Inheritance diagram of capsul.in_context, capsul.in_context.fsl, capsul.in_context.spm
+ -

The in_context module provides functions to call some external software from Capsul processes (SPM, FSL, etc.). The main functions perform calls to the software in a similar way as subprocess functions (Popen, call(), check_call() and subprocess.check_output()). These functions are only valid when the software environment context is activated. +

The in_context module provides functions to call some external software from Capsul processes (SPM, FSL, etc.). The main functions perform calls to the software in a similar way as subprocess functions (Popen, call(), check_call() and subprocess.check_output()). These functions are only valid when the software environment context is activated. Activating the context is normally done using the with statement on a CapsulEngine object:

from capsul.engine import capsul_engine
 from capsul.in_context.fsl import fsl_check_call
@@ -121,9 +122,9 @@ 

capsul.in_context modulefsl_check_call(['bet', '-h'])

-
-

capsul.in_context.fsl submodule

-

Specific subprocess-like functions to call FSL taking into account +

+

capsul.in_context.fsl submodule

+

Specific subprocess-like functions to call FSL taking into account configuration stored in ExecutionContext. To functions and class in this module it is mandatory to activate an ExecutionContext (using a with statement). For instance:

@@ -143,32 +144,32 @@

capsul.in_context module
-class capsul.in_context.fsl.FslPopen(command, **kwargs)[source]
+class capsul.in_context.fsl.FslPopen(command, **kwargs)[source]

Equivalent to Python subprocess.Popen for FSL commands

Create new Popen instance.

-capsul.in_context.fsl.fsl_call(command, **kwargs)[source]
+capsul.in_context.fsl.fsl_call(command, **kwargs)[source]

Equivalent to Python subprocess.call for FSL commands

-capsul.in_context.fsl.fsl_check_call(command, **kwargs)[source]
+capsul.in_context.fsl.fsl_check_call(command, **kwargs)[source]

Equivalent to Python subprocess.check_call for FSL commands

-capsul.in_context.fsl.fsl_check_output(command, **kwargs)[source]
+capsul.in_context.fsl.fsl_check_output(command, **kwargs)[source]

Equivalent to Python subprocess.check_output for FSL commands

-capsul.in_context.fsl.fsl_command_with_environment(command, use_prefix=True, use_runtime_env=True)[source]
+capsul.in_context.fsl.fsl_command_with_environment(command, use_prefix=True, use_runtime_env=True)[source]

Given an FSL command where first element is a command name without any path or prefix (e.g. “bet”). Returns the appropriate command to call taking into account the FSL configuration stored in the @@ -178,15 +179,15 @@

capsul.in_context module
-capsul.in_context.fsl.fsl_env()[source]
+capsul.in_context.fsl.fsl_env()[source]

get FSL env variables by running the setup script in a separate bash process

-
-

capsul.in_context.spm submodule

-

Specific subprocess-like functions to call SPM taking into account +

+

capsul.in_context.spm submodule

+

Specific subprocess-like functions to call SPM taking into account configuration stored in ExecutionContext. To functions and class in this module it is mandatory to activate an ExecutionContext (using a with statement). For instance:

@@ -202,26 +203,26 @@

capsul.in_context module
-class capsul.in_context.spm.SPMPopen(spm_batch_filename, **kwargs)[source]
+class capsul.in_context.spm.SPMPopen(spm_batch_filename, **kwargs)[source]

Equivalent to Python subprocess.Popen for SPM batch

Create new Popen instance.

-capsul.in_context.spm.spm_call(spm_batch_filename, **kwargs)[source]
+capsul.in_context.spm.spm_call(spm_batch_filename, **kwargs)[source]

Equivalent to Python subprocess.call for SPM batch

-capsul.in_context.spm.spm_check_call(spm_batch_filename, **kwargs)[source]
+capsul.in_context.spm.spm_check_call(spm_batch_filename, **kwargs)[source]

Equivalent to Python subprocess.check_call for SPM batch

-capsul.in_context.spm.spm_check_output(spm_batch_filename, **kwargs)[source]
+capsul.in_context.spm.spm_check_output(spm_batch_filename, **kwargs)[source]

Equivalent to Python subprocess.check_output for SPM batch

@@ -239,7 +240,7 @@

capsul.in_context moduleTable of Contents

\ No newline at end of file diff --git a/api/index.html b/api/index.html index a33464d98..1647a1a73 100644 --- a/api/index.html +++ b/api/index.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,11 +104,11 @@

Navigation

-

CAPSUL programming API documentation

+

CAPSUL programming API documentation

See also the User Guide section for more general usage documentation.

-

Classes inheritance diagram

-
Inheritance diagram of capsul.attributes, capsul.attributes.attributes_factory, capsul.attributes.attributes_schema, capsul.attributes.completion_engine_factory, capsul.attributes.completion_engine_iteration, capsul.attributes.completion_engine, capsul.attributes.fom_completion_engine, capsul.engine, capsul.engine.database_json, capsul.engine.database_populse, capsul.engine.database, capsul.engine.module, capsul.in_context, capsul.in_context.fsl, capsul.pipeline, capsul.pipeline.pipeline, capsul.pipeline.pipeline_construction, capsul.pipeline.pipeline_nodes, capsul.pipeline.pipeline_tools, capsul.pipeline.pipeline_workflow, capsul.pipeline.process_iteration, capsul.pipeline.python_export, capsul.pipeline.topological_sort, capsul.pipeline.xml, capsul.pipeline.custom_nodes, capsul.pipeline.custom_nodes.strcat_node, capsul.pipeline.custom_nodes.cv_node, capsul.pipeline.custom_nodes.loo_node, capsul.pipeline.custom_nodes.map_node, capsul.pipeline.custom_nodes.reduce_node, capsul.plugins, capsul.process, capsul.process.process, capsul.process.nipype_process, capsul.process.runprocess, capsul.process.xml, capsul.qt_apps, capsul.qt_apps.utils, capsul.qt_apps.utils.application, capsul.qt_apps.utils.fill_treectrl, capsul.qt_apps.utils.find_pipelines, capsul.qt_apps.utils.window, capsul.qt_gui, capsul.qt_gui.board_widget, capsul.qt_gui.widgets, capsul.qt_gui.widgets.activation_inspector, capsul.qt_gui.widgets.attributed_process_widget, capsul.qt_gui.widgets.links_debugger, capsul.qt_gui.widgets.pipeline_developer_view, capsul.qt_gui.widgets.pipeline_file_warning_widget, capsul.qt_gui.widgets.pipeline_user_view, capsul.qt_gui.widgets.viewer_widget, capsul.sphinxext, capsul.sphinxext.layoutdocgen, capsul.sphinxext.load_pilots, capsul.sphinxext.pipelinedocgen, capsul.sphinxext.usecasesdocgen, capsul.study_config, capsul.study_config.study_config, capsul.study_config.config_utils, capsul.study_config.memory, capsul.study_config.process_instance, capsul.study_config.run, capsul.study_config.config_modules.attributes_config, capsul.study_config.config_modules.brainvisa_config, capsul.study_config.config_modules.fom_config, capsul.study_config.config_modules.freesurfer_config, capsul.study_config.config_modules.fsl_config, capsul.study_config.config_modules.matlab_config, capsul.study_config.config_modules.nipype_config, capsul.study_config.config_modules.smartcaching_config, capsul.study_config.config_modules.somaworkflow_config, capsul.study_config.config_modules.spm_config, capsul.subprocess, capsul.subprocess.fsl, capsul.subprocess.spm, capsul.utils, capsul.utils.finder, capsul.utils.version_utils
+

Classes inheritance diagram

+
Inheritance diagram of capsul.attributes, capsul.attributes.attributes_factory, capsul.attributes.attributes_schema, capsul.attributes.completion_engine_factory, capsul.attributes.completion_engine_iteration, capsul.attributes.completion_engine, capsul.attributes.fom_completion_engine, capsul.engine, capsul.engine.database_json, capsul.engine.database_populse, capsul.engine.database, capsul.engine.module, capsul.in_context, capsul.in_context.fsl, capsul.pipeline, capsul.pipeline.pipeline, capsul.pipeline.pipeline_construction, capsul.pipeline.pipeline_nodes, capsul.pipeline.pipeline_tools, capsul.pipeline.pipeline_workflow, capsul.pipeline.process_iteration, capsul.pipeline.python_export, capsul.pipeline.topological_sort, capsul.pipeline.xml, capsul.pipeline.custom_nodes, capsul.pipeline.custom_nodes.strcat_node, capsul.pipeline.custom_nodes.cv_node, capsul.pipeline.custom_nodes.loo_node, capsul.pipeline.custom_nodes.map_node, capsul.pipeline.custom_nodes.reduce_node, capsul.plugins, capsul.process, capsul.process.process, capsul.process.nipype_process, capsul.process.runprocess, capsul.process.xml, capsul.qt_apps, capsul.qt_apps.utils, capsul.qt_apps.utils.application, capsul.qt_apps.utils.fill_treectrl, capsul.qt_apps.utils.find_pipelines, capsul.qt_apps.utils.window, capsul.qt_gui, capsul.qt_gui.board_widget, capsul.qt_gui.widgets, capsul.qt_gui.widgets.activation_inspector, capsul.qt_gui.widgets.attributed_process_widget, capsul.qt_gui.widgets.links_debugger, capsul.qt_gui.widgets.pipeline_developer_view, capsul.qt_gui.widgets.pipeline_file_warning_widget, capsul.qt_gui.widgets.pipeline_user_view, capsul.qt_gui.widgets.viewer_widget, capsul.sphinxext, capsul.sphinxext.layoutdocgen, capsul.sphinxext.load_pilots, capsul.sphinxext.pipelinedocgen, capsul.sphinxext.usecasesdocgen, capsul.study_config, capsul.study_config.study_config, capsul.study_config.config_utils, capsul.study_config.memory, capsul.study_config.process_instance, capsul.study_config.run, capsul.study_config.config_modules.attributes_config, capsul.study_config.config_modules.brainvisa_config, capsul.study_config.config_modules.fom_config, capsul.study_config.config_modules.freesurfer_config, capsul.study_config.config_modules.fsl_config, capsul.study_config.config_modules.matlab_config, capsul.study_config.config_modules.nipype_config, capsul.study_config.config_modules.smartcaching_config, capsul.study_config.config_modules.somaworkflow_config, capsul.study_config.config_modules.spm_config, capsul.subprocess, capsul.subprocess.fsl, capsul.subprocess.spm, capsul.utils, capsul.utils.finder, capsul.utils.version_utils
@@ -130,10 +130,14 @@

Classes inheritance diagram + + + + @@ -170,7 +174,7 @@

Classes inheritance diagram - + @@ -179,6 +183,7 @@

Classes inheritance diagram + @@ -197,18 +202,18 @@

Classes inheritance diagram

-

Main classes and functions

+

Main classes and functions

-

capsul.pipeline: Pipeline

+

capsul.pipeline: Pipeline

-

Pipeline Definition

+

Pipeline Definition

-

Node Types

+

Node Types

-

capsul.process: Process

+

capsul.process: Process

-

Classes

+

Classes

-

Configuration and execution

+

Configuration and execution

-

capsul.engine: Configuration and execution

+

capsul.engine: Configuration and execution

This new system will replace capsul.study_config in Capsul v3.

-

Classes:

+

Classes:

-

Functions:

+

Functions:

-

capsul.study_config: Study Configuration

+

capsul.study_config: Study Configuration

-

Study Configuration:

+

Study Configuration:

-

Configuration Modules:

+

Configuration Modules:

-

capsul.attributes: Attributes and processes completion

+

capsul.attributes: Attributes and processes completion

See also the user doc Parameters completion.

-

Classes

+

Classes

-

Running external software

+

Running external software

-

capsul.in_context

+

capsul.in_context

The new system which will be used in Capsul v3 is based on CapsulEngine and is the module:

in_context

-

capsul.subprocess

+

capsul.subprocess

This module is obsolete and will be replaced by in_process. It is still used in Capsul v2 when using StudyConfig.

-

capsul.subprocess.fsl Classes:

+

capsul.subprocess.fsl Classes:

-

capsul.subprocess.fsl Functions:

+

capsul.subprocess.fsl Functions:

-

capsul.subprocess.spm Functions:

+

capsul.subprocess.spm Functions:

\ No newline at end of file diff --git a/api/pipeline.html b/api/pipeline.html index cc082137d..0537f0399 100644 --- a/api/pipeline.html +++ b/api/pipeline.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,11 +104,14 @@

Navigation

-

capsul.pipeline module

-
Inheritance diagram of capsul.pipeline, capsul.pipeline.pipeline, capsul.pipeline.pipeline_construction, capsul.pipeline.pipeline_nodes, capsul.pipeline.pipeline_tools, capsul.pipeline.pipeline_workflow, capsul.pipeline.process_iteration, capsul.pipeline.python_export, capsul.pipeline.topological_sort, capsul.pipeline.xml, capsul.pipeline.custom_nodes, capsul.pipeline.custom_nodes.strcat_node, capsul.pipeline.custom_nodes.cv_node, capsul.pipeline.custom_nodes.loo_node, capsul.pipeline.custom_nodes.map_node, capsul.pipeline.custom_nodes.reduce_node
+

capsul.pipeline module

+
Inheritance diagram of capsul.pipeline, capsul.pipeline.pipeline, capsul.pipeline.pipeline_construction, capsul.pipeline.pipeline_nodes, capsul.pipeline.pipeline_tools, capsul.pipeline.pipeline_workflow, capsul.pipeline.process_iteration, capsul.pipeline.python_export, capsul.pipeline.topological_sort, capsul.pipeline.xml, capsul.pipeline.custom_nodes, capsul.pipeline.custom_nodes.strcat_node, capsul.pipeline.custom_nodes.cv_node, capsul.pipeline.custom_nodes.loo_node, capsul.pipeline.custom_nodes.map_node, capsul.pipeline.custom_nodes.reduce_node
+ + + @@ -126,19 +129,19 @@

capsul.pipeline module -

Pipelining elements for CAPSUL

-
-

capsul.pipeline.pipeline submodule

-

Pipeline main class module

+

Pipelining elements for CAPSUL

+
+

capsul.pipeline.pipeline submodule

+

Pipeline main class module

-

Classes

+

Classes

-

Pipeline

+

Pipeline

-class capsul.pipeline.pipeline.Pipeline(autoexport_nodes_parameters=None, **kwargs)[source]
+class capsul.pipeline.pipeline.Pipeline(autoexport_nodes_parameters=None, **kwargs)[source]

Pipeline containing Process nodes, and links between node parameters.

A Pipeline is normally subclassed, and its pipeline_definition() method is overloaded to define its nodes and links. @@ -232,7 +235,7 @@

-nodes
+nodes

a dictionary containing the pipeline nodes and where the pipeline node name is ‘’

@@ -244,7 +247,7 @@

-workflow_list
+workflow_list

a list of odered nodes that can be executed

Type:
@@ -255,7 +258,7 @@

-workflow_repr
+workflow_repr

a string representation of the workflow list <node_i>-><node_i+1>

Type:
@@ -281,7 +284,7 @@

-add_custom_node(name, node_type, parameters=None, make_optional=(), do_not_export=None, **kwargs)[source]
+add_custom_node(name, node_type, parameters=None, make_optional=(), do_not_export=None, **kwargs)[source]

Inserts a custom node (Node subclass instance which is not a Process) in the pipeline.

@@ -306,7 +309,7 @@

-add_iterative_process(name, process, iterative_plugs=None, do_not_export=None, make_optional=None, inputs_to_copy=None, inputs_to_clean=None, **kwargs)[source]
+add_iterative_process(name, process, iterative_plugs=None, do_not_export=None, make_optional=None, inputs_to_copy=None, inputs_to_clean=None, **kwargs)[source]

Add a new iterative node in the pipeline.

Parameters:
@@ -326,7 +329,7 @@

+add_link(link, weak_link=False, allow_export=False, value=None)[source]

Add a link between pipeline nodes.

If the destination node is a switch, force the source plug to be not optional.

@@ -353,7 +356,7 @@

-add_optional_output_switch(name, input, output=None)[source]
+add_optional_output_switch(name, input, output=None)[source]

Add an optional output switch node in the pipeline

An optional switch activates or disables its input/output link according to the output value. If the output value is not None or @@ -397,7 +400,7 @@

-add_pipeline_step(step_name, nodes, enabled=True)[source]
+add_pipeline_step(step_name, nodes, enabled=True)[source]

Add a step definition to the pipeline (see also define_steps).

Steps are groups of pipeline nodes, which may be disabled at runtime. They are normally defined in a logical order regarding the workflow @@ -419,7 +422,7 @@

-add_process(name, process, do_not_export=None, make_optional=None, inputs_to_copy=None, inputs_to_clean=None, skip_invalid=False, **kwargs)[source]
+add_process(name, process, do_not_export=None, make_optional=None, inputs_to_copy=None, inputs_to_clean=None, skip_invalid=False, **kwargs)[source]

Add a new node in the pipeline

Note about invalid nodes:

A pipeline can typically offer alternatives (through a switch) to @@ -479,7 +482,7 @@

-add_processes_selection(selection_parameter, selection_groups, value=None)[source]
+add_processes_selection(selection_parameter, selection_groups, value=None)[source]

Add a processes selection switch definition to the pipeline.

Selectors are a “different” kind of switch: one pipeline node set in a group is enabled, the others are disabled.

@@ -501,7 +504,7 @@

-add_switch(name, inputs, outputs, export_switch=True, make_optional=(), output_types=None, switch_value=None, opt_nodes=None)[source]
+add_switch(name, inputs, outputs, export_switch=True, make_optional=(), output_types=None, switch_value=None, opt_nodes=None)[source]

Add a switch node in the pipeline

Parameters:
@@ -551,7 +554,7 @@

-add_trait(name, trait)[source]
+add_trait(name, trait)[source]

Add a trait to the pipeline

Parameters:
@@ -565,7 +568,7 @@

-all_nodes()[source]
+all_nodes()[source]

Iterate over all pipeline nodes including sub-pipeline nodes.

Returns:
@@ -579,7 +582,7 @@

-autoexport_nodes_parameters(include_optional=False)[source]
+autoexport_nodes_parameters(include_optional=False)[source]

Automatically export nodes plugs to the pipeline.

Some parameters can be explicitly preserved from exportation if they are listed in the pipeline “do_not_export” variable (list or set).

@@ -595,7 +598,7 @@

-call_process_method(process_name, method, *args, **kwargs)[source]
+call_process_method(process_name, method, *args, **kwargs)[source]

Call a method of a process previously added with add_process or add_iterative_process.

@@ -610,7 +613,7 @@

-check_requirements(environment='global', message_list=None)[source]
+check_requirements(environment='global', message_list=None)[source]

Reimplementation for pipelines of capsul.process.process.Process.check_requirements

A pipeline will return a list of unique configuration values.

@@ -618,7 +621,7 @@

-compare_to_state(pipeline_state)[source]
+compare_to_state(pipeline_state)[source]

Returns the differences between this pipeline and a previously recorded state.

@@ -634,7 +637,7 @@

-count_items()[source]
+count_items()[source]

Count pipeline items to get its size.

Returns:
@@ -650,7 +653,7 @@

-define_groups_as_steps(exclusive=True)[source]
+define_groups_as_steps(exclusive=True)[source]

Define parameters groups according to which steps they are connected to.

@@ -664,7 +667,7 @@

-define_pipeline_steps(steps)[source]
+define_pipeline_steps(steps)[source]

Define steps in the pipeline. Steps are pipeline portions that form groups, and which can be enabled or disabled on a runtime basis (when building workflows).

@@ -700,7 +703,7 @@

-disabled_pipeline_steps_nodes()[source]
+disabled_pipeline_steps_nodes()[source]

List nodes disabled for runtime execution

Returns:
@@ -715,14 +718,14 @@

-enable_all_pipeline_steps()[source]
+enable_all_pipeline_steps()[source]

Set all defined steps (using add_step() or define_steps()) to be enabled. Useful to reset the pipeline state after it has been changed.

-export_parameter(node_name, plug_name, pipeline_parameter=None, weak_link=False, is_enabled=None, is_optional=None, allow_existing_plug=None)[source]
+export_parameter(node_name, plug_name, pipeline_parameter=None, weak_link=False, is_enabled=None, is_optional=None, allow_existing_plug=None)[source]

Export a node plug at the pipeline level.

Parameters:
@@ -745,7 +748,7 @@

-find_empty_parameters()[source]
+find_empty_parameters()[source]

Find internal File/Directory parameters not exported to the main input/output parameters of the pipeline with empty values. This is meant to track parameters which should be associated with temporary @@ -763,33 +766,33 @@

-get_pipeline_step_nodes(step_name)[source]
+get_pipeline_step_nodes(step_name)[source]

Get the nodes in the given pipeline step

-get_processes_selection_groups(selection_parameter)[source]
+get_processes_selection_groups(selection_parameter)[source]

Get groups names involved in a processes selection switch

-get_processes_selection_nodes(selection_parameter, group)[source]
+get_processes_selection_nodes(selection_parameter, group)[source]

Get nodes names involved in a processes selection switch with value group

-get_processes_selections()[source]
+get_processes_selections()[source]

Get process_selection groups names (corresponding to selection parameters on the pipeline)

+install_links_debug_handler(log_file=None, handler=None, prefix='')[source]

Set callbacks when traits value change, and follow plugs links to debug links propagation and problems in it.

@@ -819,7 +822,7 @@

+parse_link(link, check=True)[source]

Parse a link coming from export_parameter method.

Parameters:
@@ -852,7 +855,7 @@

-parse_parameter(name, check=True)[source]
+parse_parameter(name, check=True)[source]

Parse parameter of a node from its description.

Parameters:
@@ -872,7 +875,7 @@

-pipeline_definition()[source]
+pipeline_definition()[source]

Define pipeline structure, nodes, sub-pipelines, switches, and links.

This method should be overloaded in subclasses, it does nothing in the @@ -881,7 +884,7 @@

-pipeline_state()[source]
+pipeline_state()[source]

Return an object composed of basic Python objects that contains the whole structure and state of the pipeline. This object can be given to compare_to_state method in order to get the differences with @@ -898,7 +901,7 @@

-propagate_metadata(node, param, metadata)[source]
+propagate_metadata(node, param, metadata)[source]

Set metadata on a node parameter, and propagate these values to the connected plugs.

Typically needed to propagate the “forbid_completion” metadata to avoid @@ -908,7 +911,7 @@

+remove_link(link)[source]

Remove a link between pipeline nodes

Parameters:
@@ -923,19 +926,19 @@

-remove_node(node_name)[source]
+remove_node(node_name)[source]

Remove a node from the pipeline

-remove_pipeline_step(step_name)[source]
+remove_pipeline_step(step_name)[source]

Remove the given step

-remove_trait(name)[source]
+remove_trait(name)[source]

Remove a trait to the pipeline

Parameters:
@@ -946,7 +949,7 @@

-rename_node(old_node_name, new_node_name)[source]
+rename_node(old_node_name, new_node_name)[source]

Change the name of the selected node and updates the pipeline.

Parameters:
@@ -960,7 +963,7 @@

-reorder_traits(names)[source]
+reorder_traits(names)[source]

Reimplementation of Controller method reorder_traits() so that we also reorder the pipeline node plugs.

@@ -968,7 +971,7 @@

-set_study_config(study_config)[source]
+set_study_config(study_config)[source]

Set a StudyConfig for the process. Note that it can only be done once: once a non-null StudyConfig has been assigned to the process, it should not change.

@@ -976,13 +979,13 @@

+uninstall_links_debug_handler()[source]

Remove links debugging callbacks set by install_links_debug_handler

-update_nodes_and_plugs_activation()[source]
+update_nodes_and_plugs_activation()[source]

Reset all nodes and plugs activations according to the current state of the pipeline (i.e. switch selection, nodes disabled, etc.). Activations are set according to the following rules.

@@ -990,7 +993,7 @@

-workflow_graph(remove_disabled_steps=True, remove_disabled_nodes=True)[source]
+workflow_graph(remove_disabled_steps=True, remove_disabled_nodes=True)[source]

Generate a workflow graph

Returns:
@@ -1011,7 +1014,7 @@

-workflow_ordered_nodes(remove_disabled_steps=True)[source]
+workflow_ordered_nodes(remove_disabled_steps=True)[source]

Generate a workflow: list of process node to execute

Returns:
@@ -1029,21 +1032,21 @@

-
-

capsul.pipeline.pipeline_construction submodule

-

This module is an internal machinery, the user needs not to know it and bother about it. In brief it provide helper functions to build a pipeline from an IO serialization.

+
+

capsul.pipeline.pipeline_construction submodule

+

This module is an internal machinery, the user needs not to know it and bother about it. In brief it provide helper functions to build a pipeline from an IO serialization.

-

Classes

+

Classes

-

PipelineConstructor

+

PipelineConstructor

-

ConstructedPipeline

+

ConstructedPipeline

-class capsul.pipeline.pipeline_construction.ConstructedPipeline(autoexport_nodes_parameters=None, **kwargs)[source]
+class capsul.pipeline.pipeline_construction.ConstructedPipeline(autoexport_nodes_parameters=None, **kwargs)[source]

Base class of all pipelines created with PipelineConstructor. It redefines pipeline_definition in order to “replay”, at each instantiation, the method calls previously recorded with the PipelineConstructor.

@@ -1064,7 +1067,7 @@

-pipeline_definition()[source]
+pipeline_definition()[source]

Executes on self, all method calls recorded in self._pipeline_definition_calls.

@@ -1073,7 +1076,7 @@

-class capsul.pipeline.pipeline_construction.PipelineConstructor(module, name)[source]
+class capsul.pipeline.pipeline_construction.PipelineConstructor(module, name)[source]

A PipelineConstructor is used to build a new Pipeline class and dynamically constructs its contents, for instances by adding processes nodes and creating links between parameters. This class must be used whenever one @@ -1105,125 +1108,125 @@

-add_custom_node(*args, **kwargs)[source]
+add_custom_node(*args, **kwargs)[source]

Adds an custom Node subtype to the pipeline

-add_iterative_process(*args, **kwargs)[source]
+add_iterative_process(*args, **kwargs)[source]

Adds a new iterative process to the pipeline.

+add_link(*args, **kwargs)[source]

Add a link between pipeline processes.

-add_optional_output_switch(*args, **kwargs)[source]
+add_optional_output_switch(*args, **kwargs)[source]

Adds an OptionalOutputswitch to the pipeline

-add_pipeline_step(step_name, nodes, enabled)[source]
+add_pipeline_step(step_name, nodes, enabled)[source]

Defines a pipeline step

-add_process(*args, **kwargs)[source]
+add_process(*args, **kwargs)[source]

Adds a new process to the pipeline.

-add_processes_selection(*args, **kwargs)[source]
+add_processes_selection(*args, **kwargs)[source]

Add processes selection to the pipeline.

+add_subpipeline_link(*args, **kwargs)[source]

Add a link between subpipeline processes.

-add_switch(*args, **kwargs)[source]
+add_switch(*args, **kwargs)[source]

Adds a switch to the pipeline

-call_process_method(*args, **kwargs)[source]
+call_process_method(*args, **kwargs)[source]

Call a method of a process previously added with add_process or add_itConstructedPipelineerative_process.

-export_parameter(*args, **kwargs)[source]
+export_parameter(*args, **kwargs)[source]

Export an internal parameter to the pipeline parameters.

-set_documentation(doc)[source]
+set_documentation(doc)[source]

Sets the documentation of the pipeline

-set_node_enabled(name, state)[source]
+set_node_enabled(name, state)[source]

Enables or disabled a node

-set_node_position(node_name, x, y)[source]
+set_node_position(node_name, x, y)[source]

Set a pipeline node position.

-set_scene_scale_factor(scale)[source]
+set_scene_scale_factor(scale)[source]

Set global nodes view scale factor.

-
-

capsul.pipeline.pipeline_nodes submodule

-

Node classes for CAPSUL pipeline elements

+
+

capsul.pipeline.pipeline_nodes submodule

+

Node classes for CAPSUL pipeline elements

-

Classes

+

Classes

-

Plug

+

Plug

-

Node

+

Node

-

ProcessNode

+

ProcessNode

-

PipelineNode

+

PipelineNode

-

Switch

+

Switch

-

OptionalOutputSwitch

+

OptionalOutputSwitch

-class capsul.pipeline.pipeline_nodes.Node(pipeline, name, inputs, outputs)[source]
+class capsul.pipeline.pipeline_nodes.Node(pipeline, name, inputs, outputs)[source]

Basic Node structure of the pipeline that need to be tuned.

It is possible to define custom nodes inheriting Node. To be usable in all contexts (GUI construction, pipeline save / reload), custom nodes should @@ -1256,7 +1259,7 @@

-name
+name

the node name

Type:
@@ -1267,7 +1270,7 @@

-full_name
+full_name

a unique name among all nodes and sub-nodes of the top level pipeline

Type:
@@ -1278,7 +1281,7 @@

-enabled
+enabled

user parameter to control the node activation

Type:
@@ -1289,7 +1292,7 @@

-activated
+activated

parameter describing the node status

Type:
@@ -1300,27 +1303,27 @@

-connect()[source]
+connect()[source]

-set_callback_on_plug()[source]
+set_callback_on_plug()[source]
-get_plug_value()[source]
+get_plug_value()[source]
-set_plug_value()[source]
+set_plug_value()[source]
-get_trait()[source]
+get_trait()[source]

Generate a Node

@@ -1338,7 +1341,7 @@

-check_requirements(environment='global', message_list=None)[source]
+check_requirements(environment='global', message_list=None)[source]

Checks the process requirements against configuration settings values in the attached CapsulEngine. This makes use of the requirements() method and checks that there is one matching @@ -1369,14 +1372,14 @@

-cleanup()[source]
+cleanup()[source]

cleanup before deletion

disconnects all plugs, remove internal and cyclic references

-connect(source_plug_name, dest_node, dest_plug_name)[source]
+connect(source_plug_name, dest_node, dest_plug_name)[source]

Connect linked plugs of two nodes

Parameters:
@@ -1391,7 +1394,7 @@

-disconnect(source_plug_name, dest_node, dest_plug_name, silent=False)[source]
+disconnect(source_plug_name, dest_node, dest_plug_name, silent=False)[source]

disconnect linked plugs of two nodes

Parameters:
@@ -1408,7 +1411,7 @@

-get_connections_through(plug_name, single=False)[source]
+get_connections_through(plug_name, single=False)[source]

If the node has internal links (inside a pipeline, or in a switch or other custom connection node), return the “other side” of the internal connection to the selected plug. The returned plug may be @@ -1437,7 +1440,7 @@

-get_missing_mandatory_parameters(exclude_links=False)[source]
+get_missing_mandatory_parameters(exclude_links=False)[source]

Returns a list of parameters which are not optional, and which value is Undefined or None, or an empty string for a File or Directory parameter.

@@ -1453,7 +1456,7 @@

-get_plug_value(plug_name)[source]
+get_plug_value(plug_name)[source]

Return the plug value

Parameters:
@@ -1470,13 +1473,13 @@

-get_study_config()[source]
+get_study_config()[source]

Get (or create) the StudyConfig this process belongs to

-get_trait(trait_name)[source]
+get_trait(trait_name)[source]

Return the desired trait

Parameters:
@@ -1493,7 +1496,7 @@

-is_job()[source]
+is_job()[source]

if True, the node will be represented as a Job in Soma-Workflow. Otherwise the node is static and does not run.

@@ -1501,7 +1504,7 @@

-remove_callback_from_plug(plug_name, callback)[source]
+remove_callback_from_plug(plug_name, callback)[source]

Remove an event when a plug change

Parameters:
@@ -1515,7 +1518,7 @@

-requirements()[source]
+requirements()[source]

Requirements needed to run the node. It is a dictionary which keys are config/settings modules and values are requests for them.

The default implementation returns an empty dict (no requirements), and @@ -1528,7 +1531,7 @@

-set_callback_on_plug(plug_name, callback)[source]
+set_callback_on_plug(plug_name, callback)[source]

Add an event when a plug change

Parameters:
@@ -1542,7 +1545,7 @@

-set_plug_value(plug_name, value, protected=None)[source]
+set_plug_value(plug_name, value, protected=None)[source]

Set the plug value

Parameters:
@@ -1558,7 +1561,7 @@

-set_study_config(study_config)[source]
+set_study_config(study_config)[source]

Set the StudyConfig this process belongs to

@@ -1566,7 +1569,7 @@

-class capsul.pipeline.pipeline_nodes.OptionalOutputSwitch(pipeline, name, input, output)[source]
+class capsul.pipeline.pipeline_nodes.OptionalOutputSwitch(pipeline, name, input, output)[source]

A switch which activates or disables its input/output link according to the output value. If the output value is not None or Undefined, the link is active, otherwise it is inactive.

@@ -1614,7 +1617,7 @@

-class capsul.pipeline.pipeline_nodes.PipelineNode(pipeline, name, process, **kwargs)[source]
+class capsul.pipeline.pipeline_nodes.PipelineNode(pipeline, name, process, **kwargs)[source]

A special node to store the pipeline user-parameters

Generate a ProcessNode

@@ -1629,7 +1632,7 @@

-get_connections_through(plug_name, single=False)[source]
+get_connections_through(plug_name, single=False)[source]

If the node has internal links (inside a pipeline, or in a switch or other custom connection node), return the “other side” of the internal connection to the selected plug. The returned plug may be @@ -1660,11 +1663,11 @@

-class capsul.pipeline.pipeline_nodes.Plug(**kwargs)[source]
+class capsul.pipeline.pipeline_nodes.Plug(**kwargs)[source]

Overload of the traits in order to keep the pipeline memory.

-enabled
+enabled

user parameter to control the plug activation

Type:
@@ -1675,7 +1678,7 @@

-activated
+activated

parameter describing the Plug status

Type:
@@ -1686,7 +1689,7 @@

-output
+output

parameter to set the Plug type (input or output)

Type:
@@ -1697,7 +1700,7 @@

-optional
+optional

parameter to create an optional Plug

Type:
@@ -1708,7 +1711,7 @@

-has_default_value
+has_default_value

indicate if a value is available for that plug even if its not linked

Type:
@@ -1719,7 +1722,7 @@

+links_to

the successor plugs of this plug

Type:
@@ -1730,7 +1733,7 @@

+links_from

the predecessor plugs of this plug

Type:
@@ -1745,11 +1748,11 @@

-class capsul.pipeline.pipeline_nodes.ProcessNode(pipeline, name, process, **kwargs)[source]
+class capsul.pipeline.pipeline_nodes.ProcessNode(pipeline, name, process, **kwargs)[source]

Process node.

-process
+process

the process instance stored in the pipeline node

Type:
@@ -1760,22 +1763,22 @@

-set_callback_on_plug()[source]
+set_callback_on_plug()[source]

-get_plug_value()[source]
+get_plug_value()[source]
-set_plug_value()[source]
+set_plug_value()[source]
-get_trait()[source]
+get_trait()[source]

Generate a ProcessNode

@@ -1791,7 +1794,7 @@

-check_requirements(environment='global', message_list=None)[source]
+check_requirements(environment='global', message_list=None)[source]

Reimplementation of capsul.pipeline.pipeline_nodes.Node.requirements() for a ProcessNode. This one delegates to its underlying process (or @@ -1800,7 +1803,7 @@

-get_plug_value(plug_name)[source]
+get_plug_value(plug_name)[source]

Return the plug value

Parameters:
@@ -1817,13 +1820,13 @@

-get_study_config()[source]
+get_study_config()[source]

Get (or create) the StudyConfig this process belongs to

-get_trait(trait_name)[source]
+get_trait(trait_name)[source]

Return the desired trait

Parameters:
@@ -1840,7 +1843,7 @@

-is_job()[source]
+is_job()[source]

if True, the node will be represented as a Job in Soma-Workflow. Otherwise the node is static and does not run.

@@ -1848,13 +1851,13 @@

-is_parameter_protected(plug_name)[source]
+is_parameter_protected(plug_name)[source]

Tells whether the given parameter is protected or not

-protect_parameter(plug_name, state=True)[source]
+protect_parameter(plug_name, state=True)[source]

Protect the named parameter.

Protecting is not a real lock, it just marks the parameter a list of “protected” parameters. This is typically used to mark values that have @@ -1869,7 +1872,7 @@

-remove_callback_from_plug(plug_name, callback)[source]
+remove_callback_from_plug(plug_name, callback)[source]

Remove an event when a plug change

Parameters:
@@ -1883,7 +1886,7 @@

-requirements()[source]
+requirements()[source]

Requirements reimplementation for a process node. This node delegates to its underlying process. see capsul.process.process.requirements()

@@ -1891,7 +1894,7 @@

-set_callback_on_plug(plug_name, callback)[source]
+set_callback_on_plug(plug_name, callback)[source]

Add an event when a plug change

Parameters:
@@ -1905,7 +1908,7 @@

-set_plug_value(plug_name, value, protected=None)[source]
+set_plug_value(plug_name, value, protected=None)[source]

Set the plug value

Parameters:
@@ -1921,7 +1924,7 @@

-set_study_config(study_config)[source]
+set_study_config(study_config)[source]

Get (or create) the StudyConfig this process belongs to

@@ -1929,7 +1932,7 @@

-class capsul.pipeline.pipeline_nodes.Switch(pipeline, name, inputs, outputs, make_optional=(), output_types=None)[source]
+class capsul.pipeline.pipeline_nodes.Switch(pipeline, name, inputs, outputs, make_optional=(), output_types=None)[source]

Switch node to select a specific Process.

A switch commutes a group of inputs to its outputs, according to its “switch” trait value. Each group may be typically linked to a different @@ -1974,7 +1977,7 @@

pipeline_definition method

-_switch_values
+_switch_values

the switch options

Type:
@@ -1985,7 +1988,7 @@

-_outputs
+_outputs

the switch output parameters

Type:
@@ -2023,7 +2026,7 @@

-connections()[source]
+connections()[source]

Returns the current internal connections between input and output plugs

@@ -2039,7 +2042,7 @@

-get_connections_through(plug_name, single=False)[source]
+get_connections_through(plug_name, single=False)[source]

If the node has internal links (inside a pipeline, or in a switch or other custom connection node), return the “other side” of the internal connection to the selected plug. The returned plug may be @@ -2068,7 +2071,7 @@

-is_job()[source]
+is_job()[source]

if True, the node will be represented as a Job in Soma-Workflow. Otherwise the node is static and does not run.

@@ -2077,75 +2080,75 @@

-

capsul.pipeline.pipeline_tools submodule

-

Miscellaneous pipeline handling utility functions

+
+

capsul.pipeline.pipeline_tools submodule

+

Miscellaneous pipeline handling utility functions

-

Functions

+

Functions

-

pipeline_node_colors()

+

pipeline_node_colors()

-

dot_graph_from_pipeline()

+

dot_graph_from_pipeline()

-

dot_graph_from_workflow()

+

dot_graph_from_workflow()

-

save_dot_graph()

+

save_dot_graph()

-

save_dot_image()

+

save_dot_image()

-

disable_runtime_steps_with_existing_outputs()

+

disable_runtime_steps_with_existing_outputs()

-

nodes_with_existing_outputs()

+

nodes_with_existing_outputs()

-

nodes_with_missing_inputs()

+

nodes_with_missing_inputs()

-

where_is_plug_value_from()

+

where_is_plug_value_from()

-

dump_pipeline_state_as_dict()

+

dump_pipeline_state_as_dict()

-

set_pipeline_state_from_dict()

+

set_pipeline_state_from_dict()

-

get_output_directories()

+

get_output_directories()

-

create_output_directories()

+

create_output_directories()

-

save_pipeline()

+

save_pipeline()

-

load_pipeline_parameters()

+

load_pipeline_parameters()

-

save_pipeline_parameters()

+

save_pipeline_parameters()

-

is_node_enabled()

+

is_node_enabled()

-capsul.pipeline.pipeline_tools.create_output_directories(process)[source]
+capsul.pipeline.pipeline_tools.create_output_directories(process)[source]

Create output directories for a process, pipeline or node.

-capsul.pipeline.pipeline_tools.disable_runtime_steps_with_existing_outputs(pipeline)[source]
+capsul.pipeline.pipeline_tools.disable_runtime_steps_with_existing_outputs(pipeline)[source]

Disable steps in a pipeline which outputs contain existing files. This disabling is the “runtime steps disabling” one (see capsul.pipeline.Pipeline), not the node disabling with @@ -2161,7 +2164,7 @@

-capsul.pipeline.pipeline_tools.dot_graph_from_pipeline(pipeline, nodes_sizes={}, use_nodes_pos=False, include_io=True, enlarge_boxes=0.0)[source]
+capsul.pipeline.pipeline_tools.dot_graph_from_pipeline(pipeline, nodes_sizes={}, use_nodes_pos=False, include_io=True, enlarge_boxes=0.0)[source]

Build a graphviz/dot-compatible representation of the pipeline. The pipeline representation uses one link between two given boxes: parameters are not represented.

@@ -2202,7 +2205,7 @@

-capsul.pipeline.pipeline_tools.dot_graph_from_workflow(pipeline, nodes_sizes={}, use_nodes_pos=False, enlarge_boxes=0.0)[source]
+capsul.pipeline.pipeline_tools.dot_graph_from_workflow(pipeline, nodes_sizes={}, use_nodes_pos=False, enlarge_boxes=0.0)[source]

Build a graphviz/dot-compatible representation of the pipeline workflow.

This is different from the pipeline graph, as obtained by:py:func:dot_graph_from_pipeline, since only used parts are visible @@ -2237,7 +2240,7 @@

-capsul.pipeline.pipeline_tools.dump_pipeline_state_as_dict(pipeline)[source]
+capsul.pipeline.pipeline_tools.dump_pipeline_state_as_dict(pipeline)[source]

Get a pipeline state (parameters values, nodes activation, selected steps… in a dictionary.

The returned dict may contain sub-pipelines state also.

@@ -2260,7 +2263,7 @@

-capsul.pipeline.pipeline_tools.find_node(pipeline, node)[source]
+capsul.pipeline.pipeline_tools.find_node(pipeline, node)[source]

Find the given node in the pipeline or a sub-pipeline

Returns:
@@ -2275,7 +2278,7 @@

-capsul.pipeline.pipeline_tools.find_plug_connection_destinations(plug, pipeline=None)[source]
+capsul.pipeline.pipeline_tools.find_plug_connection_destinations(plug, pipeline=None)[source]

A bit like find_plug_connection_sources() but the other way

Returns:
@@ -2289,7 +2292,7 @@

-capsul.pipeline.pipeline_tools.find_plug_connection_sources(plug, pipeline=None)[source]
+capsul.pipeline.pipeline_tools.find_plug_connection_sources(plug, pipeline=None)[source]

A bit like where_is_plug_value_from() but looks for all incoming connection sources

@@ -2304,7 +2307,7 @@

-capsul.pipeline.pipeline_tools.get_output_directories(process)[source]
+capsul.pipeline.pipeline_tools.get_output_directories(process)[source]

Get output directories for a process, pipeline, or node

Returns:
@@ -2322,7 +2325,7 @@

-capsul.pipeline.pipeline_tools.is_node_enabled(pipeline, node_name=None, node=None)[source]
+capsul.pipeline.pipeline_tools.is_node_enabled(pipeline, node_name=None, node=None)[source]

Checks if the given node is enabled in the pipeline. It may be disabled if it has its enabled or activated properties set to False, or if it is part of a disabled step. The node may be given as a Node instance, or its name in the pipeline.

@@ -2330,13 +2333,13 @@

-capsul.pipeline.pipeline_tools.load_pipeline_parameters(filename, pipeline)[source]
+capsul.pipeline.pipeline_tools.load_pipeline_parameters(filename, pipeline)[source]

Loading and setting pipeline parameters (inputs and outputs) from a Json file.

-capsul.pipeline.pipeline_tools.nodes_with_existing_outputs(pipeline, exclude_inactive=True, recursive=False, exclude_inputs=True)[source]
+capsul.pipeline.pipeline_tools.nodes_with_existing_outputs(pipeline, exclude_inactive=True, recursive=False, exclude_inputs=True)[source]

Checks nodes in a pipeline which outputs contain existing files on the filesystem. Such nodes, maybe, should not run again. Only nodes which actually produce outputs are selected this way (switches are skipped).

@@ -2373,7 +2376,7 @@

-capsul.pipeline.pipeline_tools.nodes_with_missing_inputs(pipeline, recursive=True)[source]
+capsul.pipeline.pipeline_tools.nodes_with_missing_inputs(pipeline, recursive=True)[source]

Checks nodes in a pipeline which inputs contain invalid inputs. Inputs which are files non-existing on the filesystem (so, which cannot run), or have missing mandatory inputs, or take as input a temporary file @@ -2401,7 +2404,7 @@

+capsul.pipeline.pipeline_tools.pipeline_link_color(plug, link)[source]

Link color and style for graphical display and graphviz graphs.

Parameters:
@@ -2423,7 +2426,7 @@

-capsul.pipeline.pipeline_tools.pipeline_node_colors(pipeline, node)[source]
+capsul.pipeline.pipeline_tools.pipeline_node_colors(pipeline, node)[source]

Node color to display boxes in GUI and graphviz graphs. Depending on the node type (process, pipeline, switch) and its activation, colors will differ.

@@ -2447,7 +2450,7 @@

-capsul.pipeline.pipeline_tools.save_dot_graph(dot_graph, filename, **kwargs)[source]
+capsul.pipeline.pipeline_tools.save_dot_graph(dot_graph, filename, **kwargs)[source]

Write a graphviz/dot input file, which can be used to generate an image representation of the graph, or to make dot automatically position nodes.

@@ -2465,7 +2468,7 @@

-capsul.pipeline.pipeline_tools.save_dot_image(pipeline, filename, nodes_sizes={}, use_nodes_pos=False, include_io=True, enlarge_boxes=0.0, workflow=False, format=None, **kwargs)[source]
+capsul.pipeline.pipeline_tools.save_dot_image(pipeline, filename, nodes_sizes={}, use_nodes_pos=False, include_io=True, enlarge_boxes=0.0, workflow=False, format=None, **kwargs)[source]

Save a dot/graphviz image of the pipeline in a file.

It may use either the complete pipeline graph (with switches and disabled branches), or the workflow, hiding disabled parts (see the workflow @@ -2502,7 +2505,7 @@

-capsul.pipeline.pipeline_tools.save_pipeline(pipeline, file, format=None)[source]
+capsul.pipeline.pipeline_tools.save_pipeline(pipeline, file, format=None)[source]

Save the pipeline either in XML, JSON, or .py source file

Parameters:
@@ -2519,13 +2522,13 @@

-capsul.pipeline.pipeline_tools.save_pipeline_parameters(filename, pipeline)[source]
+capsul.pipeline.pipeline_tools.save_pipeline_parameters(filename, pipeline)[source]

Saving pipeline parameters (inputs and outputs) to a Json file.

-capsul.pipeline.pipeline_tools.set_pipeline_state_from_dict(pipeline, state_dict)[source]
+capsul.pipeline.pipeline_tools.set_pipeline_state_from_dict(pipeline, state_dict)[source]

Set a pipeline (or process) state from a dict description.

State includes parameters values, nodes activation, steps selection etc. The state is generally taken using dump_pipeline_state_as_dict().

@@ -2541,7 +2544,7 @@

-capsul.pipeline.pipeline_tools.where_is_plug_value_from(plug, recursive=True)[source]
+capsul.pipeline.pipeline_tools.where_is_plug_value_from(plug, recursive=True)[source]

Find where the given (input) plug takes its value from. It has to be the output of an uphill process, or be unconnected. Looking for it may involve ascending through switches or pipeline walls.

@@ -2572,7 +2575,7 @@

-capsul.pipeline.pipeline_tools.write_fake_pipeline(pipeline, module_name, dirname, sleep_time=0)[source]
+capsul.pipeline.pipeline_tools.write_fake_pipeline(pipeline, module_name, dirname, sleep_time=0)[source]

Write a “fake pipeline” with same class name, structure, and parameters as the input pipeline, but replacing its processes with “fake” processes which do not actually do a real job while executing.

@@ -2584,37 +2587,37 @@

-capsul.pipeline.pipeline_tools.write_fake_process(process, filename, sleep_time=0)[source]
+capsul.pipeline.pipeline_tools.write_fake_process(process, filename, sleep_time=0)[source]

Write a “fake process” with same class name and parameters as the input process, but with a fake execution function meant for tests.

-
-

capsul.pipeline.pipeline_workflow submodule

-

Capsul Pipeline conversion into soma-workflow workflow.

+
+

capsul.pipeline.pipeline_workflow submodule

+

Capsul Pipeline conversion into soma-workflow workflow.

Standard use case:

workflow = workflow_from_pipeline(pipeline)
 controller, wf_id = workflow_run(workflow_name, workflow, study_config)
 
-

Functions

+

Functions

-

workflow_from_pipeline()

+

workflow_from_pipeline()

-

workflow_run()

+

workflow_run()

-class capsul.pipeline.pipeline_workflow.TempFile(string='')[source]
+class capsul.pipeline.pipeline_workflow.TempFile(string='')[source]
-capsul.pipeline.pipeline_workflow.workflow_from_pipeline(pipeline, study_config=None, disabled_nodes=None, jobs_priority=0, create_directories=True, environment='global', check_requirements=True, complete_parameters=False)[source]
+capsul.pipeline.pipeline_workflow.workflow_from_pipeline(pipeline, study_config=None, disabled_nodes=None, jobs_priority=0, create_directories=True, environment='global', check_requirements=True, complete_parameters=False)[source]

Create a soma-workflow workflow from a Capsul Pipeline

Parameters:
@@ -2657,7 +2660,7 @@

-capsul.pipeline.pipeline_workflow.workflow_run(workflow_name, workflow, study_config)[source]
+capsul.pipeline.pipeline_workflow.workflow_run(workflow_name, workflow, study_config)[source]

Create a soma-workflow controller and submit a workflow

Parameters:
@@ -2671,19 +2674,19 @@

-

capsul.pipeline.process_iteration submodule

-

Utility class for iterated nodes in a pipeline. This is mainly internal infrastructure, which a normal programmer should not have to bother about. +

+

capsul.pipeline.process_iteration submodule

+

Utility class for iterated nodes in a pipeline. This is mainly internal infrastructure, which a normal programmer should not have to bother about. A pipeline programmer will not instantiate ProcessIteration directly, but rather use the Pipeline method add_iterative_process().

-

Classes

+

Classes

-

ProcessIteration

+

ProcessIteration

-class capsul.pipeline.process_iteration.ProcessIteration(process, iterative_parameters, study_config=None, context_name=None)[source]
+class capsul.pipeline.process_iteration.ProcessIteration(process, iterative_parameters, study_config=None, context_name=None)[source]

Note

\ No newline at end of file diff --git a/api/plugins.html b/api/plugins.html index 2246e7d67..02f5a4a81 100644 --- a/api/plugins.html +++ b/api/plugins.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,8 +104,8 @@

Navigation

-

capsul.plugins module

-

This module is obsolete.

+

capsul.plugins module

+

This module is obsolete.

@@ -133,8 +133,8 @@

Navigation

\ No newline at end of file diff --git a/api/process.html b/api/process.html index 6fc9ca50f..3f31a12b5 100644 --- a/api/process.html +++ b/api/process.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,9 +104,12 @@

Navigation

-

capsul.process

-
Inheritance diagram of capsul.process, capsul.process.process, capsul.process.nipype_process, capsul.process.runprocess, capsul.process.xml, capsul.pipeline.pipeline, capsul.pipeline.process_iteration
+

capsul.process

+
Inheritance diagram of capsul.process, capsul.process.process, capsul.process.nipype_process, capsul.process.runprocess, capsul.process.xml, capsul.pipeline.pipeline, capsul.pipeline.process_iteration
+ + + @@ -114,41 +117,42 @@

capsul.process + -

capsul.process module

-
-

capsul.process.process submodule

-

Process main class and infrastructure

+

capsul.process module

+
+

capsul.process.process submodule

+

Process main class and infrastructure

-

Classes

+

Classes

-

Process

+

Process

-

FileCopyProcess

+

FileCopyProcess

-

InteractiveProcess

+

InteractiveProcess

-

NipypeProcess

+

NipypeProcess

-

ProcessMeta

+

ProcessMeta

-

ProcessResult

+

ProcessResult

-class capsul.process.process.FileCopyProcess(activate_copy=True, inputs_to_copy=None, inputs_to_clean=None, destination=None, inputs_to_symlink=None, use_temp_output_dir=False)[source]
+class capsul.process.process.FileCopyProcess(activate_copy=True, inputs_to_copy=None, inputs_to_clean=None, destination=None, inputs_to_symlink=None, use_temp_output_dir=False)[source]

A specific process that copies all the input files.

-copied_inputs
+copied_inputs

the list of copied file parameters {param: dst_value}

Type:
@@ -159,7 +163,7 @@

-copied_files
+copied_files

copied files {param: [dst_value1, …]}

Type:
@@ -170,22 +174,22 @@

-__call__()
+__call__()

-_update_input_traits()[source]
+_update_input_traits()[source]
-_get_process_arguments()[source]
+_get_process_arguments()[source]
-_copy_input_files()[source]
+_copy_input_files()[source]
@@ -221,7 +225,7 @@

-class capsul.process.process.InteractiveProcess(**kwargs)[source]
+class capsul.process.process.InteractiveProcess(**kwargs)[source]

Base class for interactive processes. The value of the is_interactive parameter determine if either the process can be run in background (eventually remotely) as a standardl process (is_interactive = False) @@ -240,7 +244,7 @@

-class capsul.process.process.NipypeProcess(*args, **kwargs)[source]
+class capsul.process.process.NipypeProcess(*args, **kwargs)[source]

Base class used to wrap nipype interfaces.

Note

@@ -308,7 +312,7 @@

-_nipype_interface
+_nipype_interface

private attribute to store the nipye interface

Type:
@@ -319,7 +323,7 @@

-_nipype_module
+_nipype_module

private attribute to store the nipye module name

Type:
@@ -330,7 +334,7 @@

-_nipype_class
+_nipype_class

private attribute to store the nipye class name

Type:
@@ -341,7 +345,7 @@

-_nipype_interface_name
+_nipype_interface_name

private attribute to store the nipye interface name

Type:
@@ -352,7 +356,7 @@

-classmethod help(nipype_interface, returnhelp=False)[source]
+classmethod help(nipype_interface, returnhelp=False)[source]

Method to print the full wrapped nipype interface help.

Parameters:
@@ -368,7 +372,7 @@

-requirements()[source]
+requirements()[source]

Requirements needed to run the process. It is a dictionary which keys are config/settings modules and values are requests for them.

The default implementation returns an empty dict (no requirements), and should be overloaded by processes which actually have requirements.

@@ -380,7 +384,7 @@

-set_output_directory(out_dir)[source]
+set_output_directory(out_dir)[source]

Set the process output directory.

Parameters:
@@ -391,7 +395,7 @@

-set_usedefault(parameter, value)[source]
+set_usedefault(parameter, value)[source]

Set the value of the usedefault attribute on a given parameter.

Parameters:
@@ -407,7 +411,7 @@

-class capsul.process.process.Process(**kwargs)[source]
+class capsul.process.process.Process(**kwargs)[source]

A process is an atomic component that contains a processing.

A process is typically an object with typed parameters, and an execution function. Parameters are described using Enthought @@ -472,7 +476,7 @@

Attributes

-name
+name

the class name.

Type:
@@ -483,7 +487,7 @@

-id
+id

the string description of the class location (ie., module.class).

Type:
@@ -494,7 +498,7 @@

-log_file
+log_file

if None, the log will be generated in the current directory otherwise it will be written in log_file path.

@@ -515,14 +519,14 @@

Initialize the Process class.

-add_trait(name, trait)[source]
+add_trait(name, trait)[source]

Ensure that trait.output and trait.optional are set to a boolean value before calling parent class add_trait.

-check_requirements(environment='global', message_list=None)[source]
+check_requirements(environment='global', message_list=None)[source]

Checks the process requirements against configuration settings values in the attached CapsulEngine. This makes use of the requirements() method and checks that there is one matching @@ -553,7 +557,7 @@

-get_commandline()[source]
+get_commandline()[source]

Method to generate a commandline representation of the process.

If not implemented, it will generate a commandline running python, instaitiating the current process, and calling its @@ -570,7 +574,7 @@

-get_help(returnhelp=False, use_labels=False)[source]
+get_help(returnhelp=False, use_labels=False)[source]

Generate description of a process parameters.

Parameters:
@@ -586,7 +590,7 @@

-get_input_help(rst_formating=False)[source]
+get_input_help(rst_formating=False)[source]

Generate description for process input parameters.

Parameters:
@@ -603,7 +607,7 @@

-get_input_spec()[source]
+get_input_spec()[source]

Method to access the process input specifications.

Returns:
@@ -617,7 +621,7 @@

-get_inputs()[source]
+get_inputs()[source]

Method to access the process inputs.

Returns:
@@ -631,7 +635,7 @@

-get_log()[source]
+get_log()[source]

Load the logging file.

Returns:
@@ -645,7 +649,7 @@

-get_missing_mandatory_parameters()[source]
+get_missing_mandatory_parameters()[source]

Returns a list of parameters which are not optional, and which value is Undefined or None, or an empty string for a File or Directory parameter.

@@ -653,7 +657,7 @@

-get_output_help(rst_formating=False)[source]
+get_output_help(rst_formating=False)[source]

Generate description for process output parameters.

Parameters:
@@ -670,7 +674,7 @@

-get_output_spec()[source]
+get_output_spec()[source]

Method to access the process output specifications.

Returns:
@@ -684,7 +688,7 @@

-get_outputs()[source]
+get_outputs()[source]

Method to access the process outputs.

Returns:
@@ -698,7 +702,7 @@

-get_parameter(name)[source]
+get_parameter(name)[source]

Method to access the value of a process instance.

Parameters:
@@ -715,13 +719,13 @@

-get_study_config()[source]
+get_study_config()[source]

Get (or create) the StudyConfig this process belongs to

-classmethod help(returnhelp=False)[source]
+classmethod help(returnhelp=False)[source]

Method to print the full help.

Parameters:
@@ -736,7 +740,7 @@

-make_commandline_argument(*args)[source]
+make_commandline_argument(*args)[source]

This helper function may be used to build non-trivial commandline arguments in get_commandline implementations. Basically it concatenates arguments, but it also takes care of keeping @@ -755,7 +759,7 @@

-params_to_command()[source]
+params_to_command()[source]

Generates a commandline representation of the process.

If not implemented, it will generate a commandline running python, instaitiating the current process, and calling its @@ -807,7 +811,7 @@

-requirements()[source]
+requirements()[source]

Requirements needed to run the process. It is a dictionary which keys are config/settings modules and values are requests for them.

The default implementation returns an empty dict (no requirements), and should be overloaded by processes which actually have requirements.

@@ -819,13 +823,13 @@

-run(**kwargs)[source]
+run(**kwargs)[source]

Obsolete: use self.__call__ instead

-static run_from_commandline(process_definition)[source]
+static run_from_commandline(process_definition)[source]

Run a process from a commandline call. The process name (with module) are given in argument, input parameters should be passed through a JSON file which location is in the SOMAWF_INPUT_PARAMS environment @@ -837,7 +841,7 @@

-save_log(returncode)[source]
+save_log(returncode)[source]

Method to save process execution information in json format.

If the class attribute log_file is not set, a log.json output file is generated in the process call current working directory.

@@ -850,7 +854,7 @@

-set_parameter(name, value, protected=None)[source]
+set_parameter(name, value, protected=None)[source]

Method to set a process instance trait value.

For File and Directory traits the None value is replaced by the special Undefined trait value.

@@ -868,7 +872,7 @@

-set_study_config(study_config)[source]
+set_study_config(study_config)[source]

Set a StudyConfig for the process. Note that it can only be done once: once a non-null StudyConfig has been assigned to the process, it should not change.

@@ -878,7 +882,7 @@

-class capsul.process.process.ProcessMeta(name, bases, attrs)[source]
+class capsul.process.process.ProcessMeta(name, bases, attrs)[source]

Class used to complete a process docstring

Use a class and not a function for inheritance.

Method to print the full help.

@@ -894,7 +898,7 @@

-static complement_doc(name, docstr)[source]
+static complement_doc(name, docstr)[source]

complement the process docstring

@@ -902,7 +906,7 @@

-class capsul.process.process.ProcessResult(process, runtime, returncode, inputs=None, outputs=None)[source]
+class capsul.process.process.ProcessResult(process, runtime, returncode, inputs=None, outputs=None)[source]

Object that contains running information a particular Process.

Parameters:
@@ -919,18 +923,18 @@

-
-

capsul.process.nipype_process submodule

-

Utilities to link Capsul and NiPype interfaces

+
+

capsul.process.nipype_process submodule

+

Utilities to link Capsul and NiPype interfaces

-

Functions

+

Functions

-

nipype_factory()

+

nipype_factory()

-capsul.process.nipype_process.nipype_factory(nipype_instance, base_class=<class 'capsul.process.process.NipypeProcess'>)[source]
+capsul.process.nipype_process.nipype_factory(nipype_instance, base_class=<class 'capsul.process.process.NipypeProcess'>)[source]

From a nipype class instance generate dynamically a process instance that encapsulate the nipype instance.

This function clones the nipye traits (also convert special traits) and @@ -959,45 +963,45 @@

-

capsul.process.runprocess submodule

-

capsul.process.runprocess is not a real python module, but rather an executable script with commandline arguments and options parsing. It is provided as a module just to be easily called via the python command in a portable way:

+
+

capsul.process.runprocess submodule

+

capsul.process.runprocess is not a real python module, but rather an executable script with commandline arguments and options parsing. It is provided as a module just to be easily called via the python command in a portable way:

python -m capsul.process.runprocess <process name> <process arguments>
 
-

Classes

+

Classes

-

ProcessParamError

+

ProcessParamError

-

Functions

+

Functions

-

set_process_param_from_str()

+

set_process_param_from_str()

-

get_process_with_params()

+

get_process_with_params()

-

run_process_with_distribution()

+

run_process_with_distribution()

-

convert_commandline_parameter()

+

convert_commandline_parameter()

-

main()

+

main()

-exception capsul.process.runprocess.ProcessParamError[source]
+exception capsul.process.runprocess.ProcessParamError[source]

Exception used in the runprocess module

-capsul.process.runprocess.get_process_with_params(process_name, study_config, iterated_params=[], attributes={}, *args, **kwargs)[source]
+capsul.process.runprocess.get_process_with_params(process_name, study_config, iterated_params=[], attributes={}, *args, **kwargs)[source]

Instantiate a process, or an iteration over processes, and fill in its parameters.

@@ -1026,13 +1030,13 @@

-capsul.process.runprocess.main()[source]
+capsul.process.runprocess.main()[source]

Run the capsul.process.runprocess module as a commandline

-capsul.process.runprocess.run_process_with_distribution(study_config, process, use_soma_workflow=False, resource_id=None, password=None, config=None, rsa_key_pass=None, queue=None, input_file_processing=None, output_file_processing=None, keep_workflow=False, keep_failed_workflow=False, write_workflow_only=None)[source]
+capsul.process.runprocess.run_process_with_distribution(study_config, process, use_soma_workflow=False, resource_id=None, password=None, config=None, rsa_key_pass=None, queue=None, input_file_processing=None, output_file_processing=None, keep_workflow=False, keep_failed_workflow=False, write_workflow_only=None)[source]

Run the given process, either sequentially or distributed through Soma-Workflow.

@@ -1070,41 +1074,41 @@

-capsul.process.runprocess.set_process_param_from_str(process, k, arg)[source]
+capsul.process.runprocess.set_process_param_from_str(process, k, arg)[source]

Set a process parameter from a string representation.

-
-

capsul.process.xml submodule

-

Read and write a Process as an XML file.

+
+

capsul.process.xml submodule

+

Read and write a Process as an XML file.

-

Classes

+

Classes

-

XMLProcess

+

XMLProcess

-

Functions

+

Functions

-

string_to_value()

+

string_to_value()

-

trait_from_xml()

+

trait_from_xml()

-

create_xml_process()

+

create_xml_process()

-

Decorator

+

Decorator

-

xml_process()

+

xml_process()

-class capsul.process.xml.XMLProcess(**kwargs)[source]
+class capsul.process.xml.XMLProcess(**kwargs)[source]

Base class of all generated classes for processes defined as a Python function decorated with an XML string.

@@ -1120,7 +1124,7 @@

-capsul.process.xml.create_xml_process(module, name, function, xml)[source]
+capsul.process.xml.create_xml_process(module, name, function, xml)[source]

Create a new process class given a Python function and a string containing the corresponding Capsul XML 2.0 definition.

@@ -1144,20 +1148,20 @@

-capsul.process.xml.string_to_value(string)[source]
+capsul.process.xml.string_to_value(string)[source]

Converts a string into a Python value without executing code.

-capsul.process.xml.trait_from_xml(element, order=None)[source]
+capsul.process.xml.trait_from_xml(element, order=None)[source]

Creates a trait from an XML element type (<input>, <output> or <return>).

-capsul.process.xml.xml_process(xml)[source]
+capsul.process.xml.xml_process(xml)[source]

Decorator used to associate a Python function to its Process XML representation.

@@ -1176,7 +1180,7 @@

Table of Contents

\ No newline at end of file diff --git a/api/qt_apps.html b/api/qt_apps.html index fd6a6313a..69e0fbcf5 100644 --- a/api/qt_apps.html +++ b/api/qt_apps.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,31 +104,31 @@

Navigation

-

capsul.qt_apps module

-

Graphical applications. This section is normally not meant to be real function / class libraries but rather applications. There are a few widgets here, though, but it is not recommended to use them in custom applications.

+

capsul.qt_apps module

+

Graphical applications. This section is normally not meant to be real function / class libraries but rather applications. There are a few widgets here, though, but it is not recommended to use them in custom applications.

-

capsul.qt_apps.main_window submodule

+

capsul.qt_apps.main_window submodule

-

capsul.qt_apps.pipeline_viewer_app submodule

+

capsul.qt_apps.pipeline_viewer_app submodule

-
-

capsul.qt_apps.utils submodule

+
+

capsul.qt_apps.utils submodule

-
-

capsul.qt_apps.utils.application submodule

+
+

capsul.qt_apps.utils.application submodule

-

Classes

+

Classes

-

Application

+

Application

-

EmittingStream

+

EmittingStream

-class capsul.qt_apps.utils.application.Application(extra_options=None)[source]
+class capsul.qt_apps.utils.application.Application(extra_options=None)[source]

Base Application class.

Used to set some user options

Method to initialize the Application class.

@@ -157,28 +157,28 @@

-class capsul.qt_apps.utils.application.EmittingStream[source]
+class capsul.qt_apps.utils.application.EmittingStream[source]

Logging emitting string basic handler.

-
-

capsul.qt_apps.utils.fill_treectrl submodule

+
+

capsul.qt_apps.utils.fill_treectrl submodule

-

Functions

+

Functions

-

fill_treectrl()

+

fill_treectrl()

-

add_tree_nodes()

+

add_tree_nodes()

-

search_in_menu()

+

search_in_menu()

-capsul.qt_apps.utils.fill_treectrl.add_tree_nodes(parent_item, menu, match, parent_module='')[source]
+capsul.qt_apps.utils.fill_treectrl.add_tree_nodes(parent_item, menu, match, parent_module='')[source]

Add the menu to tree control if match in current module name or child modules.

The match is insensitive to the cast.

@@ -197,7 +197,7 @@

-capsul.qt_apps.utils.fill_treectrl.fill_treectrl(treectrl, menu, match='')[source]
+capsul.qt_apps.utils.fill_treectrl.fill_treectrl(treectrl, menu, match='')[source]

Fill a tree control with the different menu items.

This procedure is able to filter the menu items. Loadable pipelines appear in bold in the tree control. @@ -218,7 +218,7 @@

-capsul.qt_apps.utils.fill_treectrl.search_in_menu(menu, match)[source]
+capsul.qt_apps.utils.fill_treectrl.search_in_menu(menu, match)[source]

Recursive search in tree.

The search procedure is insensitive to the cast.

@@ -239,23 +239,23 @@

+

capsul.qt_apps.utils.find_pipelines submodule

-

capsul.qt_apps.utils.find_pipelines submodule

-
-

Functions

+

Functions

-

find_pipelines_from_description()

+

find_pipelines_from_description()

-

find_pipeline_and_process()

+

find_pipeline_and_process()

-

lists2dict()

+

lists2dict()

-capsul.qt_apps.utils.find_pipelines.find_pipeline_and_process(module_name)[source]
+capsul.qt_apps.utils.find_pipelines.find_pipeline_and_process(module_name)[source]

Function that return all the Pipeline and Process classes of a module.

All the mdoule path are scanned recuresively. Any pipeline or process will be added to the output.

@@ -276,7 +276,7 @@

-capsul.qt_apps.utils.find_pipelines.find_pipelines_from_description(module_name, url=None)[source]
+capsul.qt_apps.utils.find_pipelines.find_pipelines_from_description(module_name, url=None)[source]

Function that list all the pipeline of a module.

Parameters:
@@ -299,7 +299,7 @@

-capsul.qt_apps.utils.find_pipelines.lists2dict(list_of_pipeline_description, url, d)[source]
+capsul.qt_apps.utils.find_pipelines.lists2dict(list_of_pipeline_description, url, d)[source]

Convert a list of split module names to a hierachic dictionary with list leafs that contain the url to the module docuementation.

@@ -320,17 +320,17 @@

+

capsul.qt_apps.utils.window submodule

-

capsul.qt_apps.utils.window submodule

-
-

Classes

+

Classes

-

MyQUiLoader

+

MyQUiLoader

-class capsul.qt_apps.utils.window.MyQUiLoader(uifile)[source]
+class capsul.qt_apps.utils.window.MyQUiLoader(uifile)[source]

Base window class based on ui file description.

Method to initialize the base window.

@@ -356,8 +356,8 @@

Table of Contents

  • capsul.qt_apps module
  • \ No newline at end of file diff --git a/api/qt_gui.html b/api/qt_gui.html index 30a737e0c..a2ed28fe0 100644 --- a/api/qt_gui.html +++ b/api/qt_gui.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,7 +104,7 @@

    Navigation

    -

    capsul.qt_gui module

    +

    capsul.qt_gui module

    Inheritance diagram of capsul.qt_gui, capsul.qt_gui.board_widget, capsul.qt_gui.widgets, capsul.qt_gui.widgets.activation_inspector, capsul.qt_gui.widgets.attributed_process_widget, capsul.qt_gui.widgets.links_debugger, capsul.qt_gui.widgets.pipeline_developer_view, capsul.qt_gui.widgets.pipeline_file_warning_widget, capsul.qt_gui.widgets.pipeline_user_view, capsul.qt_gui.widgets.viewer_widget
    @@ -124,18 +124,18 @@

    capsul.qt_gui module -

    Graphical representations and tools for processes and pipelines. The module contains mainly widgets, based on Qt, using either PyQt4, PyQt5 or PySide.

    -
    -

    capsul.qt_gui.board_widget submodule

    +

    Graphical representations and tools for processes and pipelines. The module contains mainly widgets, based on Qt, using either PyQt4, PyQt5 or PySide.

    +
    +

    capsul.qt_gui.board_widget submodule

    -

    Classes

    +

    Classes

    -

    BoardWidget

    +

    BoardWidget

    -class capsul.qt_gui.board_widget.BoardWidget(controller, parent=None, name=None)[source]
    +class capsul.qt_gui.board_widget.BoardWidget(controller, parent=None, name=None)[source]

    Class that create a widget to visualize the controller status.

    Method to initilaize the ControllerWidget class.

    @@ -150,7 +150,7 @@

    -browse_node(node, process_nodes, view_nodes, parent_pipeline)[source]
    +browse_node(node, process_nodes, view_nodes, parent_pipeline)[source]

    Find view_node and leaf nodes, ie. Process nodes

    Parameters:
    @@ -166,7 +166,7 @@

    -create_board_tree()[source]
    +create_board_tree()[source]

    Method to create a tree with five columns (processings - status - execution time - memory - logs) that will summarize all the available quality control nodes

    @@ -174,36 +174,36 @@

    -create_output_widget()[source]
    +create_output_widget()[source]

    Method to create the output controller widget built from the class controller output traits

    -create_viewer_tree()[source]
    +create_viewer_tree()[source]

    Method to create a tree with two columns (pipeline name - viewers) that will summarize all the available quality control nodes

    -

    -
    -

    capsul.qt_gui.widgets.activation_inspector submodule

    -

    A tool to debug and inspect nodes activation / deactivation in a pipeline.

    +
    +
    +

    capsul.qt_gui.widgets.activation_inspector submodule

    +

    A tool to debug and inspect nodes activation / deactivation in a pipeline.

    -

    Classes

    +

    Classes

    -

    ActivationInspectorApp

    +

    ActivationInspectorApp

    -

    ActivationInspector

    +

    ActivationInspector

    -class capsul.qt_gui.widgets.activation_inspector.ActivationInspector(pipeline, ui_file=None, record_file=None, developper_view=None, parent=None)[source]
    +class capsul.qt_gui.widgets.activation_inspector.ActivationInspector(pipeline, ui_file=None, record_file=None, developper_view=None, parent=None)[source]

    A Widget to display the pipeline activation process step by step.

    Initialize the ActivationInspector class.

    @@ -221,13 +221,13 @@

    -add_controls_to_ui()[source]
    +add_controls_to_ui()[source]

    Method to find dynamic controls

    -find_next()[source]
    +find_next()[source]

    Forward search for a pattern in the activation list.

    Returns:
    @@ -241,7 +241,7 @@

    -find_previous()[source]
    +find_previous()[source]

    Backward search for a pattern in the activation list.

    Returns:
    @@ -255,13 +255,13 @@

    -refresh_activation_from_record()[source]
    +refresh_activation_from_record()[source]

    Method to display pipeline activation steps from the recorded file.

    -set_filter_pattern(filter_pattern)[source]
    +set_filter_pattern(filter_pattern)[source]

    Method that set a filter pattern.

    Try a forward search followed by a backward one.

    @@ -273,13 +273,13 @@

    -show()[source]
    +show()[source]

    Shows the widget and its child widgets.

    -update_pipeline_activation(index)[source]
    +update_pipeline_activation(index)[source]

    Method that is used to replay the activation step by step.

    When a specific activation step is selected, the pipeline will reflect the selected activation status

    @@ -289,7 +289,7 @@

    -class capsul.qt_gui.widgets.activation_inspector.ActivationInspectorApp(pipeline_path, record_file=None, *args, **kwargs)[source]
    +class capsul.qt_gui.widgets.activation_inspector.ActivationInspectorApp(pipeline_path, record_file=None, *args, **kwargs)[source]

    ActivationInspector Application. While developing a pipeline, nodes are connected through links. Nodes will be automatically activated or disabled depending on their connections (a mandatory link to a disabled node will disable the current one). You will often wonder why a node will not be activated. This tool helps to determine when and why by “playing” activation rules sequences step-by-step and displaying nodes which activate or deactivate at each step.

    @@ -304,25 +304,25 @@

    -init_window()[source]
    +init_window()[source]

    Method to initialize the main window.

    -
    -

    capsul.qt_gui.widgets.attributed_process_widget submodule

    -

    Process or pipeline parameters view with attributes handling.

    +
    +

    capsul.qt_gui.widgets.attributed_process_widget submodule

    +

    Process or pipeline parameters view with attributes handling.

    -

    Classes

    +

    Classes

    -

    AttributedProcessWidget

    +

    AttributedProcessWidget

    -class capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget(attributed_process, enable_attr_from_filename=False, enable_load_buttons=False, override_control_types=None, separate_outputs=True, user_data=None, userlevel=0, scroll=True)[source]
    +class capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget(attributed_process, enable_attr_from_filename=False, enable_load_buttons=False, override_control_types=None, separate_outputs=True, user_data=None, userlevel=0, scroll=True)[source]

    Process interface with attributes completion handling

    Parameters:
    @@ -345,44 +345,44 @@

    -on_btn_load_json()[source]
    +on_btn_load_json()[source]

    Load attributes from a json file

    -on_btn_save_json()[source]
    +on_btn_save_json()[source]

    Save attributes in a json file

    -on_input_filename_changed(text)[source]
    +on_input_filename_changed(text)[source]

    Input file path to guess completion attributes changed: update attributes

    -on_show_completion(visible)[source]
    +on_show_completion(visible)[source]

    Toggle the visibility of paths parameters

    -on_use_fom_change(state)[source]
    +on_use_fom_change(state)[source]

    Use completion checkbox callback

    -set_use_fom()[source]
    +set_use_fom()[source]

    Setup the FOM doing its job

    -show_completion(visible=None)[source]
    +show_completion(visible=None)[source]

    Show or hide completion (File, Directory, or Any parameters)

    Parameters:
    @@ -394,32 +394,32 @@

    -

    capsul.qt_gui.widgets.links_debugger submodule

    -

    Tool to debug and understand process / pipeline parameters links

    + -
    -

    capsul.qt_gui.widgets.pipeline_developer_view submodule

    -

    A Pipeline structure viewer widget, which displays pipeline nodes as boxes and links as lines, and provides pipeline editor features.

    +
    +

    capsul.qt_gui.widgets.pipeline_developer_view submodule

    +

    A Pipeline structure viewer widget, which displays pipeline nodes as boxes and links as lines, and provides pipeline editor features.

    The only main class you should look at is the PipelineDeveloperView widget, the remaining is internal infrastructure:

    pv = PipelineDeveloperView(pipeline, allow_open_controller=True,
                                 enable_edition=True,show_sub_pipelines=True)
    @@ -427,83 +427,83 @@ 

    -

    Classes

    +

    Classes

    -

    ColorType

    +

    ColorType

    -

    Plug

    +

    Plug

    -

    EmbeddedSubPipelineItem

    +

    EmbeddedSubPipelineItem

    -

    boxItem

    +

    boxItem

    -

    NodeGWidget

    +

    NodeGWidget

    -

    HandleItem

    +

    HandleItem

    -

    PipelineScene

    +

    PipelineScene

    -

    PipelineDeveloperView

    +

    PipelineDeveloperView

    -class capsul.qt_gui.widgets.pipeline_developer_view.EmbeddedSubPipelineItem(sub_pipeline_wid)[source]
    +class capsul.qt_gui.widgets.pipeline_developer_view.EmbeddedSubPipelineItem(sub_pipeline_wid)[source]

    QGraphicsItem containing a sub-pipeline view

    -class capsul.qt_gui.widgets.pipeline_developer_view.HandleItem(parent=None)[source]
    +class capsul.qt_gui.widgets.pipeline_developer_view.HandleItem(parent=None)[source]

    A handle that can be moved by the mouse

    -itemChange(self, change: QGraphicsItem.GraphicsItemChange, value: Any) Any[source]
    +itemChange(self, change: QGraphicsItem.GraphicsItemChange, value: Any) Any[source]
    -mouseReleaseEvent(self, event: QGraphicsSceneMouseEvent)[source]
    +mouseReleaseEvent(self, event: QGraphicsSceneMouseEvent)[source]
    +class capsul.qt_gui.widgets.pipeline_developer_view.Link(origin, target, active, weak, color, parent=None)[source]
    -focusInEvent(self, event: QFocusEvent)[source]
    +focusInEvent(self, event: QFocusEvent)[source]
    -focusOutEvent(self, event: QFocusEvent)[source]
    +focusOutEvent(self, event: QFocusEvent)[source]
    -keyPressEvent(self, event: QKeyEvent)[source]
    +keyPressEvent(self, event: QKeyEvent)[source]
    -mousePressEvent(self, event: QGraphicsSceneMouseEvent)[source]
    +mousePressEvent(self, event: QGraphicsSceneMouseEvent)[source]
    -update(self, rect: QRectF = QRectF())[source]
    +update(self, rect: QRectF = QRectF())[source]
    update(self, ax: float, ay: float, width: float, height: float) None
    @@ -512,35 +512,35 @@

    -class capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget(name, parameters, pipeline, parent=None, process=None, sub_pipeline=None, colored_parameters=True, logical_view=False, labels=[], show_opt_inputs=True, show_opt_outputs=True, userlevel=0)[source]
    +class capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget(name, parameters, pipeline, parent=None, process=None, sub_pipeline=None, colored_parameters=True, logical_view=False, labels=[], show_opt_inputs=True, show_opt_outputs=True, userlevel=0)[source]
    -boundingRect(self) QRectF[source]
    +boundingRect(self) QRectF[source]
    -keyPressEvent(self, event: QKeyEvent)[source]
    +keyPressEvent(self, event: QKeyEvent)[source]
    -mouseDoubleClickEvent(self, event: QGraphicsSceneMouseEvent)[source]
    +mouseDoubleClickEvent(self, event: QGraphicsSceneMouseEvent)[source]
    -mousePressEvent(self, event: QGraphicsSceneMouseEvent)[source]
    +mousePressEvent(self, event: QGraphicsSceneMouseEvent)[source]
    -paint(self, painter: QPainter, option: QStyleOptionGraphicsItem, widget: Optional[QWidget] = None)[source]
    +paint(self, painter: QPainter, option: QStyleOptionGraphicsItem, widget: Optional[QWidget] = None)[source]
    -update_labels(labels)[source]
    +update_labels(labels)[source]

    Update colored labels

    @@ -548,7 +548,7 @@

    -class capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView(pipeline=None, parent=None, show_sub_pipelines=False, allow_open_controller=False, logical_view=False, enable_edition=False, userlevel=0)[source]
    +class capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView(pipeline=None, parent=None, show_sub_pipelines=False, allow_open_controller=False, logical_view=False, enable_edition=False, userlevel=0)[source]

    Pipeline representation as a graph, using boxes and arrows.

    Based on Qt QGraphicsView, this can be used as a Qt QWidget.

    Qt signals are emitted on a right click on a node box, and on a double @@ -558,172 +558,172 @@

    -subpipeline_clicked
    +subpipeline_clicked

    -node_right_clicked
    +node_right_clicked
    -process_clicked
    +process_clicked
    -node_clicked
    +node_clicked
    -node_clicked_ctrl
    +node_clicked_ctrl
    -plug_clicked
    +plug_clicked
    -plug_right_clicked
    +plug_right_clicked
    +link_right_clicked
    -colored_parameters
    +colored_parameters
    -scene
    +scene
    -__init__()[source]
    +__init__()[source]
    -set_pipeline()[source]
    +set_pipeline()[source]
    -is_logical_view()[source]
    +is_logical_view()[source]
    -set_logical_view()[source]
    +set_logical_view()[source]
    -zoom_in()[source]
    +zoom_in()[source]
    -zoom_out()[source]
    +zoom_out()[source]
    -openProcessController()[source]
    +openProcessController()[source]
    -add_embedded_subpipeline()[source]
    +add_embedded_subpipeline()[source]
    -onLoadSubPipelineClicked()[source]
    +onLoadSubPipelineClicked()[source]
    -onOpenProcessController()[source]
    +onOpenProcessController()[source]
    -enableNode()[source]
    +enableNode()[source]
    -enable_step()[source]
    +enable_step()[source]
    -disable_preceding_steps()[source]
    +disable_preceding_steps()[source]
    -disable_following_steps()[source]
    +disable_following_steps()[source]
    -enable_preceding_steps()[source]
    +enable_preceding_steps()[source]
    -enable_following_steps()[source]
    +enable_following_steps()[source]
    -set_switch_value()[source]
    +set_switch_value()[source]
    -disable_done_steps()[source]
    +disable_done_steps()[source]
    -enable_all_steps()[source]
    +enable_all_steps()[source]
    -check_files()[source]
    +check_files()[source]
    -auto_dot_node_positions()[source]
    +auto_dot_node_positions()[source]
    -save_dot_image_ui()[source]
    +save_dot_image_ui()[source]
    -reset_initial_nodes_positions()[source]
    +reset_initial_nodes_positions()[source]
    -window()[source]
    +window()[source]
    @@ -749,71 +749,71 @@

    -class IterativeProcessInput(engine)[source]
    +class IterativeProcessInput(engine)[source]

    -class ProcessModuleInput(display_str='process module/name', class_type_check=<function is_process>)[source]
    +class ProcessModuleInput(display_str='process module/name', class_type_check=<function is_process>)[source]
    -class ProcessNameEdit(parent=None, class_type_check=<function is_process>)[source]
    +class ProcessNameEdit(parent=None, class_type_check=<function is_process>)[source]

    A specialized QLineEdit with completion for process name

    -add_embedded_subpipeline(subpipeline_name, scale=None)[source]
    +add_embedded_subpipeline(subpipeline_name, scale=None)[source]

    Adds an embedded sub-pipeline inside its parent node.

    -add_iterative_process()[source]
    +add_iterative_process()[source]

    Insert an iterative process node in the pipeline. Asks for the process module/name, the node name, and iterative plugs before inserting.

    -add_node()[source]
    +add_node()[source]

    Insert a custom node in the pipeline. Asks for the node module/name, and the node name before inserting.

    -add_optional_output_switch()[source]
    +add_optional_output_switch()[source]

    Insert an optional output switch node in the pipeline. Asks for the switch inputs/outputs, and the node name before inserting.

    -add_process()[source]
    +add_process()[source]

    Insert a process node in the pipeline. Asks for the process module/name, and the node name before inserting.

    -add_switch()[source]
    +add_switch()[source]

    Insert a switch node in the pipeline. Asks for the switch inputs/outputs, and the node name before inserting.

    -auto_dot_node_positions()[source]
    +auto_dot_node_positions()[source]

    Calculate pipeline nodes positions using graphviz/dot, and place the pipeline view nodes accordingly.

    -colored_parameters = True
    +colored_parameters = True

    If enabled (default), parameters in nodes boxes are displayed with color codes representing their state, and the state of their values: output parameters, empty values, existing files, non-existing files…

    @@ -838,7 +838,7 @@

    -dragEnterEvent(event)[source]
    +dragEnterEvent(event)[source]

    Event handler when the mouse enters the widget.

    Parameters:
    @@ -849,7 +849,7 @@

    -dragMoveEvent(event)[source]
    +dragMoveEvent(event)[source]

    Event handler when the mouse moves in the widget.

    Parameters:
    @@ -860,7 +860,7 @@

    -dropEvent(event)[source]
    +dropEvent(event)[source]

    Event handler when something is dropped in the widget.

    Parameters:
    @@ -871,7 +871,7 @@

    -drop_process(path)[source]
    +drop_process(path)[source]

    Find the dropped process in the system’s paths.

    Parameters:
    @@ -882,38 +882,38 @@

    -edit_sub_pipeline
    +edit_sub_pipeline

    Signal emitted when a sub-pipeline has to be edited

    -edition_enabled()[source]
    +edition_enabled()[source]

    Get the editable state

    -ensure_pipeline(pipeline)[source]
    +ensure_pipeline(pipeline)[source]

    Check that we have a pipeline or a process

    -export_to_db_scans
    +export_to_db_scans

    Signal emitted when an Input Filter has to be linked to database_scans

    -is_logical_view()[source]
    +is_logical_view()[source]

    in logical view mode, plugs and links between plugs are hidden, only links between nodes are displayed.

    -is_restricted_edition_mode()[source]
    +is_restricted_edition_mode()[source]

    Get the restricted mode status

    Returns:
    @@ -927,53 +927,53 @@

    -link_right_clicked
    +link_right_clicked

    Signal emitted when a link is right-clicked

    -load_pipeline_parameters(root_path='')[source]
    +load_pipeline_parameters(root_path='')[source]

    Loading and setting pipeline parameters (inputs and outputs) from a Json file. :return:

    -mouseMoveEvent(self, event: QMouseEvent)[source]
    +mouseMoveEvent(self, event: QMouseEvent)[source]
    -mousePressEvent(self, event: QMouseEvent)[source]
    +mousePressEvent(self, event: QMouseEvent)[source]
    -mouseReleaseEvent(self, event: QMouseEvent)[source]
    +mouseReleaseEvent(self, event: QMouseEvent)[source]
    -node_clicked
    +node_clicked

    Signal emitted when a node box has to be open.

    -node_clicked_ctrl
    +node_clicked_ctrl

    Signal emitted when a node box has to be in the foreground.

    -node_right_clicked
    +node_right_clicked

    Signal emitted when a node box is right-clicked

    -onLoadSubPipelineClicked(node_name, sub_pipeline, modifiers)[source]
    +onLoadSubPipelineClicked(node_name, sub_pipeline, modifiers)[source]

    Event to load a open a sub-pipeline view. If ctrl is pressed the new view will be embedded in its parent node box.

    @@ -981,43 +981,43 @@

    -onOpenProcessController(node_name, process)[source]
    +onOpenProcessController(node_name, process)[source]

    Event to open a sub-process/sub-pipeline controller

    -open_background_menu()[source]
    +open_background_menu()[source]

    Open the right-click menu when triggered from the pipeline background.

    -open_filter
    +open_filter

    Signal emitted when an Input Filter has to be opened

    -open_node_menu(node_name, process)[source]
    +open_node_menu(node_name, process)[source]

    right-click popup menu for nodes

    -plug_clicked
    +plug_clicked

    Signal emitted when a plug is clicked

    -plug_right_clicked
    +plug_right_clicked

    Signal emitted when a plug is right-clicked

    -release_pipeline(delete=False)[source]
    +release_pipeline(delete=False)[source]

    Releases the pipeline currently viewed (and remove the callbacks)

    If delete is set, this means the view is within deletion process and a new scene should not be built

    @@ -1025,14 +1025,14 @@

    -reset_initial_nodes_positions()[source]
    +reset_initial_nodes_positions()[source]

    Set each pipeline node to its “saved” position, ie the one which may be found in the “node_position” variable of the pipeline.

    -save_dot_image_ui()[source]
    +save_dot_image_ui()[source]

    Ask for a filename using the file dialog, and save a graphviz/dot representation of the pipeline. The pipeline representation follows the current visualization mode @@ -1043,21 +1043,21 @@

    -save_pipeline()[source]
    +save_pipeline()[source]

    Ask for a filename using the file dialog, and save the pipeline as a XML, JSON or python file.

    -save_pipeline_parameters()[source]
    +save_pipeline_parameters()[source]

    Saving pipeline parameters (inputs and outputs) to a Json file. :return:

    -scene = None
    +scene = None

    PipelineScene

    the main scene.

    @@ -1069,14 +1069,14 @@

    -set_enable_edition(state=True)[source]
    +set_enable_edition(state=True)[source]

    Set the editable state. Edition allows to modify a pipeline: adding / removing process boxes and switches, drawing links, etc.

    -set_logical_view(state)[source]
    +set_logical_view(state)[source]

    in logical view mode, plugs and links between plugs are hidden, only links between nodes are displayed.

    @@ -1088,13 +1088,13 @@

    -set_pipeline(pipeline)[source]
    +set_pipeline(pipeline)[source]

    Assigns a new pipeline to the view.

    -set_restricted_edition_mode(enabled)[source]
    +set_restricted_edition_mode(enabled)[source]

    Set the restricted edition mode. In restricted mode, some background menu actions (“add process”, “open node controller”…) are not available.

    @@ -1107,36 +1107,36 @@

    -show_optional_inputs()[source]
    +show_optional_inputs()[source]

    Added to choose to visualize optional inputs.

    -show_optional_outputs()[source]
    +show_optional_outputs()[source]

    Added to choose to visualize optional outputs.

    -subpipeline_clicked
    +subpipeline_clicked

    Signal emitted when a sub pipeline has to be open.

    -switch_clicked
    +switch_clicked

    Signal emitted when a switch box has to be open.

    -wheelEvent(self, event: QWheelEvent)[source]
    +wheelEvent(self, event: QWheelEvent)[source]
    -window()[source]
    +window()[source]

    window() is overloaded from QWidget.window() to handle embedded views cases. A PipelineDeveloperView may be displayed inside a NodeGWidget. @@ -1147,13 +1147,13 @@

    -zoom_in()[source]
    +zoom_in()[source]

    Zoom the view in, applying a 1.2 zoom factor

    -zoom_out()[source]
    +zoom_out()[source]

    Zoom the view out, applying a 1/1.2 zool factor

    @@ -1161,21 +1161,21 @@

    -class capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene(parent=None, userlevel=0)[source]
    +class capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene(parent=None, userlevel=0)[source]
    -helpEvent(event)[source]
    +helpEvent(event)[source]

    Display tooltips on plugs and links

    -keyPressEvent(self, event: QKeyEvent)[source]
    +keyPressEvent(self, event: QKeyEvent)[source]
    +link_tooltip_text(source_dest)[source]

    Tooltip text for the fiven link

    Parameters:
    @@ -1187,7 +1187,7 @@

    -plug_tooltip_text(node, name)[source]
    +plug_tooltip_text(node, name)[source]

    Tooltip text for a node plug

    @@ -1195,47 +1195,47 @@

    -class capsul.qt_gui.widgets.pipeline_developer_view.Plug(color, name, height, width, activated=True, optional=False, parent=None)[source]
    +class capsul.qt_gui.widgets.pipeline_developer_view.Plug(color, name, height, width, activated=True, optional=False, parent=None)[source]
    -mousePressEvent(self, event: QGraphicsSceneMouseEvent)[source]
    +mousePressEvent(self, event: QGraphicsSceneMouseEvent)[source]

    -class capsul.qt_gui.widgets.pipeline_developer_view.boxItem(parent=None)[source]
    +class capsul.qt_gui.widgets.pipeline_developer_view.boxItem(parent=None)[source]
    -focusInEvent(self, event: QFocusEvent)[source]
    +focusInEvent(self, event: QFocusEvent)[source]
    -focusOutEvent(self, event: QFocusEvent)[source]
    +focusOutEvent(self, event: QFocusEvent)[source]
    -keyPressEvent(self, event: QKeyEvent)[source]
    +keyPressEvent(self, event: QKeyEvent)[source]

    -
    -

    capsul.qt_gui.widgets.pipeline_file_warning_widget submodule

    -

    GUI for pipeline file inputs/outputs checking

    +
    +

    capsul.qt_gui.widgets.pipeline_file_warning_widget submodule

    +

    GUI for pipeline file inputs/outputs checking

    -

    Classes

    +

    Classes

    -

    PipelineFileWarningWidget

    +

    PipelineFileWarningWidget

    -class capsul.qt_gui.widgets.pipeline_file_warning_widget.PipelineFileWarningWidget(missing_inputs, overwritten_outputs, parent=None)[source]
    +class capsul.qt_gui.widgets.pipeline_file_warning_widget.PipelineFileWarningWidget(missing_inputs, overwritten_outputs, parent=None)[source]

    This class is a GUI for pipeline file inputs/outputs checking.

    It allows to check if there are missing inputs which may prevent the pipeline from running, or if there are already existing outputs which would @@ -1247,24 +1247,24 @@

    -

    capsul.qt_gui.widgets.pipeline_user_view submodule

    -

    A widget to visualize a pipeline as a simple workflow

    +
    +

    capsul.qt_gui.widgets.pipeline_user_view submodule

    +

    A widget to visualize a pipeline as a simple workflow

    -

    Classes

    +

    Classes

    -

    PipelineUserView

    +

    PipelineUserView

    -class capsul.qt_gui.widgets.pipeline_user_view.PipelineUserView(pipeline)[source]
    +class capsul.qt_gui.widgets.pipeline_user_view.PipelineUserView(pipeline)[source]

    A widget to visualize a pipeline as a simple workflow.

    Uses Graphviz dot tool.

    Initialize the WorkflowViewer class

    -update(self)[source]
    +update(self)[source]
    update(self, a0: QRect) None
    @@ -1276,18 +1276,18 @@

    -

    capsul.qt_gui.widgets.viewer_widget submodule

    -

    Result viewer

    +
    +

    capsul.qt_gui.widgets.viewer_widget submodule

    +

    Result viewer

    -

    Classes

    +

    Classes

    -

    ViewerWidget

    +

    ViewerWidget

    -class capsul.qt_gui.widgets.viewer_widget.ViewerWidget(viewer_node_name, pipeline, study_config)[source]
    +class capsul.qt_gui.widgets.viewer_widget.ViewerWidget(viewer_node_name, pipeline, study_config)[source]

    View result class

    Method to initialize a ViewerWidget class.

    @@ -1301,7 +1301,7 @@

    -onCreateViewerClicked()[source]
    +onCreateViewerClicked()[source]

    Event to create the viewer

    @@ -1321,7 +1321,7 @@

    Table of Contents

    \ No newline at end of file diff --git a/api/sphinxext.html b/api/sphinxext.html index 97563f59b..17d3cb18c 100644 --- a/api/sphinxext.html +++ b/api/sphinxext.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,13 +104,13 @@

    Navigation

    -

    capsul.sphinxext module

    +

    capsul.sphinxext module

    Inheritance diagram of capsul.sphinxext, capsul.sphinxext.layoutdocgen, capsul.sphinxext.load_pilots, capsul.sphinxext.pipelinedocgen, capsul.sphinxext.usecasesdocgen
    -

    Extension to sphinx to document Capsul processes

    +

    Extension to sphinx to document Capsul processes

    This moduls allows to make sphinx source to automatically document Capsul processes and pipelines. The module can be used as a commandline:

    python -m capsul.sphinxext.capsul_pipeline_rst -i morphologist.capsul -o processes_docs --schema
     
    @@ -140,9 +140,9 @@

    capsul.sphinxext module

    -
    +
    -class capsul.sphinxext.layoutdocgen.LayoutHelperWriter(module_names, root_module_name, rst_extension='.rst')[source]
    +class capsul.sphinxext.layoutdocgen.LayoutHelperWriter(module_names, root_module_name, rst_extension='.rst')[source]

    A basic class to create sphinx layout and associated index.

    Initialize the LayoutHelperWriter class

    @@ -156,7 +156,7 @@

    capsul.sphinxext module
    -generate_index_entry(module_name, indent=4)[source]
    +generate_index_entry(module_name, indent=4)[source]

    Make autodoc documentation of pilots

    Parameters:
    @@ -176,7 +176,7 @@

    capsul.sphinxext module
    -rst2html(rst)[source]
    +rst2html(rst)[source]

    Convert a rst formatted string to an html string.

    Parameters:
    @@ -193,7 +193,7 @@

    capsul.sphinxext module
    -title_for(title)[source]
    +title_for(title)[source]

    Create a title from a underscore-separated string.

    Parameters:
    @@ -210,7 +210,7 @@

    capsul.sphinxext module
    -write_index(outdir, froot='index', rst_extension='.rst')[source]
    +write_index(outdir, froot='index', rst_extension='.rst')[source]

    Make a reST API index file from python modules

    Parameters:
    @@ -226,7 +226,7 @@

    capsul.sphinxext module
    -write_installation(outdir)[source]
    +write_installation(outdir)[source]

    Generate the installation recommendations.

    Parameters:
    @@ -237,7 +237,7 @@

    capsul.sphinxext module
    -write_layout(outdir)[source]
    +write_layout(outdir)[source]

    Generate the sphinx layout.

    Parameters:
    @@ -248,9 +248,9 @@

    capsul.sphinxext module

    -
    +
    -capsul.sphinxext.load_pilots.load_pilots(root, path, root_module_name)[source]
    +capsul.sphinxext.load_pilots.load_pilots(root, path, root_module_name)[source]

    Load all the pilot functions.

    Path is recursively scanned for __init__.py files. Any function declared inside whose name start with pilot_ will be @@ -273,9 +273,9 @@

    capsul.sphinxext module

    -
    +
    -class capsul.sphinxext.pipelinedocgen.PipelineHelpWriter(pipelines, rst_extension='.rst', short_names={})[source]
    +class capsul.sphinxext.pipelinedocgen.PipelineHelpWriter(pipelines, rst_extension='.rst', short_names={})[source]

    Class for automatic generation of pipeline API documentations in Sphinx-parsable reST format.

    Initialize package for parsing

    @@ -290,7 +290,7 @@

    capsul.sphinxext module
    -generate_api_doc(pipeline, schema)[source]
    +generate_api_doc(pipeline, schema)[source]

    Make autodoc documentation for a pipeline python module

    Parameters:
    @@ -311,14 +311,14 @@

    capsul.sphinxext module
    -get_short_name(name)[source]
    +get_short_name(name)[source]

    Get a short file name prefix for module/process in the short_names dict. Used to build “reasonably short” path/file names.

    -write_api_docs(outdir=None, returnrst=False)[source]
    +write_api_docs(outdir=None, returnrst=False)[source]

    Generate API reST files.

    Parameters:
    @@ -336,7 +336,7 @@

    capsul.sphinxext module
    -write_index(outdir, froot='index', relative_to=None, rst_extension='.rst')[source]
    +write_index(outdir, froot='index', relative_to=None, rst_extension='.rst')[source]

    Make a reST API index file from the list of written files

    Parameters:
    @@ -356,7 +356,7 @@

    capsul.sphinxext module
    -write_main_index(outdir, module_name, root_module_name, froot='index', rst_extension='.rst', have_usecases=True)[source]
    +write_main_index(outdir, module_name, root_module_name, froot='index', rst_extension='.rst', have_usecases=True)[source]

    Make a reST API index file for the module

    Parameters:
    @@ -374,9 +374,9 @@

    capsul.sphinxext module

    -
    +
    -class capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter(pilots, rst_extension='.rst')[source]
    +class capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter(pilots, rst_extension='.rst')[source]

    A basic class to convert the pilot codes to rst use cases

    Initialize the UseCasesHelper class

    @@ -389,7 +389,7 @@

    capsul.sphinxext module
    -generate_usecases_doc(src_code, module_name)[source]
    +generate_usecases_doc(src_code, module_name)[source]

    Make autodoc documentation of pilots

    Parameters:
    @@ -406,7 +406,7 @@

    capsul.sphinxext module
    -getsource(function)[source]
    +getsource(function)[source]

    Method that returns the source code of a function

    Parameters:
    @@ -423,7 +423,7 @@

    capsul.sphinxext module
    -write_index(outdir, froot='index', relative_to=None, rst_extension='.rst')[source]
    +write_index(outdir, froot='index', relative_to=None, rst_extension='.rst')[source]

    Make a reST API index file from written files

    Parameters:
    @@ -443,7 +443,7 @@

    capsul.sphinxext module
    -write_usecases_docs(outdir=None, returnrst=False)[source]
    +write_usecases_docs(outdir=None, returnrst=False)[source]

    Generate Use Cases reST files.

    Parameters:
    @@ -460,7 +460,7 @@

    capsul.sphinxext module

    -

    Commands

    +

    Commands

    • capsul_pipeline_rst.py

    • capsul_pipeline_view.py

    • @@ -530,8 +530,8 @@

      Navigation

    \ No newline at end of file diff --git a/api/study_config.html b/api/study_config.html index 2bcf210b0..4bda886fb 100644 --- a/api/study_config.html +++ b/api/study_config.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,29 +104,32 @@

    Navigation

    -

    capsul.study_config module

    -
    Inheritance diagram of capsul.study_config, capsul.study_config.study_config, capsul.study_config.config_utils, capsul.study_config.memory, capsul.study_config.process_instance, capsul.study_config.run, capsul.study_config.config_modules
    +

    capsul.study_config module

    +
    Inheritance diagram of capsul.study_config, capsul.study_config.study_config, capsul.study_config.config_utils, capsul.study_config.memory, capsul.study_config.process_instance, capsul.study_config.run, capsul.study_config.config_modules
    + + + -

    Configuration of Capsul and external software operated through capsul.

    -
    -

    capsul.study_config.config_utils submodule

    -

    Utility functions for configuration

    +

    Configuration of Capsul and external software operated through capsul.

    +
    +

    capsul.study_config.config_utils submodule

    +

    Utility functions for configuration

    -

    Functions

    +

    Functions

    -

    environment()

    +

    environment()

    -capsul.study_config.config_utils.environment(sh_file=None, env={})[source]
    +capsul.study_config.config_utils.environment(sh_file=None, env={})[source]

    Function that return a dictionary containing the environment needed by a program (for instance FSL or FreeSurfer).

    In the configuration file, the variable are expected to be defined @@ -148,39 +151,39 @@

    -

    capsul.study_config.memory submodule

    -

    Memory caching. Probably mostly obsolete, this code is not much used now.

    +
    +

    capsul.study_config.memory submodule

    +

    Memory caching. Probably mostly obsolete, this code is not much used now.

    -

    Classes

    +

    Classes

    -

    UnMemorizedProcess

    +

    UnMemorizedProcess

    -

    MemorizedProcess

    +

    MemorizedProcess

    -

    CapsulResultEncoder

    +

    CapsulResultEncoder

    -

    Memory

    +

    Memory

    -

    Functions

    +

    Functions

    -

    get_process_signature()

    +

    get_process_signature()

    -

    has_attribute()

    +

    has_attribute()

    -

    file_fingerprint()

    +

    file_fingerprint()

    -class capsul.study_config.memory.CapsulResultDecoder(*args, **kargs)[source]
    +class capsul.study_config.memory.CapsulResultDecoder(*args, **kargs)[source]

    Deal with ProcessResult in json.

    object_hook, if specified, will be called with the result of every JSON object decoded and its return value will be used in @@ -212,7 +215,7 @@

    -class capsul.study_config.memory.CapsulResultEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]
    +class capsul.study_config.memory.CapsulResultEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source]

    Deal with ProcessResult in json.

    Constructor for JSONEncoder, with sensible defaults.

    If skipkeys is false, then it is a TypeError to attempt @@ -245,7 +248,7 @@

    TypeError.

    -default(obj)[source]
    +default(obj)[source]

    Implement this method in a subclass such that it returns a serializable object for o, or calls the base implementation (to raise a TypeError).

    @@ -268,7 +271,7 @@

    -class capsul.study_config.memory.MemorizedProcess(process, cachedir, timestamp=None, verbose=1)[source]
    +class capsul.study_config.memory.MemorizedProcess(process, cachedir, timestamp=None, verbose=1)[source]

    Callable object decorating a capsul process for caching its return values each time it is called.

    All values are cached on the filesystem, in a deep directory @@ -291,7 +294,7 @@

    -class capsul.study_config.memory.Memory(cachedir)[source]
    +class capsul.study_config.memory.Memory(cachedir)[source]

    Memory context to provide caching for processes.

    @@ -306,12 +309,12 @@

    -cache()[source]
    +cache()[source]

    -clear()[source]
    +clear()[source]

    Initialize the Memory class.

    @@ -322,7 +325,7 @@

    -cache(process, verbose=1)[source]
    +cache(process, verbose=1)[source]

    Create a proxy of the given process in order to only execute the process for input parameters not cached on disk.

    @@ -369,7 +372,7 @@

    -clear(skips=None)[source]
    +clear(skips=None)[source]

    Remove all the cache apart from those given to the method input.

    @@ -383,7 +386,7 @@

    -class capsul.study_config.memory.UnMemorizedProcess(process, verbose=1)[source]
    +class capsul.study_config.memory.UnMemorizedProcess(process, verbose=1)[source]

    This class replaces MemorizedProcess when there is no cache. It provides an identical API but does not write anything on disk.

    Initialize the UnMemorizedProcess class.

    @@ -399,7 +402,7 @@

    -capsul.study_config.memory.file_fingerprint(afile)[source]
    +capsul.study_config.memory.file_fingerprint(afile)[source]

    Computes the file fingerprint.

    Do not consider the file content, just the fingerprint (ie. the mtime, the size and the file location).

    @@ -418,7 +421,7 @@

    -capsul.study_config.memory.get_process_signature(process, input_parameters)[source]
    +capsul.study_config.memory.get_process_signature(process, input_parameters)[source]

    Generate the process signature.

    Parameters:
    @@ -438,7 +441,7 @@

    -capsul.study_config.memory.has_attribute(trait, attribute_name, attribute_value=None, recursive=True)[source]
    +capsul.study_config.memory.has_attribute(trait, attribute_name, attribute_value=None, recursive=True)[source]

    Checks if a given trait has an attribute and optionally if it is set to particular value.

    @@ -462,7 +465,7 @@

    -capsul.study_config.memory.tuple_json_encoder(obj)[source]
    +capsul.study_config.memory.tuple_json_encoder(obj)[source]

    Encode a tuple in order to save it in json format.

    Parameters:
    @@ -478,30 +481,30 @@

    -

    capsul.study_config.process_instance submodule

    -

    Process instance factory

    +
    +

    capsul.study_config.process_instance submodule

    +

    Process instance factory

    -

    Functions

    +

    Functions

    -

    is_process()

    +

    is_process()

    -

    is_pipeline_node()

    +

    is_pipeline_node()

    -

    get_process_instance()

    +

    get_process_instance()

    -

    get_node_class()

    +

    get_node_class()

    -

    get_node_instance()

    +

    get_node_instance()

    -capsul.study_config.process_instance.get_node_class(node_type)[source]
    +capsul.study_config.process_instance.get_node_class(node_type)[source]

    Get a custom node class from module + class string. The class name is optional if the module contains only one node class. It is OK to pass a Node subclass or a Node instance also.

    @@ -509,7 +512,7 @@

    -capsul.study_config.process_instance.get_node_instance(node_type, pipeline, conf_dict=None, name=None, **kwargs)[source]
    +capsul.study_config.process_instance.get_node_instance(node_type, pipeline, conf_dict=None, name=None, **kwargs)[source]

    Get a custom node instance from a module + class name (see get_node_class()) and a configuration dict or Controller. The configuration contains parameters needed to instantiate the node type. @@ -535,7 +538,7 @@

    -capsul.study_config.process_instance.get_process_instance(process_or_id, study_config=None, **kwargs)[source]
    +capsul.study_config.process_instance.get_process_instance(process_or_id, study_config=None, **kwargs)[source]

    Return a Process instance given an identifier.

    Note that it is convenient to create a process from a StudyConfig instance: StudyConfig.get_process_instance()

    @@ -579,30 +582,30 @@

    -capsul.study_config.process_instance.is_pipeline_node(item)[source]
    +capsul.study_config.process_instance.is_pipeline_node(item)[source]

    Check if the input is an instance of pipeline Node

    -capsul.study_config.process_instance.is_process(item)[source]
    +capsul.study_config.process_instance.is_process(item)[source]

    Check if the input item is a process class or function with decorator or XML docstring which makes it seen as a process

    -
    -

    capsul.study_config.run submodule

    -

    Process and pipeline execution management

    +
    +

    capsul.study_config.run submodule

    +

    Process and pipeline execution management

    -

    Functions

    +

    Functions

    -

    run_process()

    +

    run_process()

    -capsul.study_config.run.run_process(output_dir, process_instance, generate_logging=False, verbose=0, configuration_dict=None, cachedir=None, **kwargs)[source]
    +capsul.study_config.run.run_process(output_dir, process_instance, generate_logging=False, verbose=0, configuration_dict=None, cachedir=None, **kwargs)[source]

    Execute a capsul process in a specific directory.

    Parameters:
    @@ -628,30 +631,33 @@

    -

    capsul.study_config.study_config submodule

    -
    Inheritance diagram of capsul.study_config.study_config
    +

    capsul.study_config.study_config submodule

    +
    Inheritance diagram of capsul.study_config.study_config
    + + + -

    Main StudyConfig class for configuration of Capsul software, directories etc.

    +

    Main StudyConfig class for configuration of Capsul software, directories etc.

    -

    Classes

    +

    Classes

    -

    StudyConfig

    +

    StudyConfig

    -

    StudyConfigModule

    +

    StudyConfigModule

    -

    Functions

    +

    Functions

    -

    default_study_config()

    +

    default_study_config()

    -class capsul.study_config.study_config.StudyConfig(study_name=None, init_config=None, modules=None, engine=None, **override_config)[source]
    +class capsul.study_config.study_config.StudyConfig(study_name=None, init_config=None, modules=None, engine=None, **override_config)[source]

    Class to store the study parameters and processing options.

    StudyConfig is deprecated and will probably be removed in Capsul 3. Please use CapsulEngine instead and its @@ -659,7 +665,7 @@

    -input_directory
    +input_directory

    parameter to set the study input directory

    Type:
    @@ -690,7 +696,7 @@

    -output_directory
    +output_directory

    parameter to set the study output directory

    Type:
    @@ -701,7 +707,7 @@

    -generate_logging
    +generate_logging

    parameter to control the log generation

    Type:
    @@ -712,7 +718,7 @@

    -create_output_directories
    +create_output_directories

    Create parent directories of all output File or Directory before running a process

    @@ -724,7 +730,7 @@

    -process_output_directory
    +process_output_directory

    Create a process specific output_directory by appending a subdirectory to output_directory. This subdirectory is named ‘<count>-<name>’ where <count> if self.process_counter and <name> @@ -738,37 +744,37 @@

    -run()[source]
    +run()[source]

    -reset_process_counter()[source]
    +reset_process_counter()[source]
    -set_trait_value()[source]
    +set_trait_value()[source]
    -get_trait()[source]
    +get_trait()[source]
    -get_trait_value()[source]
    +get_trait_value()[source]
    -update_study_configuration()[source]
    +update_study_configuration()[source]
    -set_study_configuration()[source]
    +set_study_configuration()[source]

    Initialize the StudyConfig class

    @@ -790,7 +796,7 @@

    -add_trait(name, *trait)[source]
    +add_trait(name, *trait)[source]

    Add a new trait.

    Parameters:
    @@ -804,14 +810,14 @@

    -get_configuration_dict()[source]
    +get_configuration_dict()[source]

    Returns a json compatible dictionary containing current configuration.

    -get_iteration_pipeline(pipeline_name, node_name, process_or_id, iterative_plugs=None, do_not_export=None, make_optional=None, **kwargs)[source]
    +get_iteration_pipeline(pipeline_name, node_name, process_or_id, iterative_plugs=None, do_not_export=None, make_optional=None, **kwargs)[source]

    Create a pipeline with an iteration node iterating the given process.

    @@ -836,7 +842,7 @@

    -get_process_instance(process_or_id, **kwargs)[source]
    +get_process_instance(process_or_id, **kwargs)[source]

    Return a Process instance given an identifier.

    The identifier is either:

    @@ -871,7 +877,7 @@

    -get_trait(trait_name)[source]
    +get_trait(trait_name)[source]

    Method to access the ‘trait_name’ study configuration element.

    Notes

    If the ‘trait_name’ element is not found, return None

    @@ -890,7 +896,7 @@

    -get_trait_value(trait_name)[source]
    +get_trait_value(trait_name)[source]

    Method to access the value of the ‘trait_name’ study configuration element.

    @@ -908,7 +914,7 @@

    -initialize_modules()[source]
    +initialize_modules()[source]

    Modules initialization, calls initialize_module on each config module. This is not done during module instantiation to allow interactions between modules (e.g. Matlab configuration can influence Nipype @@ -918,7 +924,7 @@

    -load_module(config_module_name, config)[source]
    +load_module(config_module_name, config)[source]

    Load an optional StudyConfig module.

    Parameters:
    @@ -932,7 +938,7 @@

    -read_configuration()[source]
    +read_configuration()[source]

    Find the configuration for the current study (whose name is defined in self study_name) and returns a dictionary that is a merge between global options and study specific options.

    @@ -953,13 +959,13 @@

    -reset_process_counter()[source]
    +reset_process_counter()[source]

    Method to reset the process counter to one.

    -run(process_or_pipeline, output_directory=None, execute_qc_nodes=True, verbose=0, configuration_dict=None, **kwargs)[source]
    +run(process_or_pipeline, output_directory=None, execute_qc_nodes=True, verbose=0, configuration_dict=None, **kwargs)[source]
    Method to execute a process or a pipeline in a study configuration

    environment.

    Depending on the studies_config settings, it may be a sequential run, @@ -988,7 +994,7 @@

    -save_configuration(file)[source]
    +save_configuration(file)[source]

    Save study configuration as json file.

    Parameters:
    @@ -999,7 +1005,7 @@

    -set_study_configuration(new_config)[source]
    +set_study_configuration(new_config)[source]

    Method to set the new configuration of the study.

    If a study configuration element can’t be updated properly, send an error message to the logger.

    @@ -1013,7 +1019,7 @@

    -set_trait_value(trait_name, trait_value)[source]
    +set_trait_value(trait_name, trait_value)[source]

    Method to set the value of a parameter.

    Parameters:
    @@ -1027,7 +1033,7 @@

    -update_study_configuration(json_fname)[source]
    +update_study_configuration(json_fname)[source]

    Update the study configuration from a json file.

    Parameters:
    @@ -1040,24 +1046,24 @@

    -class capsul.study_config.study_config.StudyConfigModule(study_config, configuration)[source]
    +class capsul.study_config.study_config.StudyConfigModule(study_config, configuration)[source]

    StudyConfig module base class (abstract)

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    Method called just after the first call to initialize_modules.

    -initialize_module()[source]
    +initialize_module()[source]

    Method called to initialize selected study configuration modules on startup. This method does nothing but can be overridden by modules.

    -property name
    +property name

    The name of a module that can be used in configuration to select modules to load.

    @@ -1066,7 +1072,7 @@

    -capsul.study_config.study_config.default_study_config()[source]
    +capsul.study_config.study_config.default_study_config()[source]

    On the first call create a StudyConfig instance with default configuration (eventually reading configuration files). Then returns this instance on all subsequent calls.

    @@ -1074,8 +1080,8 @@

    -

    capsul.study_config.config_modules submodule

    -
    Inheritance diagram of capsul.study_config.config_modules.attributes_config, capsul.study_config.config_modules.brainvisa_config, capsul.study_config.config_modules.fom_config, capsul.study_config.config_modules.freesurfer_config, capsul.study_config.config_modules.fsl_config, capsul.study_config.config_modules.matlab_config, capsul.study_config.config_modules.nipype_config, capsul.study_config.config_modules.smartcaching_config, capsul.study_config.config_modules.somaworkflow_config, capsul.study_config.config_modules.spm_config, capsul.study_config.config_modules
    +

    capsul.study_config.config_modules submodule

    +
    Inheritance diagram of capsul.study_config.config_modules.attributes_config, capsul.study_config.config_modules.brainvisa_config, capsul.study_config.config_modules.fom_config, capsul.study_config.config_modules.freesurfer_config, capsul.study_config.config_modules.fsl_config, capsul.study_config.config_modules.matlab_config, capsul.study_config.config_modules.nipype_config, capsul.study_config.config_modules.smartcaching_config, capsul.study_config.config_modules.somaworkflow_config, capsul.study_config.config_modules.spm_config, capsul.study_config.config_modules
    @@ -1088,25 +1094,28 @@

    capsul.study_config.config_modules submodule + + + -

    StudyConfig configuration modules implementations

    +

    StudyConfig configuration modules implementations

    -

    capsul.study_config.config_modules.attributes_config submodule

    +

    capsul.study_config.config_modules.attributes_config submodule

    Inheritance diagram of capsul.study_config.config_modules.attributes_config
    -

    Attributes completion config module

    +

    Attributes completion config module

    -

    Classes

    +

    Classes

    -

    AttributesConfig

    +

    AttributesConfig

    -class capsul.study_config.config_modules.attributes_config.AttributesConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.attributes_config.AttributesConfig(study_config, configuration)[source]

    Attributes-based completion configuration module for StudyConfig

    This module adds the following options (traits) in the StudyConfig object:

    @@ -1122,30 +1131,30 @@

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    Method called just after the first call to initialize_modules.

    -initialize_module()[source]
    +initialize_module()[source]

    -
    -

    capsul.study_config.config_modules.brainvisa_config submodule

    -

    Configuration module which links with Axon

    +
    +

    capsul.study_config.config_modules.brainvisa_config submodule

    +

    Configuration module which links with Axon

    -

    Classes

    +

    Classes

    -

    BrainVISAConfig

    +

    BrainVISAConfig

    -class capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig(study_config, configuration)[source]

    Configuration module allowing to use BrainVISA / Axon shared data in Capsul processes.

    This module adds the following options (traits) in the StudyConfig object:

    @@ -1155,30 +1164,30 @@

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    Method called just after the first call to initialize_modules.

    -initialize_module()[source]
    +initialize_module()[source]

    -
    -

    capsul.study_config.config_modules.fom_config submodule

    -

    Config module for File Organization models (FOMs)

    +
    +

    capsul.study_config.config_modules.fom_config submodule

    +

    Config module for File Organization models (FOMs)

    -

    Classes

    +

    Classes

    -

    FomConfig

    +

    FomConfig

    -class capsul.study_config.config_modules.fom_config.FomConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.fom_config.FomConfig(study_config, configuration)[source]

    FOM (File Organization Model) configuration module for StudyConfig

    Note

    @@ -1215,13 +1224,13 @@

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    Method called just after the first call to initialize_modules.

    -initialize_module()[source]
    +initialize_module()[source]

    Method called to initialize selected study configuration modules on startup. This method does nothing but can be overridden by modules.

    @@ -1229,18 +1238,18 @@

    -

    capsul.study_config.config_modules.freesurfer_config submodule

    -

    FreeSurfer configuration module

    +
    +

    capsul.study_config.config_modules.freesurfer_config submodule

    +

    FreeSurfer configuration module

    -

    Classes

    +

    Classes

    -

    FreeSurferConfig

    +

    FreeSurferConfig

    -class capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig(study_config, configuration)[source]

    Class to set up freesurfer configuration.

    Parse the ‘SetUpFreeSurfer.sh’ file and update dynamically the system environment.

    @@ -1253,13 +1262,13 @@

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    Method called just after the first call to initialize_modules.

    -initialize_module()[source]
    +initialize_module()[source]

    Set up FSL environment variables according to current configuration.

    @@ -1267,28 +1276,28 @@

    -

    capsul.study_config.config_modules.fsl_config submodule

    -

    FSL configuration module

    +
    +

    capsul.study_config.config_modules.fsl_config submodule

    +

    FSL configuration module

    -

    Classes

    +

    Classes

    -

    FSLConfig

    +

    FSLConfig

    -class capsul.study_config.config_modules.fsl_config.FSLConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.fsl_config.FSLConfig(study_config, configuration)[source]

    FSL configuration module

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    Method called just after the first call to initialize_modules.

    -initialize_module()[source]
    +initialize_module()[source]

    Set up FSL environment variables according to current configuration.

    @@ -1296,60 +1305,60 @@

    -

    capsul.study_config.config_modules.matlab_config submodule

    -

    Matlab configuration module

    +
    +

    capsul.study_config.config_modules.matlab_config submodule

    +

    Matlab configuration module

    -

    Classes

    +

    Classes

    -

    MatlabConfig

    +

    MatlabConfig

    -class capsul.study_config.config_modules.matlab_config.MatlabConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.matlab_config.MatlabConfig(study_config, configuration)[source]

    Matlab path configuration

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    Method called just after the first call to initialize_modules.

    -initialize_module()[source]
    +initialize_module()[source]

    Set up Matlab environment according to current configuration.

    -
    -

    capsul.study_config.config_modules.nipype_config submodule

    -

    NiPype configuration module

    +
    +

    capsul.study_config.config_modules.nipype_config submodule

    +

    NiPype configuration module

    -

    Classes

    +

    Classes

    -

    NipypeConfig

    +

    NipypeConfig

    -class capsul.study_config.config_modules.nipype_config.NipypeConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.nipype_config.NipypeConfig(study_config, configuration)[source]

    Nipype configuration.

    In order to use nipype spm, fsl and freesurfer interfaces, we need to configure the nipype module.

    Initialize the NipypeConfig class.

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    When the ‘use_nipype’ trait changes, configure nipype with the new setting.

    -initialize_module()[source]
    +initialize_module()[source]

    Set up Nipype environment variables according to current configuration.

    @@ -1357,40 +1366,40 @@

    -

    capsul.study_config.config_modules.smartcaching_config submodule

    -

    Process execution cache configuration module

    +
    +

    capsul.study_config.config_modules.smartcaching_config submodule

    +

    Process execution cache configuration module

    -

    Classes

    +

    Classes

    -

    SmartCachingConfig

    +

    SmartCachingConfig

    -class capsul.study_config.config_modules.smartcaching_config.SmartCachingConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.smartcaching_config.SmartCachingConfig(study_config, configuration)[source]
    -
    -

    capsul.study_config.config_modules.somaworkflow_config submodule

    -

    Soma-Workflow configuration module

    +
    +

    capsul.study_config.config_modules.somaworkflow_config submodule

    +

    Soma-Workflow configuration module

    -

    Classes

    +

    Classes

    -

    ResourceController

    +

    ResourceController

    -

    SomaWorkflowConfig

    +

    SomaWorkflowConfig

    -class capsul.study_config.config_modules.somaworkflow_config.ResourceController[source]
    +class capsul.study_config.config_modules.somaworkflow_config.ResourceController[source]

    Configuration options for one Soma-Workflow computing resource

    -queue
    +queue

    Jobs queue to be used on the computing resource for w orkflow submissions

    @@ -1402,7 +1411,7 @@

    -transfer_paths
    +transfer_paths

    list of paths where files have to be transferred by soma-workflow

    Type:
    @@ -1413,7 +1422,7 @@

    -path_translations
    +path_translations

    Soma-workflow paths translations mapping: {local_path: (identifier, uuid)}

    @@ -1436,7 +1445,7 @@

    -class capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig(study_config, configuration)[source]

    Configuration module for Soma-Workflow

    Stores configuration options which are not part of Soma-Workflow own configuration, and used to run workflows from CAPSUL pipelines.

    @@ -1445,7 +1454,7 @@

    -use_soma_workflow
    +use_soma_workflow

    Use soma workflow for the execution

    Type:
    @@ -1456,7 +1465,7 @@

    -somaworkflow_computing_resource
    +somaworkflow_computing_resource

    Soma-workflow computing resource to be used to run processing

    Type:
    @@ -1467,7 +1476,7 @@

    -somaworkflow_config_file
    +somaworkflow_config_file

    Soma-Workflow configuration file. Default: $HOME/.soma_workflow.cfg

    Type:
    @@ -1478,7 +1487,7 @@

    -somaworkflow_keep_failed_workflows
    +somaworkflow_keep_failed_workflows

    Keep failed workflows after pipeline execution through StudyConfig

    Type:
    @@ -1489,7 +1498,7 @@

    -somaworkflow_keep_succeeded_workflows
    +somaworkflow_keep_succeeded_workflows

    Keep succeeded workflows after pipeline execution through StudyConfig

    Type:
    @@ -1500,7 +1509,7 @@

    -somaworkflow_computing_resources_config
    +somaworkflow_computing_resources_config

    Computing resource config dict, keys are resource ids. Values are ResourceController instances

    @@ -1512,32 +1521,32 @@

    -get_resource_id()[source]
    +get_resource_id()[source]

    -set_computing_resource_password()[source]
    +set_computing_resource_password()[source]
    -get_workflow_controller()[source]
    +get_workflow_controller()[source]
    -connect_resource()[source]
    +connect_resource()[source]
    -disconnect_resource()[source]
    +disconnect_resource()[source]
    -connect_resource(resource_id=None, force_reconnect=False)[source]
    +connect_resource(resource_id=None, force_reconnect=False)[source]

    Connect a soma-workflow computing resource.

    Sets the current resource to the given resource_id (transformed by get_resource_id() if None or “localhost” is given, for instance).

    @@ -1561,7 +1570,7 @@

    -disconnect_resource(resource_id=None)[source]
    +disconnect_resource(resource_id=None)[source]

    Disconnect a connected WorkflowController and removes it from the internal list

    @@ -1569,7 +1578,7 @@

    -get_resource_id(resource_id=None, set_it=False)[source]
    +get_resource_id(resource_id=None, set_it=False)[source]

    Get a computing resource name according to the (optional) input resource_id and Soma-Workflow configuration.

    For instance, None or "localhost" will be transformed to the @@ -1590,7 +1599,7 @@

    -get_workflow_controller(resource_id=None)[source]
    +get_workflow_controller(resource_id=None)[source]

    Get a connected WorkflowController for the given resource

    @@ -1598,13 +1607,13 @@

    -initialize_callbacks()[source]
    +initialize_callbacks()[source]

    Method called just after the first call to initialize_modules.

    -set_computing_resource_password(resource_id, password=None, rsa_key_password=None)[source]
    +set_computing_resource_password(resource_id, password=None, rsa_key_password=None)[source]

    Set credentials for a given computinf resource.

    Such credentials are stored in the config object, but will not be written when the config is saved in a file. They are thus non- @@ -1623,18 +1632,18 @@

    -

    capsul.study_config.config_modules.spm_config submodule

    -

    SPM configuration module

    +
    +

    capsul.study_config.config_modules.spm_config submodule

    +

    SPM configuration module

    -

    Classes

    +

    Classes

    -

    SPMConfig

    +

    SPMConfig

    -class capsul.study_config.config_modules.spm_config.SPMConfig(study_config, configuration)[source]
    +class capsul.study_config.config_modules.spm_config.SPMConfig(study_config, configuration)[source]

    SPM configuration.

    There is two ways to configure SPM:
    -initialize_module()[source]
    +initialize_module()[source]

    Method called to initialize selected study configuration modules on startup. This method does nothing but can be overridden by modules.

    @@ -1674,7 +1683,7 @@

    Table of Contents

    \ No newline at end of file diff --git a/api/subprocess.html b/api/subprocess.html index b5e4fdf97..2d38e023d 100644 --- a/api/subprocess.html +++ b/api/subprocess.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,15 +104,16 @@

    Navigation

    -

    capsul.subprocess module

    -
    Inheritance diagram of capsul.subprocess, capsul.subprocess.fsl, capsul.subprocess.spm
    +

    capsul.subprocess module

    +
    Inheritance diagram of capsul.subprocess, capsul.subprocess.fsl, capsul.subprocess.spm
    + -

    The capsul.subprocess module provides interfaces similar to those of the standard subprocess module, specialized to call specific neuroimaging software such as FSL, SPM or FreeSurfer. It provides Popen, call(), check_call() and check_outputs() replacement functions which work in the selected specific environment.

    -
    -

    capsul.subprocess.fsl submodule

    -

    Specific subprocess-like functions to call FSL taking into account a +

    The capsul.subprocess module provides interfaces similar to those of the standard subprocess module, specialized to call specific neuroimaging software such as FSL, SPM or FreeSurfer. It provides Popen, call(), check_call() and check_outputs() replacement functions which work in the selected specific environment.

    +
    +

    capsul.subprocess.fsl submodule

    +

    Specific subprocess-like functions to call FSL taking into account a potential configuration done in StudyConfig. If a StudyConfig is not configured to use FSL, it may be automatically configured. Automatic configuration had been tested in the two following cases:

    @@ -128,70 +129,70 @@

    capsul.subprocess module -

    Classes

    +

    Classes

    -

    Popen

    +

    Popen

    -

    Functions

    +

    Functions

    -

    fsl_command_with_environment()

    +

    fsl_command_with_environment()

    -

    check_fsl_configuration()

    +

    check_fsl_configuration()

    -

    check_configuration_values()

    +

    check_configuration_values()

    -

    auto_configuration()

    +

    auto_configuration()

    -

    call()

    +

    call()

    -

    check_call()

    +

    check_call()

    -

    check_output()

    +

    check_output()

    -class capsul.subprocess.fsl.Popen(study_config, command, **kwargs)[source]
    +class capsul.subprocess.fsl.Popen(study_config, command, **kwargs)[source]

    Equivalent to Python subprocess.Popen for FSL commands

    Create new Popen instance.

    -capsul.subprocess.fsl.auto_configuration(study_config)[source]
    +capsul.subprocess.fsl.auto_configuration(study_config)[source]

    Try to automatically set the study_config configuration for FSL.

    -capsul.subprocess.fsl.call(study_config, command, **kwargs)[source]
    +capsul.subprocess.fsl.call(study_config, command, **kwargs)[source]

    Equivalent to Python subprocess.call for FSL commands

    -capsul.subprocess.fsl.check_call(study_config, command, **kwargs)[source]
    +capsul.subprocess.fsl.check_call(study_config, command, **kwargs)[source]

    Equivalent to Python subprocess.check_call for FSL commands

    -capsul.subprocess.fsl.check_configuration_values(study_config)[source]
    +capsul.subprocess.fsl.check_configuration_values(study_config)[source]

    Check if the configuration is valid to run FLS and returns an error message if there is an error or None if everything is good.

    -capsul.subprocess.fsl.check_fsl_configuration(study_config)[source]
    +capsul.subprocess.fsl.check_fsl_configuration(study_config)[source]

    Check thas study_config configuration is valid to call FSL commands. If not, try to automatically configure FSL. Finally raises an EnvironmentError if configuration is still wrong.

    @@ -199,83 +200,83 @@

    -capsul.subprocess.fsl.check_output(study_config, command, **kwargs)[source]
    +capsul.subprocess.fsl.check_output(study_config, command, **kwargs)[source]

    Equivalent to Python subprocess.check_output for FSL commands

    -capsul.subprocess.fsl.fsl_command_with_environment(study_config, command)[source]
    +capsul.subprocess.fsl.fsl_command_with_environment(study_config, command)[source]

    Given an FSL command where first element is a command name without any path or prefix (e.g. “bet”). Returns the appropriate command to call taking into account the study_config FSL configuration.

    +
    +

    capsul.subprocess.spm submodule

    -

    capsul.subprocess.spm submodule

    -
    -

    Classes

    +

    Classes

    -

    Popen

    +

    Popen

    -

    Functions

    +

    Functions

    -

    find_spm()

    +

    find_spm()

    -

    check_spm_configuration()

    +

    check_spm_configuration()

    -

    check_configuration_values()

    +

    check_configuration_values()

    -

    auto_configuration()

    +

    auto_configuration()

    -

    spm_command()

    +

    spm_command()

    -

    call()

    +

    call()

    -

    check_call()

    +

    check_call()

    -

    check_output()

    +

    check_output()

    -class capsul.subprocess.spm.Popen(study_config, batch_file, **kwargs)[source]
    +class capsul.subprocess.spm.Popen(study_config, batch_file, **kwargs)[source]

    Equivalent to Python soma.subprocess.Popen for SPM batch

    Create new Popen instance.

    -capsul.subprocess.spm.auto_configuration(study_config)[source]
    +capsul.subprocess.spm.auto_configuration(study_config)[source]

    Obsolete.

    Try to automatically set the study_config configuration for SPM.

    -capsul.subprocess.spm.call(study_config, batch_file, **kwargs)[source]
    +capsul.subprocess.spm.call(study_config, batch_file, **kwargs)[source]

    Equivalent to Python soma.subprocess.call for SPM batch

    -capsul.subprocess.spm.check_call(study_config, batch_file, **kwargs)[source]
    +capsul.subprocess.spm.check_call(study_config, batch_file, **kwargs)[source]

    Equivalent to Python soma.subprocess.check_call for SPM batch

    -capsul.subprocess.spm.check_configuration_values(study_config)[source]
    +capsul.subprocess.spm.check_configuration_values(study_config)[source]

    Obsolete.

    Check if the configuration is valid to run SPM and returns an error message if there is an error or None if everything is good.

    @@ -283,13 +284,13 @@

    -capsul.subprocess.spm.check_output(study_config, batch_file, **kwargs)[source]
    +capsul.subprocess.spm.check_output(study_config, batch_file, **kwargs)[source]

    Equivalent to Python soma.subprocess.check_output for SPM batch

    -capsul.subprocess.spm.check_spm_configuration(study_config)[source]
    +capsul.subprocess.spm.check_spm_configuration(study_config)[source]

    Obsolete.

    Check thas study_config configuration is valid to call SPM commands. If not, try to automatically configure SPM. Finally raises an @@ -298,7 +299,7 @@

    -capsul.subprocess.spm.find_spm(spm_version='', matlab_exec='matlab', matlab_path=None)[source]
    +capsul.subprocess.spm.find_spm(spm_version='', matlab_exec='matlab', matlab_path=None)[source]

    Function to return the root directory of SPM.

    Parameters:
    @@ -331,7 +332,7 @@

    Table of Contents

    \ No newline at end of file diff --git a/api/utils.html b/api/utils.html index 9c17ea1a9..614e56723 100644 --- a/api/utils.html +++ b/api/utils.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,32 +104,32 @@

    Navigation

    -

    capsul.utils module

    -

    Utilities to find processes

    +

    capsul.utils module

    +

    Utilities to find processes

    -

    Functions

    +

    Functions

    -

    find_processes()

    +

    find_processes()

    -capsul.utils.finder.find_processes(module_name, ignore_import_error=True)[source]
    +capsul.utils.finder.find_processes(module_name, ignore_import_error=True)[source]

    Find processes in a module and iterate over them

    -
    -

    Functions

    +
    +

    Functions

    -

    get_tool_version()

    +

    get_tool_version()

    -

    get_nipype_interfaces_versions()

    +

    get_nipype_interfaces_versions()

    -capsul.utils.version_utils.get_nipype_interfaces_versions()[source]
    +capsul.utils.version_utils.get_nipype_interfaces_versions()[source]

    Get the versions of the nipype interfaces.

    If nipype is not found, return None. If no interfaces are configured, returned an empty dictionary.

    @@ -146,7 +146,7 @@

    -capsul.utils.version_utils.get_tool_version(tool)[source]
    +capsul.utils.version_utils.get_tool_version(tool)[source]

    Get the version of a python tool.

    Check if the python tool module has a ‘__version__’ attribute and return this value. If this attribute is not found, return None.

    @@ -181,7 +181,7 @@

    Table of Contents

  • find_processes()
  • -
  • Functions
  • \ No newline at end of file diff --git a/documentation.html b/documentation.html index 0f763be33..07cab2efa 100644 --- a/documentation.html +++ b/documentation.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -112,7 +112,7 @@

    Navigation

    -

    Documentation of the CAPSUL tools

    +

    Documentation of the CAPSUL tools

    @@ -192,8 +192,8 @@

    Navigation

    \ No newline at end of file diff --git a/genindex.html b/genindex.html index baec5ba23..bd511f2af 100644 --- a/genindex.html +++ b/genindex.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -2666,8 +2666,8 @@

    Navigation

    \ No newline at end of file diff --git a/index.html b/index.html index 48dd00bd0..9c26ebdd3 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -126,14 +126,14 @@

    Navigation

    -

    CAPSUL

    +

    CAPSUL

    Capsul is a free and open-source Python library for encapsulating algorithms and chain them in pipelines. It has unique features for building and dealing with complex pipelines. It is designed to make it easy to execute pipelines in various environments ranging from a local computer to a remote computing center. Capsul is connected to soma-workflow in order to manage all the difficulties of running a lot of pipelines in parallel.

    -

    Main features

    +

    Main features

    • Althrough written in Python, Capsul does not force algorithms to be written in Python language: pipeline nodes can run any software program. However Capsul provides facilities for Python: a pipeline node can be a simple Python function.

    • A parameters completion system helps to automatically fill parameters from a set of common attributes.

    • @@ -145,7 +145,7 @@

      Main features -

      Technical features

      +

      Technical features

    -

    License

    +

    License

    CAPSUL is released under the CeCILL-B software license, which is much similar to the BSD license.

    @@ -214,8 +214,8 @@

    Navigation

    \ No newline at end of file diff --git a/installation.html b/installation.html index 13de037c6..ac3f796e4 100644 --- a/installation.html +++ b/installation.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -112,15 +112,15 @@

    Navigation

    -

    CAPSUL installation

    +

    CAPSUL installation

    -

    Installing with BrainVISA

    +

    Installing with BrainVISA

    CAPSUL is the new pipelining system of the BrainVISA suite. It can therefore be installed with BrainVISA installer.

    -

    Installing without BrainVISA

    +

    Installing without BrainVISA

    -

    Prerequisite

    +

    Prerequisite

    Installing Capsul on a brain new system requires that Python is installed (either Python 2 or Python 3) but also that some Python packages are installed. These dependencies are managed by pip or by setup.py. But one of the dependency (the traits Python module) requires some compilation during installation. Therefore, before installing Capsul is it necessary to install compilation packages as well as Python development package. In this document, we give the procedure for installation on a bare Debian based Linux distribution (it has been tested on Ubuntu 16.04).

    Python 3 :

    -

    Install system-wide

    +

    Install system-wide

    From PyPI

    sudo apt-get install python-pip # On Ubuntu 16.04, use python3-pip for Python 3
     sudo pip install capsul # On Ubuntu 16.04, use pip3 for Python 3
    @@ -150,7 +150,7 @@ 

    Install system-wide -

    Install user-wide

    +

    Install user-wide

    From PyPI

    sudo apt-get install python-pip # On Ubuntu 16.04, use python3-pip for Python 3
     pip install --user capsul # On Ubuntu 16.04, use pip3 for Python 3
    @@ -167,7 +167,7 @@ 

    Install user-wide -

    Install with virtualenv

    +

    Install with virtualenv

    For Python 3

    sudo apt-get install python3-venv
     python3 -m venv /tmp/venv # Choose your installation directory instead of /tmp/venv
    @@ -242,8 +242,8 @@ 

    Navigation

    \ No newline at end of file diff --git a/objects.inv b/objects.inv index 432326b31747318c9a6cc0c056a9e32bf25c2118..1b83dab6246a805f53699afa2776ba0c4fbc3d3e 100644 GIT binary patch literal 22441 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/`2f{V)?&|@AJMn#RcFtX9ODJqX7JPB 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⪻*mv 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 U`p+Y#(a9DPWF_|h0}iMH*c1{+cK`qY diff --git a/py-modindex.html b/py-modindex.html index 76e196571..b7c725024 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -1,6 +1,6 @@ - + @@ -12,13 +12,13 @@ - - - + + + - - - + + + @@ -614,8 +614,8 @@

    Navigation

    \ No newline at end of file diff --git a/search.html b/search.html index 57303c4b2..ed119b65f 100644 --- a/search.html +++ b/search.html @@ -1,6 +1,6 @@ - + @@ -12,14 +12,14 @@ - - - + + + - - - + + + @@ -163,8 +163,8 @@

    Navigation

    \ No newline at end of file diff --git a/searchindex.js b/searchindex.js index 0c317b519..c5c7515e0 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["api/api", "api/attributes", "api/engine", "api/in_context", "api/index", "api/info", "api/pipeline", "api/plugins", "api/process", "api/qt_apps", "api/qt_gui", "api/sphinxext", "api/study_config", "api/subprocess", "api/utils", "documentation", "index", "installation", "status", "tutorial/capsul_tutorial", "user_guide_tree/advanced_usage", "user_guide_tree/index", "user_guide_tree/xml_spec"], "filenames": ["api/api.rst", "api/attributes.rst", "api/engine.rst", "api/in_context.rst", "api/index.rst", "api/info.rst", "api/pipeline.rst", "api/plugins.rst", "api/process.rst", "api/qt_apps.rst", "api/qt_gui.rst", "api/sphinxext.rst", "api/study_config.rst", "api/subprocess.rst", "api/utils.rst", "documentation.rst", "index.rst", "installation.rst", "status.rst", "tutorial/capsul_tutorial.ipynb", "user_guide_tree/advanced_usage.rst", "user_guide_tree/index.rst", "user_guide_tree/xml_spec.rst"], "titles": ["capsul.api module", "capsul.attributes module", "capsul.engine module", "capsul.in_context module", "CAPSUL programming API documentation", "<no title>", "capsul.pipeline module", "capsul.plugins module", "capsul.process", "capsul.qt_apps module", "capsul.qt_gui module", "capsul.sphinxext module", "capsul.study_config module", "capsul.subprocess module", "capsul.utils module", "Documentation of the CAPSUL tools", "CAPSUL", "CAPSUL installation", "CAPSUL status", "CAPSUL: chain algorithms in pipelines", "Parameters completion", "User Guide", "XML 2.0 specification"], "terms": {"The": [0, 1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 19, 20, 21], "high": 0, "level": [0, 1, 2, 6, 9, 10, 12, 19, 21, 22], "pre": 0, "import": [0, 1, 2, 3, 6, 8, 11, 12, 19, 20, 21, 22], "main": [0, 3, 6, 10, 11, 12, 15, 21], "object": [0, 1, 2, 3, 6, 8, 10, 12, 19, 22], "from": [0, 1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 16, 17, 19, 21, 22], "sever": [0, 2, 6, 8, 19, 20, 21, 22], "sub": [0, 1, 6, 9, 10, 11, 19, 22], "process": [0, 1, 2, 3, 6, 9, 10, 11, 12, 14, 18], "nipypeprocess": [0, 4], "processresult": [0, 4, 12], "filecopyprocess": [0, 4], "interactiveprocess": [0, 4], "pipelin": [0, 1, 2, 8, 9, 10, 11, 12, 16, 17, 18, 20], "plug": [0, 8, 22], "node": [0, 1, 2, 8, 10, 12, 16, 18, 19, 20, 21], "processnod": [0, 4], "pipelinenod": [0, 4], "switch": [0, 1, 4, 10, 18], "optionaloutputswitch": [0, 4], "studyconfig": [0, 1, 2, 4, 6, 8, 13, 18, 19, 20, 21], "capsul_engin": [0, 3, 4, 8, 12], "get_process_inst": [0, 1, 2, 4, 8, 19, 20, 22], "find_process": [0, 22], "soma": [1, 2, 4, 6, 8, 12, 13, 16, 18, 19, 20, 21], "factori": [1, 2, 4, 8, 10, 12, 20], "classfactori": [1, 4], "control": [1, 2, 4, 6, 8, 9, 10, 12, 19, 21], "trait": [1, 2, 4, 6, 8, 10, 11, 12, 17, 19, 22], "has_trait": [1, 2, 4, 6, 8, 12], "hastrait": [1, 2, 4, 6, 8, 12], "ctrait": [1, 2, 4, 6, 8, 12], "chastrait": [1, 2, 4, 6, 8, 12], "contain": [1, 2, 6, 8, 9, 10, 11, 12, 20, 21, 22], "infrastructur": [1, 6, 8, 10], "util": [1, 4, 6, 8, 10, 12, 20], "need": [1, 2, 6, 8, 10, 12, 19, 22], "defin": [1, 2, 6, 8, 10, 11, 12, 19, 21, 22], "us": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 16, 17, 21, 22], "complet": [1, 2, 6, 8, 10, 12, 15, 16, 18, 19, 21, 22], "system": [1, 2, 4, 6, 8, 10, 12, 16, 19, 21], "class_typ": 1, "sourc": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 22], "hold": [1, 2, 6, 19], "an": [1, 2, 3, 6, 8, 10, 11, 12, 13, 14, 16, 19, 20, 21], "schema": [1, 2, 11, 20], "A": [1, 2, 6, 8, 10, 11, 12, 16, 19, 22], "attrinbut": 1, "within": [1, 2, 6, 10, 11], "framework": [1, 12], "ha": [1, 2, 6, 8, 10, 12, 14, 16, 17, 19, 21, 22], "name": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22], "which": [1, 2, 4, 6, 8, 10, 11, 12, 13, 16, 19, 20, 22], "i": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 20, 21, 22], "identifi": [1, 2, 6, 8, 12, 22], "specifi": [1, 2, 6, 8, 10, 12, 19, 20, 21, 22], "arg": [1, 6, 8, 10, 12], "kwarg": [1, 2, 3, 6, 8, 10, 12, 13], "set": [1, 6, 8, 9, 10, 11, 12, 13, 16, 19, 21], "group": [1, 6, 20, 22], "paramet": [1, 2, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 21], "ar": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 20, 22], "initila": [1, 10, 12], "dure": [1, 2, 6, 8, 12, 17], "initi": [1, 2, 6, 8, 9, 10, 11, 12, 19], "creat": [1, 2, 3, 6, 8, 10, 11, 12, 13, 20, 22], "_user_trait": [1, 12], "all": [1, 2, 6, 8, 9, 10, 11, 12, 15, 16, 19, 21, 22], "instanc": [1, 2, 3, 6, 8, 10, 11, 12, 13, 16, 19, 20, 21, 22], "user": [1, 2, 4, 6, 8, 9, 10, 12, 15, 16, 22], "e": [1, 2, 3, 6, 10, 11, 12, 13, 19, 22], "automat": [1, 2, 6, 8, 10, 11, 12, 13, 16, 19, 20, 21, 22], "we": [1, 2, 6, 8, 9, 10, 11, 12, 17], "can": [1, 2, 6, 8, 9, 10, 11, 12, 13, 16, 17, 19, 20, 21, 22], "access": [1, 2, 6, 8, 10, 12, 19, 21], "thi": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22], "user_trait": [1, 12, 19, 20], "method": [1, 2, 6, 8, 9, 10, 11, 12, 19, 20, 22], "If": [1, 2, 6, 8, 10, 12, 13, 14, 19, 21, 22], "directli": [1, 2, 6, 8, 12, 16, 19, 22], "deriv": [1, 6, 10, 12, 19], "procedur": [1, 9, 12, 17], "call": [1, 2, 3, 4, 6, 8, 12, 19, 20, 22], "add_trait": [1, 6, 8, 12, 19], "order": [1, 2, 6, 8, 9, 10, 12, 16, 19, 21, 22], "share": [1, 2, 6, 12, 19, 20], "between": [1, 2, 6, 8, 10, 12, 16, 19], "schema_dict": [1, 20], "base": [1, 2, 4, 6, 8, 9, 10, 12, 16, 17, 20], "manag": [1, 2, 12, 16, 17, 20], "It": [1, 2, 4, 6, 8, 10, 11, 12, 13, 16, 17, 19, 20, 21, 22], "store": [1, 2, 3, 6, 8, 10, 11, 12, 21], "associ": [1, 2, 6, 8, 11, 20], "each": [1, 2, 6, 8, 9, 10, 11, 12, 19, 20, 22], "its": [1, 2, 6, 8, 10, 12, 19, 20, 21, 22], "valu": [1, 2, 6, 8, 10, 12, 14, 18, 19, 20, 22], "global": [1, 2, 6, 8, 12, 19, 22], "whole": [1, 6], "Or": [1, 2], "mai": [1, 2, 6, 8, 10, 12, 13, 17, 19, 20, 21, 22], "individu": [1, 2, 6, 10, 21], "get_parameters_attribut": [1, 20], "To": [1, 2, 3, 6, 8, 12, 19, 21], "programm": [1, 6], "subclass": [1, 2, 6, 8, 12, 19], "some": [1, 2, 3, 6, 8, 9, 10, 17, 19, 22], "should": [1, 2, 6, 8, 10, 12, 19, 20, 21, 22], "regist": [1, 20], "link": [1, 2, 4, 6, 8, 11, 12, 16, 21], "factory_id": [1, 20], "variabl": [1, 2, 3, 6, 8, 10, 12, 13, 19, 20, 22], "see": [1, 2, 4, 6, 10, 12, 19, 21, 22], "advanc": [1, 19], "usag": [1, 4], "doc": [1, 4, 6, 11, 16, 19, 21], "detail": [1, 2, 6], "copi": [1, 6, 8, 22], "with_valu": 1, "true": [1, 2, 3, 6, 8, 9, 10, 11, 12, 14, 19, 20, 21, 22], "overload": [1, 6, 8, 10], "copy_to_singl": 1, "similar": [1, 3, 13, 16, 22], "except": [1, 2, 6, 8, 12, 19, 22], "convert": [1, 6, 8, 9, 11, 19], "list": [1, 2, 6, 8, 9, 10, 11, 12, 19, 20, 22], "singl": [1, 2, 6, 12, 22], "get": [1, 2, 3, 6, 8, 10, 11, 12, 14, 17, 19, 20, 21, 22], "allow": [1, 2, 6, 8, 10, 11, 12, 16, 19, 21, 22], "determin": [1, 2, 6, 8, 10, 19], "path": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 19, 21, 22], "mere": [1, 2], "end": [1, 2, 8, 10, 11, 22], "set_parameter_attribut": [1, 20], "editable_attribut": 1, "fixed_attibute_valu": 1, "allow_list": 1, "str": [1, 2, 6, 8, 9, 10, 11, 12, 13, 14, 19, 20], "input": [1, 2, 6, 8, 10, 12, 19, 20], "output": [1, 2, 6, 8, 9, 10, 12, 19, 20], "them": [1, 2, 6, 8, 9, 10, 11, 14, 16, 22], "id": [1, 2, 6, 8, 12, 19], "dict": [1, 6, 8, 9, 10, 11, 12, 14, 19, 20], "non": [1, 2, 6, 8, 10, 12, 19], "edit": [1, 2, 10, 16], "bool": [1, 2, 6, 8, 9, 10, 11, 12, 19], "default": [1, 2, 6, 8, 9, 10, 11, 12, 13, 17, 19, 22], "transform": [1, 6, 12, 18, 20], "instanti": [1, 2, 6, 8, 12, 22], "get_completion_engin": [1, 19, 20], "none": [1, 2, 6, 8, 9, 10, 11, 12, 13, 14, 19, 22], "context": [1, 2, 3, 6, 12, 19, 22], "given": [1, 2, 3, 6, 8, 10, 12, 13, 15, 20, 21, 22], "study_config": [1, 2, 6, 8, 10, 13, 19, 20, 21], "": [1, 2, 6, 8, 10, 12, 19, 22], "fom": [1, 10, 12, 18, 21], "noth": [1, 2, 6, 12], "configur": [1, 2, 3, 6, 8, 12, 13, 14, 16, 19, 20, 21], "return": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 22], "abl": [1, 2, 9, 19], "perform": [1, 2, 3, 6, 19, 22], "conform": 1, "api": [1, 2, 8, 11, 12, 15, 20, 21], "deal": [1, 2, 12, 16], "iter": [1, 2, 6, 8, 10, 12, 14, 16, 21, 22], "intern": [1, 2, 6, 8, 10, 12], "machineri": [1, 6], "special": [1, 2, 6, 8, 10, 13, 22], "get_iterated_attribut": 1, "step": [1, 2, 6, 10, 19], "self": [1, 2, 6, 8, 10, 11, 12, 19, 20], "capsul_iteration_step": 1, "complete_iteration_step": 1, "complete_paramet": [1, 6, 20], "process_input": 1, "complete_iter": 1, "file": [1, 2, 3, 6, 8, 9, 10, 11, 12, 16, 21, 22], "includ": [1, 2, 6, 10, 11, 12, 21, 22], "both": [1, 2, 6, 8, 19], "regular": [1, 10], "option": [1, 2, 6, 8, 9, 10, 11, 12, 16, 19, 20, 21, 22], "dictionari": [1, 2, 6, 8, 9, 12, 14, 19, 20, 22], "under": [1, 6, 16], "kei": [1, 2, 6, 8, 9, 11, 12, 14, 19, 20, 22], "capsul_attribut": 1, "fals": [1, 2, 6, 8, 9, 10, 11, 12, 19, 22], "insid": [1, 2, 6, 10, 11, 12, 19, 20, 22], "run": [1, 3, 6, 8, 10, 11, 13, 16, 19, 20, 22], "own": [1, 2, 6, 8, 12], "thu": [1, 2, 6, 8, 12, 16, 19], "correctli": [1, 8, 21], "howev": [1, 6, 8, 10, 16, 22], "2": [1, 2, 6, 8, 10, 16, 17, 19, 20], "advantag": [1, 19], "1": [1, 2, 6, 10, 12, 19, 20, 22], "prevent": [1, 6, 10, 12], "modif": [1, 2], "do": [1, 2, 6, 8, 10, 11, 12, 19], "anywai": [1, 6, 10], "done": [1, 2, 3, 6, 8, 12, 13, 19, 20, 21], "again": [1, 6, 19], "when": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 19, 20, 22], "build": [1, 2, 6, 8, 10, 11, 12, 16, 17, 19, 22], "workflow": [1, 2, 6, 8, 10, 12, 16, 18, 19, 20, 21], "pipeline_workflow": [1, 2, 4, 19], "workflow_from_pipelin": [1, 4, 19], "get_attribute_valu": [1, 19, 20], "type": [1, 2, 6, 8, 9, 10, 11, 12, 13, 14, 19, 20], "get_induced_iterative_paramet": 1, "over": [1, 2, 6, 8, 14, 16], "trigger": [1, 6, 10], "through": [1, 2, 6, 8, 9, 10, 12, 19, 20, 21], "impli": 1, "other": [1, 2, 6, 8, 11, 22], "also": [1, 2, 4, 6, 8, 9, 12, 17, 19, 20, 22], "vari": 1, "ex": [1, 6, 8, 20, 21], "chang": [1, 2, 6, 8, 10, 12, 19, 20], "induc": 1, "give": [1, 17, 19, 22], "implement": [1, 2, 6, 8, 12, 20], "specif": [1, 2, 3, 6, 8, 10, 12, 13, 19], "allowed_extens": [1, 22], "possibl": [1, 2, 6, 8, 10, 12, 19, 20, 21, 22], "extens": [1, 6, 11, 22], "allowed_format": 1, "format": [1, 2, 6, 8, 11, 12, 19, 20, 21, 22], "attributes_to_path": [1, 20], "data": [1, 2, 10, 12, 19, 21], "organ": [1, 2, 6, 9, 12, 19, 21], "deleg": [1, 6], "engin": [1, 3, 6, 10, 12, 19, 21], "note": [1, 2, 6, 8, 11, 12, 19, 20], "assign": [1, 2, 6, 8, 10, 19, 20], "perman": 1, "print": [1, 2, 6, 8, 11, 12, 19, 22], "specific_process_attribut": 1, "onc": [1, 2, 6, 8, 20], "have": [1, 2, 6, 8, 9, 10, 12, 20, 21, 22], "up": [1, 6, 10, 12, 19, 20], "install_auto_complet": [1, 19], "least": [1, 13, 19, 21], "provid": [1, 2, 3, 6, 8, 10, 12, 13, 16, 21], "correct": 1, "model": [1, 2, 12, 19], "set_paramet": [1, 8], "get_path_completion_engin": [1, 20], "remove_auto_complet": 1, "attributes_chang": [1, 20], "obj": [1, 12], "old": [1, 6, 22], "new": [1, 2, 3, 4, 6, 8, 10, 12, 13, 17, 21, 22], "callback": [1, 6, 10, 12, 20], "updat": [1, 2, 6, 8, 10, 12], "basic": [1, 6, 8, 9, 11, 16], "after": [1, 6, 8, 12, 19, 20, 21], "check": [1, 2, 6, 8, 10, 12, 13, 14, 19], "normal": [1, 2, 3, 6, 8, 9, 22], "been": [1, 2, 6, 8, 10, 12, 13, 17, 19, 22], "doe": [1, 2, 6, 8, 12, 16, 19, 21, 22], "merg": [1, 12], "children": [1, 6, 22], "static": [1, 2, 6, 8, 12], "queri": [1, 2, 8], "overrid": 1, "monitor": [1, 12, 16], "influenc": [1, 2, 12], "recomput": 1, "nodes_selection_chang": 1, "remove_attribut": 1, "clear": [1, 12], "cach": [1, 12, 19], "rebuild": 1, "gener": [1, 2, 4, 6, 8, 11, 12, 19, 20, 21, 22], "attach": [1, 6, 8, 19, 22], "remov": [1, 2, 6, 8, 10, 11, 12, 19], "auto": [1, 19, 20, 21], "revert": 1, "remove_switch_observ": 1, "notif": [1, 20], "previous": [1, 2, 6], "listen": 1, "state": [1, 2, 6, 10, 19], "underli": [1, 6, 10], "quit": 1, "incomplet": 1, "specisl": 1, "propag": [1, 6, 10, 19], "select": [1, 2, 6, 8, 10, 12, 13, 19, 22], "correspond": [1, 2, 6, 8, 12, 14, 21, 22], "thei": [1, 2, 6, 8, 12, 16, 19, 20, 21, 22], "retriev": [1, 2, 12], "otherwis": [1, 2, 6, 8, 9, 10, 11, 12, 19, 22], "countrari": 1, "tri": 1, "install_switch_observ": 1, "observ": 1, "setup": [1, 2, 3, 8, 10, 12, 17], "open_values_attribut": 1, "open": [1, 8, 10, 12, 16, 19], "restrict": [1, 6, 10], "directori": [1, 2, 6, 8, 10, 11, 12, 13, 17, 19, 20, 21, 22], "config_modul": [1, 4, 19], "fom_config": [1, 4], "fomconfig": [1, 4, 19, 20], "default_modul": [1, 2, 12, 19], "brainvisaconfig": [1, 4, 19], "update_study_configur": [1, 12], "json": [1, 2, 4, 6, 8, 10, 12, 19, 20, 21, 22], "onli": [1, 2, 3, 6, 8, 10, 12, 16, 19, 22], "morphologist": [1, 8, 11, 20, 21], "But": [1, 2, 6, 17, 19, 22], "creation": [1, 6, 19, 22], "handl": [1, 2, 6, 10, 12, 19, 20], "via": [1, 2, 6, 8, 12, 18, 19, 21, 22], "string": [1, 2, 6, 8, 9, 10, 11, 12, 19, 20], "By": [1, 2, 6, 8, 12], "create_attributes_with_fom": 1, "path_attribut": 1, "filenam": [1, 6, 8, 9, 10, 11, 12, 19, 20, 22], "find": [1, 2, 6, 9, 10, 12, 14, 19, 21, 22], "jsondbengin": [2, 4], "databaseengin": [2, 4], "populsedbengin": [2, 4], "interact": [2, 8, 12], "In": [2, 6, 8, 10, 12, 17, 19, 20, 21, 22], "execut": [2, 3, 6, 8, 9, 10, 11, 12, 13, 16, 18, 19, 22], "mandatori": [2, 3, 6, 8, 9, 10, 11, 12, 14, 16, 19, 22], "Such": [2, 6, 12], "database_loc": 2, "config": [2, 6, 8, 12, 19, 20, 21], "entri": [2, 6], "point": [2, 21, 22], "softwar": [2, 3, 12, 13, 16, 19, 21, 22], "metadata": [2, 6], "environ": [2, 3, 6, 8, 13, 16, 19, 22], "possibli": [2, 6], "remot": [2, 8, 12, 16, 19, 21, 22], "must": [2, 3, 6, 8, 11, 12, 13, 19, 20, 21, 22], "For": [2, 3, 6, 8, 9, 12, 13, 17, 19, 20, 22], "ce": [2, 3, 8, 19], "necessari": [2, 8, 17, 19, 22], "modifi": [2, 6, 8, 10, 12, 19, 22], "appli": [2, 10, 12], "nipyp": [2, 8, 10, 11, 12, 14, 16, 19], "explicitli": [2, 6, 19, 22], "activ": [2, 3, 6, 10, 20, 22], "follow": [2, 6, 10, 12, 13, 17, 19, 21, 22], "code": [2, 6, 8, 10, 11, 12, 22], "here": [2, 6, 9, 12, 19, 22], "select_configur": 2, "ani": [2, 3, 6, 8, 9, 10, 11, 13, 16, 19, 21, 22], "replac": [2, 4, 6, 8, 11, 12, 13, 19, 21, 22], "older": [2, 21], "still": [2, 4, 6, 8, 13, 16, 22], "present": [2, 6, 8, 19], "backward": [2, 10], "compat": [2, 6, 12, 16, 19, 22], "disappear": 2, "later": [2, 6, 8], "version": [2, 6, 8, 12, 13, 14, 17, 19, 22], "exist": [2, 6, 8, 10, 11, 12, 19, 20, 22], "synchron": 2, "mean": [2, 6, 10, 11, 19, 22], "wai": [2, 3, 6, 8, 12, 19, 22], "item": [2, 6, 9, 12, 22], "vice": 2, "versa": 2, "move": [2, 8, 10], "being": [2, 6], "wrapper": [2, 4, 8, 10], "independ": [2, 16, 20, 22], "ax": [2, 10], "addit": [2, 6, 8, 9, 12, 19, 21, 22], "typic": [2, 6, 8, 12, 22], "repres": [2, 6, 8, 10, 19, 22], "comput": [2, 6, 8, 12, 16, 21, 22], "resourc": [2, 6, 8, 12, 16], "connect": [2, 6, 8, 10, 12, 16, 19, 22], "server": [2, 21], "differ": [2, 6, 8, 9, 12, 19, 20, 21], "client": [2, 12, 19], "one": [2, 6, 8, 10, 11, 12, 17, 19, 21, 22], "avail": [2, 6, 10, 12, 20, 21, 22], "extern": [2, 3, 6, 12, 19, 21], "etc": [2, 3, 6, 10, 12, 19, 20, 21], "so": [2, 6, 10, 12, 19], "section": [2, 4, 8, 9, 10, 19], "split": [2, 6, 9], "As": [2, 6, 19, 22], "littl": 2, "bit": [2, 6, 8], "complex": [2, 16], "first": [2, 3, 6, 8, 12, 13, 19], "what": [2, 6, 19], "maintain": 2, "common": [2, 16], "work": [2, 6, 8, 12, 13, 15, 16, 19, 20, 21, 22], "local": [2, 8, 12, 16, 19, 21], "machin": [2, 8, 19], "especi": 2, "who": 2, "either": [2, 6, 8, 10, 12, 16, 17, 19, 21, 22], "persist": [2, 12], "found": [2, 9, 10, 12, 14, 19, 21], "occur": 2, "session": 2, "block": [2, 6, 19, 22], "global_config": 2, "whenev": [2, 6], "ad": [2, 3, 6, 9, 10, 11, 13, 19, 22], "oper": [2, 6, 12], "runtim": [2, 6, 8], "ones": [2, 6, 8, 16, 22], "requir": [2, 6, 8, 12, 17, 19, 20, 22], "request": [2, 6, 8], "element": [2, 3, 6, 8, 9, 12, 13, 19, 20], "per": [2, 22], "amongst": [2, 6, 19], "dedic": 2, "topic": 2, "add": [2, 6, 8, 9, 10, 11, 12, 19, 22], "tabl": [2, 8], "program": [2, 8, 12, 15, 16, 21], "come": [2, 6], "predefin": 2, "constructor": [2, 6, 8, 9, 10, 12], "instead": [2, 6, 8, 12, 17], "computing_resourc": 2, "connected_to": 2, "detailed_inform": 2, "execution_id": 2, "big": 2, "inform": [2, 6, 8, 12, 14, 19, 22], "about": [2, 6, 8, 21, 22], "disconnect": [2, 6, 12, 22], "dispos": 2, "condit": 2, "current": [2, 6, 8, 9, 10, 12, 16, 19], "free": [2, 8, 16], "somaworkflow": 2, "keep": [2, 6, 8, 12, 22], "succeed": [2, 12], "fail": [2, 6, 8, 12, 19, 22], "start": [2, 11, 19, 21, 22], "rais": [2, 6, 12, 13, 19, 22], "get_iteration_pipelin": [2, 12, 20], "pipeline_nam": [2, 12], "node_nam": [2, 6, 10, 12], "process_or_id": [2, 12], "iterative_plug": [2, 6, 12, 19, 20], "do_not_export": [2, 6, 12], "make_opt": [2, 6, 12], "descript": [2, 6, 8, 9, 10, 11, 12, 15, 19], "pass": [2, 6, 8, 9, 12, 19, 21, 22], "add_iterative_process": [2, 6, 10, 12, 19, 20], "offici": 2, "now": [2, 8, 11, 12, 22], "simpli": [2, 12, 19, 22], "futur": [2, 6, 15], "import_config": 2, "config_dict": 2, "cont_on_error": 2, "compar": [2, 12], "load": [2, 6, 8, 10, 11, 12, 19, 21], "interrupt": 2, "try": [2, 10, 12, 13, 19, 22], "stop": [2, 6], "wait": [2, 22], "termin": [2, 22], "load_modul": [2, 12], "module_nam": [2, 6, 9, 11, 14, 22], "alreadi": [2, 6, 10, 12, 19], "case": [2, 6, 8, 10, 11, 13, 19, 21, 22], "fulli": [2, 22], "qualifi": [2, 22], "accept": [2, 21, 22], "statement": [2, 3], "two": [2, 6, 8, 10, 12, 13, 19, 22], "below": [2, 6, 21, 22], "def": [2, 6, 8, 12, 19, 20, 22], "set_environ": 2, "befor": [2, 6, 8, 10, 12, 17, 19, 22], "read": [2, 8, 12, 19], "save": [2, 6, 8, 10, 12, 16, 19, 21, 22], "receiv": [2, 6], "would": [2, 6, 10, 12, 22], "These": [2, 3, 6, 17, 20, 22], "in_context": [2, 19], "appropri": [2, 3, 6, 13, 19], "locat": [2, 8, 11, 12, 21, 22], "raise_for_statu": 2, "statu": [2, 6, 8, 10, 15, 16, 19], "histori": 2, "get_pipelin": 2, "asynchron": 2, "todo": [2, 6, 18], "content": [2, 6, 8, 11, 12, 21], "restart": 2, "time": [2, 6, 8, 10, 12, 19, 21], "yet": 2, "tupl": [2, 6, 8, 10, 12], "actual": [2, 6, 8, 10, 11, 19, 22], "insert": [2, 6, 9, 10, 12], "small": [2, 19, 20], "int": [2, 6, 8, 10, 11, 12, 19, 22], "simpl": [2, 6, 10, 16, 19, 22], "queu": 2, "error": [2, 6, 8, 9, 12, 13, 22], "timeout": 2, "selected_configur": 2, "activate_modul": 2, "assum": [2, 6], "properli": [2, 12, 19], "facrori": 2, "memori": [2, 4, 6, 10], "json_valu": 2, "secon": 2, "computing_config": 2, "where": [2, 3, 6, 8, 9, 10, 12, 13, 17, 22], "search": [2, 9, 10, 19, 20, 21], "sqlite": 2, "test": [2, 6, 12, 13, 17, 19, 20, 22], "populse_db": 2, "url": [2, 9, 21], "json_filenam": 2, "set_json_valu": 2, "named_directori": 2, "absolut": [2, 12, 21, 22], "path_metadata": 2, "param": [2, 6, 8], "uniqu": [2, 6, 16], "c": [2, 6, 19], "set_named_directori": 2, "alwai": [2, 22], "spm_templat": 2, "custom": [2, 4, 6, 8, 9, 10, 12, 19, 22], "real": [2, 6, 8, 9, 10, 19], "set_path_metadata": 2, "result": [2, 6, 8, 10, 12, 19, 22], "check_path": 2, "serializ": [2, 12], "database_engin": 2, "date": 2, "concret": 2, "pair": [2, 6, 12], "eventu": [2, 3, 8, 12, 13, 19], "valueerror": [2, 6, 12], "Then": [2, 6, 11, 12], "name_directori": 2, "rel": [2, 11, 12, 21], "unless": [2, 6, 8], "begin": 2, "edition_widget": 2, "config_id": 2, "gui": [2, 6, 10, 15, 16, 18, 19, 21], "settingseditor": 2, "check_configur": 2, "valid": [2, 3, 6, 8, 12, 13, 19], "brainvisa": [2, 8, 12, 16, 19, 20, 21], "messag": [2, 6, 8, 9, 12, 13, 19], "everyth": [2, 13], "good": [2, 13, 22], "check_notably_invalid_config": 2, "conf": [2, 11], "obvious": 2, "invalid": [2, 6, 12], "fill": [2, 6, 8, 9, 12, 16], "complete_configur": 2, "update_fom": 2, "env": [2, 3, 12, 19], "everi": [2, 6, 12], "slightli": 2, "cannot": [2, 6, 8, 19, 22], "librari": [2, 9, 15, 16, 20], "sometim": 2, "prepar": 2, "side": [2, 6, 20], "hard": 2, "job": [2, 6, 8, 10, 12, 19], "reason": [2, 11], "_run_process": [2, 8, 19], "get_commandlin": [2, 8, 19], "bother": [2, 6], "command": [2, 3, 6, 8, 9, 13, 17, 19], "sy": [2, 11, 19], "short": [2, 11], "usr": [2, 19], "bin": [2, 17], "python3": [2, 17, 19], "produc": [2, 6, 22], "declar": [2, 8, 11, 22], "like": [2, 3, 6, 8, 12, 13, 19, 22], "clariti": 2, "workflowexecutionerror": 2, "workflow_id": 2, "workflow_kept": 2, "verbos": [2, 12, 19], "refer": [2, 6, 12, 19, 22], "workflowcontrol": [2, 12, 19], "choos": [2, 10, 17], "featur": [2, 6, 10, 12, 15, 18, 19, 21, 22], "make": [2, 6, 8, 11, 12, 16, 19, 20, 22], "classic": [2, 8], "same": [2, 6, 8, 16, 21, 22], "8": [2, 19, 22], "12": [2, 6, 8, 19], "variou": [2, 16, 19], "could": [2, 12, 19], "definit": [2, 6, 8, 18, 20, 21, 22], "modular": [2, 19, 20], "well": [2, 17, 19], "known": 2, "instal": [2, 3, 6, 8, 10, 11, 13, 16, 19, 21], "separ": [2, 3, 6, 8, 10, 11, 12, 22], "depend": [2, 6, 8, 10, 12, 16, 17, 19], "standalon": [2, 6, 8, 12], "therefor": [2, 17, 22], "express": [2, 13, 22], "greater": [2, 19, 22], "equal": [2, 10], "g": [2, 3, 6, 10, 11, 12, 13, 22], "cluster": [2, 16], "wa": [2, 6, 8, 13, 19], "storag": 2, "languag": [2, 11, 16], "chosen": 2, "choic": 2, "document": [2, 6, 8, 9, 11, 17, 19, 22], "confiur": 2, "flag": 2, "boolean": [2, 6, 8], "record": [2, 6, 10], "There": [2, 8, 9, 12, 19, 22], "full": [2, 6, 8, 10, 19], "anoth": [2, 6, 10, 12, 17, 19, 22], "sinc": [2, 6, 8, 10, 12, 22], "claus": 2, "new_config": [2, 12], "spm12": 2, "get_all_environ": 2, "abbrevi": 2, "written": [2, 6, 8, 11, 12, 16], "prefix": [2, 3, 6, 8, 11, 13, 19, 21, 22], "dot": [2, 6, 10, 22], "check_invalid_mod": 2, "whose": [2, 11, 12, 22], "activad": 2, "consid": [2, 12, 19], "filter": [2, 6, 9, 10, 12, 19], "global_environ": 2, "miss": [2, 6, 10, 22], "discard": [2, 22], "exampl": [2, 6, 9, 12, 19, 20], "than": [2, 10, 19, 22], "my_environ": 2, "settingssess": 2, "populse_sess": 2, "module_notifi": 2, "modifict": 2, "__enter__": 2, "collection_nam": 2, "collect": 2, "collection_prefix": 2, "congig": 2, "ensur": [2, 8, 12, 19], "most": [2, 8, 12, 16, 19], "more": [2, 4, 6, 10, 19, 21, 22], "match": [2, 6, 8, 9, 10, 12, 22], "settingsconfig": 2, "ensure_module_field": 2, "field": 2, "sure": 2, "three": [2, 9, 22], "mut": 2, "config_id_field": 2, "random": 2, "uuid": [2, 12], "uuid4": 2, "remove_config": 2, "idenfifi": 2, "fslpopen": [3, 4], "subprocess": [3, 11, 19], "popen": [3, 4], "spmpopen": 3, "function": [3, 10, 11, 15, 16, 19, 21], "check_cal": [3, 4], "check_output": [3, 4, 11], "capsulengin": [3, 4, 6, 8, 12], "fsl_check_cal": [3, 19], "bet": [3, 13, 19], "h": [3, 21], "take": [3, 6, 8, 12, 13, 19, 20], "account": [3, 6, 12, 13, 19], "executioncontext": 3, "class": [3, 11, 15, 19, 20, 21, 22], "somewher": [3, 20], "myimag": 3, "nii": [3, 12, 19, 21], "arguent": [3, 13], "line": [3, 9, 10, 11, 13, 19, 22], "without": [3, 6, 8, 11, 12, 13, 19, 22], "nor": [3, 6, 8, 13, 19], "neurodebian": [3, 13, 19], "ubuntu": [3, 13, 17, 19], "16": [3, 13, 17, 19], "04": [3, 13, 17, 19], "fsl5": [3, 13, 19], "0": [3, 6, 8, 10, 12, 13, 19, 20], "equival": [3, 12, 13, 20, 22], "python": [3, 6, 8, 10, 11, 12, 13, 14, 16, 17, 20, 21], "fsl_call": 3, "fsl_check_output": 3, "fsl_command_with_environ": [3, 4], "use_prefix": 3, "use_runtime_env": 3, "usinfg": 3, "func": [3, 6], "fsl_env": 3, "altern": [3, 6, 21], "script": [3, 6, 8, 12, 21], "bash": 3, "spm_check_cal": 3, "spm_batch_filenam": 3, "batch": [3, 13], "matlab": [3, 8, 12, 13], "spm_call": 3, "spm_check_output": 3, "guid": [4, 15], "attributes_factori": 4, "attributesfactori": 4, "attributes_schema": [4, 12, 19, 20], "attributesschema": [4, 20], "editableattribut": [4, 20], "processattribut": [4, 20], "completion_engine_factori": [4, 19, 20], "builtinprocesscompletionenginefactori": 4, "completion_engin": [4, 19, 20], "processcompletionenginefactori": 4, "completion_engine_iter": 4, "processcompletionengineiter": 4, "processcompletionengin": [4, 19, 20], "switchcompletionengin": 4, "pathcompletionengin": [4, 20], "pathcompletionenginefactori": [4, 20], "fom_completion_engin": 4, "fomprocesscompletionengin": [4, 19], "fompathcompletionengin": 4, "fomprocesscompletionengineiter": 4, "database_json": 4, "databas": [4, 8], "database_populs": 4, "pipeline_construct": 4, "pipelineconstructor": 4, "constructedpipelin": 4, "pipeline_nod": 4, "tempfil": [4, 6, 12, 19], "process_iter": [4, 8], "processiter": [4, 8], "topological_sort": 4, "graphnod": 4, "graph": [4, 6, 10, 20], "custom_nod": 4, "strcat_nod": 4, "strcatnod": 4, "cv_node": 4, "crossvalidationfoldnod": 4, "loo_nod": 4, "leaveoneoutnod": [4, 21], "map_nod": 4, "mapnod": 4, "reduce_nod": 4, "reducenod": 4, "processmeta": [4, 19], "metahastrait": [4, 8], "runprocess": [4, 21], "processparamerror": 4, "xml": [4, 10, 12, 16, 19], "xmlprocess": 4, "qt_app": [4, 10], "applic": [4, 6, 10, 19, 20], "pyqt5": [4, 10, 16], "qtwidget": [4, 10], "qapplic": [4, 10, 19, 20], "qtgui": [4, 10, 19], "qguiapplic": [4, 10], "qtcore": [4, 10], "qcoreappl": [4, 10], "qobject": [4, 10], "sip": [4, 10], "simplewrapp": [4, 10], "emittingstream": 4, "window": [4, 10, 19], "myquiload": 4, "board_widget": 4, "boardwidget": 4, "qwidget": [4, 10], "qpaintdevic": [4, 10], "activation_inspector": 4, "activationinspectorapp": 4, "activationinspector": 4, "attributed_process_widget": [4, 19, 20], "attributedprocesswidget": [4, 19, 20], "links_debugg": 4, "capsullinkdebuggerview": 4, "pipeline_developer_view": 4, "colortyp": 4, "qgraphicspolygonitem": [4, 10], "qabstractgraphicsshapeitem": [4, 10], "qgraphicsitem": [4, 10], "embeddedsubpipelineitem": 4, "qgraphicsproxywidget": [4, 10], "qgraphicswidget": [4, 10], "qgraphicsobject": [4, 10], "qgraphicslayoutitem": [4, 10], "boxitem": 4, "qgraphicsrectitem": [4, 10], "nodegwidget": 4, "handleitem": 4, "qgraphicspathitem": [4, 10], "pipelinescen": 4, "qgraphicsscen": [4, 10], "pipelinedeveloperview": 4, "qgraphicsview": [4, 10], "qabstractscrollarea": [4, 10], "qframe": [4, 10], "pipeline_file_warning_widget": 4, "pipelinefilewarningwidget": 4, "qsplitter": [4, 10], "pipeline_user_view": 4, "pipelineuserview": 4, "viewer_widget": 4, "viewerwidget": 4, "sphinxext": [4, 21], "layoutdocgen": [4, 11], "layouthelperwrit": [4, 11], "pipelinedocgen": [4, 11], "pipelinehelpwrit": [4, 11], "usecasesdocgen": [4, 11], "usecaseshelperwrit": [4, 11], "studyconfigmodul": 4, "unmemorizedprocess": 4, "memorizedprocess": 4, "capsulresultencod": 4, "encod": [4, 12], "jsonencod": [4, 12], "capsulresultdecod": [4, 12], "decod": [4, 12], "jsondecod": [4, 12], "attributes_config": 4, "attributesconfig": [4, 20], "brainvisa_config": [4, 19], "freesurfer_config": [4, 19], "freesurferconfig": [4, 19], "fsl_config": [4, 19], "fslconfig": [4, 19], "matlab_config": 4, "matlabconfig": [4, 19], "nipype_config": 4, "nipypeconfig": [4, 19], "smartcaching_config": 4, "smartcachingconfig": [4, 19], "somaworkflow_config": 4, "resourcecontrol": 4, "somaworkflowconfig": [4, 6, 19], "spm_config": 4, "spmconfig": [4, 19], "v3": [4, 8], "obsolet": [4, 7, 8, 12, 13], "in_process": 4, "v2": 4, "check_fsl_configur": 4, "check_configuration_valu": 4, "auto_configur": 4, "find_spm": 4, "check_spm_configur": 4, "spm_command": 4, "workflow_run": 4, "dot_graph_from_pipelin": 4, "save_dot_graph": 4, "save_dot_imag": 4, "nodes_with_existing_output": [4, 10], "nodes_with_missing_input": [4, 10], "disable_runtime_steps_with_existing_output": 4, "where_is_plug_value_from": 4, "plugin": 4, "autoexport_nodes_paramet": [6, 20], "pipeline_definit": [6, 19], "mypipelin": 6, "add_process": [6, 10, 19], "proc1": [6, 19], "my_toolbox": 6, "my_process1": 6, "proc2": [6, 19], "my_process2": 6, "add_switch": [6, 10, 19], "main_switch": 6, "in1": 6, "in2": 6, "out1": [6, 19], "out2": 6, "add_link": [6, 19], "in1_switch_out1": 6, "in1_switch_out2": 6, "in2_switch_out1": 6, "in2_switch_out2": 6, "inner": [6, 12], "export": [6, 22], "parent": [6, 8, 9, 10, 12, 21], "proc1_input": 6, "undefin": [6, 8, 10, 19, 20, 22], "made": 6, "part": [6, 12, 22], "leaf": [6, 9, 10], "brick": 6, "reus": [6, 12, 19], "mechan": [6, 21], "branch": 6, "py": [6, 11, 12, 17], "parallel": [6, 8, 12, 16, 19, 21], "you": [6, 10, 11, 12, 19, 21], "rather": [6, 8, 9], "enabl": [6, 10, 19, 22], "disabl": [6, 10, 16, 19, 22], "form": [6, 21, 22], "chain": [6, 16], "inact": [6, 10], "unselect": 6, "orient": [6, 21], "togeth": 6, "intend": 6, "partial": 6, "describ": [6, 8, 12, 19], "abov": [6, 8, 19, 20, 21, 22], "add_pipeline_step": 6, "act": 6, "highest": 6, "taken": [6, 8, 12], "higher": [6, 10], "becaus": [6, 8, 19], "sens": 6, "add_custom_nod": 6, "add_optional_output_switch": [6, 10, 19], "add_processes_select": 6, "remove_link": 6, "export_paramet": [6, 19], "define_pipeline_step": 6, "define_groups_as_step": 6, "remove_pipeline_step": 6, "enable_all_pipeline_step": 6, "disabled_pipeline_steps_nod": 6, "get_pipeline_step_nod": 6, "find_empty_paramet": 6, "count_item": 6, "workflow_list": 6, "oder": 6, "workflow_repr": 6, "represent": [6, 8, 10, 11, 12, 16, 19, 22], "node_i": 6, "help": [6, 8, 10, 12, 16, 19, 21], "get_input_spec": [6, 8, 19], "get_output_spec": [6, 8, 19], "node_typ": [6, 12], "built": [6, 8, 10, 11, 12, 20, 21, 22], "re": [6, 12], "obtain": [6, 12], "configure_nod": [6, 12], "desir": [6, 12], "suppos": [6, 12, 22], "want": [6, 8, 9, 10, 11, 12, 19], "inputs_to_copi": [6, 8], "inputs_to_clean": [6, 8], "temporari": [6, 8, 10, 12, 19, 22], "weak_link": [6, 19, 22], "allow_export": 6, "destin": [6, 8], "forc": [6, 8, 16, 22], "Its": [6, 8, 20], "shape": [6, 8], "other_nod": 6, "itself": [6, 8, 19], "source_nod": [6, 10], "source_plug_nam": 6, "dest_nod": [6, 10], "dest_plug_nam": 6, "properti": [6, 8, 11, 12, 22], "doesn": 6, "t": [6, 12, 19], "exactli": [6, 22], "conveni": [6, 12], "accord": [6, 12], "kind": 6, "meant": [6, 9], "b": [6, 12, 16, 19, 22], "directlti": 6, "empti": [6, 8, 10, 12, 14, 19, 22], "left": [6, 12, 19, 22], "hidden": [6, 10], "_none": 6, "combin": [6, 22], "input_switch_output": 6, "node1": [6, 19], "step_nam": 6, "define_step": 6, "logic": [6, 10], "regard": [6, 16], "stream": 6, "pure": [6, 19], "virtual": 6, "inactiv": 6, "those": [6, 12, 13], "sequenc": [6, 10, 19], "skip_invalid": 6, "offer": [6, 12], "algorithm": [6, 16], "tell": [6, 8, 19], "interf": 6, "rest": [6, 11, 20, 22], "mark": [6, 10, 22], "silent": 6, "gather": 6, "recommend": [6, 9, 11, 22], "were": 6, "method1": 6, "module1": 6, "method2": 6, "module2": 6, "method3": 6, "module3": 6, "input_param": 6, "n": [6, 12, 19], "select_method": [6, 19, 22], "method1_switch_output": 6, "method2_switch_output": 6, "method3_switch_output": 6, "last": [6, 19], "graphic": [6, 9, 10, 16, 19, 22], "editor": [6, 10], "care": [6, 8], "don": [6, 12, 19], "throw": 6, "selection_paramet": 6, "selection_group": 6, "selector": 6, "mutual": 6, "exclus": 6, "ordereddict": 6, "group_nam": 6, "1st": 6, "export_switch": 6, "output_typ": 6, "switch_valu": [6, 19, 22], "opt_nod": 6, "behaviour": [6, 22], "size": [6, 8, 10, 12, 19], "standard": [6, 10, 12, 13, 19, 22], "length": 6, "number": [6, 11, 12, 19, 22], "relat": 6, "group_switch": 6, "4": [6, 11, 16, 19, 22], "all_nod": 6, "include_opt": [6, 20], "preserv": 6, "useless": 6, "probabl": [6, 8, 12], "call_process_method": 6, "process_nam": [6, 8, 22], "check_requir": [6, 8], "message_list": [6, 8], "reimplement": 6, "compare_to_st": 6, "pipeline_st": 6, "human": 6, "readabl": 6, "explain": 6, "my_process": 6, "count": [6, 12], "nodes_count": 6, "processes_count": 6, "plugs_count": 6, "params_count": 6, "links_count": 6, "enabled_nodes_count": 6, "enabled_procs_count": 6, "enabled_links_count": 6, "portion": 6, "basi": [6, 12, 16], "preprocess": 6, "bias_correct": 6, "histo_analysi": 6, "brain_extract": 6, "brain_segment": 6, "hemispheres_split": 6, "pipeline_step": [6, 21], "prefer": [6, 8], "sorteddictionari": 6, "disabled_nod": 6, "add_step": 6, "reset": [6, 12], "plug_nam": 6, "pipeline_paramet": 6, "is_en": 6, "is_opt": [6, 19], "allow_existing_plug": 6, "weak": [6, 10], "fixm": 6, "track": [6, 8, 10], "3": [6, 12, 16, 17, 19, 20, 21], "parameter_nam": [6, 22], "get_processes_selection_group": 6, "involv": [6, 12, 19, 20], "get_processes_selection_nod": 6, "get_processes_select": 6, "process_select": 6, "install_links_debug_handl": 6, "log_fil": [6, 8], "handler": [6, 9, 10], "debug": [6, 9, 10, 19], "problem": [6, 19], "write": [6, 8, 11, 12, 19], "prepend": 6, "event": [6, 10], "parse_link": 6, "pars": [6, 8, 11, 12], "node_from": 6, "node_to": 6, "plug1": 6, "node2": [6, 19], "plug2": 6, "parse_paramet": 6, "structur": [6, 10, 12, 16, 19, 22], "compos": [6, 22], "propagate_metadata": 6, "forbid_complet": 6, "avoid": [6, 8, 19, 22], "manuy": 6, "overridden": [6, 12], "remove_nod": 6, "remove_trait": 6, "rename_nod": 6, "old_node_nam": 6, "new_node_nam": 6, "reorder_trait": 6, "reorder": 6, "set_study_config": [6, 8, 20], "null": [6, 8, 22], "uninstall_links_debug_handl": 6, "update_nodes_and_plugs_activ": 6, "rule": [6, 10], "workflow_graph": 6, "remove_disabled_step": 6, "remove_disabled_nod": 6, "workflow_ordered_nod": 6, "know": 6, "brief": 6, "helper": [6, 8, 19], "io": [6, 19, 21], "serial": [6, 12, 19], "redefin": 6, "replai": [6, 10], "_pipeline_definition_cal": 6, "dynam": [6, 8, 10, 12, 18], "construct": [6, 12], "readi": 6, "attribut": [6, 8, 10, 12, 14, 16, 18, 19, 21, 22], "subtyp": 6, "add_subpipeline_link": 6, "subpipelin": 6, "add_itconstructedpipelineerative_process": 6, "set_document": 6, "set_node_en": 6, "set_node_posit": 6, "x": [6, 19, 22], "y": [6, 19, 22], "posit": [6, 10, 19, 21, 22], "set_scene_scale_factor": 6, "scale": [6, 10], "view": [6, 10, 18, 19, 22], "factor": [6, 10], "tune": 6, "inherit": [6, 8, 20], "usabl": 6, "reload": [6, 19], "few": [6, 9, 20], "get_node_inst": 6, "reinstanti": 6, "configure_control": 6, "cl": [6, 8], "classmethod": [6, 8], "configured_control": 6, "build_nod": 6, "conf_control": 6, "full_nam": 6, "among": [6, 22], "top": [6, 10], "set_callback_on_plug": 6, "get_plug_valu": 6, "set_plug_valu": 6, "get_trait": [6, 12], "against": [6, 8], "unsatisfi": [6, 8], "understand": [6, 8, 10], "met": [6, 8], "cleanup": 6, "delet": [6, 8, 10, 12, 22], "cyclic": 6, "fire": 6, "exust": 6, "perhap": 6, "get_connections_through": 6, "opaqu": 6, "connected_plug": 6, "get_missing_mandatory_paramet": [6, 8], "exclude_link": 6, "report": [6, 12], "get_study_config": [6, 8, 20], "belong": [6, 8, 12], "trait_nam": [6, 12], "is_job": 6, "remove_callback_from_plug": 6, "f": [6, 8, 19], "spm": [6, 8, 10, 12, 19, 22], "protect": [6, 8], "tristat": [6, 8], "technic": 6, "second": [6, 8, 12], "consequ": [6, 22], "_switch_": [6, 22], "interfac": [6, 8, 9, 10, 11, 12, 13, 14, 16, 19, 22], "has_default_valu": 6, "indic": [6, 22], "even": [6, 19], "links_to": 6, "successor": 6, "is_weak": 6, "links_from": 6, "predecessor": 6, "adjac": 6, "is_parameter_protect": 6, "whether": [6, 19, 22], "protect_paramet": 6, "lock": 6, "just": [6, 8, 12, 19, 20], "manual": 6, "controllerwidget": [6, 10, 19], "tweak": 6, "protected_paramet": 6, "unprotect": 6, "unprotect_paramet": 6, "commut": 6, "sai": 6, "my_switch": 6, "param1": [6, 8], "param2": [6, 8], "node1_switch_param1": 6, "node1_switch_param2": 6, "2nd": 6, "node2_switch_param1": 6, "node2_switch_param2": 6, "reflect": [6, 10], "mani": [6, 19], "visibl": [6, 10, 22], "outsid": [6, 22], "world": 6, "_switch_valu": 6, "_output": 6, "_switch_chang": 6, "_anytrait_chang": 6, "input_nam": 6, "output_nam": 6, "input_plug_nam": 6, "output_plug_nam": 6, "miscellan": 6, "affect": 6, "aim": [6, 19], "overwrit": [6, 8], "downstream": 6, "remain": [6, 10], "nodes_s": 6, "use_nodes_po": 6, "include_io": 6, "enlarge_box": 6, "graphviz": [6, 10], "box": [6, 9, 10, 16], "width": [6, 10], "height": [6, 10], "node_posit": [6, 10], "ignor": [6, 22], "float": [6, 10, 12, 19, 22], "enlarg": 6, "amount": 6, "bigger": 6, "dot_graph": 6, "edg": 6, "prop": 6, "source_node_id": 6, "dest_node_id": 6, "feed": 6, "restor": 6, "export_to_dict": 6, "almost": 6, "recurs": [6, 9, 11, 12, 22], "aspect": [6, 20], "state_dict": 6, "find_nod": 6, "node_chain": 6, "go": [6, 9, 10], "find_plug_connection_destin": 6, "find_plug_connection_sourc": 6, "dest": [6, 19, 22], "param_nam": 6, "parent_nod": 6, "look": [6, 10, 12, 21, 22], "incom": [6, 12], "dir": 6, "map": [6, 8, 12], "flat_dir": 6, "flat": 6, "exclude_inact": 6, "exclude_input": 6, "filesystem": [6, 8, 12], "mayb": 6, "skip": [6, 12], "carri": 6, "appear": [6, 9, 10], "eras": 6, "clean": [6, 8, 12], "selected_nod": 6, "file_nam": 6, "might": 6, "inaccur": 6, "color": [6, 10], "style": [6, 22], "displai": [6, 8, 10, 16, 19, 22], "5": [6, 19], "link_prop": 6, "rgb": 6, "solid": 6, "box_color": 6, "background_fill_color": 6, "dark_color": 6, "imag": [6, 11, 19, 20, 22], "obatain": 6, "nodesep": 6, "rankdir": 6, "tb": 6, "hide": [6, 10], "guess": [6, 10], "uphil": 6, "unconnect": [6, 22], "ascend": 6, "wall": 6, "origin": [6, 10, 22], "write_fake_pipelin": 6, "dirnam": [6, 11, 19], "sleep_tim": 6, "fake": 6, "while": [6, 10, 19, 22], "mimic": 6, "warn": [6, 9, 10, 19, 22], "write_fake_process": 6, "convers": 6, "wf_id": [6, 19], "workflow_nam": 6, "jobs_prior": 6, "create_directori": 6, "transfer": [6, 8, 12], "fly": 6, "adapt": 6, "accordingli": [6, 10], "becom": [6, 22], "prioriti": [6, 12], "issu": [6, 19], "proceed": 6, "thing": [6, 8, 19], "submit": [6, 12], "mainli": [6, 10], "iterative_paramet": 6, "context_nam": 6, "change_iterative_plug": 6, "toggl": [6, 10], "py_fil": 6, "topolog": 6, "tree": [6, 9, 10], "cycl": 6, "r": [6, 9, 12, 17, 19, 20], "tarjanlinear": 6, "linear": 6, "optim": 6, "o": [6, 11, 12, 19, 20], "_node": 6, "_link": 6, "from_nod": 6, "to_nod": 6, "add_nod": [6, 10], "sort": [6, 12, 20], "nnil": 6, "loop": [6, 19], "until": [6, 19], "c_nnil": 6, "degre": 6, "place": [6, 10, 12, 20], "outgo": 6, "d": [6, 9], "assert": [6, 19], "meta": [6, 8], "links_to_degre": 6, "links_from_degre": 6, "add_link_to": 6, "remove_link_to": 6, "add_link_from": 6, "remove_link_from": 6, "xml_file": 6, "placehold": [6, 19], "physic": 6, "concat_plug": 6, "param_typ": 6, "inert": 6, "concaten": [6, 8, 19], "trait_type_as_str": 6, "input_typ": 6, "learn": 6, "sublist": 6, "train": 6, "is_output": 6, "test_is_output": 6, "has_index": 6, "exclud": 6, "leav": [6, 11], "out": [6, 10, 11, 19, 20], "serv": 6, "output_": 6, "seri": [6, 19, 22], "th": 6, "reduc": 6, "revers": 6, "pattern": [6, 10], "substitut": 6, "input_": 6, "input_0": 6, "modul": [8, 17, 19, 20, 21, 22], "activate_copi": 8, "inputs_to_symlink": 8, "use_temp_output_dir": 8, "copied_input": 8, "dst_valu": 8, "copied_fil": 8, "dst_value1": 8, "__call__": 8, "_update_input_trait": 8, "_get_process_argu": 8, "_copy_input_fil": 8, "transpar": [8, 19], "behav": [8, 12], "symlink": 8, "output_directori": [8, 12, 19, 20], "temp": 8, "hardlink": 8, "final": [8, 13], "intermedi": [8, 19], "lot": [8, 16], "is_interact": 8, "background": [8, 10], "standardl": 8, "wrap": [8, 12, 19], "fix": [8, 10, 19, 22], "lack": 8, "nipy": 8, "10": [8, 19, 22], "npproc": 8, "smooth": [8, 10], "_nipype_class_typ": 8, "__postinit__": 8, "_nipype_trait_map": 8, "translat": [8, 11, 12], "underscor": [8, 11, 19], "_": [8, 19, 20], "collis": 8, "_spm_script_fil": 8, "__init__": [8, 10, 11, 19, 20], "twice": 8, "precaut": 8, "__np_init_done__": 8, "init": 8, "smoothed_fil": 8, "spm_script_fil": 8, "nipype_inst": 8, "_nipype_interfac": 8, "privat": 8, "_nipype_modul": 8, "_nipype_class": 8, "_nipype_interface_nam": 8, "nipype_interfac": 8, "returnhelp": 8, "consol": [8, 12, 19], "set_output_directori": 8, "out_dir": 8, "set_usedefault": 8, "usedefault": [8, 22], "atom": 8, "compon": [8, 11], "enthought": 8, "commandlin": [8, 11, 18], "__future__": [8, 19], "print_funct": [8, 19], "myprocess": 8, "def_param1": 8, "super": [8, 19, 20], "out_param": 8, "w": [8, 12, 19], "tmp": [8, 17, 19, 20], "log": [8, 9, 10, 12, 19], "txt": [8, 19], "ok": [8, 12, 18, 19, 22], "distinguish": 8, "behavior": [8, 10, 12], "did": 8, "input_filenam": [8, 19, 22], "out_fil": 8, "our": 8, "often": [8, 10], "forget": 8, "ie": [8, 10, 12], "instaiti": 8, "argument": [8, 19, 21], "get_help": [8, 11, 19], "use_label": 8, "rst": [8, 11], "raw": 8, "restructuredtext": 8, "label": [8, 10, 20], "ambigu": [8, 12], "get_input_help": 8, "rst_format": 8, "helpstr": 8, "get_input": 8, "get_log": 8, "get_output_help": 8, "get_output": 8, "get_paramet": 8, "make_commandline_argu": 8, "trivial": 8, "repr": 8, "params_to_command": 8, "methood": 8, "overwritten": [8, 10], "support": [8, 11, 12, 21], "how": [8, 19, 20], "capsul_job": 8, "somawf_input_param": 8, "format_str": 8, "foreign": 8, "l": [8, 19, 20], "input_dir": 8, "json_job": 8, "m": [8, 11, 17, 21], "my_modul": 8, "run_from_commandlin": 8, "process_definit": 8, "somawf_outut_param": 8, "save_log": 8, "returncod": [8, 12], "attr": 8, "docstr": [8, 11, 12, 15, 21, 22], "mcl": 8, "direct": 8, "complement_doc": 8, "complement": 8, "particular": [8, 12, 19], "base_class": 8, "encapsul": [8, 16], "clone": [8, 17], "monkei": 8, "patch": 8, "process_inst": 8, "_run_interfac": 8, "_list_output": 8, "_gen_filenam": 8, "_parse_input": 8, "sync_nypipe_trait": 8, "sync_process_output_trait": 8, "clone_nipype_trait": 8, "easili": 8, "portabl": 8, "iterated_param": 8, "mosul": 8, "sequenti": [8, 12, 18, 19, 21], "dispatch": 8, "use_soma_workflow": [8, 12, 19], "resource_id": [8, 12], "password": [8, 12], "rsa_key_pass": 8, "queue": [8, 12], "input_file_process": 8, "output_file_process": 8, "keep_workflow": 8, "keep_failed_workflow": 8, "write_workflow_onli": 8, "distribut": [8, 17, 19], "localhost": [8, 12], "ssh": 8, "Not": 8, "rsa": 8, "processtosomaworkflow": 8, "local_path": [8, 12], "no_file_process": 8, "file_transf": 8, "shared_resource_path": 8, "translate_shar": 8, "bv_db_shared_path": 8, "hi": [8, 19], "situat": 8, "k": [8, 19], "callabl": [8, 12], "widget": [9, 19, 20], "though": 9, "extra_opt": 9, "capsulview": 9, "info": [9, 16], "critic": 9, "mode": [9, 10, 19, 21], "redirect": 9, "emit": [9, 10], "parent_item": 9, "menu": [9, 10], "parent_modul": 9, "child": [9, 10, 22], "insensit": 9, "cast": 9, "qtreewidgetitem": 9, "hierach": 9, "sub_modul": 9, "treectrl": 9, "loadabl": 9, "bold": [9, 10], "reach": 9, "qtreecontrol": 9, "is_includ": 9, "mdoul": 9, "scan": [9, 11], "recures": 9, "structured_pipelin": 9, "list_of_pipeline_descript": 9, "docuement": 9, "uifil": 9, "ui": 9, "tool": [10, 14, 16, 18, 19], "qt": [10, 16, 19, 21], "pyqt4": [10, 16, 19, 20], "pysid": [10, 16, 19, 20], "visual": 10, "parametr": 10, "browse_nod": 10, "process_nod": 10, "view_nod": 10, "parent_pipelin": 10, "processing_nod": 10, "uplet": 10, "create_board_tre": 10, "five": 10, "column": 10, "summar": 10, "qualiti": 10, "create_output_widget": 10, "create_viewer_tre": 10, "viewer": [10, 21, 22], "inspect": [10, 12, 19], "deactiv": 10, "ui_fil": 10, "record_fil": 10, "developper_view": 10, "click": [10, 19, 22], "add_controls_to_ui": 10, "find_next": 10, "forward": 10, "is_found": 10, "find_previ": 10, "refresh_activation_from_record": 10, "set_filter_pattern": 10, "filter_pattern": 10, "show": [10, 19, 20, 22], "update_pipeline_activ": 10, "index": [10, 11, 19], "pipeline_path": 10, "develop": [10, 16, 17, 22], "wonder": 10, "why": [10, 19], "plai": 10, "init_window": 10, "attributed_process": 10, "enable_attr_from_filenam": [10, 20], "enable_load_button": [10, 20], "override_control_typ": 10, "separate_output": 10, "user_data": 10, "userlevel": 10, "scroll": 10, "zero": [10, 12, 19], "scrollbar": 10, "on_btn_load_json": 10, "on_btn_save_json": 10, "on_input_filename_chang": 10, "text": 10, "on_show_complet": 10, "on_use_fom_chang": 10, "checkbox": 10, "set_use_fom": 10, "show_complet": 10, "pv": [10, 19], "allow_open_control": [10, 19], "enable_edit": 10, "show_sub_pipelin": [10, 19], "sub_pipeline_wid": 10, "mous": 10, "itemchang": 10, "graphicsitemchang": 10, "mousereleaseev": 10, "qgraphicsscenemouseev": 10, "target": 10, "focusinev": 10, "qfocusev": 10, "focusoutev": 10, "keypressev": 10, "qkeyev": 10, "mousepressev": 10, "rect": 10, "qrectf": 10, "ai": 10, "sub_pipelin": 10, "colored_paramet": 10, "logical_view": 10, "show_opt_input": 10, "show_opt_output": 10, "boundingrect": 10, "mousedoubleclickev": 10, "paint": 10, "painter": 10, "qpainter": 10, "qstyleoptiongraphicsitem": 10, "update_label": 10, "arrow": 10, "signal": 10, "right": 10, "doubl": [10, 19], "ctrl": 10, "embed": 10, "subpipeline_click": 10, "node_right_click": 10, "process_click": 10, "node_click": 10, "node_clicked_ctrl": 10, "plug_click": 10, "plug_right_click": 10, "link_right_click": 10, "scene": 10, "set_pipelin": 10, "is_logical_view": 10, "set_logical_view": 10, "zoom_in": 10, "zoom_out": 10, "openprocesscontrol": 10, "add_embedded_subpipelin": 10, "onloadsubpipelineclick": 10, "onopenprocesscontrol": 10, "enablenod": 10, "enable_step": 10, "disable_preceding_step": 10, "disable_following_step": 10, "enable_preceding_step": 10, "enable_following_step": 10, "set_switch_valu": 10, "disable_done_step": 10, "enable_all_step": 10, "check_fil": 10, "auto_dot_node_posit": 10, "save_dot_image_ui": 10, "reset_initial_nodes_posit": 10, "omit": [10, 22], "red": 10, "pink": 10, "draw": 10, "iterativeprocessinput": 10, "processmoduleinput": 10, "display_str": 10, "class_type_check": 10, "is_process": 10, "processnameedit": 10, "qlineedit": 10, "subpipeline_nam": 10, "ask": [10, 19], "calcul": 10, "overhead": [10, 12], "black": 10, "pamamet": 10, "ital": 10, "font": 10, "green": [10, 19], "grei": 10, "light": [10, 19], "orang": 10, "dragenterev": 10, "enter": [10, 16], "dragmoveev": 10, "dropev": 10, "someth": [10, 19, 22], "drop": 10, "drop_process": 10, "edit_sub_pipelin": 10, "edition_en": 10, "ensure_pipelin": 10, "export_to_db_scan": 10, "database_scan": 10, "is_restricted_edition_mod": 10, "load_pipeline_paramet": 10, "root_path": 10, "mousemoveev": 10, "qmouseev": 10, "foreground": 10, "press": 10, "open_background_menu": 10, "open_filt": 10, "open_node_menu": 10, "popup": 10, "release_pipelin": 10, "releas": [10, 16], "dialog": [10, 22], "smaller": 10, "save_pipelin": 10, "save_pipeline_paramet": 10, "set_enable_edit": 10, "unset": 10, "set_restricted_edition_mod": 10, "action": [10, 22], "show_optional_input": 10, "show_optional_output": 10, "switch_click": 10, "wheelev": 10, "qwheelev": 10, "zoom": [10, 19, 22], "zool": 10, "helpev": 10, "tooltip": [10, 19], "link_tooltip_text": 10, "source_dest": 10, "fiven": 10, "tupe": 10, "source_param": 10, "dest_param": 10, "plug_tooltip_text": 10, "missing_input": 10, "overwritten_output": 10, "pipeline_tool": 10, "workflowview": 10, "a0": 10, "qrect": 10, "qregion": 10, "aw": 10, "ah": 10, "viewer_node_nam": 10, "unactiv": 10, "oncreateviewerclick": 10, "sphinx": [11, 19, 22], "capsul_pipeline_rst": 11, "processes_doc": 11, "module_to_docu": 11, "your": [11, 17, 19], "sphinx_dir": 11, "__file__": [11, 19], "proc_rst_dir": 11, "join": [11, 19, 20], "process_doc": 11, "makedir": [11, 19], "cmd": 11, "desc": [11, 22], "interestingli": 11, "lexer": 11, "toctre": 11, "root_module_nam": 11, "rst_extens": 11, "layout": 11, "project": [11, 19, 21], "packag": [11, 13, 17, 19, 21, 22], "generate_index_entri": 11, "indent": [11, 12], "autodoc": 11, "pilot": 11, "ident": [11, 12], "blank": 11, "rst2html": 11, "html": [11, 21], "title_for": 11, "titl": 11, "write_index": 11, "outdir": 11, "froot": 11, "root": [11, 13, 21], "write_instal": 11, "write_layout": 11, "load_pilot": 11, "pilot_": 11, "use_cas": 11, "referenc": [11, 22], "unitest": 11, "short_nam": 11, "parsabl": 11, "generate_api_doc": 11, "cap": 11, "fmri": 11, "fist": 11, "get_short_nam": 11, "write_api_doc": 11, "returnrst": 11, "disk": [11, 12, 19], "written_modul": 11, "relative_to": 11, "write_main_index": 11, "have_usecas": 11, "usecaseshelp": 11, "generate_usecases_doc": 11, "src_code": 11, "getsourc": 11, "srccode": 11, "write_usecases_doc": 11, "capsul_pipeline_view": 11, "capsul_sphinx_layout": 11, "capsul_usecases_rst": 11, "sh_file": 12, "fsl": [12, 19], "freesurf": [12, 13, 19], "expect": [12, 19, 21, 22], "variable_nam": 12, "sh": [12, 13, 19], "mostli": 12, "much": [12, 16], "karg": 12, "object_hook": 12, "deseri": 12, "rpc": 12, "hint": [12, 21], "object_pairs_hook": 12, "parse_float": 12, "num_str": 12, "datatyp": 12, "parser": 12, "decim": 12, "parse_int": 12, "integ": [12, 19, 22], "parse_const": 12, "infin": 12, "nan": 12, "encount": 12, "strict": 12, "charact": 12, "31": [12, 19], "rang": [12, 16, 19], "tab": 12, "skipkei": 12, "ensure_ascii": 12, "check_circular": 12, "allow_nan": 12, "sort_kei": 12, "sensibl": 12, "typeerror": 12, "attempt": 12, "guarante": 12, "ascii": 12, "escap": 12, "circular": 12, "infinit": 12, "caus": 12, "recursionerror": 12, "compliant": 12, "consist": 12, "javascript": 12, "regress": 12, "dai": 12, "neg": 12, "arrai": [12, 20], "member": 12, "pretti": 12, "newlin": 12, "compact": 12, "item_separ": 12, "key_separ": 12, "elimin": 12, "whitespac": 12, "arbitrari": 12, "els": [12, 19, 20, 22], "let": [12, 19, 22], "cachedir": 12, "timestamp": 12, "decor": [12, 19, 22], "deep": 12, "trace": 12, "base_dir": 12, "proxi": 12, "proxy_process": 12, "extra": 12, "lookup": 12, "folder": 12, "mkdtemp": 12, "mem": 12, "nipype_fsl_merg": 12, "fsl_merg": 12, "dimens": 12, "along": 12, "in_fil": [12, 19], "_merged_fil": 12, "apart": 12, "anyth": 12, "afil": 12, "fingerprint": 12, "mtime": 12, "input_paramet": 12, "signatur": 12, "attribute_nam": 12, "attribute_valu": 12, "axpect": 12, "tuple_json_encod": 12, "encobj": 12, "conf_dict": 12, "warp": 12, "fname": [12, 19], "process_sourc": 12, "processnam": 12, "afterward": 12, "seen": [12, 20], "output_dir": 12, "generate_log": [12, 19], "configuration_dict": [12, 19], "output_log_fil": 12, "study_nam": [12, 19], "init_config": [12, 19], "override_config": 12, "studi": [12, 19, 20], "deprec": 12, "pleas": [12, 19], "turn": [12, 19], "evalu": 12, "afniconfig": [12, 19], "antsconfig": [12, 19], "capsul_config": 12, "input_directori": [12, 19, 20], "create_output_directori": [12, 19], "process_output_directori": [12, 19], "append": [12, 19, 20, 21], "subdirectori": 12, "process_count": 12, "reset_process_count": [12, 19], "set_trait_valu": 12, "get_trait_valu": 12, "set_study_configur": 12, "transit": 12, "keyword": [12, 21], "get_configuration_dict": 12, "initialize_modul": 12, "config_module_nam": 12, "read_configur": 12, "studies_config": [12, 19], "counter": 12, "process_or_pipelin": [12, 19], "execute_qc_nod": [12, 19], "pepelin": [12, 19], "unchang": [12, 19], "tag": [12, 19], "qualtiti": [12, 19], "save_configur": 12, "writabl": 12, "send": 12, "logger": 12, "trait_valu": 12, "json_fnam": 12, "abstract": 12, "initialize_callback": 12, "startup": 12, "On": [12, 17, 22], "subsequ": 12, "attributes_schema_path": [12, 19, 20], "shchema": 12, "process_complet": [12, 19, 20], "builtin": [12, 19, 20], "path_complet": [12, 19, 20], "axon": [12, 21], "shared_directori": [12, 19, 20], "input_fom": [12, 19, 20], "output_fom": [12, 19, 20], "shared_fom": [12, 19], "volumes_format": [12, 19], "volum": 12, "meshes_format": [12, 19], "mesh": 12, "auto_fom": [12, 19], "moreov": 12, "bring": 12, "6": [12, 19, 22], "7": [12, 16, 19], "fom_path": [12, 19, 20], "use_fom": [12, 19], "setupfreesurf": 12, "use_nipyp": [12, 19], "orkflow": 12, "submiss": 12, "transfer_path": 12, "path_transl": 12, "somaworkflow_computing_resourc": [12, 19], "somaworkflow_config_fil": [12, 19], "home": [12, 21], "soma_workflow": [12, 19], "cfg": 12, "somaworkflow_keep_failed_workflow": [12, 19], "somaworkflow_keep_succeeded_workflow": [12, 19], "somaworkflow_computing_resources_config": [12, 19], "get_resource_id": 12, "set_computing_resource_password": 12, "get_workflow_control": [12, 19], "connect_resourc": 12, "disconnect_resourc": 12, "force_reconnect": 12, "reconnect": 12, "set_it": 12, "host": [12, 19], "rsa_key_password": 12, "credenti": 12, "computinf": 12, "neuroimag": 13, "potenti": 13, "had": [13, 19], "fmrib": [13, 19], "site": [13, 19], "fsldir": [13, 19], "areus": 13, "fl": [13, 19], "tha": 13, "environmenterror": [13, 19], "wrong": 13, "batch_fil": 13, "spm_version": [13, 19], "matlab_exec": [13, 19], "matlab_path": 13, "fed": 13, "addpath": 13, "last_lin": 13, "finder": [14, 22], "ignore_import_error": 14, "version_util": 14, "__version__": [14, 19], "exact": 15, "plan": 15, "design": 16, "easi": 16, "center": [16, 19, 20, 21], "difficulti": 16, "stabl": 16, "http": [16, 17, 19, 21], "github": [16, 17, 19, 21], "com": [16, 17, 19], "populs": [16, 17, 19, 21], "althrough": 16, "facil": 16, "distant": 16, "pyqt": [16, 19], "team": 16, "neurospin": 16, "cecil": 16, "bsd": 16, "suit": 17, "brain": [17, 19], "pip": 17, "compil": 17, "bare": 17, "debian": 17, "linux": 17, "sudo": 17, "apt": 17, "dev": 17, "essenti": 17, "indifer": 17, "pypi": 17, "pip3": 17, "git": 17, "cd": 17, "rm": 17, "venv": 17, "iteraton": 18, "effici": 19, "everybodi": 19, "reusabl": 19, "ipython": [19, 21], "notebook": [19, 21], "close": 19, "demo": 19, "allow_gui": 19, "use_gui": 19, "qt4": 19, "qt_gui": [19, 20], "qt_backend": 19, "set_qt_backend": 19, "process1": 19, "ff": 19, "132": 19, "13": 19, "39": 19, "145": [19, 22], "9": 19, "process2": 19, "echo": 19, "xml_process": [19, 22], "capsul_xml": [19, 22], "proper": 19, "__main__": 19, "40": 19, "42": [19, 22], "cat": 19, "pipeline1": 19, "backend": 19, "pipelinedevelopperview": [19, 21], "run_qt_loop": 19, "app": 19, "argv": 19, "simplic": 19, "view1": 19, "gon": 19, "exec_": 19, "11": 19, "controller_widget": 19, "controller1": 19, "live": [19, 22], "controller2": 19, "pipeline2": 19, "node_str": 19, "view2": 19, "14": 19, "blop": 19, "000000": 19, "glossari": 19, "xml_pipelin": 19, "15": 19, "xmldesc": 19, "openfil": 19, "readlin": 19, "lt": [19, 22], "gt": [19, 22], "34": 19, "p1": 19, "test_load_from_descript": [19, 22], "a_function_to_wrap": 19, "list_of_str": 19, "p2": 19, "pdirectori": 19, "enum": [19, 22], "200": 19, "400": 19, "600": 19, "soon": 19, "clarifi": 19, "xmlpipe": 19, "nodes_activ": 19, "legal": 19, "controllertrait": 19, "No": [19, 20], "pathlik": 19, "list_str": [19, 22], "One": [19, 20, 22], "major": 19, "17": 19, "18": 19, "pipeline3": 19, "case1": 19, "case2": 19, "case1_switch_output": 19, "case2_switch_output": 19, "19": 19, "view3": 19, "20": 19, "21": 19, "yup": 19, "22": 19, "test_pipelin": [19, 22], "threshold_gt_1": [19, 22], "threshold": [19, 22], "threshold_gt_10": [19, 22], "threshold_gt_100": [19, 22], "100": [19, 22], "threshold_lt_1": [19, 22], "threshold_lt_10": [19, 22], "threshold_lt_100": [19, 22], "mask_1": [19, 22], "mask": [19, 22], "mask_10": [19, 22], "mask_100": [19, 22], "input_imag": [19, 22], "output_imag": [19, 22], "output_1": [19, 22], "output_10": [19, 22], "output_100": [19, 22], "processes_select": 19, "processes_group": [19, 22], "lower": [19, 22], "386": [19, 22], "403": [19, 22], "50": [19, 22], "815": [19, 22], "153": [19, 22], "374": [19, 22], "242": [19, 22], "556": [19, 22], "314": [19, 22], "371": [19, 22], "88": [19, 22], "820": [19, 22], "293": [19, 22], "826": [19, 22], "451": [19, 22], "570": [19, 22], "568": [19, 22], "1000": 19, "182": 19, "35615": 19, "658": 19, "8043": 19, "348": 19, "3267625": 19, "205": 19, "125": 19, "183": 19, "6139625": 19, "329": 19, "3854": 19, "488": 19, "9169": 19, "512": 19, "08755": 19, "744": 19, "8167": 19, "146": 19, "998": 19, "805": 19, "8291": 19, "476": 19, "4169": 19, "23": 19, "nifti": [19, 22], "And": 19, "24": 19, "25": 19, "list_float": [19, 22], "sum": 19, "sum_nod": 19, "add_12": 19, "pipeline4": 19, "26": 19, "view4": 19, "54": 19, "27": 19, "28": 19, "node_first": 19, "node_second": 19, "pipeline5": 19, "29": 19, "view5": 19, "realli": 19, "30": 19, "infil": 19, "dummi": 19, "outfil": 19, "dummy_modifi": 19, "dummy_intermedi": 19, "ate": 19, "cake": 19, "morn": 19, "nlet": 19, "eat": 19, "unlink": 19, "solv": 19, "condition": 19, "bridg": 19, "break": 19, "32": 19, "pipeline6": 19, "input_switch_b": 19, "33": 19, "view6": 19, "long": 19, "off": 19, "35": 19, "36": 19, "37": 19, "38": 19, "wide": 19, "art": 19, "medic": 19, "propos": [19, 21, 22], "With": 19, "smart": 19, "worflow": 19, "popul": 19, "default_config": 19, "initial_config": 19, "getattr": 19, "user_level": 19, "afni_path": 19, "use_afni": 19, "ants_path": 19, "use_": 19, "fsl_prefix": 19, "use_fsl": 19, "use_matlab": 19, "use_smart_cach": 19, "openkeycontrol": 19, "0x7f2218479270": 19, "spm_directori": 19, "spm_standalon": 19, "spm_exec": 19, "spm_mcr_directori": 19, "use_spm": 19, "opt": 19, "hostedtoolcach": 19, "x64": 19, "lib": 19, "41": 19, "capsul_demo": 19, "__doc__": 19, "cpu": 19, "________________________________________________________________________________": 19, "address": 19, "larg": 19, "huge": 19, "dataset": 19, "limit": 19, "lost": 19, "43": 19, "44": 19, "client_typ": 19, "0x7f2218511a00": 19, "0x7f2218511100": 19, "workwlow": 19, "soma_workflow_gui": 19, "45": 19, "swclient": 19, "wc": 19, "submit_workflow": 19, "wait_workflow": 19, "workflow_statu": 19, "delete_workflow": 19, "initialis": 19, "workflow_don": 19, "anymor": 19, "46": 19, "47": 19, "48": 19, "init_wf_list": 19, "wf_list": 19, "wf": 19, "del": 19, "indexerror": 19, "traceback": 19, "recent": 19, "cell": 19, "thirdparti": 19, "49": 19, "lazili": 19, "51": 19, "osp": 19, "test_imag": 19, "mni152": 19, "templat": 19, "mni152_t1_1mm_brain": 19, "gz": [19, 21], "fsl_dir": 19, "glob": 19, "fslpython": 19, "nibabel": 19, "anatom": 19, "namedtemporaryfil": 19, "suffix": 19, "stat": 19, "st_size": 19, "extract": [19, 22], "52": 19, "find_in_path": 19, "betpip": 19, "mni152_t1_2mm": 19, "shown": 19, "unfortun": 19, "mention": 19, "confit": 19, "53": 19, "illustr": 19, "create_xml_pipelin": 19, "xmlstr": 19, "dummyprocess": [19, 20], "proc3": 19, "proc4": 19, "proc_select": 19, "proc_select2": 19, "input_image1": 19, "input_image2": 19, "input_image4": 19, "input_image3": 19, "image_out1": 19, "image_out3": 19, "image_out5": 19, "proc1_switch_imag": 19, "proc2_switch_imag": 19, "proc3_switch_imag": 19, "proc4_switch_imag": 19, "151": 19, "227": 19, "4447": 19, "381": 19, "6498": 19, "160": 19, "1012": 19, "668": 19, "1498": 19, "319": 19, "9886": 19, "507": 19, "1947": 19, "144": 19, "2624": 19, "589": 19, "7949": 19, "123": 19, "391": 19, "171": 19, "8197": 19, "demopipelin": 19, "55": 19, "56": 19, "fom_cont": 19, "fom_nam": [19, 20], "demo_fom": 19, "format_list": 19, "shared_pattern": [19, 20], "subject_dir": 19, "subject": [19, 20, 21], "alt2_": 19, "alt4_": 19, "out_image_": 19, "_1": 19, "_3": 19, "_4": 19, "1035": 19, "57": 19, "scrollcontrollerwidget": 19, "hack": 19, "soma_app": 19, "plugin_modul": 19, "fom_manag": 19, "morphologist_fom": 19, "gii": 19, "_cach": 19, "mp": 19, "__name__": 19, "irm2": 19, "p_view": 19, "ap_view": 19, "back": 19, "impos": 19, "deduc": 19, "swtch": 19, "58": 19, "subjects_irm2": 19, "out_image_irm2_3": 19, "out_image_irm2_4": 19, "59": 19, "shutil": 19, "rmtree": 19, "matter": 20, "attributesmodul": 20, "capsul": [20, 22], "test_studi": 20, "test_attributed_process": 20, "custom_ex": 20, "respons": 20, "compl_engin": 20, "jojo": 20, "barbapapa": 20, "on_trait_chang": 20, "casimir": 20, "truc": 20, "dummyprocess_truc_jojo_casimir": 20, "cwid": 20, "mypathcomplet": 20, "att_dict": 20, "val": 20, "generated_by_paramet": 20, "customattributesschema": 20, "acquisit": 20, "analysi": 20, "dummyprocessattribut": 20, "bidul": 20, "integr": 20, "inpupt_fom": 20, "brainvisa_dir": 20, "nonoverlap": 20, "fom_import": 20, "attribute_definit": 20, "default_valu": 20, "default_acquisit": 20, "default_analysi": 20, "sulci_recognition_sess": 20, "default_sess": 20, "graph_vers": 20, "t1mri": [20, 21], "recognition_analysi": 20, "fold": 20, "_auto": 20, "imported_t1mri": 20, "t1mri_referenti": 20, "registr": 20, "rawt1": 20, "referenti": 20, "reoriented_t1mri": 20, "t1mri_nobia": 20, "nobias_": 20, "split_brain": 20, "segment": 20, "voronoi_": 20, "left_graph": 20, "left_labelled_graph": 20, "right_graph": 20, "right_labelled_graph": 20, "talairach_transform": 20, "_to_talairach": 20, "acpc": 20, "matrix": 20, "morpho": 20, "cm": 20, "s1": 20, "s2": 20, "s3": 20, "jupyt": 21, "download": 21, "my_tutori": 21, "ipynb": 21, "shell": 21, "varieti": 21, "swf": 21, "study_data": 21, "subjet01": 21, "subject01": 21, "subject02": 21, "subject03": 21, "raw_data": 21, "write_engine_config": 21, "spec": 21, "page": 21, "_doc_path": 21, "latter": 21, "hierarchi": 21, "upward": 21, "browser": 21, "latest": 22, "quotient": 22, "remaind": 22, "divid": 22, "straightforward": 22, "veri": 22, "unicod": 22, "liter": 22, "list_int": 22, "list_unicod": 22, "list_fil": 22, "list_directori": 22, "multipl": 22, "decid": 22, "immedi": 22, "button": 22, "ge": 22, "le": 22, "thresold": 22, "output_loc": 22, "threshold_": 22, "put": 22, "binari": 22, "wherea": 22, "convent": 22, "pep": 22, "loadr": 22, "se": 22, "coma": 22, "input1": 22, "input2": 22, "output1": 22, "copyfil": 22, "prove": 22, "fulfil": 22, "enab": 22, "ling": 22, "unlik": 22, "mu": 22, "__": 22, "coordin": 22, "recognis": 22, "python_path": 22, "clinfmri": 22, "p": 22, "hand": 22, "misspel": 22, "unknown": 22, "precis": 22}, "objects": {"capsul": [[0, 0, 0, "-", "api"], [1, 0, 0, "-", "attributes"], [2, 0, 0, "-", "engine"], [3, 0, 0, "-", "in_context"], [5, 0, 0, "-", "info"], [6, 0, 0, "-", "pipeline"], [7, 0, 0, "-", "plugins"], [8, 0, 0, "-", "process"], [9, 0, 0, "-", "qt_apps"], [10, 0, 0, "-", "qt_gui"], [11, 0, 0, "-", "sphinxext"], [12, 0, 0, "-", "study_config"], [13, 0, 0, "-", "subprocess"], [14, 0, 0, "-", "utils"]], "capsul.attributes": [[1, 0, 0, "-", "attributes_factory"], [1, 0, 0, "-", "attributes_schema"], [1, 0, 0, "-", "completion_engine"], [1, 0, 0, "-", "completion_engine_factory"], [1, 0, 0, "-", "completion_engine_iteration"], [1, 0, 0, "-", "fom_completion_engine"]], "capsul.attributes.attributes_factory": [[1, 1, 1, "", "AttributesFactory"]], "capsul.attributes.attributes_schema": [[1, 1, 1, "", "AttributesSchema"], [1, 1, 1, "", "EditableAttributes"], [1, 1, 1, "", "ProcessAttributes"], [1, 3, 1, "", "set_attribute"]], "capsul.attributes.attributes_schema.ProcessAttributes": [[1, 2, 1, "", "copy"], [1, 2, 1, "", "copy_to_single"], [1, 2, 1, "", "get_parameters_attributes"], [1, 2, 1, "", "set_parameter_attributes"]], "capsul.attributes.completion_engine": [[1, 1, 1, "", "PathCompletionEngine"], [1, 1, 1, "", "PathCompletionEngineFactory"], [1, 1, 1, "", "ProcessCompletionEngine"], [1, 1, 1, "", "ProcessCompletionEngineFactory"], [1, 1, 1, "", "SwitchCompletionEngine"]], "capsul.attributes.completion_engine.PathCompletionEngine": [[1, 2, 1, "", "allowed_extensions"], [1, 2, 1, "", "allowed_formats"], [1, 2, 1, "", "attributes_to_path"]], "capsul.attributes.completion_engine.ProcessCompletionEngine": [[1, 2, 1, "", "attributes_changed"], [1, 2, 1, "id0", "attributes_to_path"], [1, 2, 1, "id5", "complete_parameters"], [1, 2, 1, "id6", "get_attribute_values"], [1, 2, 1, "id7", "get_completion_engine"], [1, 2, 1, "id8", "get_path_completion_engine"], [1, 2, 1, "id9", "install_auto_completion"], [1, 2, 1, "", "nodes_selection_changed"], [1, 2, 1, "", "remove_attributes"], [1, 2, 1, "id10", "remove_auto_completion"], [1, 2, 1, "", "remove_switch_observers"], [1, 2, 1, "id11", "set_parameters"]], "capsul.attributes.completion_engine.ProcessCompletionEngineFactory": [[1, 2, 1, "", "get_completion_engine"]], "capsul.attributes.completion_engine.SwitchCompletionEngine": [[1, 2, 1, "", "get_attribute_values"], [1, 2, 1, "", "install_switch_observer"], [1, 2, 1, "", "remove_switch_observer"]], "capsul.attributes.completion_engine_factory": [[1, 1, 1, "", "BuiltinProcessCompletionEngineFactory"]], "capsul.attributes.completion_engine_factory.BuiltinProcessCompletionEngineFactory": [[1, 2, 1, "", "get_completion_engine"]], "capsul.attributes.completion_engine_iteration": [[1, 1, 1, "", "ProcessCompletionEngineIteration"]], "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration": [[1, 2, 1, "", "complete_iteration_step"], [1, 2, 1, "", "complete_parameters"], [1, 2, 1, "", "get_attribute_values"], [1, 2, 1, "", "get_induced_iterative_parameters"], [1, 2, 1, "", "get_iterated_attributes"]], "capsul.attributes.fom_completion_engine": [[1, 1, 1, "", "FomPathCompletionEngine"], [1, 1, 1, "", "FomProcessCompletionEngine"], [1, 1, 1, "", "FomProcessCompletionEngineIteration"]], "capsul.attributes.fom_completion_engine.FomPathCompletionEngine": [[1, 2, 1, "", "allowed_extensions"], [1, 2, 1, "", "allowed_formats"], [1, 2, 1, "", "attributes_to_path"], [1, 2, 1, "", "open_values_attributes"]], "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine": [[1, 2, 1, "id13", "create_attributes_with_fom"], [1, 2, 1, "", "get_attribute_values"], [1, 2, 1, "", "get_path_completion_engine"], [1, 2, 1, "", "path_attributes"]], "capsul.attributes.fom_completion_engine.FomProcessCompletionEngineIteration": [[1, 2, 1, "", "get_iterated_attributes"]], "capsul.engine": [[2, 1, 1, "", "CapsulEngine"], [2, 3, 1, "", "activate_configuration"], [2, 3, 1, "", "activate_module"], [2, 3, 1, "", "capsul_engine"], [2, 0, 0, "-", "database"], [2, 3, 1, "", "database_factory"], [2, 0, 0, "-", "database_json"], [2, 0, 0, "-", "database_populse"], [2, 0, 0, "-", "module"], [2, 0, 0, "-", "run"], [2, 0, 0, "-", "settings"]], "capsul.engine.CapsulEngine": [[2, 2, 1, "", "connect"], [2, 2, 1, "", "connected_to"], [2, 2, 1, "", "detailed_information"], [2, 2, 1, "", "disconnect"], [2, 2, 1, "", "dispose"], [2, 2, 1, "", "executions"], [2, 2, 1, "", "get_iteration_pipeline"], [2, 2, 1, "", "get_process_instance"], [2, 2, 1, "", "import_configs"], [2, 2, 1, "", "interrupt"], [2, 2, 1, "", "load_module"], [2, 2, 1, "", "load_modules"], [2, 2, 1, "", "raise_for_status"], [2, 2, 1, "", "start"], [2, 2, 1, "", "status"], [2, 2, 1, "", "wait"]], "capsul.engine.database": [[2, 1, 1, "", "DatabaseEngine"]], "capsul.engine.database.DatabaseEngine": [[2, 2, 1, "", "check_path"], [2, 2, 1, "", "json_value"], [2, 2, 1, "", "named_directories"], [2, 2, 1, "", "named_directory"], [2, 2, 1, "", "path_metadata"], [2, 2, 1, "", "set_json_value"], [2, 2, 1, "", "set_named_directory"], [2, 2, 1, "", "set_path_metadata"]], "capsul.engine.database_json": [[2, 1, 1, "", "JSONDBEngine"]], "capsul.engine.database_json.JSONDBEngine": [[2, 2, 1, "", "json_value"], [2, 2, 1, "", "named_directories"], [2, 2, 1, "", "named_directory"], [2, 2, 1, "", "path_metadata"], [2, 2, 1, "", "set_json_value"], [2, 2, 1, "", "set_named_directory"], [2, 2, 1, "", "set_path_metadata"]], "capsul.engine.database_populse": [[2, 1, 1, "", "PopulseDBEngine"]], "capsul.engine.database_populse.PopulseDBEngine": [[2, 2, 1, "", "json_value"], [2, 2, 1, "", "named_directories"], [2, 2, 1, "", "named_directory"], [2, 2, 1, "", "path_metadata"], [2, 2, 1, "", "set_json_value"], [2, 2, 1, "", "set_named_directory"], [2, 2, 1, "", "set_path_metadata"]], "capsul.engine.module": [[2, 0, 0, "-", "attributes"], [2, 0, 0, "-", "axon"], [2, 0, 0, "-", "fom"], [2, 0, 0, "-", "fsl"], [2, 0, 0, "-", "matlab"], [2, 0, 0, "-", "python"], [2, 0, 0, "-", "spm"]], "capsul.engine.module.attributes": [[2, 3, 1, "", "edition_widget"]], "capsul.engine.module.axon": [[2, 3, 1, "", "check_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "complete_configurations"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.module.fom": [[2, 3, 1, "", "edition_widget"], [2, 3, 1, "", "update_fom"]], "capsul.engine.module.fsl": [[2, 3, 1, "", "activate_configurations"], [2, 3, 1, "", "check_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "complete_configurations"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.module.matlab": [[2, 3, 1, "", "check_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.module.python": [[2, 3, 1, "", "activate_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.module.spm": [[2, 3, 1, "", "activate_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.run": [[2, 4, 1, "", "WorkflowExecutionError"], [2, 3, 1, "", "detailed_information"], [2, 3, 1, "", "dispose"], [2, 3, 1, "", "interrupt"], [2, 3, 1, "", "raise_for_status"], [2, 3, 1, "", "start"], [2, 3, 1, "", "status"], [2, 3, 1, "", "wait"]], "capsul.engine.settings": [[2, 1, 1, "", "Settings"], [2, 1, 1, "", "SettingsSession"]], "capsul.engine.settings.Settings": [[2, 2, 1, "", "get_all_environments"], [2, 2, 1, "", "import_configs"], [2, 2, 1, "", "module_name"], [2, 2, 1, "", "select_configurations"]], "capsul.engine.settings.SettingsSession": [[2, 2, 1, "", "collection_name"], [2, 2, 1, "", "config"], [2, 2, 1, "", "configs"], [2, 2, 1, "", "ensure_module_fields"], [2, 2, 1, "", "get_all_environments"], [2, 2, 1, "", "new_config"], [2, 2, 1, "", "remove_config"]], "capsul.in_context": [[3, 0, 0, "-", "fsl"], [3, 0, 0, "-", "spm"]], "capsul.in_context.fsl": [[3, 1, 1, "", "FslPopen"], [3, 3, 1, "", "fsl_call"], [3, 3, 1, "", "fsl_check_call"], [3, 3, 1, "", "fsl_check_output"], [3, 3, 1, "", "fsl_command_with_environment"], [3, 3, 1, "", "fsl_env"]], "capsul.in_context.spm": [[3, 1, 1, "", "SPMPopen"], [3, 3, 1, "", "spm_call"], [3, 3, 1, "", "spm_check_call"], [3, 3, 1, "", "spm_check_output"]], "capsul.pipeline": [[6, 0, 0, "-", "custom_nodes"], [6, 0, 0, "-", "pipeline"], [6, 0, 0, "-", "pipeline_construction"], [6, 0, 0, "-", "pipeline_nodes"], [6, 0, 0, "-", "pipeline_tools"], [6, 0, 0, "-", "pipeline_workflow"], [6, 0, 0, "-", "process_iteration"], [6, 0, 0, "-", "python_export"], [6, 0, 0, "-", "topological_sort"], [6, 0, 0, "-", "xml"]], "capsul.pipeline.custom_nodes": [[6, 0, 0, "-", "cv_node"], [6, 0, 0, "-", "loo_node"], [6, 0, 0, "-", "map_node"], [6, 0, 0, "-", "reduce_node"], [6, 0, 0, "-", "strcat_node"], [6, 0, 0, "-", "strconv"]], "capsul.pipeline.custom_nodes.cv_node": [[6, 1, 1, "", "CrossValidationFoldNode"]], "capsul.pipeline.custom_nodes.loo_node": [[6, 1, 1, "", "LeaveOneOutNode"]], "capsul.pipeline.custom_nodes.map_node": [[6, 1, 1, "", "MapNode"]], "capsul.pipeline.custom_nodes.reduce_node": [[6, 1, 1, "", "ReduceNode"]], "capsul.pipeline.custom_nodes.strcat_node": [[6, 1, 1, "", "StrCatNode"]], "capsul.pipeline.custom_nodes.strconv": [[6, 1, 1, "", "StrConvNode"]], "capsul.pipeline.custom_nodes.strconv.StrConvNode": [[6, 2, 1, "", "get_connections_through"], [6, 2, 1, "", "is_job"]], "capsul.pipeline.pipeline": [[6, 1, 1, "", "Pipeline"]], "capsul.pipeline.pipeline.Pipeline": [[6, 2, 1, "", "add_custom_node"], [6, 2, 1, "", "add_iterative_process"], [6, 2, 1, "", "add_link"], [6, 2, 1, "", "add_optional_output_switch"], [6, 2, 1, "", "add_pipeline_step"], [6, 2, 1, "", "add_process"], [6, 2, 1, "", "add_processes_selection"], [6, 2, 1, "", "add_switch"], [6, 2, 1, "", "add_trait"], [6, 2, 1, "", "all_nodes"], [6, 2, 1, "", "autoexport_nodes_parameters"], [6, 2, 1, "", "call_process_method"], [6, 2, 1, "", "check_requirements"], [6, 2, 1, "", "compare_to_state"], [6, 2, 1, "", "count_items"], [6, 2, 1, "", "define_groups_as_steps"], [6, 2, 1, "", "define_pipeline_steps"], [6, 2, 1, "", "disabled_pipeline_steps_nodes"], [6, 2, 1, "", "enable_all_pipeline_steps"], [6, 2, 1, "", "export_parameter"], [6, 2, 1, "", "find_empty_parameters"], [6, 2, 1, "", "get_pipeline_step_nodes"], [6, 2, 1, "", "get_processes_selection_groups"], [6, 2, 1, "", "get_processes_selection_nodes"], [6, 2, 1, "", "get_processes_selections"], [6, 2, 1, "", "install_links_debug_handler"], [6, 5, 1, "", "nodes"], [6, 2, 1, "", "parse_link"], [6, 2, 1, "", "parse_parameter"], [6, 2, 1, "", "pipeline_definition"], [6, 2, 1, "", "pipeline_state"], [6, 2, 1, "", "propagate_metadata"], [6, 2, 1, "", "remove_link"], [6, 2, 1, "", "remove_node"], [6, 2, 1, "", "remove_pipeline_step"], [6, 2, 1, "", "remove_trait"], [6, 2, 1, "", "rename_node"], [6, 2, 1, "", "reorder_traits"], [6, 2, 1, "", "set_study_config"], [6, 2, 1, "", "uninstall_links_debug_handler"], [6, 2, 1, "", "update_nodes_and_plugs_activation"], [6, 2, 1, "", "workflow_graph"], [6, 5, 1, "", "workflow_list"], [6, 2, 1, "", "workflow_ordered_nodes"], [6, 5, 1, "", "workflow_repr"]], "capsul.pipeline.pipeline_construction": [[6, 1, 1, "", "ConstructedPipeline"], [6, 1, 1, "", "PipelineConstructor"]], "capsul.pipeline.pipeline_construction.ConstructedPipeline": [[6, 2, 1, "", "pipeline_definition"]], "capsul.pipeline.pipeline_construction.PipelineConstructor": [[6, 2, 1, "", "add_custom_node"], [6, 2, 1, "", "add_iterative_process"], [6, 2, 1, "", "add_link"], [6, 2, 1, "", "add_optional_output_switch"], [6, 2, 1, "", "add_pipeline_step"], [6, 2, 1, "", "add_process"], [6, 2, 1, "", "add_processes_selection"], [6, 2, 1, "", "add_subpipeline_link"], [6, 2, 1, "", "add_switch"], [6, 2, 1, "", "call_process_method"], [6, 2, 1, "", "export_parameter"], [6, 2, 1, "", "set_documentation"], [6, 2, 1, "", "set_node_enabled"], [6, 2, 1, "", "set_node_position"], [6, 2, 1, "", "set_scene_scale_factor"]], "capsul.pipeline.pipeline_nodes": [[6, 1, 1, "", "Node"], [6, 1, 1, "", "OptionalOutputSwitch"], [6, 1, 1, "", "PipelineNode"], [6, 1, 1, "", "Plug"], [6, 1, 1, "", "ProcessNode"], [6, 1, 1, "", "Switch"]], "capsul.pipeline.pipeline_nodes.Node": [[6, 5, 1, "", "activated"], [6, 2, 1, "", "check_requirements"], [6, 2, 1, "", "cleanup"], [6, 2, 1, "id0", "connect"], [6, 2, 1, "", "disconnect"], [6, 5, 1, "", "enabled"], [6, 5, 1, "", "full_name"], [6, 2, 1, "", "get_connections_through"], [6, 2, 1, "", "get_missing_mandatory_parameters"], [6, 2, 1, "id3", "get_plug_value"], [6, 2, 1, "", "get_study_config"], [6, 2, 1, "id4", "get_trait"], [6, 2, 1, "", "is_job"], [6, 5, 1, "", "name"], [6, 2, 1, "", "remove_callback_from_plug"], [6, 2, 1, "", "requirements"], [6, 2, 1, "id5", "set_callback_on_plug"], [6, 2, 1, "id6", "set_plug_value"], [6, 2, 1, "", "set_study_config"]], "capsul.pipeline.pipeline_nodes.PipelineNode": [[6, 2, 1, "", "get_connections_through"]], "capsul.pipeline.pipeline_nodes.Plug": [[6, 5, 1, "", "activated"], [6, 5, 1, "", "enabled"], [6, 5, 1, "", "has_default_value"], [6, 5, 1, "", "links_from"], [6, 5, 1, "", "links_to"], [6, 5, 1, "", "optional"], [6, 5, 1, "", "output"]], "capsul.pipeline.pipeline_nodes.ProcessNode": [[6, 2, 1, "", "check_requirements"], [6, 2, 1, "id7", "get_plug_value"], [6, 2, 1, "", "get_study_config"], [6, 2, 1, "id8", "get_trait"], [6, 2, 1, "", "is_job"], [6, 2, 1, "", "is_parameter_protected"], [6, 5, 1, "", "process"], [6, 2, 1, "", "protect_parameter"], [6, 2, 1, "", "remove_callback_from_plug"], [6, 2, 1, "", "requirements"], [6, 2, 1, "id9", "set_callback_on_plug"], [6, 2, 1, "id10", "set_plug_value"], [6, 2, 1, "", "set_study_config"]], "capsul.pipeline.pipeline_nodes.Switch": [[6, 5, 1, "", "_outputs"], [6, 5, 1, "", "_switch_values"], [6, 2, 1, "", "connections"], [6, 2, 1, "", "get_connections_through"], [6, 2, 1, "", "is_job"]], "capsul.pipeline.pipeline_tools": [[6, 3, 1, "", "create_output_directories"], [6, 3, 1, "", "disable_runtime_steps_with_existing_outputs"], [6, 3, 1, "", "dot_graph_from_pipeline"], [6, 3, 1, "", "dot_graph_from_workflow"], [6, 3, 1, "", "dump_pipeline_state_as_dict"], [6, 3, 1, "", "find_node"], [6, 3, 1, "", "find_plug_connection_destinations"], [6, 3, 1, "", "find_plug_connection_sources"], [6, 3, 1, "", "get_output_directories"], [6, 3, 1, "", "is_node_enabled"], [6, 3, 1, "", "load_pipeline_parameters"], [6, 3, 1, "", "nodes_with_existing_outputs"], [6, 3, 1, "", "nodes_with_missing_inputs"], [6, 3, 1, "", "pipeline_link_color"], [6, 3, 1, "", "pipeline_node_colors"], [6, 3, 1, "", "save_dot_graph"], [6, 3, 1, "", "save_dot_image"], [6, 3, 1, "", "save_pipeline"], [6, 3, 1, "", "save_pipeline_parameters"], [6, 3, 1, "", "set_pipeline_state_from_dict"], [6, 3, 1, "", "where_is_plug_value_from"], [6, 3, 1, "", "write_fake_pipeline"], [6, 3, 1, "", "write_fake_process"]], "capsul.pipeline.pipeline_workflow": [[6, 1, 1, "", "TempFile"], [6, 3, 1, "", "workflow_from_pipeline"], [6, 3, 1, "", "workflow_run"]], "capsul.pipeline.process_iteration": [[6, 1, 1, "", "ProcessIteration"]], "capsul.pipeline.process_iteration.ProcessIteration": [[6, 2, 1, "", "change_iterative_plug"], [6, 2, 1, "", "set_study_config"]], "capsul.pipeline.python_export": [[6, 3, 1, "", "save_py_pipeline"]], "capsul.pipeline.topological_sort": [[6, 1, 1, "", "Graph"], [6, 1, 1, "", "GraphNode"]], "capsul.pipeline.topological_sort.Graph": [[6, 5, 1, "", "_links"], [6, 5, 1, "", "_nodes"], [6, 2, 1, "id18", "add_link"], [6, 2, 1, "id19", "add_node"], [6, 2, 1, "id20", "find_node"], [6, 2, 1, "id21", "topological_sort"]], "capsul.pipeline.topological_sort.GraphNode": [[6, 2, 1, "id22", "add_link_from"], [6, 2, 1, "id23", "add_link_to"], [6, 5, 1, "", "links_from"], [6, 5, 1, "", "links_from_degree"], [6, 5, 1, "", "links_to"], [6, 5, 1, "", "links_to_degree"], [6, 5, 1, "", "meta"], [6, 5, 1, "", "name"], [6, 2, 1, "id24", "remove_link_from"], [6, 2, 1, "id25", "remove_link_to"]], "capsul.pipeline.xml": [[6, 3, 1, "", "create_xml_pipeline"], [6, 3, 1, "", "save_xml_pipeline"]], "capsul.process": [[8, 0, 0, "-", "nipype_process"], [8, 0, 0, "-", "process"], [8, 0, 0, "-", "runprocess"], [8, 0, 0, "-", "xml"]], "capsul.process.nipype_process": [[8, 3, 1, "", "nipype_factory"]], "capsul.process.process": [[8, 1, 1, "", "FileCopyProcess"], [8, 1, 1, "", "InteractiveProcess"], [8, 1, 1, "", "NipypeProcess"], [8, 1, 1, "", "Process"], [8, 1, 1, "", "ProcessMeta"], [8, 1, 1, "", "ProcessResult"]], "capsul.process.process.FileCopyProcess": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "_copy_input_files"], [8, 2, 1, "", "_get_process_arguments"], [8, 2, 1, "", "_update_input_traits"], [8, 5, 1, "", "copied_files"], [8, 5, 1, "", "copied_inputs"]], "capsul.process.process.NipypeProcess": [[8, 5, 1, "", "_nipype_class"], [8, 5, 1, "", "_nipype_interface"], [8, 5, 1, "", "_nipype_interface_name"], [8, 5, 1, "", "_nipype_module"], [8, 2, 1, "", "help"], [8, 2, 1, "", "requirements"], [8, 2, 1, "", "set_output_directory"], [8, 2, 1, "", "set_usedefault"]], "capsul.process.process.Process": [[8, 2, 1, "", "add_trait"], [8, 2, 1, "", "check_requirements"], [8, 2, 1, "", "get_commandline"], [8, 2, 1, "", "get_help"], [8, 2, 1, "", "get_input_help"], [8, 2, 1, "", "get_input_spec"], [8, 2, 1, "", "get_inputs"], [8, 2, 1, "", "get_log"], [8, 2, 1, "", "get_missing_mandatory_parameters"], [8, 2, 1, "", "get_output_help"], [8, 2, 1, "", "get_output_spec"], [8, 2, 1, "", "get_outputs"], [8, 2, 1, "", "get_parameter"], [8, 2, 1, "", "get_study_config"], [8, 2, 1, "", "help"], [8, 5, 1, "", "id"], [8, 5, 1, "", "log_file"], [8, 2, 1, "", "make_commandline_argument"], [8, 5, 1, "", "name"], [8, 2, 1, "", "params_to_command"], [8, 2, 1, "", "requirements"], [8, 2, 1, "", "run"], [8, 2, 1, "", "run_from_commandline"], [8, 2, 1, "", "save_log"], [8, 2, 1, "", "set_parameter"], [8, 2, 1, "", "set_study_config"]], "capsul.process.process.ProcessMeta": [[8, 2, 1, "", "complement_doc"]], "capsul.process.runprocess": [[8, 4, 1, "", "ProcessParamError"], [8, 3, 1, "", "get_process_with_params"], [8, 3, 1, "", "main"], [8, 3, 1, "", "run_process_with_distribution"], [8, 3, 1, "", "set_process_param_from_str"]], "capsul.process.xml": [[8, 1, 1, "", "XMLProcess"], [8, 3, 1, "", "create_xml_process"], [8, 3, 1, "", "string_to_value"], [8, 3, 1, "", "trait_from_xml"], [8, 3, 1, "", "xml_process"]], "capsul.qt_apps": [[9, 0, 0, "-", "utils"]], "capsul.qt_apps.utils": [[9, 0, 0, "-", "application"], [9, 0, 0, "-", "fill_treectrl"], [9, 0, 0, "-", "find_pipelines"], [9, 0, 0, "-", "window"]], "capsul.qt_apps.utils.application": [[9, 1, 1, "", "Application"], [9, 1, 1, "", "EmittingStream"]], "capsul.qt_apps.utils.fill_treectrl": [[9, 3, 1, "", "add_tree_nodes"], [9, 3, 1, "", "fill_treectrl"], [9, 3, 1, "", "search_in_menu"]], "capsul.qt_apps.utils.find_pipelines": [[9, 3, 1, "", "find_pipeline_and_process"], [9, 3, 1, "", "find_pipelines_from_description"], [9, 3, 1, "", "lists2dict"]], "capsul.qt_apps.utils.window": [[9, 1, 1, "", "MyQUiLoader"]], "capsul.qt_gui": [[10, 0, 0, "-", "board_widget"], [10, 0, 0, "-", "widgets"]], "capsul.qt_gui.board_widget": [[10, 1, 1, "", "BoardWidget"]], "capsul.qt_gui.board_widget.BoardWidget": [[10, 2, 1, "", "browse_node"], [10, 2, 1, "", "create_board_tree"], [10, 2, 1, "", "create_output_widget"], [10, 2, 1, "", "create_viewer_tree"]], "capsul.qt_gui.widgets": [[10, 0, 0, "-", "activation_inspector"], [10, 0, 0, "-", "attributed_process_widget"], [10, 0, 0, "-", "links_debugger"], [10, 0, 0, "-", "pipeline_developer_view"], [10, 0, 0, "-", "pipeline_file_warning_widget"], [10, 0, 0, "-", "pipeline_user_view"], [10, 0, 0, "-", "viewer_widget"]], "capsul.qt_gui.widgets.activation_inspector": [[10, 1, 1, "", "ActivationInspector"], [10, 1, 1, "", "ActivationInspectorApp"]], "capsul.qt_gui.widgets.activation_inspector.ActivationInspector": [[10, 2, 1, "", "add_controls_to_ui"], [10, 2, 1, "", "find_next"], [10, 2, 1, "", "find_previous"], [10, 2, 1, "", "refresh_activation_from_record"], [10, 2, 1, "", "set_filter_pattern"], [10, 2, 1, "", "show"], [10, 2, 1, "", "update_pipeline_activation"]], "capsul.qt_gui.widgets.activation_inspector.ActivationInspectorApp": [[10, 2, 1, "", "init_window"]], "capsul.qt_gui.widgets.attributed_process_widget": [[10, 1, 1, "", "AttributedProcessWidget"]], "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget": [[10, 2, 1, "", "on_btn_load_json"], [10, 2, 1, "", "on_btn_save_json"], [10, 2, 1, "", "on_input_filename_changed"], [10, 2, 1, "", "on_show_completion"], [10, 2, 1, "", "on_use_fom_change"], [10, 2, 1, "", "set_use_fom"], [10, 2, 1, "", "show_completion"]], "capsul.qt_gui.widgets.links_debugger": [[10, 1, 1, "", "CapsulLinkDebuggerView"]], "capsul.qt_gui.widgets.links_debugger.CapsulLinkDebuggerView": [[10, 2, 1, "", "show"]], "capsul.qt_gui.widgets.pipeline_developer_view": [[10, 1, 1, "", "EmbeddedSubPipelineItem"], [10, 1, 1, "", "HandleItem"], [10, 1, 1, "", "Link"], [10, 1, 1, "", "NodeGWidget"], [10, 1, 1, "", "PipelineDeveloperView"], [10, 1, 1, "", "PipelineScene"], [10, 1, 1, "", "Plug"], [10, 1, 1, "", "boxItem"]], "capsul.qt_gui.widgets.pipeline_developer_view.HandleItem": [[10, 2, 1, "", "itemChange"], [10, 2, 1, "", "mouseReleaseEvent"]], "capsul.qt_gui.widgets.pipeline_developer_view.Link": [[10, 2, 1, "", "focusInEvent"], [10, 2, 1, "", "focusOutEvent"], [10, 2, 1, "", "keyPressEvent"], [10, 2, 1, "", "mousePressEvent"], [10, 2, 1, "", "update"]], "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget": [[10, 2, 1, "", "boundingRect"], [10, 2, 1, "", "keyPressEvent"], [10, 2, 1, "", "mouseDoubleClickEvent"], [10, 2, 1, "", "mousePressEvent"], [10, 2, 1, "", "paint"], [10, 2, 1, "", "update_labels"]], "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView": [[10, 1, 1, "", "IterativeProcessInput"], [10, 1, 1, "", "ProcessModuleInput"], [10, 1, 1, "", "ProcessNameEdit"], [10, 2, 1, "", "__init__"], [10, 2, 1, "id0", "add_embedded_subpipeline"], [10, 2, 1, "", "add_iterative_process"], [10, 2, 1, "", "add_node"], [10, 2, 1, "", "add_optional_output_switch"], [10, 2, 1, "", "add_process"], [10, 2, 1, "", "add_switch"], [10, 2, 1, "id5", "auto_dot_node_positions"], [10, 2, 1, "", "check_files"], [10, 5, 1, "id6", "colored_parameters"], [10, 2, 1, "", "disable_done_steps"], [10, 2, 1, "", "disable_following_steps"], [10, 2, 1, "", "disable_preceding_steps"], [10, 2, 1, "", "dragEnterEvent"], [10, 2, 1, "", "dragMoveEvent"], [10, 2, 1, "", "dropEvent"], [10, 2, 1, "", "drop_process"], [10, 5, 1, "", "edit_sub_pipeline"], [10, 2, 1, "", "edition_enabled"], [10, 2, 1, "", "enableNode"], [10, 2, 1, "", "enable_all_steps"], [10, 2, 1, "", "enable_following_steps"], [10, 2, 1, "", "enable_preceding_steps"], [10, 2, 1, "", "enable_step"], [10, 2, 1, "", "ensure_pipeline"], [10, 5, 1, "", "export_to_db_scans"], [10, 2, 1, "id7", "is_logical_view"], [10, 2, 1, "", "is_restricted_edition_mode"], [10, 5, 1, "id8", "link_right_clicked"], [10, 2, 1, "", "load_pipeline_parameters"], [10, 2, 1, "", "mouseMoveEvent"], [10, 2, 1, "", "mousePressEvent"], [10, 2, 1, "", "mouseReleaseEvent"], [10, 5, 1, "id9", "node_clicked"], [10, 5, 1, "id10", "node_clicked_ctrl"], [10, 5, 1, "id11", "node_right_clicked"], [10, 2, 1, "id12", "onLoadSubPipelineClicked"], [10, 2, 1, "id13", "onOpenProcessController"], [10, 2, 1, "", "openProcessController"], [10, 2, 1, "", "open_background_menu"], [10, 5, 1, "", "open_filter"], [10, 2, 1, "", "open_node_menu"], [10, 5, 1, "id14", "plug_clicked"], [10, 5, 1, "id15", "plug_right_clicked"], [10, 5, 1, "", "process_clicked"], [10, 2, 1, "", "release_pipeline"], [10, 2, 1, "id16", "reset_initial_nodes_positions"], [10, 2, 1, "id17", "save_dot_image_ui"], [10, 2, 1, "", "save_pipeline"], [10, 2, 1, "", "save_pipeline_parameters"], [10, 5, 1, "id18", "scene"], [10, 2, 1, "", "set_enable_edition"], [10, 2, 1, "id19", "set_logical_view"], [10, 2, 1, "id20", "set_pipeline"], [10, 2, 1, "", "set_restricted_edition_mode"], [10, 2, 1, "", "set_switch_value"], [10, 2, 1, "", "show_optional_inputs"], [10, 2, 1, "", "show_optional_outputs"], [10, 5, 1, "id21", "subpipeline_clicked"], [10, 5, 1, "", "switch_clicked"], [10, 2, 1, "", "wheelEvent"], [10, 2, 1, "id22", "window"], [10, 2, 1, "id23", "zoom_in"], [10, 2, 1, "id24", "zoom_out"]], "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene": [[10, 2, 1, "", "helpEvent"], [10, 2, 1, "", "keyPressEvent"], [10, 2, 1, "", "link_tooltip_text"], [10, 2, 1, "", "plug_tooltip_text"]], "capsul.qt_gui.widgets.pipeline_developer_view.Plug": [[10, 2, 1, "", "mousePressEvent"]], "capsul.qt_gui.widgets.pipeline_developer_view.boxItem": [[10, 2, 1, "", "focusInEvent"], [10, 2, 1, "", "focusOutEvent"], [10, 2, 1, "", "keyPressEvent"]], "capsul.qt_gui.widgets.pipeline_file_warning_widget": [[10, 1, 1, "", "PipelineFileWarningWidget"]], "capsul.qt_gui.widgets.pipeline_user_view": [[10, 1, 1, "", "PipelineUserView"]], "capsul.qt_gui.widgets.pipeline_user_view.PipelineUserView": [[10, 2, 1, "", "update"]], "capsul.qt_gui.widgets.viewer_widget": [[10, 1, 1, "", "ViewerWidget"]], "capsul.qt_gui.widgets.viewer_widget.ViewerWidget": [[10, 2, 1, "", "onCreateViewerClicked"]], "capsul.sphinxext": [[11, 0, 0, "-", "layoutdocgen"], [11, 0, 0, "-", "load_pilots"], [11, 0, 0, "-", "pipelinedocgen"], [11, 0, 0, "-", "usecasesdocgen"]], "capsul.sphinxext.layoutdocgen": [[11, 1, 1, "", "LayoutHelperWriter"]], "capsul.sphinxext.layoutdocgen.LayoutHelperWriter": [[11, 2, 1, "", "generate_index_entry"], [11, 2, 1, "", "rst2html"], [11, 2, 1, "", "title_for"], [11, 2, 1, "", "write_index"], [11, 2, 1, "", "write_installation"], [11, 2, 1, "", "write_layout"]], "capsul.sphinxext.load_pilots": [[11, 3, 1, "", "load_pilots"]], "capsul.sphinxext.pipelinedocgen": [[11, 1, 1, "", "PipelineHelpWriter"]], "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter": [[11, 2, 1, "", "generate_api_doc"], [11, 2, 1, "", "get_short_name"], [11, 2, 1, "", "write_api_docs"], [11, 2, 1, "", "write_index"], [11, 2, 1, "", "write_main_index"]], "capsul.sphinxext.usecasesdocgen": [[11, 1, 1, "", "UseCasesHelperWriter"]], "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter": [[11, 2, 1, "", "generate_usecases_doc"], [11, 2, 1, "", "getsource"], [11, 2, 1, "", "write_index"], [11, 2, 1, "", "write_usecases_docs"]], "capsul.study_config": [[12, 0, 0, "-", "config_modules"], [12, 0, 0, "-", "config_utils"], [12, 0, 0, "-", "memory"], [12, 0, 0, "-", "process_instance"], [12, 0, 0, "-", "run"], [12, 0, 0, "-", "study_config"]], "capsul.study_config.config_modules": [[12, 0, 0, "-", "attributes_config"], [12, 0, 0, "-", "brainvisa_config"], [12, 0, 0, "-", "fom_config"], [12, 0, 0, "-", "freesurfer_config"], [12, 0, 0, "-", "fsl_config"], [12, 0, 0, "-", "matlab_config"], [12, 0, 0, "-", "nipype_config"], [12, 0, 0, "-", "smartcaching_config"], [12, 0, 0, "-", "somaworkflow_config"], [12, 0, 0, "-", "spm_config"]], "capsul.study_config.config_modules.attributes_config": [[12, 1, 1, "", "AttributesConfig"]], "capsul.study_config.config_modules.attributes_config.AttributesConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.brainvisa_config": [[12, 1, 1, "", "BrainVISAConfig"]], "capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.fom_config": [[12, 1, 1, "", "FomConfig"]], "capsul.study_config.config_modules.fom_config.FomConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.freesurfer_config": [[12, 1, 1, "", "FreeSurferConfig"]], "capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.fsl_config": [[12, 1, 1, "", "FSLConfig"]], "capsul.study_config.config_modules.fsl_config.FSLConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.matlab_config": [[12, 1, 1, "", "MatlabConfig"]], "capsul.study_config.config_modules.matlab_config.MatlabConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.nipype_config": [[12, 1, 1, "", "NipypeConfig"]], "capsul.study_config.config_modules.nipype_config.NipypeConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.smartcaching_config": [[12, 1, 1, "", "SmartCachingConfig"]], "capsul.study_config.config_modules.somaworkflow_config": [[12, 1, 1, "", "ResourceController"], [12, 1, 1, "", "SomaWorkflowConfig"]], "capsul.study_config.config_modules.somaworkflow_config.ResourceController": [[12, 5, 1, "", "path_translations"], [12, 5, 1, "", "queue"], [12, 5, 1, "", "transfer_paths"]], "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig": [[12, 2, 1, "id23", "connect_resource"], [12, 2, 1, "id24", "disconnect_resource"], [12, 2, 1, "id25", "get_resource_id"], [12, 2, 1, "id26", "get_workflow_controller"], [12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "id27", "set_computing_resource_password"], [12, 5, 1, "", "somaworkflow_computing_resource"], [12, 5, 1, "", "somaworkflow_computing_resources_config"], [12, 5, 1, "", "somaworkflow_config_file"], [12, 5, 1, "", "somaworkflow_keep_failed_workflows"], [12, 5, 1, "", "somaworkflow_keep_succeeded_workflows"], [12, 5, 1, "", "use_soma_workflow"]], "capsul.study_config.config_modules.spm_config": [[12, 1, 1, "", "SPMConfig"]], "capsul.study_config.config_modules.spm_config.SPMConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_utils": [[12, 3, 1, "", "environment"]], "capsul.study_config.memory": [[12, 1, 1, "", "CapsulResultDecoder"], [12, 1, 1, "", "CapsulResultEncoder"], [12, 1, 1, "", "MemorizedProcess"], [12, 1, 1, "", "Memory"], [12, 1, 1, "", "UnMemorizedProcess"], [12, 3, 1, "", "file_fingerprint"], [12, 3, 1, "", "get_process_signature"], [12, 3, 1, "", "has_attribute"], [12, 3, 1, "", "tuple_json_encoder"]], "capsul.study_config.memory.CapsulResultEncoder": [[12, 2, 1, "", "default"]], "capsul.study_config.memory.Memory": [[12, 2, 1, "id0", "cache"], [12, 2, 1, "id2", "clear"]], "capsul.study_config.process_instance": [[12, 3, 1, "", "get_node_class"], [12, 3, 1, "", "get_node_instance"], [12, 3, 1, "", "get_process_instance"], [12, 3, 1, "", "is_pipeline_node"], [12, 3, 1, "", "is_process"]], "capsul.study_config.run": [[12, 3, 1, "", "run_process"]], "capsul.study_config.study_config": [[12, 1, 1, "", "StudyConfig"], [12, 1, 1, "", "StudyConfigModule"], [12, 3, 1, "", "default_study_config"]], "capsul.study_config.study_config.StudyConfig": [[12, 2, 1, "", "add_trait"], [12, 5, 1, "", "create_output_directories"], [12, 5, 1, "", "generate_logging"], [12, 2, 1, "", "get_configuration_dict"], [12, 2, 1, "", "get_iteration_pipeline"], [12, 2, 1, "", "get_process_instance"], [12, 2, 1, "id7", "get_trait"], [12, 2, 1, "id8", "get_trait_value"], [12, 2, 1, "", "initialize_modules"], [12, 5, 1, "", "input_directory"], [12, 2, 1, "", "load_module"], [12, 5, 1, "", "output_directory"], [12, 5, 1, "", "process_output_directory"], [12, 2, 1, "", "read_configuration"], [12, 2, 1, "id9", "reset_process_counter"], [12, 2, 1, "id10", "run"], [12, 2, 1, "", "save_configuration"], [12, 2, 1, "id11", "set_study_configuration"], [12, 2, 1, "id12", "set_trait_value"], [12, 2, 1, "id13", "update_study_configuration"]], "capsul.study_config.study_config.StudyConfigModule": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"], [12, 6, 1, "", "name"]], "capsul.subprocess": [[13, 0, 0, "-", "fsl"], [13, 0, 0, "-", "spm"]], "capsul.subprocess.fsl": [[13, 1, 1, "", "Popen"], [13, 3, 1, "", "auto_configuration"], [13, 3, 1, "", "call"], [13, 3, 1, "", "check_call"], [13, 3, 1, "", "check_configuration_values"], [13, 3, 1, "", "check_fsl_configuration"], [13, 3, 1, "", "check_output"], [13, 3, 1, "", "fsl_command_with_environment"]], "capsul.subprocess.spm": [[13, 1, 1, "", "Popen"], [13, 3, 1, "", "auto_configuration"], [13, 3, 1, "", "call"], [13, 3, 1, "", "check_call"], [13, 3, 1, "", "check_configuration_values"], [13, 3, 1, "", "check_output"], [13, 3, 1, "", "check_spm_configuration"], [13, 3, 1, "", "find_spm"]], "capsul.utils": [[14, 0, 0, "-", "finder"], [14, 0, 0, "-", "version_utils"]], "capsul.utils.finder": [[14, 3, 1, "", "find_processes"]], "capsul.utils.version_utils": [[14, 3, 1, "", "get_nipype_interfaces_versions"], [14, 3, 1, "", "get_tool_version"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:exception", "5": "py:attribute", "6": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "exception", "Python exception"], "5": ["py", "attribute", "Python attribute"], "6": ["py", "property", "Python property"]}, "titleterms": {"capsul": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21], "api": [0, 4, 19, 22], "modul": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14], "class": [0, 1, 2, 4, 6, 8, 9, 10, 12, 13], "function": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 22], "attribut": [1, 2, 4, 20], "attributes_factori": 1, "submodul": [1, 2, 3, 6, 8, 9, 10, 12, 13], "attributesfactori": 1, "attributes_schema": 1, "attributesschema": 1, "editableattribut": 1, "processattribut": 1, "set_attribut": 1, "completion_engine_factori": 1, "builtinprocesscompletionenginefactori": 1, "completion_engine_iter": 1, "processcompletionengineiter": 1, "completion_engin": 1, "processcompletionengin": 1, "switchcompletionengin": 1, "pathcompletionengin": 1, "processcompletionenginefactori": 1, "pathcompletionenginefactori": 1, "fom_completion_engin": 1, "fomprocesscompletionengin": 1, "fompathcompletionengin": 1, "fomprocesscompletionengineiter": 1, "engin": [2, 4], "main": [2, 4, 8, 16], "capsulengin": 2, "database_factori": 2, "capsul_engin": 2, "activate_configur": 2, "database_json": 2, "database_populs": 2, "databas": 2, "axon": 2, "fom": [2, 19, 20], "fomconfig": [2, 12], "fsl": [2, 3, 4, 13], "matlab": 2, "python": [2, 19, 22], "spm": [2, 3, 4, 13], "run": [2, 4, 12, 21], "set": [2, 20, 22], "in_context": [3, 4], "program": 4, "document": [4, 15, 16, 21], "inherit": 4, "diagram": 4, "pipelin": [4, 6, 19, 21, 22], "definit": [4, 19], "node": [4, 6, 22], "type": [4, 22], "plug": [4, 6, 10], "process": [4, 8, 19, 20, 21, 22], "configur": 4, "execut": 4, "study_config": [4, 12], "studi": 4, "complet": [4, 20], "extern": 4, "softwar": 4, "subprocess": [4, 13], "workflow": 4, "convers": 4, "gui": [4, 22], "qt_gui": [4, 10], "widget": [4, 10], "viewer": 4, "graphic": [4, 20], "debug": 4, "tool": [4, 15], "list": 4, "pipeline_construct": 6, "pipelineconstructor": 6, "constructedpipelin": 6, "pipeline_nod": 6, "processnod": 6, "pipelinenod": 6, "switch": [6, 19, 22], "optionaloutputswitch": 6, "pipeline_tool": 6, "pipeline_node_color": 6, "pipeline_link_color": 6, "dot_graph_from_pipelin": 6, "dot_graph_from_workflow": 6, "save_dot_graph": 6, "save_dot_imag": 6, "disable_runtime_steps_with_existing_output": 6, "nodes_with_existing_output": 6, "nodes_with_missing_input": 6, "where_is_plug_value_from": 6, "dump_pipeline_state_as_dict": 6, "set_pipeline_state_from_dict": 6, "get_output_directori": 6, "create_output_directori": 6, "save_pipelin": 6, "load_pipeline_paramet": 6, "save_pipeline_paramet": 6, "is_node_en": 6, "pipeline_workflow": 6, "workflow_from_pipelin": 6, "workflow_run": 6, "process_iter": 6, "processiter": 6, "python_export": 6, "save_py_pipelin": 6, "topological_sort": 6, "graphnod": 6, "xml": [6, 8, 21, 22], "create_xml_pipelin": 6, "save_xml_pipelin": 6, "custom_nod": 6, "strcat_nod": 6, "strcatnod": 6, "strconv": 6, "strconvnod": 6, "cv_node": 6, "crossvalidationfoldnod": 6, "loo_nod": 6, "leaveoneoutnod": 6, "map_nod": 6, "mapnod": 6, "reduce_nod": 6, "reducenod": 6, "plugin": 7, "filecopyprocess": 8, "interactiveprocess": 8, "nipypeprocess": 8, "processmeta": 8, "processresult": 8, "nipype_process": 8, "nipype_factori": 8, "runprocess": 8, "processparamerror": 8, "set_process_param_from_str": 8, "get_process_with_param": 8, "run_process_with_distribut": 8, "convert_commandline_paramet": 8, "xmlprocess": 8, "string_to_valu": 8, "trait_from_xml": 8, "create_xml_process": 8, "decor": 8, "xml_process": 8, "qt_app": 9, "main_window": 9, "pipeline_viewer_app": 9, "util": [9, 14], "applic": 9, "emittingstream": 9, "fill_treectrl": 9, "add_tree_nod": 9, "search_in_menu": 9, "find_pipelin": 9, "find_pipelines_from_descript": 9, "find_pipeline_and_process": 9, "lists2dict": 9, "window": 9, "myquiload": 9, "board_widget": 10, "boardwidget": 10, "activation_inspector": 10, "activationinspectorapp": 10, "activationinspector": 10, "attributed_process_widget": 10, "attributedprocesswidget": 10, "links_debugg": 10, "capsullinkdebuggerview": 10, "pipeline_developer_view": 10, "colortyp": 10, "embeddedsubpipelineitem": 10, "boxitem": 10, "nodegwidget": 10, "handleitem": 10, "link": [10, 19, 22], "pipelinescen": 10, "pipelinedeveloperview": 10, "pipeline_file_warning_widget": 10, "pipelinefilewarningwidget": 10, "pipeline_user_view": 10, "pipelineuserview": 10, "viewer_widget": 10, "viewerwidget": 10, "sphinxext": 11, "command": 11, "config_util": 12, "environ": 12, "memori": 12, "unmemorizedprocess": 12, "memorizedprocess": 12, "capsulresultencod": 12, "get_process_signatur": 12, "has_attribut": 12, "file_fingerprint": 12, "process_inst": 12, "is_process": 12, "is_pipeline_nod": 12, "get_process_inst": 12, "get_node_class": 12, "get_node_inst": 12, "run_process": 12, "studyconfig": 12, "studyconfigmodul": 12, "default_study_config": 12, "config_modul": 12, "attributes_config": 12, "attributesconfig": 12, "brainvisa_config": 12, "brainvisaconfig": 12, "fom_config": 12, "freesurfer_config": 12, "freesurferconfig": 12, "fsl_config": 12, "fslconfig": 12, "matlab_config": 12, "matlabconfig": 12, "nipype_config": 12, "nipypeconfig": 12, "smartcaching_config": 12, "smartcachingconfig": 12, "somaworkflow_config": 12, "resourcecontrol": 12, "somaworkflowconfig": 12, "spm_config": 12, "spmconfig": 12, "popen": 13, "fsl_command_with_environ": 13, "check_fsl_configur": 13, "check_configuration_valu": 13, "auto_configur": 13, "call": 13, "check_cal": 13, "check_output": 13, "find_spm": 13, "check_spm_configur": 13, "spm_command": 13, "find_process": 14, "get_tool_vers": 14, "get_nipype_interfaces_vers": 14, "featur": 16, "technic": 16, "content": [16, 22], "licens": 16, "instal": 17, "brainvisa": 17, "without": 17, "prerequisit": 17, "system": [17, 20], "wide": 17, "user": [17, 21], "virtualenv": 17, "statu": 18, "chain": 19, "algorithm": 19, "enter": 19, "paramet": [19, 20, 22], "export": 19, "us": [19, 20], "iter": [19, 20], "over": [19, 20], "now": 19, "cleanup": 19, "file": [19, 20], "we": 19, "have": 19, "creat": 19, "model": 20, "interfac": 20, "defin": 20, "custom": 20, "path": 20, "build": 20, "from": 20, "declar": 20, "put": 20, "thing": 20, "togeth": 20, "organ": 20, "multipl": 20, "data": 20, "guid": 21, "tutori": 21, "commandlin": 21, "specif": [21, 22], "sphinx": 21, "advanc": 21, "usag": 21, "2": 22, "0": 22, "tabl": 22, "role": 22, "associ": 22, "between": 22, "an": 22, "string": 22, "exampl": 22, "The": 22, "doc": 22, "element": 22, "nipyp": 22, "input": 22, "output": 22, "optional_output_switch": 22, "processes_select": 22, "pipeline_step": 22, "step": 22, "valid": 22}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 57}, "alltitles": {"capsul.api module": [[0, "module-capsul.api"]], "Classes": [[0, "classes"], [1, "classes"], [1, "id1"], [1, "id2"], [1, "id3"], [1, "id4"], [1, "id12"], [2, "classes"], [2, "id2"], [4, "classes"], [4, "id3"], [6, "classes"], [6, "id1"], [6, "id2"], [6, "id15"], [6, "id17"], [8, "classes"], [8, "id1"], [8, "id3"], [9, "classes"], [9, "id2"], [10, "classes"], [10, "id1"], [10, "id2"], [10, "id3"], [10, "id4"], [10, "id25"], [10, "id26"], [10, "id27"], [12, "classes"], [12, "id5"], [12, "id14"], [12, "id15"], [12, "id16"], [12, "id17"], [12, "id18"], [12, "id19"], [12, "id20"], [12, "id21"], [12, "id22"], [12, "id28"], [13, "classes"], [13, "id1"]], "Functions": [[0, "functions"], [1, "functions"], [2, "functions"], [4, "functions"], [6, "functions"], [6, "id14"], [6, "id16"], [6, "id26"], [8, "functions"], [8, "id2"], [8, "id4"], [9, "functions"], [9, "id1"], [12, "functions"], [12, "id1"], [12, "id3"], [12, "id4"], [12, "id6"], [13, "functions"], [13, "id3"], [14, "functions"], [14, "id1"]], "capsul.attributes module": [[1, "capsul-attributes-module"]], "capsul.attributes.attributes_factory submodule": [[1, "module-capsul.attributes.attributes_factory"]], "AttributesFactory": [[1, "attributesfactory"]], "capsul.attributes.attributes_schema submodule": [[1, "module-capsul.attributes.attributes_schema"]], "AttributesSchema": [[1, "attributesschema"]], "EditableAttributes": [[1, "editableattributes"]], "ProcessAttributes": [[1, "processattributes"]], "set_attribute()": [[1, "set-attribute"]], "capsul.attributes.completion_engine_factory submodule": [[1, "module-capsul.attributes.completion_engine_factory"]], "BuiltinProcessCompletionEngineFactory": [[1, "builtinprocesscompletionenginefactory"]], "capsul.attributes.completion_engine_iteration submodule": [[1, "module-capsul.attributes.completion_engine_iteration"]], "ProcessCompletionEngineIteration": [[1, "processcompletionengineiteration"]], "capsul.attributes.completion_engine submodule": [[1, "module-capsul.attributes.completion_engine"]], "ProcessCompletionEngine": [[1, "processcompletionengine"]], "SwitchCompletionEngine": [[1, "switchcompletionengine"]], "PathCompletionEngine": [[1, "pathcompletionengine"]], "ProcessCompletionEngineFactory": [[1, "processcompletionenginefactory"]], "PathCompletionEngineFactory": [[1, "pathcompletionenginefactory"]], "capsul.attributes.fom_completion_engine submodule": [[1, "module-capsul.attributes.fom_completion_engine"]], "FomProcessCompletionEngine": [[1, "fomprocesscompletionengine"]], "FomPathCompletionEngine": [[1, "fompathcompletionengine"]], "FomProcessCompletionEngineIteration": [[1, "fomprocesscompletionengineiteration"]], "capsul.engine module": [[2, "capsul-engine-module"]], "Main module": [[2, "module-capsul.engine"]], "CapsulEngine": [[2, "capsulengine"]], "database_factory()": [[2, "database-factory"]], "capsul_engine()": [[2, "capsul-engine"]], "activate_configuration()": [[2, "activate-configuration"]], "capsul.engine.database_json submodule": [[2, "module-capsul.engine.database_json"]], "capsul.engine.database_populse submodule": [[2, "module-capsul.engine.database_populse"]], "capsul.engine.database submodule": [[2, "module-capsul.engine.database"]], "capsul.engine.module submodule": [[2, "module-capsul.engine.module"]], "attributes": [[2, "module-capsul.engine.module.attributes"]], "axon": [[2, "module-capsul.engine.module.axon"]], "fom": [[2, "module-capsul.engine.module.fom"]], "FomConfig": [[2, "fomconfig"], [12, "fomconfig"]], "fsl": [[2, "module-capsul.engine.module.fsl"]], "matlab": [[2, "module-capsul.engine.module.matlab"]], "python": [[2, "module-capsul.engine.module.python"]], "spm": [[2, "module-capsul.engine.module.spm"]], "capsul.engine.run submodule": [[2, "module-capsul.engine.run"]], "capsul.engine.settings submodule": [[2, "module-capsul.engine.settings"]], "capsul.in_context module": [[3, "capsul-in-context-module"]], "capsul.in_context.fsl submodule": [[3, "module-capsul.in_context.fsl"]], "capsul.in_context.spm submodule": [[3, "module-capsul.in_context.spm"]], "CAPSUL programming API documentation": [[4, "capsul-programming-api-documentation"]], "Classes inheritance diagram": [[4, "classes-inheritance-diagram"]], "Main classes and functions": [[4, "main-classes-and-functions"]], "capsul.pipeline: Pipeline": [[4, "capsul-pipeline-pipeline"]], "Pipeline Definition": [[4, "pipeline-definition"]], "Node Types": [[4, "node-types"]], "Plug": [[4, "plug"], [6, "plug"], [10, "plug"]], "capsul.process: Process": [[4, "capsul-process-process"]], "Configuration and execution": [[4, "configuration-and-execution"]], "capsul.engine: Configuration and execution": [[4, "capsul-engine-configuration-and-execution"]], "Classes:": [[4, "id1"]], "Functions:": [[4, "id2"]], "capsul.study_config: Study Configuration": [[4, "capsul-study-config-study-configuration"]], "Study Configuration:": [[4, "study-configuration"]], "Configuration Modules:": [[4, "configuration-modules"]], "capsul.attributes: Attributes and processes completion": [[4, "capsul-attributes-attributes-and-processes-completion"]], "Running external software": [[4, "running-external-software"]], "capsul.in_context": [[4, "capsul-in-context"]], "capsul.subprocess": [[4, "capsul-subprocess"]], "capsul.subprocess.fsl Classes:": [[4, "capsul-subprocess-fsl-classes"]], "capsul.subprocess.fsl Functions:": [[4, "capsul-subprocess-fsl-functions"]], "capsul.subprocess.spm Classes:": [[4, "capsul-subprocess-spm-classes"]], "capsul.subprocess.spm Functions:": [[4, "capsul-subprocess-spm-functions"]], "Workflow conversion": [[4, "workflow-conversion"]], "GUI": [[4, "gui"]], "capsul.qt_gui.widgets: Pipeline Viewers": [[4, "capsul-qt-gui-widgets-pipeline-viewers"]], "Graphical pipeline debugging tools": [[4, "graphical-pipeline-debugging-tools"]], "Complete modules list": [[4, "complete-modules-list"]], "capsul.pipeline module": [[6, "capsul-pipeline-module"]], "capsul.pipeline.pipeline submodule": [[6, "module-capsul.pipeline.pipeline"]], "Pipeline": [[6, "pipeline"]], "capsul.pipeline.pipeline_construction submodule": [[6, "module-capsul.pipeline.pipeline_construction"]], "PipelineConstructor": [[6, "pipelineconstructor"]], "ConstructedPipeline": [[6, "constructedpipeline"]], "capsul.pipeline.pipeline_nodes submodule": [[6, "module-capsul.pipeline.pipeline_nodes"]], "Node": [[6, "node"]], "ProcessNode": [[6, "processnode"]], "PipelineNode": [[6, "pipelinenode"]], "Switch": [[6, "switch"]], "OptionalOutputSwitch": [[6, "optionaloutputswitch"]], "capsul.pipeline.pipeline_tools submodule": [[6, "module-capsul.pipeline.pipeline_tools"]], "pipeline_node_colors()": [[6, "pipeline-node-colors"]], "pipeline_link_color()": [[6, "pipeline-link-color"]], "dot_graph_from_pipeline()": [[6, "dot-graph-from-pipeline"]], "dot_graph_from_workflow()": [[6, "dot-graph-from-workflow"]], "save_dot_graph()": [[6, "save-dot-graph"]], "save_dot_image()": [[6, "save-dot-image"]], "disable_runtime_steps_with_existing_outputs()": [[6, "disable-runtime-steps-with-existing-outputs"]], "nodes_with_existing_outputs()": [[6, "nodes-with-existing-outputs"]], "nodes_with_missing_inputs()": [[6, "nodes-with-missing-inputs"]], "where_is_plug_value_from()": [[6, "where-is-plug-value-from"]], "dump_pipeline_state_as_dict()": [[6, "dump-pipeline-state-as-dict"]], "set_pipeline_state_from_dict()": [[6, "set-pipeline-state-from-dict"]], "get_output_directories()": [[6, "get-output-directories"]], "create_output_directories()": [[6, "create-output-directories"]], "save_pipeline()": [[6, "save-pipeline"]], "load_pipeline_parameters()": [[6, "load-pipeline-parameters"]], "save_pipeline_parameters()": [[6, "save-pipeline-parameters"]], "is_node_enabled()": [[6, "is-node-enabled"]], "capsul.pipeline.pipeline_workflow submodule": [[6, "module-capsul.pipeline.pipeline_workflow"]], "workflow_from_pipeline()": [[6, "workflow-from-pipeline"]], "workflow_run()": [[6, "workflow-run"]], "capsul.pipeline.process_iteration submodule": [[6, "module-capsul.pipeline.process_iteration"]], "ProcessIteration": [[6, "processiteration"]], "capsul.pipeline.python_export submodule": [[6, "module-capsul.pipeline.python_export"]], "save_py_pipeline()": [[6, "save-py-pipeline"]], "capsul.pipeline.topological_sort submodule": [[6, "module-capsul.pipeline.topological_sort"]], "GraphNode": [[6, "graphnode"]], "capsul.pipeline.xml submodule": [[6, "module-capsul.pipeline.xml"]], "create_xml_pipeline()": [[6, "create-xml-pipeline"]], "save_xml_pipeline()": [[6, "save-xml-pipeline"]], "capsul.pipeline.custom_nodes submodule": [[6, "module-capsul.pipeline.custom_nodes"]], "capsul.pipeline.custom_nodes.strcat_node": [[6, "module-capsul.pipeline.custom_nodes.strcat_node"]], "StrCatNode": [[6, "strcatnode"]], "capsul.pipeline.custom_nodes.strconv": [[6, "module-capsul.pipeline.custom_nodes.strconv"]], "StrConvNode": [[6, "strconvnode"]], "capsul.pipeline.custom_nodes.cv_node": [[6, "module-capsul.pipeline.custom_nodes.cv_node"]], "CrossValidationFoldNode": [[6, "crossvalidationfoldnode"]], "capsul.pipeline.custom_nodes.loo_node": [[6, "module-capsul.pipeline.custom_nodes.loo_node"]], "LeaveOneOutNode": [[6, "leaveoneoutnode"]], "capsul.pipeline.custom_nodes.map_node": [[6, "module-capsul.pipeline.custom_nodes.map_node"]], "MapNode": [[6, "mapnode"]], "capsul.pipeline.custom_nodes.reduce_node": [[6, "module-capsul.pipeline.custom_nodes.reduce_node"]], "ReduceNode": [[6, "reducenode"]], "capsul.plugins module": [[7, "capsul-plugins-module"]], "capsul.process": [[8, "capsul-process"]], "capsul.process.process submodule": [[8, "module-capsul.process.process"]], "Process": [[8, "process"]], "FileCopyProcess": [[8, "filecopyprocess"]], "InteractiveProcess": [[8, "interactiveprocess"]], "NipypeProcess": [[8, "nipypeprocess"]], "ProcessMeta": [[8, "processmeta"]], "ProcessResult": [[8, "processresult"]], "capsul.process.nipype_process submodule": [[8, "module-capsul.process.nipype_process"]], "nipype_factory()": [[8, "nipype-factory"]], "capsul.process.runprocess submodule": [[8, "module-capsul.process.runprocess"]], "ProcessParamError": [[8, "processparamerror"]], "set_process_param_from_str()": [[8, "set-process-param-from-str"]], "get_process_with_params()": [[8, "get-process-with-params"]], "run_process_with_distribution()": [[8, "run-process-with-distribution"]], "convert_commandline_parameter()": [[8, "convert-commandline-parameter"]], "main()": [[8, "main"]], "capsul.process.xml submodule": [[8, "module-capsul.process.xml"]], "XMLProcess": [[8, "xmlprocess"]], "string_to_value()": [[8, "string-to-value"]], "trait_from_xml()": [[8, "trait-from-xml"]], "create_xml_process()": [[8, "create-xml-process"]], "Decorator": [[8, "decorator"]], "xml_process()": [[8, "xml-process"]], "capsul.qt_apps module": [[9, "capsul-qt-apps-module"]], "capsul.qt_apps.main_window submodule": [[9, "capsul-qt-apps-main-window-submodule"]], "capsul.qt_apps.pipeline_viewer_app submodule": [[9, "capsul-qt-apps-pipeline-viewer-app-submodule"]], "capsul.qt_apps.utils submodule": [[9, "module-capsul.qt_apps.utils"]], "capsul.qt_apps.utils.application submodule": [[9, "module-capsul.qt_apps.utils.application"]], "Application": [[9, "application"]], "EmittingStream": [[9, "emittingstream"]], "capsul.qt_apps.utils.fill_treectrl submodule": [[9, "module-capsul.qt_apps.utils.fill_treectrl"]], "fill_treectrl()": [[9, "fill-treectrl"]], "add_tree_nodes()": [[9, "add-tree-nodes"]], "search_in_menu()": [[9, "search-in-menu"]], "capsul.qt_apps.utils.find_pipelines submodule": [[9, "module-capsul.qt_apps.utils.find_pipelines"]], "find_pipelines_from_description()": [[9, "find-pipelines-from-description"]], "find_pipeline_and_process()": [[9, "find-pipeline-and-process"]], "lists2dict()": [[9, "lists2dict"]], "capsul.qt_apps.utils.window submodule": [[9, "module-capsul.qt_apps.utils.window"]], "MyQUiLoader": [[9, "myquiloader"]], "capsul.qt_gui module": [[10, "capsul-qt-gui-module"]], "capsul.qt_gui.board_widget submodule": [[10, "module-capsul.qt_gui.board_widget"]], "BoardWidget": [[10, "boardwidget"]], "capsul.qt_gui.widgets.activation_inspector submodule": [[10, "module-capsul.qt_gui.widgets.activation_inspector"]], "ActivationInspectorApp": [[10, "activationinspectorapp"]], "ActivationInspector": [[10, "activationinspector"]], "capsul.qt_gui.widgets.attributed_process_widget submodule": [[10, "module-capsul.qt_gui.widgets.attributed_process_widget"]], "AttributedProcessWidget": [[10, "attributedprocesswidget"]], "capsul.qt_gui.widgets.links_debugger submodule": [[10, "module-capsul.qt_gui.widgets.links_debugger"]], "CapsulLinkDebuggerView": [[10, "capsullinkdebuggerview"]], "capsul.qt_gui.widgets.pipeline_developer_view submodule": [[10, "module-capsul.qt_gui.widgets.pipeline_developer_view"]], "ColorType": [[10, "colortype"]], "EmbeddedSubPipelineItem": [[10, "embeddedsubpipelineitem"]], "boxItem": [[10, "boxitem"]], "NodeGWidget": [[10, "nodegwidget"]], "HandleItem": [[10, "handleitem"]], "Link": [[10, "link"]], "PipelineScene": [[10, "pipelinescene"]], "PipelineDeveloperView": [[10, "pipelinedeveloperview"]], "capsul.qt_gui.widgets.pipeline_file_warning_widget submodule": [[10, "module-capsul.qt_gui.widgets.pipeline_file_warning_widget"]], "PipelineFileWarningWidget": [[10, "pipelinefilewarningwidget"]], "capsul.qt_gui.widgets.pipeline_user_view submodule": [[10, "module-capsul.qt_gui.widgets.pipeline_user_view"]], "PipelineUserView": [[10, "pipelineuserview"]], "capsul.qt_gui.widgets.viewer_widget submodule": [[10, "module-capsul.qt_gui.widgets.viewer_widget"]], "ViewerWidget": [[10, "viewerwidget"]], "capsul.sphinxext module": [[11, "capsul-sphinxext-module"]], "Commands": [[11, "commands"]], "capsul.study_config module": [[12, "capsul-study-config-module"]], "capsul.study_config.config_utils submodule": [[12, "module-capsul.study_config.config_utils"]], "environment()": [[12, "environment"]], "capsul.study_config.memory submodule": [[12, "module-capsul.study_config.memory"]], "UnMemorizedProcess": [[12, "unmemorizedprocess"]], "MemorizedProcess": [[12, "memorizedprocess"]], "CapsulResultEncoder": [[12, "capsulresultencoder"]], "Memory": [[12, "memory"]], "get_process_signature()": [[12, "get-process-signature"]], "has_attribute()": [[12, "has-attribute"]], "file_fingerprint()": [[12, "file-fingerprint"]], "capsul.study_config.process_instance submodule": [[12, "module-capsul.study_config.process_instance"]], "is_process()": [[12, "is-process"]], "is_pipeline_node()": [[12, "is-pipeline-node"]], "get_process_instance()": [[12, "get-process-instance"]], "get_node_class()": [[12, "get-node-class"]], "get_node_instance()": [[12, "get-node-instance"]], "capsul.study_config.run submodule": [[12, "module-capsul.study_config.run"]], "run_process()": [[12, "run-process"]], "capsul.study_config.study_config submodule": [[12, "capsul-study-config-study-config-submodule"]], "StudyConfig": [[12, "studyconfig"]], "StudyConfigModule": [[12, "studyconfigmodule"]], "default_study_config()": [[12, "default-study-config"]], "capsul.study_config.config_modules submodule": [[12, "capsul-study-config-config-modules-submodule"]], "capsul.study_config.config_modules.attributes_config submodule": [[12, "capsul-study-config-config-modules-attributes-config-submodule"]], "AttributesConfig": [[12, "attributesconfig"]], "capsul.study_config.config_modules.brainvisa_config submodule": [[12, "module-capsul.study_config.config_modules.brainvisa_config"]], "BrainVISAConfig": [[12, "brainvisaconfig"]], "capsul.study_config.config_modules.fom_config submodule": [[12, "module-capsul.study_config.config_modules.fom_config"]], "capsul.study_config.config_modules.freesurfer_config submodule": [[12, "module-capsul.study_config.config_modules.freesurfer_config"]], "FreeSurferConfig": [[12, "freesurferconfig"]], "capsul.study_config.config_modules.fsl_config submodule": [[12, "module-capsul.study_config.config_modules.fsl_config"]], "FSLConfig": [[12, "fslconfig"]], "capsul.study_config.config_modules.matlab_config submodule": [[12, "module-capsul.study_config.config_modules.matlab_config"]], "MatlabConfig": [[12, "matlabconfig"]], "capsul.study_config.config_modules.nipype_config submodule": [[12, "module-capsul.study_config.config_modules.nipype_config"]], "NipypeConfig": [[12, "nipypeconfig"]], "capsul.study_config.config_modules.smartcaching_config submodule": [[12, "module-capsul.study_config.config_modules.smartcaching_config"]], "SmartCachingConfig": [[12, "smartcachingconfig"]], "capsul.study_config.config_modules.somaworkflow_config submodule": [[12, "module-capsul.study_config.config_modules.somaworkflow_config"]], "ResourceController": [[12, "resourcecontroller"]], "SomaWorkflowConfig": [[12, "somaworkflowconfig"]], "capsul.study_config.config_modules.spm_config submodule": [[12, "module-capsul.study_config.config_modules.spm_config"]], "SPMConfig": [[12, "spmconfig"]], "capsul.subprocess module": [[13, "capsul-subprocess-module"]], "capsul.subprocess.fsl submodule": [[13, "module-capsul.subprocess.fsl"]], "Popen": [[13, "popen"], [13, "id2"]], "fsl_command_with_environment()": [[13, "fsl-command-with-environment"]], "check_fsl_configuration()": [[13, "check-fsl-configuration"]], "check_configuration_values()": [[13, "check-configuration-values"], [13, "id4"]], "auto_configuration()": [[13, "auto-configuration"], [13, "id5"]], "call()": [[13, "call"], [13, "id6"]], "check_call()": [[13, "check-call"], [13, "id7"]], "check_output()": [[13, "check-output"], [13, "id8"]], "capsul.subprocess.spm submodule": [[13, "module-capsul.subprocess.spm"]], "find_spm()": [[13, "find-spm"]], "check_spm_configuration()": [[13, "check-spm-configuration"]], "spm_command()": [[13, "spm-command"]], "capsul.utils module": [[14, "capsul-utils-module"]], "find_processes()": [[14, "find-processes"]], "get_tool_version()": [[14, "get-tool-version"]], "get_nipype_interfaces_versions()": [[14, "get-nipype-interfaces-versions"]], "Documentation of the CAPSUL tools": [[15, "documentation-of-the-capsul-tools"]], "CAPSUL": [[16, "capsul"]], "Main features": [[16, "main-features"]], "Technical features": [[16, "technical-features"]], "Documentation contents": [[16, "documentation-contents"]], "License": [[16, "license"]], "CAPSUL installation": [[17, "capsul-installation"]], "Installing with BrainVISA": [[17, "installing-with-brainvisa"]], "Installing without BrainVISA": [[17, "installing-without-brainvisa"]], "Prerequisite": [[17, "prerequisite"]], "Install system-wide": [[17, "install-system-wide"]], "Install user-wide": [[17, "install-user-wide"]], "Install with virtualenv": [[17, "install-with-virtualenv"]], "CAPSUL status": [[18, "capsul-status"]], "CAPSUL: chain algorithms in pipelines": [[19, "CAPSUL:-chain-algorithms-in-pipelines"]], "Entering parameters": [[19, "Entering-parameters"]], "Links and exportations": [[19, "Links-and-exportations"]], "Switches": [[19, "Switches"]], "Using the Python API": [[19, "Using-the-Python-API"]], "Iteration over a process or pipeline": [[19, "Iteration-over-a-process-or-pipeline"]], "FOM definition": [[19, "FOM-definition"]], "Now Cleanup the files we have created\u2026": [[19, "Now-Cleanup-the-files-we-have-created..."]], "Parameters completion": [[20, "parameters-completion"]], "Completion model": [[20, "completion-model"]], "Using completion": [[20, "using-completion"]], "Graphical interface": [[20, "graphical-interface"]], "Defining a custom completion system": [[20, "defining-a-custom-completion-system"]], "Path building from attributes": [[20, "path-building-from-attributes"]], "Declaring attributes sets": [[20, "declaring-attributes-sets"]], "Declaring process and parameters attributes": [[20, "declaring-process-and-parameters-attributes"]], "Putting things together": [[20, "putting-things-together"]], "File Organization Model (FOM)": [[20, "file-organization-model-fom"]], "Using FOMs": [[20, "using-foms"]], "Defining FOMs": [[20, "defining-foms"]], "Iterating processing over multiple data": [[20, "iterating-processing-over-multiple-data"]], "User Guide": [[21, "user-guide"]], "Tutorial": [[21, "tutorial"]], "Running Capsul": [[21, "running-capsul"]], "Running as commandline": [[21, "running-as-commandline"]], "XML Specifications": [[21, "xml-specifications"]], "Documenting CAPSUL processes and pipelines with Sphinx": [[21, "documenting-capsul-processes-and-pipelines-with-sphinx"]], "Advanced usage": [[21, "advanced-usage"]], "XML 2.0 specification": [[22, "xml-2-0-specification"]], "Table of content": [[22, "table-of-content"]], "Processes": [[22, "processes"]], "Parameter types": [[22, "parameter-types"]], "Process roles": [[22, "process-roles"]], "Association between a Python function and an XML string": [[22, "association-between-a-python-function-and-an-xml-string"]], "Processes examples": [[22, "processes-examples"]], "Pipelines": [[22, "pipelines"]], "The element": [[22, "the-doc-element"]], "The element": [[22, "the-process-element"]], "": [[22, "set"]], "": [[22, "nipype"]], "The element": [[22, "the-switch-element"]], "": [[22, "input"], [22, "id1"]], "": [[22, "output"], [22, "id2"]], "The element": [[22, "the-optional-output-switch-element"]], "The element": [[22, "the-link-element"]], "The element": [[22, "the-processes-selection-element"]], "The element": [[22, "the-pipeline-steps-element"]], "": [[22, "step"]], "": [[22, "node"]], "The element": [[22, "the-gui-element"]], "Pipeline example": [[22, "pipeline-example"]], "API": [[22, "api"]], "XML validation": [[22, "xml-validation"]]}, "indexentries": {"capsul.api": [[0, "module-capsul.api"]], "module": [[0, "module-capsul.api"], [1, "module-capsul.attributes"], [1, "module-capsul.attributes.attributes_factory"], [1, "module-capsul.attributes.attributes_schema"], [1, "module-capsul.attributes.completion_engine"], [1, "module-capsul.attributes.completion_engine_factory"], [1, "module-capsul.attributes.completion_engine_iteration"], [1, "module-capsul.attributes.fom_completion_engine"], [2, "module-capsul.engine"], [2, "module-capsul.engine.database"], [2, "module-capsul.engine.database_json"], [2, "module-capsul.engine.database_populse"], [2, "module-capsul.engine.module"], [2, "module-capsul.engine.module.attributes"], [2, "module-capsul.engine.module.axon"], [2, "module-capsul.engine.module.fom"], [2, "module-capsul.engine.module.fsl"], [2, "module-capsul.engine.module.matlab"], [2, "module-capsul.engine.module.python"], [2, "module-capsul.engine.module.spm"], [2, "module-capsul.engine.run"], [2, "module-capsul.engine.settings"], [3, "module-capsul.in_context"], [3, "module-capsul.in_context.fsl"], [3, "module-capsul.in_context.spm"], [5, "module-capsul.info"], [6, "module-capsul.pipeline"], [6, "module-capsul.pipeline.custom_nodes"], [6, "module-capsul.pipeline.custom_nodes.cv_node"], [6, "module-capsul.pipeline.custom_nodes.loo_node"], [6, "module-capsul.pipeline.custom_nodes.map_node"], [6, "module-capsul.pipeline.custom_nodes.reduce_node"], [6, "module-capsul.pipeline.custom_nodes.strcat_node"], [6, "module-capsul.pipeline.custom_nodes.strconv"], [6, "module-capsul.pipeline.pipeline"], [6, "module-capsul.pipeline.pipeline_construction"], [6, "module-capsul.pipeline.pipeline_nodes"], [6, "module-capsul.pipeline.pipeline_tools"], [6, "module-capsul.pipeline.pipeline_workflow"], [6, "module-capsul.pipeline.process_iteration"], [6, "module-capsul.pipeline.python_export"], [6, "module-capsul.pipeline.topological_sort"], [6, "module-capsul.pipeline.xml"], [7, "module-capsul.plugins"], [8, "module-capsul.process"], [8, "module-capsul.process.nipype_process"], [8, "module-capsul.process.process"], [8, "module-capsul.process.runprocess"], [8, "module-capsul.process.xml"], [9, "module-capsul.qt_apps"], [9, "module-capsul.qt_apps.utils"], [9, "module-capsul.qt_apps.utils.application"], [9, "module-capsul.qt_apps.utils.fill_treectrl"], [9, "module-capsul.qt_apps.utils.find_pipelines"], [9, "module-capsul.qt_apps.utils.window"], [10, "module-capsul.qt_gui"], [10, "module-capsul.qt_gui.board_widget"], [10, "module-capsul.qt_gui.widgets"], [10, "module-capsul.qt_gui.widgets.activation_inspector"], [10, "module-capsul.qt_gui.widgets.attributed_process_widget"], [10, "module-capsul.qt_gui.widgets.links_debugger"], [10, "module-capsul.qt_gui.widgets.pipeline_developer_view"], [10, "module-capsul.qt_gui.widgets.pipeline_file_warning_widget"], [10, "module-capsul.qt_gui.widgets.pipeline_user_view"], [10, "module-capsul.qt_gui.widgets.viewer_widget"], [11, "module-capsul.sphinxext"], [11, "module-capsul.sphinxext.layoutdocgen"], [11, "module-capsul.sphinxext.load_pilots"], [11, "module-capsul.sphinxext.pipelinedocgen"], [11, "module-capsul.sphinxext.usecasesdocgen"], [12, "module-capsul.study_config"], [12, "module-capsul.study_config.config_modules"], [12, "module-capsul.study_config.config_modules.attributes_config"], [12, "module-capsul.study_config.config_modules.brainvisa_config"], [12, "module-capsul.study_config.config_modules.fom_config"], [12, "module-capsul.study_config.config_modules.freesurfer_config"], [12, "module-capsul.study_config.config_modules.fsl_config"], [12, "module-capsul.study_config.config_modules.matlab_config"], [12, "module-capsul.study_config.config_modules.nipype_config"], [12, "module-capsul.study_config.config_modules.smartcaching_config"], [12, "module-capsul.study_config.config_modules.somaworkflow_config"], [12, "module-capsul.study_config.config_modules.spm_config"], [12, "module-capsul.study_config.config_utils"], [12, "module-capsul.study_config.memory"], [12, "module-capsul.study_config.process_instance"], [12, "module-capsul.study_config.run"], [12, "module-capsul.study_config.study_config"], [13, "module-capsul.subprocess"], [13, "module-capsul.subprocess.fsl"], [13, "module-capsul.subprocess.spm"], [14, "module-capsul.utils"], [14, "module-capsul.utils.finder"], [14, "module-capsul.utils.version_utils"]], "attributesfactory (class in capsul.attributes.attributes_factory)": [[1, "capsul.attributes.attributes_factory.AttributesFactory"]], "attributesschema (class in capsul.attributes.attributes_schema)": [[1, "capsul.attributes.attributes_schema.AttributesSchema"]], "builtinprocesscompletionenginefactory (class in capsul.attributes.completion_engine_factory)": [[1, "capsul.attributes.completion_engine_factory.BuiltinProcessCompletionEngineFactory"]], "editableattributes (class in capsul.attributes.attributes_schema)": [[1, "capsul.attributes.attributes_schema.EditableAttributes"]], "fompathcompletionengine (class in capsul.attributes.fom_completion_engine)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine"]], "fomprocesscompletionengine (class in capsul.attributes.fom_completion_engine)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine"]], "fomprocesscompletionengineiteration (class in capsul.attributes.fom_completion_engine)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngineIteration"]], "pathcompletionengine (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.PathCompletionEngine"]], "pathcompletionenginefactory (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.PathCompletionEngineFactory"]], "processattributes (class in capsul.attributes.attributes_schema)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes"]], "processcompletionengine (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine"]], "processcompletionenginefactory (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngineFactory"]], "processcompletionengineiteration (class in capsul.attributes.completion_engine_iteration)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration"]], "switchcompletionengine (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.SwitchCompletionEngine"]], "allowed_extensions() (capsul.attributes.completion_engine.pathcompletionengine method)": [[1, "capsul.attributes.completion_engine.PathCompletionEngine.allowed_extensions"]], "allowed_extensions() (capsul.attributes.fom_completion_engine.fompathcompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine.allowed_extensions"]], "allowed_formats() (capsul.attributes.completion_engine.pathcompletionengine method)": [[1, "capsul.attributes.completion_engine.PathCompletionEngine.allowed_formats"]], "allowed_formats() (capsul.attributes.fom_completion_engine.fompathcompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine.allowed_formats"]], "attributes_changed() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.attributes_changed"]], "attributes_to_path() (capsul.attributes.completion_engine.pathcompletionengine method)": [[1, "capsul.attributes.completion_engine.PathCompletionEngine.attributes_to_path"]], "attributes_to_path() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.attributes_to_path"], [1, "id0"]], "attributes_to_path() (capsul.attributes.fom_completion_engine.fompathcompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine.attributes_to_path"]], "capsul.attributes": [[1, "module-capsul.attributes"]], "capsul.attributes.attributes_factory": [[1, "module-capsul.attributes.attributes_factory"]], "capsul.attributes.attributes_schema": [[1, "module-capsul.attributes.attributes_schema"]], "capsul.attributes.completion_engine": [[1, "module-capsul.attributes.completion_engine"]], "capsul.attributes.completion_engine_factory": [[1, "module-capsul.attributes.completion_engine_factory"]], "capsul.attributes.completion_engine_iteration": [[1, "module-capsul.attributes.completion_engine_iteration"]], "capsul.attributes.fom_completion_engine": [[1, "module-capsul.attributes.fom_completion_engine"]], "complete_iteration_step() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.complete_iteration_step"]], "complete_parameters() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.complete_parameters"], [1, "id5"]], "complete_parameters() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.complete_parameters"]], "copy() (capsul.attributes.attributes_schema.processattributes method)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes.copy"]], "copy_to_single() (capsul.attributes.attributes_schema.processattributes method)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes.copy_to_single"]], "create_attributes_with_fom() (capsul.attributes.fom_completion_engine.fomprocesscompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine.create_attributes_with_fom"], [1, "id13"]], "get_attribute_values() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.get_attribute_values"], [1, "id6"]], "get_attribute_values() (capsul.attributes.completion_engine.switchcompletionengine method)": [[1, "capsul.attributes.completion_engine.SwitchCompletionEngine.get_attribute_values"]], "get_attribute_values() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.get_attribute_values"]], "get_attribute_values() (capsul.attributes.fom_completion_engine.fomprocesscompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine.get_attribute_values"]], "get_completion_engine() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.get_completion_engine"]], "get_completion_engine() (capsul.attributes.completion_engine.processcompletionengine static method)": [[1, "id7"]], "get_completion_engine() (capsul.attributes.completion_engine.processcompletionenginefactory method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngineFactory.get_completion_engine"]], "get_completion_engine() (capsul.attributes.completion_engine_factory.builtinprocesscompletionenginefactory method)": [[1, "capsul.attributes.completion_engine_factory.BuiltinProcessCompletionEngineFactory.get_completion_engine"]], "get_induced_iterative_parameters() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.get_induced_iterative_parameters"]], "get_iterated_attributes() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.get_iterated_attributes"]], "get_iterated_attributes() (capsul.attributes.fom_completion_engine.fomprocesscompletionengineiteration method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngineIteration.get_iterated_attributes"]], "get_parameters_attributes() (capsul.attributes.attributes_schema.processattributes method)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes.get_parameters_attributes"]], "get_path_completion_engine() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.get_path_completion_engine"], [1, "id8"]], "get_path_completion_engine() (capsul.attributes.fom_completion_engine.fomprocesscompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine.get_path_completion_engine"]], "install_auto_completion() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.install_auto_completion"], [1, "id9"]], "install_switch_observer() (capsul.attributes.completion_engine.switchcompletionengine method)": [[1, "capsul.attributes.completion_engine.SwitchCompletionEngine.install_switch_observer"]], "nodes_selection_changed() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.nodes_selection_changed"]], "open_values_attributes() (capsul.attributes.fom_completion_engine.fompathcompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine.open_values_attributes"]], "path_attributes() (capsul.attributes.fom_completion_engine.fomprocesscompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine.path_attributes"]], "remove_attributes() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.remove_attributes"]], "remove_auto_completion() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.remove_auto_completion"], [1, "id10"]], "remove_switch_observer() (capsul.attributes.completion_engine.switchcompletionengine method)": [[1, "capsul.attributes.completion_engine.SwitchCompletionEngine.remove_switch_observer"]], "remove_switch_observers() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.remove_switch_observers"]], "set_attribute() (in module capsul.attributes.attributes_schema)": [[1, "capsul.attributes.attributes_schema.set_attribute"]], "set_parameter_attributes() (capsul.attributes.attributes_schema.processattributes method)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes.set_parameter_attributes"]], "set_parameters() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.set_parameters"], [1, "id11"]], "capsulengine (class in capsul.engine)": [[2, "capsul.engine.CapsulEngine"]], "databaseengine (class in capsul.engine.database)": [[2, "capsul.engine.database.DatabaseEngine"]], "jsondbengine (class in capsul.engine.database_json)": [[2, "capsul.engine.database_json.JSONDBEngine"]], "populsedbengine (class in capsul.engine.database_populse)": [[2, "capsul.engine.database_populse.PopulseDBEngine"]], "settings (class in capsul.engine.settings)": [[2, "capsul.engine.settings.Settings"]], "settingssession (class in capsul.engine.settings)": [[2, "capsul.engine.settings.SettingsSession"]], "workflowexecutionerror": [[2, "capsul.engine.run.WorkflowExecutionError"]], "activate_configuration() (in module capsul.engine)": [[2, "capsul.engine.activate_configuration"]], "activate_configurations() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.activate_configurations"]], "activate_configurations() (in module capsul.engine.module.python)": [[2, "capsul.engine.module.python.activate_configurations"]], "activate_configurations() (in module capsul.engine.module.spm)": [[2, "capsul.engine.module.spm.activate_configurations"]], "activate_module() (in module capsul.engine)": [[2, "capsul.engine.activate_module"]], "capsul.engine": [[2, "module-capsul.engine"]], "capsul.engine.database": [[2, "module-capsul.engine.database"]], "capsul.engine.database_json": [[2, "module-capsul.engine.database_json"]], "capsul.engine.database_populse": [[2, "module-capsul.engine.database_populse"]], "capsul.engine.module": [[2, "module-capsul.engine.module"]], "capsul.engine.module.attributes": [[2, "module-capsul.engine.module.attributes"]], "capsul.engine.module.axon": [[2, "module-capsul.engine.module.axon"]], "capsul.engine.module.fom": [[2, "module-capsul.engine.module.fom"]], "capsul.engine.module.fsl": [[2, "module-capsul.engine.module.fsl"]], "capsul.engine.module.matlab": [[2, "module-capsul.engine.module.matlab"]], "capsul.engine.module.python": [[2, "module-capsul.engine.module.python"]], "capsul.engine.module.spm": [[2, "module-capsul.engine.module.spm"]], "capsul.engine.run": [[2, "module-capsul.engine.run"]], "capsul.engine.settings": [[2, "module-capsul.engine.settings"]], "capsul_engine() (in module capsul.engine)": [[2, "capsul.engine.capsul_engine"]], "check_configurations() (in module capsul.engine.module.axon)": [[2, "capsul.engine.module.axon.check_configurations"]], "check_configurations() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.check_configurations"]], "check_configurations() (in module capsul.engine.module.matlab)": [[2, "capsul.engine.module.matlab.check_configurations"]], "check_notably_invalid_config() (in module capsul.engine.module.axon)": [[2, "capsul.engine.module.axon.check_notably_invalid_config"]], "check_notably_invalid_config() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.check_notably_invalid_config"]], "check_notably_invalid_config() (in module capsul.engine.module.matlab)": [[2, "capsul.engine.module.matlab.check_notably_invalid_config"]], "check_notably_invalid_config() (in module capsul.engine.module.python)": [[2, "capsul.engine.module.python.check_notably_invalid_config"]], "check_notably_invalid_config() (in module capsul.engine.module.spm)": [[2, "capsul.engine.module.spm.check_notably_invalid_config"]], "check_path() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.check_path"]], "collection_name() (capsul.engine.settings.settingssession static method)": [[2, "capsul.engine.settings.SettingsSession.collection_name"]], "complete_configurations() (in module capsul.engine.module.axon)": [[2, "capsul.engine.module.axon.complete_configurations"]], "complete_configurations() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.complete_configurations"]], "config() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.config"]], "configs() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.configs"]], "connect() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.connect"]], "connected_to() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.connected_to"]], "database_factory() (in module capsul.engine)": [[2, "capsul.engine.database_factory"]], "detailed_information() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.detailed_information"]], "detailed_information() (in module capsul.engine.run)": [[2, "capsul.engine.run.detailed_information"]], "disconnect() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.disconnect"]], "dispose() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.dispose"]], "dispose() (in module capsul.engine.run)": [[2, "capsul.engine.run.dispose"]], "edition_widget() (in module capsul.engine.module.attributes)": [[2, "capsul.engine.module.attributes.edition_widget"]], "edition_widget() (in module capsul.engine.module.axon)": [[2, "capsul.engine.module.axon.edition_widget"]], "edition_widget() (in module capsul.engine.module.fom)": [[2, "capsul.engine.module.fom.edition_widget"]], "edition_widget() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.edition_widget"]], "edition_widget() (in module capsul.engine.module.matlab)": [[2, "capsul.engine.module.matlab.edition_widget"]], "edition_widget() (in module capsul.engine.module.python)": [[2, "capsul.engine.module.python.edition_widget"]], "edition_widget() (in module capsul.engine.module.spm)": [[2, "capsul.engine.module.spm.edition_widget"]], "ensure_module_fields() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.ensure_module_fields"]], "executions() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.executions"]], "get_all_environments() (capsul.engine.settings.settings method)": [[2, "capsul.engine.settings.Settings.get_all_environments"]], "get_all_environments() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.get_all_environments"]], "get_iteration_pipeline() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.get_iteration_pipeline"]], "get_process_instance() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.get_process_instance"]], "import_configs() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.import_configs"]], "import_configs() (capsul.engine.settings.settings method)": [[2, "capsul.engine.settings.Settings.import_configs"]], "interrupt() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.interrupt"]], "interrupt() (in module capsul.engine.run)": [[2, "capsul.engine.run.interrupt"]], "json_value() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.json_value"]], "json_value() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.json_value"]], "json_value() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.json_value"]], "load_module() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.load_module"]], "load_modules() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.load_modules"]], "module_name() (capsul.engine.settings.settings static method)": [[2, "capsul.engine.settings.Settings.module_name"]], "named_directories() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.named_directories"]], "named_directories() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.named_directories"]], "named_directories() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.named_directories"]], "named_directory() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.named_directory"]], "named_directory() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.named_directory"]], "named_directory() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.named_directory"]], "new_config() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.new_config"]], "path_metadata() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.path_metadata"]], "path_metadata() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.path_metadata"]], "path_metadata() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.path_metadata"]], "raise_for_status() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.raise_for_status"]], "raise_for_status() (in module capsul.engine.run)": [[2, "capsul.engine.run.raise_for_status"]], "remove_config() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.remove_config"]], "select_configurations() (capsul.engine.settings.settings method)": [[2, "capsul.engine.settings.Settings.select_configurations"]], "set_json_value() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.set_json_value"]], "set_json_value() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.set_json_value"]], "set_json_value() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.set_json_value"]], "set_named_directory() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.set_named_directory"]], "set_named_directory() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.set_named_directory"]], "set_named_directory() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.set_named_directory"]], "set_path_metadata() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.set_path_metadata"]], "set_path_metadata() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.set_path_metadata"]], "set_path_metadata() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.set_path_metadata"]], "start() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.start"]], "start() (in module capsul.engine.run)": [[2, "capsul.engine.run.start"]], "status() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.status"]], "status() (in module capsul.engine.run)": [[2, "capsul.engine.run.status"]], "update_fom() (in module capsul.engine.module.fom)": [[2, "capsul.engine.module.fom.update_fom"]], "wait() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.wait"]], "wait() (in module capsul.engine.run)": [[2, "capsul.engine.run.wait"]], "fslpopen (class in capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.FslPopen"]], "spmpopen (class in capsul.in_context.spm)": [[3, "capsul.in_context.spm.SPMPopen"]], "capsul.in_context": [[3, "module-capsul.in_context"]], "capsul.in_context.fsl": [[3, "module-capsul.in_context.fsl"]], "capsul.in_context.spm": [[3, "module-capsul.in_context.spm"]], "fsl_call() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_call"]], "fsl_check_call() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_check_call"]], "fsl_check_output() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_check_output"]], "fsl_command_with_environment() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_command_with_environment"]], "fsl_env() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_env"]], "spm_call() (in module capsul.in_context.spm)": [[3, "capsul.in_context.spm.spm_call"]], "spm_check_call() (in module capsul.in_context.spm)": [[3, "capsul.in_context.spm.spm_check_call"]], "spm_check_output() (in module capsul.in_context.spm)": [[3, "capsul.in_context.spm.spm_check_output"]], "capsul.info": [[5, "module-capsul.info"]], "constructedpipeline (class in capsul.pipeline.pipeline_construction)": [[6, "capsul.pipeline.pipeline_construction.ConstructedPipeline"]], "crossvalidationfoldnode (class in capsul.pipeline.custom_nodes.cv_node)": [[6, "capsul.pipeline.custom_nodes.cv_node.CrossValidationFoldNode"]], "graph (class in capsul.pipeline.topological_sort)": [[6, "capsul.pipeline.topological_sort.Graph"]], "graphnode (class in capsul.pipeline.topological_sort)": [[6, "capsul.pipeline.topological_sort.GraphNode"]], "leaveoneoutnode (class in capsul.pipeline.custom_nodes.loo_node)": [[6, "capsul.pipeline.custom_nodes.loo_node.LeaveOneOutNode"]], "mapnode (class in capsul.pipeline.custom_nodes.map_node)": [[6, "capsul.pipeline.custom_nodes.map_node.MapNode"]], "node (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.Node"]], "optionaloutputswitch (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.OptionalOutputSwitch"]], "pipeline (class in capsul.pipeline.pipeline)": [[6, "capsul.pipeline.pipeline.Pipeline"]], "pipelineconstructor (class in capsul.pipeline.pipeline_construction)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor"]], "pipelinenode (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.PipelineNode"]], "plug (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.Plug"]], "processiteration (class in capsul.pipeline.process_iteration)": [[6, "capsul.pipeline.process_iteration.ProcessIteration"]], "processnode (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode"]], "reducenode (class in capsul.pipeline.custom_nodes.reduce_node)": [[6, "capsul.pipeline.custom_nodes.reduce_node.ReduceNode"]], "strcatnode (class in capsul.pipeline.custom_nodes.strcat_node)": [[6, "capsul.pipeline.custom_nodes.strcat_node.StrCatNode"]], "strconvnode (class in capsul.pipeline.custom_nodes.strconv)": [[6, "capsul.pipeline.custom_nodes.strconv.StrConvNode"]], "switch (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.Switch"]], "tempfile (class in capsul.pipeline.pipeline_workflow)": [[6, "capsul.pipeline.pipeline_workflow.TempFile"]], "_links (capsul.pipeline.topological_sort.graph attribute)": [[6, "capsul.pipeline.topological_sort.Graph._links"]], "_nodes (capsul.pipeline.topological_sort.graph attribute)": [[6, "capsul.pipeline.topological_sort.Graph._nodes"]], "_outputs (capsul.pipeline.pipeline_nodes.switch attribute)": [[6, "capsul.pipeline.pipeline_nodes.Switch._outputs"]], "_switch_values (capsul.pipeline.pipeline_nodes.switch attribute)": [[6, "capsul.pipeline.pipeline_nodes.Switch._switch_values"]], "activated (capsul.pipeline.pipeline_nodes.node attribute)": [[6, "capsul.pipeline.pipeline_nodes.Node.activated"]], "activated (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.activated"]], "add_custom_node() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_custom_node"]], "add_custom_node() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_custom_node"]], "add_iterative_process() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_iterative_process"]], "add_iterative_process() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_iterative_process"]], "add_link() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_link"]], "add_link() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_link"]], "add_link() (capsul.pipeline.topological_sort.graph method)": [[6, "capsul.pipeline.topological_sort.Graph.add_link"], [6, "id18"]], "add_link_from() (capsul.pipeline.topological_sort.graphnode method)": [[6, "capsul.pipeline.topological_sort.GraphNode.add_link_from"], [6, "id22"]], "add_link_to() (capsul.pipeline.topological_sort.graphnode method)": [[6, "capsul.pipeline.topological_sort.GraphNode.add_link_to"], [6, "id23"]], "add_node() (capsul.pipeline.topological_sort.graph method)": [[6, "capsul.pipeline.topological_sort.Graph.add_node"], [6, "id19"]], "add_optional_output_switch() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_optional_output_switch"]], "add_optional_output_switch() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_optional_output_switch"]], "add_pipeline_step() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_pipeline_step"]], "add_pipeline_step() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_pipeline_step"]], "add_process() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_process"]], "add_process() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_process"]], "add_processes_selection() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_processes_selection"]], "add_processes_selection() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_processes_selection"]], "add_subpipeline_link() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_subpipeline_link"]], "add_switch() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_switch"]], "add_switch() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_switch"]], "add_trait() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_trait"]], "all_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.all_nodes"]], "autoexport_nodes_parameters() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.autoexport_nodes_parameters"]], "call_process_method() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.call_process_method"]], "call_process_method() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.call_process_method"]], "capsul.pipeline": [[6, "module-capsul.pipeline"]], "capsul.pipeline.custom_nodes": [[6, "module-capsul.pipeline.custom_nodes"]], "capsul.pipeline.custom_nodes.cv_node": [[6, "module-capsul.pipeline.custom_nodes.cv_node"]], "capsul.pipeline.custom_nodes.loo_node": [[6, "module-capsul.pipeline.custom_nodes.loo_node"]], "capsul.pipeline.custom_nodes.map_node": [[6, "module-capsul.pipeline.custom_nodes.map_node"]], "capsul.pipeline.custom_nodes.reduce_node": [[6, "module-capsul.pipeline.custom_nodes.reduce_node"]], "capsul.pipeline.custom_nodes.strcat_node": [[6, "module-capsul.pipeline.custom_nodes.strcat_node"]], "capsul.pipeline.custom_nodes.strconv": [[6, "module-capsul.pipeline.custom_nodes.strconv"]], "capsul.pipeline.pipeline": [[6, "module-capsul.pipeline.pipeline"]], "capsul.pipeline.pipeline_construction": [[6, "module-capsul.pipeline.pipeline_construction"]], "capsul.pipeline.pipeline_nodes": [[6, "module-capsul.pipeline.pipeline_nodes"]], "capsul.pipeline.pipeline_tools": [[6, "module-capsul.pipeline.pipeline_tools"]], "capsul.pipeline.pipeline_workflow": [[6, "module-capsul.pipeline.pipeline_workflow"]], "capsul.pipeline.process_iteration": [[6, "module-capsul.pipeline.process_iteration"]], "capsul.pipeline.python_export": [[6, "module-capsul.pipeline.python_export"]], "capsul.pipeline.topological_sort": [[6, "module-capsul.pipeline.topological_sort"]], "capsul.pipeline.xml": [[6, "module-capsul.pipeline.xml"]], "change_iterative_plug() (capsul.pipeline.process_iteration.processiteration method)": [[6, "capsul.pipeline.process_iteration.ProcessIteration.change_iterative_plug"]], "check_requirements() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.check_requirements"]], "check_requirements() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.check_requirements"]], "check_requirements() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.check_requirements"]], "cleanup() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.cleanup"]], "compare_to_state() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.compare_to_state"]], "connect() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.connect"], [6, "id0"]], "connections() (capsul.pipeline.pipeline_nodes.switch method)": [[6, "capsul.pipeline.pipeline_nodes.Switch.connections"]], "count_items() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.count_items"]], "create_output_directories() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.create_output_directories"]], "create_xml_pipeline() (in module capsul.pipeline.xml)": [[6, "capsul.pipeline.xml.create_xml_pipeline"]], "define_groups_as_steps() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.define_groups_as_steps"]], "define_pipeline_steps() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.define_pipeline_steps"]], "disable_runtime_steps_with_existing_outputs() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.disable_runtime_steps_with_existing_outputs"]], "disabled_pipeline_steps_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.disabled_pipeline_steps_nodes"]], "disconnect() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.disconnect"]], "dot_graph_from_pipeline() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.dot_graph_from_pipeline"]], "dot_graph_from_workflow() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.dot_graph_from_workflow"]], "dump_pipeline_state_as_dict() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.dump_pipeline_state_as_dict"]], "enable_all_pipeline_steps() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.enable_all_pipeline_steps"]], "enabled (capsul.pipeline.pipeline_nodes.node attribute)": [[6, "capsul.pipeline.pipeline_nodes.Node.enabled"]], "enabled (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.enabled"]], "export_parameter() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.export_parameter"]], "export_parameter() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.export_parameter"]], "find_empty_parameters() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.find_empty_parameters"]], "find_node() (capsul.pipeline.topological_sort.graph method)": [[6, "capsul.pipeline.topological_sort.Graph.find_node"], [6, "id20"]], "find_node() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.find_node"]], "find_plug_connection_destinations() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.find_plug_connection_destinations"]], "find_plug_connection_sources() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.find_plug_connection_sources"]], "full_name (capsul.pipeline.pipeline_nodes.node attribute)": [[6, "capsul.pipeline.pipeline_nodes.Node.full_name"]], "get_connections_through() (capsul.pipeline.custom_nodes.strconv.strconvnode method)": [[6, "capsul.pipeline.custom_nodes.strconv.StrConvNode.get_connections_through"]], "get_connections_through() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_connections_through"]], "get_connections_through() (capsul.pipeline.pipeline_nodes.pipelinenode method)": [[6, "capsul.pipeline.pipeline_nodes.PipelineNode.get_connections_through"]], "get_connections_through() (capsul.pipeline.pipeline_nodes.switch method)": [[6, "capsul.pipeline.pipeline_nodes.Switch.get_connections_through"]], "get_missing_mandatory_parameters() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_missing_mandatory_parameters"]], "get_output_directories() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.get_output_directories"]], "get_pipeline_step_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.get_pipeline_step_nodes"]], "get_plug_value() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_plug_value"], [6, "id3"]], "get_plug_value() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.get_plug_value"], [6, "id7"]], "get_processes_selection_groups() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.get_processes_selection_groups"]], "get_processes_selection_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.get_processes_selection_nodes"]], "get_processes_selections() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.get_processes_selections"]], "get_study_config() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_study_config"]], "get_study_config() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.get_study_config"]], "get_trait() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_trait"], [6, "id4"]], "get_trait() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.get_trait"], [6, "id8"]], "has_default_value (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.has_default_value"]], "install_links_debug_handler() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.install_links_debug_handler"]], "is_job() (capsul.pipeline.custom_nodes.strconv.strconvnode method)": [[6, "capsul.pipeline.custom_nodes.strconv.StrConvNode.is_job"]], "is_job() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.is_job"]], "is_job() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.is_job"]], "is_job() (capsul.pipeline.pipeline_nodes.switch method)": [[6, "capsul.pipeline.pipeline_nodes.Switch.is_job"]], "is_node_enabled() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.is_node_enabled"]], "is_parameter_protected() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.is_parameter_protected"]], "links_from (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.links_from"]], "links_from (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.links_from"]], "links_from_degree (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.links_from_degree"]], "links_to (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.links_to"]], "links_to (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.links_to"]], "links_to_degree (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.links_to_degree"]], "load_pipeline_parameters() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.load_pipeline_parameters"]], "meta (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.meta"]], "name (capsul.pipeline.pipeline_nodes.node attribute)": [[6, "capsul.pipeline.pipeline_nodes.Node.name"]], "name (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.name"]], "nodes (capsul.pipeline.pipeline.pipeline attribute)": [[6, "capsul.pipeline.pipeline.Pipeline.nodes"]], "nodes_with_existing_outputs() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.nodes_with_existing_outputs"]], "nodes_with_missing_inputs() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.nodes_with_missing_inputs"]], "optional (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.optional"]], "output (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.output"]], "parse_link() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.parse_link"]], "parse_parameter() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.parse_parameter"]], "pipeline_definition() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.pipeline_definition"]], "pipeline_definition() (capsul.pipeline.pipeline_construction.constructedpipeline method)": [[6, "capsul.pipeline.pipeline_construction.ConstructedPipeline.pipeline_definition"]], "pipeline_link_color() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.pipeline_link_color"]], "pipeline_node_colors() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.pipeline_node_colors"]], "pipeline_state() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.pipeline_state"]], "process (capsul.pipeline.pipeline_nodes.processnode attribute)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.process"]], "propagate_metadata() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.propagate_metadata"]], "protect_parameter() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.protect_parameter"]], "remove_callback_from_plug() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.remove_callback_from_plug"]], "remove_callback_from_plug() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.remove_callback_from_plug"]], "remove_link() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.remove_link"]], "remove_link_from() (capsul.pipeline.topological_sort.graphnode method)": [[6, "capsul.pipeline.topological_sort.GraphNode.remove_link_from"], [6, "id24"]], "remove_link_to() (capsul.pipeline.topological_sort.graphnode method)": [[6, "capsul.pipeline.topological_sort.GraphNode.remove_link_to"], [6, "id25"]], "remove_node() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.remove_node"]], "remove_pipeline_step() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.remove_pipeline_step"]], "remove_trait() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.remove_trait"]], "rename_node() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.rename_node"]], "reorder_traits() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.reorder_traits"]], "requirements() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.requirements"]], "requirements() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.requirements"]], "save_dot_graph() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.save_dot_graph"]], "save_dot_image() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.save_dot_image"]], "save_pipeline() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.save_pipeline"]], "save_pipeline_parameters() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.save_pipeline_parameters"]], "save_py_pipeline() (in module capsul.pipeline.python_export)": [[6, "capsul.pipeline.python_export.save_py_pipeline"]], "save_xml_pipeline() (in module capsul.pipeline.xml)": [[6, "capsul.pipeline.xml.save_xml_pipeline"]], "set_callback_on_plug() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.set_callback_on_plug"], [6, "id5"]], "set_callback_on_plug() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.set_callback_on_plug"], [6, "id9"]], "set_documentation() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.set_documentation"]], "set_node_enabled() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.set_node_enabled"]], "set_node_position() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.set_node_position"]], "set_pipeline_state_from_dict() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.set_pipeline_state_from_dict"]], "set_plug_value() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.set_plug_value"], [6, "id6"]], "set_plug_value() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.set_plug_value"], [6, "id10"]], "set_scene_scale_factor() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.set_scene_scale_factor"]], "set_study_config() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.set_study_config"]], "set_study_config() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.set_study_config"]], "set_study_config() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.set_study_config"]], "set_study_config() (capsul.pipeline.process_iteration.processiteration method)": [[6, "capsul.pipeline.process_iteration.ProcessIteration.set_study_config"]], "topological_sort() (capsul.pipeline.topological_sort.graph method)": [[6, "capsul.pipeline.topological_sort.Graph.topological_sort"], [6, "id21"]], "uninstall_links_debug_handler() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.uninstall_links_debug_handler"]], "update_nodes_and_plugs_activation() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.update_nodes_and_plugs_activation"]], "where_is_plug_value_from() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.where_is_plug_value_from"]], "workflow_from_pipeline() (in module capsul.pipeline.pipeline_workflow)": [[6, "capsul.pipeline.pipeline_workflow.workflow_from_pipeline"]], "workflow_graph() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.workflow_graph"]], "workflow_list (capsul.pipeline.pipeline.pipeline attribute)": [[6, "capsul.pipeline.pipeline.Pipeline.workflow_list"]], "workflow_ordered_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.workflow_ordered_nodes"]], "workflow_repr (capsul.pipeline.pipeline.pipeline attribute)": [[6, "capsul.pipeline.pipeline.Pipeline.workflow_repr"]], "workflow_run() (in module capsul.pipeline.pipeline_workflow)": [[6, "capsul.pipeline.pipeline_workflow.workflow_run"]], "write_fake_pipeline() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.write_fake_pipeline"]], "write_fake_process() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.write_fake_process"]], "capsul.plugins": [[7, "module-capsul.plugins"]], "filecopyprocess (class in capsul.process.process)": [[8, "capsul.process.process.FileCopyProcess"]], "interactiveprocess (class in capsul.process.process)": [[8, "capsul.process.process.InteractiveProcess"]], "nipypeprocess (class in capsul.process.process)": [[8, "capsul.process.process.NipypeProcess"]], "process (class in capsul.process.process)": [[8, "capsul.process.process.Process"]], "processmeta (class in capsul.process.process)": [[8, "capsul.process.process.ProcessMeta"]], "processparamerror": [[8, "capsul.process.runprocess.ProcessParamError"]], "processresult (class in capsul.process.process)": [[8, "capsul.process.process.ProcessResult"]], "xmlprocess (class in capsul.process.xml)": [[8, "capsul.process.xml.XMLProcess"]], "__call__() (capsul.process.process.filecopyprocess method)": [[8, "capsul.process.process.FileCopyProcess.__call__"]], "_copy_input_files() (capsul.process.process.filecopyprocess method)": [[8, "capsul.process.process.FileCopyProcess._copy_input_files"]], "_get_process_arguments() (capsul.process.process.filecopyprocess method)": [[8, "capsul.process.process.FileCopyProcess._get_process_arguments"]], "_nipype_class (capsul.process.process.nipypeprocess attribute)": [[8, "capsul.process.process.NipypeProcess._nipype_class"]], "_nipype_interface (capsul.process.process.nipypeprocess attribute)": [[8, "capsul.process.process.NipypeProcess._nipype_interface"]], "_nipype_interface_name (capsul.process.process.nipypeprocess attribute)": [[8, "capsul.process.process.NipypeProcess._nipype_interface_name"]], "_nipype_module (capsul.process.process.nipypeprocess attribute)": [[8, "capsul.process.process.NipypeProcess._nipype_module"]], "_update_input_traits() (capsul.process.process.filecopyprocess method)": [[8, "capsul.process.process.FileCopyProcess._update_input_traits"]], "add_trait() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.add_trait"]], "capsul.process": [[8, "module-capsul.process"]], "capsul.process.nipype_process": [[8, "module-capsul.process.nipype_process"]], "capsul.process.process": [[8, "module-capsul.process.process"]], "capsul.process.runprocess": [[8, "module-capsul.process.runprocess"]], "capsul.process.xml": [[8, "module-capsul.process.xml"]], "check_requirements() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.check_requirements"]], "complement_doc() (capsul.process.process.processmeta static method)": [[8, "capsul.process.process.ProcessMeta.complement_doc"]], "copied_files (capsul.process.process.filecopyprocess attribute)": [[8, "capsul.process.process.FileCopyProcess.copied_files"]], "copied_inputs (capsul.process.process.filecopyprocess attribute)": [[8, "capsul.process.process.FileCopyProcess.copied_inputs"]], "create_xml_process() (in module capsul.process.xml)": [[8, "capsul.process.xml.create_xml_process"]], "get_commandline() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_commandline"]], "get_help() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_help"]], "get_input_help() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_input_help"]], "get_input_spec() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_input_spec"]], "get_inputs() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_inputs"]], "get_log() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_log"]], "get_missing_mandatory_parameters() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_missing_mandatory_parameters"]], "get_output_help() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_output_help"]], "get_output_spec() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_output_spec"]], "get_outputs() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_outputs"]], "get_parameter() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_parameter"]], "get_process_with_params() (in module capsul.process.runprocess)": [[8, "capsul.process.runprocess.get_process_with_params"]], "get_study_config() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_study_config"]], "help() (capsul.process.process.nipypeprocess class method)": [[8, "capsul.process.process.NipypeProcess.help"]], "help() (capsul.process.process.process class method)": [[8, "capsul.process.process.Process.help"]], "id (capsul.process.process.process attribute)": [[8, "capsul.process.process.Process.id"]], "log_file (capsul.process.process.process attribute)": [[8, "capsul.process.process.Process.log_file"]], "main() (in module capsul.process.runprocess)": [[8, "capsul.process.runprocess.main"]], "make_commandline_argument() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.make_commandline_argument"]], "name (capsul.process.process.process attribute)": [[8, "capsul.process.process.Process.name"]], "nipype_factory() (in module capsul.process.nipype_process)": [[8, "capsul.process.nipype_process.nipype_factory"]], "params_to_command() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.params_to_command"]], "requirements() (capsul.process.process.nipypeprocess method)": [[8, "capsul.process.process.NipypeProcess.requirements"]], "requirements() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.requirements"]], "run() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.run"]], "run_from_commandline() (capsul.process.process.process static method)": [[8, "capsul.process.process.Process.run_from_commandline"]], "run_process_with_distribution() (in module capsul.process.runprocess)": [[8, "capsul.process.runprocess.run_process_with_distribution"]], "save_log() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.save_log"]], "set_output_directory() (capsul.process.process.nipypeprocess method)": [[8, "capsul.process.process.NipypeProcess.set_output_directory"]], "set_parameter() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.set_parameter"]], "set_process_param_from_str() (in module capsul.process.runprocess)": [[8, "capsul.process.runprocess.set_process_param_from_str"]], "set_study_config() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.set_study_config"]], "set_usedefault() (capsul.process.process.nipypeprocess method)": [[8, "capsul.process.process.NipypeProcess.set_usedefault"]], "string_to_value() (in module capsul.process.xml)": [[8, "capsul.process.xml.string_to_value"]], "trait_from_xml() (in module capsul.process.xml)": [[8, "capsul.process.xml.trait_from_xml"]], "xml_process() (in module capsul.process.xml)": [[8, "capsul.process.xml.xml_process"]], "application (class in capsul.qt_apps.utils.application)": [[9, "capsul.qt_apps.utils.application.Application"]], "emittingstream (class in capsul.qt_apps.utils.application)": [[9, "capsul.qt_apps.utils.application.EmittingStream"]], "myquiloader (class in capsul.qt_apps.utils.window)": [[9, "capsul.qt_apps.utils.window.MyQUiLoader"]], "add_tree_nodes() (in module capsul.qt_apps.utils.fill_treectrl)": [[9, "capsul.qt_apps.utils.fill_treectrl.add_tree_nodes"]], "capsul.qt_apps": [[9, "module-capsul.qt_apps"]], "capsul.qt_apps.utils": [[9, "module-capsul.qt_apps.utils"]], "capsul.qt_apps.utils.application": [[9, "module-capsul.qt_apps.utils.application"]], "capsul.qt_apps.utils.fill_treectrl": [[9, "module-capsul.qt_apps.utils.fill_treectrl"]], "capsul.qt_apps.utils.find_pipelines": [[9, "module-capsul.qt_apps.utils.find_pipelines"]], "capsul.qt_apps.utils.window": [[9, "module-capsul.qt_apps.utils.window"]], "fill_treectrl() (in module capsul.qt_apps.utils.fill_treectrl)": [[9, "capsul.qt_apps.utils.fill_treectrl.fill_treectrl"]], "find_pipeline_and_process() (in module capsul.qt_apps.utils.find_pipelines)": [[9, "capsul.qt_apps.utils.find_pipelines.find_pipeline_and_process"]], "find_pipelines_from_description() (in module capsul.qt_apps.utils.find_pipelines)": [[9, "capsul.qt_apps.utils.find_pipelines.find_pipelines_from_description"]], "lists2dict() (in module capsul.qt_apps.utils.find_pipelines)": [[9, "capsul.qt_apps.utils.find_pipelines.lists2dict"]], "search_in_menu() (in module capsul.qt_apps.utils.fill_treectrl)": [[9, "capsul.qt_apps.utils.fill_treectrl.search_in_menu"]], "activationinspector (class in capsul.qt_gui.widgets.activation_inspector)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector"]], "activationinspectorapp (class in capsul.qt_gui.widgets.activation_inspector)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspectorApp"]], "attributedprocesswidget (class in capsul.qt_gui.widgets.attributed_process_widget)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget"]], "boardwidget (class in capsul.qt_gui.board_widget)": [[10, "capsul.qt_gui.board_widget.BoardWidget"]], "capsullinkdebuggerview (class in capsul.qt_gui.widgets.links_debugger)": [[10, "capsul.qt_gui.widgets.links_debugger.CapsulLinkDebuggerView"]], "embeddedsubpipelineitem (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.EmbeddedSubPipelineItem"]], "handleitem (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.HandleItem"]], "link (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link"]], "nodegwidget (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget"]], "pipelinedeveloperview (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView"]], "pipelinedeveloperview.iterativeprocessinput (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.IterativeProcessInput"]], "pipelinedeveloperview.processmoduleinput (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.ProcessModuleInput"]], "pipelinedeveloperview.processnameedit (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.ProcessNameEdit"]], "pipelinefilewarningwidget (class in capsul.qt_gui.widgets.pipeline_file_warning_widget)": [[10, "capsul.qt_gui.widgets.pipeline_file_warning_widget.PipelineFileWarningWidget"]], "pipelinescene (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene"]], "pipelineuserview (class in capsul.qt_gui.widgets.pipeline_user_view)": [[10, "capsul.qt_gui.widgets.pipeline_user_view.PipelineUserView"]], "plug (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Plug"]], "viewerwidget (class in capsul.qt_gui.widgets.viewer_widget)": [[10, "capsul.qt_gui.widgets.viewer_widget.ViewerWidget"]], "__init__() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.__init__"]], "add_controls_to_ui() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.add_controls_to_ui"]], "add_embedded_subpipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_embedded_subpipeline"], [10, "id0"]], "add_iterative_process() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_iterative_process"]], "add_node() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_node"]], "add_optional_output_switch() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_optional_output_switch"]], "add_process() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_process"]], "add_switch() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_switch"]], "auto_dot_node_positions() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.auto_dot_node_positions"], [10, "id5"]], "boundingrect() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.boundingRect"]], "boxitem (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.boxItem"]], "browse_node() (capsul.qt_gui.board_widget.boardwidget method)": [[10, "capsul.qt_gui.board_widget.BoardWidget.browse_node"]], "capsul.qt_gui": [[10, "module-capsul.qt_gui"]], "capsul.qt_gui.board_widget": [[10, "module-capsul.qt_gui.board_widget"]], "capsul.qt_gui.widgets": [[10, "module-capsul.qt_gui.widgets"]], "capsul.qt_gui.widgets.activation_inspector": [[10, "module-capsul.qt_gui.widgets.activation_inspector"]], "capsul.qt_gui.widgets.attributed_process_widget": [[10, "module-capsul.qt_gui.widgets.attributed_process_widget"]], "capsul.qt_gui.widgets.links_debugger": [[10, "module-capsul.qt_gui.widgets.links_debugger"]], "capsul.qt_gui.widgets.pipeline_developer_view": [[10, "module-capsul.qt_gui.widgets.pipeline_developer_view"]], "capsul.qt_gui.widgets.pipeline_file_warning_widget": [[10, "module-capsul.qt_gui.widgets.pipeline_file_warning_widget"]], "capsul.qt_gui.widgets.pipeline_user_view": [[10, "module-capsul.qt_gui.widgets.pipeline_user_view"]], "capsul.qt_gui.widgets.viewer_widget": [[10, "module-capsul.qt_gui.widgets.viewer_widget"]], "check_files() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.check_files"]], "colored_parameters (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.colored_parameters"], [10, "id6"]], "create_board_tree() (capsul.qt_gui.board_widget.boardwidget method)": [[10, "capsul.qt_gui.board_widget.BoardWidget.create_board_tree"]], "create_output_widget() (capsul.qt_gui.board_widget.boardwidget method)": [[10, "capsul.qt_gui.board_widget.BoardWidget.create_output_widget"]], "create_viewer_tree() (capsul.qt_gui.board_widget.boardwidget method)": [[10, "capsul.qt_gui.board_widget.BoardWidget.create_viewer_tree"]], "disable_done_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.disable_done_steps"]], "disable_following_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.disable_following_steps"]], "disable_preceding_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.disable_preceding_steps"]], "dragenterevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.dragEnterEvent"]], "dragmoveevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.dragMoveEvent"]], "dropevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.dropEvent"]], "drop_process() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.drop_process"]], "edit_sub_pipeline (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.edit_sub_pipeline"]], "edition_enabled() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.edition_enabled"]], "enablenode() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enableNode"]], "enable_all_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enable_all_steps"]], "enable_following_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enable_following_steps"]], "enable_preceding_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enable_preceding_steps"]], "enable_step() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enable_step"]], "ensure_pipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.ensure_pipeline"]], "export_to_db_scans (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.export_to_db_scans"]], "find_next() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.find_next"]], "find_previous() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.find_previous"]], "focusinevent() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.focusInEvent"]], "focusinevent() (capsul.qt_gui.widgets.pipeline_developer_view.boxitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.boxItem.focusInEvent"]], "focusoutevent() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.focusOutEvent"]], "focusoutevent() (capsul.qt_gui.widgets.pipeline_developer_view.boxitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.boxItem.focusOutEvent"]], "helpevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinescene method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene.helpEvent"]], "init_window() (capsul.qt_gui.widgets.activation_inspector.activationinspectorapp method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspectorApp.init_window"]], "is_logical_view() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.is_logical_view"], [10, "id7"]], "is_restricted_edition_mode() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.is_restricted_edition_mode"]], "itemchange() (capsul.qt_gui.widgets.pipeline_developer_view.handleitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.HandleItem.itemChange"]], "keypressevent() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.keyPressEvent"]], "keypressevent() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.keyPressEvent"]], "keypressevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinescene method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene.keyPressEvent"]], "keypressevent() (capsul.qt_gui.widgets.pipeline_developer_view.boxitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.boxItem.keyPressEvent"]], "link_right_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.link_right_clicked"], [10, "id8"]], "link_tooltip_text() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinescene method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene.link_tooltip_text"]], "load_pipeline_parameters() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.load_pipeline_parameters"]], "mousedoubleclickevent() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.mouseDoubleClickEvent"]], "mousemoveevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.mouseMoveEvent"]], "mousepressevent() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.mousePressEvent"]], "mousepressevent() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.mousePressEvent"]], "mousepressevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.mousePressEvent"]], "mousepressevent() (capsul.qt_gui.widgets.pipeline_developer_view.plug method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Plug.mousePressEvent"]], "mousereleaseevent() (capsul.qt_gui.widgets.pipeline_developer_view.handleitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.HandleItem.mouseReleaseEvent"]], "mousereleaseevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.mouseReleaseEvent"]], "node_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.node_clicked"], [10, "id9"]], "node_clicked_ctrl (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.node_clicked_ctrl"], [10, "id10"]], "node_right_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.node_right_clicked"], [10, "id11"]], "oncreateviewerclicked() (capsul.qt_gui.widgets.viewer_widget.viewerwidget method)": [[10, "capsul.qt_gui.widgets.viewer_widget.ViewerWidget.onCreateViewerClicked"]], "onloadsubpipelineclicked() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.onLoadSubPipelineClicked"], [10, "id12"]], "onopenprocesscontroller() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.onOpenProcessController"], [10, "id13"]], "on_btn_load_json() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_btn_load_json"]], "on_btn_save_json() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_btn_save_json"]], "on_input_filename_changed() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_input_filename_changed"]], "on_show_completion() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_show_completion"]], "on_use_fom_change() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_use_fom_change"]], "openprocesscontroller() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.openProcessController"]], "open_background_menu() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.open_background_menu"]], "open_filter (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.open_filter"]], "open_node_menu() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.open_node_menu"]], "paint() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.paint"]], "plug_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.plug_clicked"], [10, "id14"]], "plug_right_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.plug_right_clicked"], [10, "id15"]], "plug_tooltip_text() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinescene method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene.plug_tooltip_text"]], "process_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.process_clicked"]], "refresh_activation_from_record() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.refresh_activation_from_record"]], "release_pipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.release_pipeline"]], "reset_initial_nodes_positions() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.reset_initial_nodes_positions"], [10, "id16"]], "save_dot_image_ui() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.save_dot_image_ui"], [10, "id17"]], "save_pipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.save_pipeline"]], "save_pipeline_parameters() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.save_pipeline_parameters"]], "scene (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.scene"], [10, "id18"]], "set_enable_edition() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_enable_edition"]], "set_filter_pattern() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.set_filter_pattern"]], "set_logical_view() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_logical_view"], [10, "id19"]], "set_pipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_pipeline"], [10, "id20"]], "set_restricted_edition_mode() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_restricted_edition_mode"]], "set_switch_value() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_switch_value"]], "set_use_fom() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.set_use_fom"]], "show() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.show"]], "show() (capsul.qt_gui.widgets.links_debugger.capsullinkdebuggerview method)": [[10, "capsul.qt_gui.widgets.links_debugger.CapsulLinkDebuggerView.show"]], "show_completion() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.show_completion"]], "show_optional_inputs() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.show_optional_inputs"]], "show_optional_outputs() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.show_optional_outputs"]], "subpipeline_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.subpipeline_clicked"], [10, "id21"]], "switch_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.switch_clicked"]], "update() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.update"]], "update() (capsul.qt_gui.widgets.pipeline_user_view.pipelineuserview method)": [[10, "capsul.qt_gui.widgets.pipeline_user_view.PipelineUserView.update"]], "update_labels() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.update_labels"]], "update_pipeline_activation() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.update_pipeline_activation"]], "wheelevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.wheelEvent"]], "window() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.window"], [10, "id22"]], "zoom_in() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.zoom_in"], [10, "id23"]], "zoom_out() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.zoom_out"], [10, "id24"]], "layouthelperwriter (class in capsul.sphinxext.layoutdocgen)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter"]], "pipelinehelpwriter (class in capsul.sphinxext.pipelinedocgen)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter"]], "usecaseshelperwriter (class in capsul.sphinxext.usecasesdocgen)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter"]], "capsul.sphinxext": [[11, "module-capsul.sphinxext"]], "capsul.sphinxext.layoutdocgen": [[11, "module-capsul.sphinxext.layoutdocgen"]], "capsul.sphinxext.load_pilots": [[11, "module-capsul.sphinxext.load_pilots"]], "capsul.sphinxext.pipelinedocgen": [[11, "module-capsul.sphinxext.pipelinedocgen"]], "capsul.sphinxext.usecasesdocgen": [[11, "module-capsul.sphinxext.usecasesdocgen"]], "generate_api_doc() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.generate_api_doc"]], "generate_index_entry() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.generate_index_entry"]], "generate_usecases_doc() (capsul.sphinxext.usecasesdocgen.usecaseshelperwriter method)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter.generate_usecases_doc"]], "get_short_name() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.get_short_name"]], "getsource() (capsul.sphinxext.usecasesdocgen.usecaseshelperwriter method)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter.getsource"]], "load_pilots() (in module capsul.sphinxext.load_pilots)": [[11, "capsul.sphinxext.load_pilots.load_pilots"]], "rst2html() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.rst2html"]], "title_for() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.title_for"]], "write_api_docs() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.write_api_docs"]], "write_index() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.write_index"]], "write_index() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.write_index"]], "write_index() (capsul.sphinxext.usecasesdocgen.usecaseshelperwriter method)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter.write_index"]], "write_installation() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.write_installation"]], "write_layout() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.write_layout"]], "write_main_index() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.write_main_index"]], "write_usecases_docs() (capsul.sphinxext.usecasesdocgen.usecaseshelperwriter method)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter.write_usecases_docs"]], "attributesconfig (class in capsul.study_config.config_modules.attributes_config)": [[12, "capsul.study_config.config_modules.attributes_config.AttributesConfig"]], "brainvisaconfig (class in capsul.study_config.config_modules.brainvisa_config)": [[12, "capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig"]], "capsulresultdecoder (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.CapsulResultDecoder"]], "capsulresultencoder (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.CapsulResultEncoder"]], "fslconfig (class in capsul.study_config.config_modules.fsl_config)": [[12, "capsul.study_config.config_modules.fsl_config.FSLConfig"]], "fomconfig (class in capsul.study_config.config_modules.fom_config)": [[12, "capsul.study_config.config_modules.fom_config.FomConfig"]], "freesurferconfig (class in capsul.study_config.config_modules.freesurfer_config)": [[12, "capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig"]], "matlabconfig (class in capsul.study_config.config_modules.matlab_config)": [[12, "capsul.study_config.config_modules.matlab_config.MatlabConfig"]], "memorizedprocess (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.MemorizedProcess"]], "memory (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.Memory"]], "nipypeconfig (class in capsul.study_config.config_modules.nipype_config)": [[12, "capsul.study_config.config_modules.nipype_config.NipypeConfig"]], "resourcecontroller (class in capsul.study_config.config_modules.somaworkflow_config)": [[12, "capsul.study_config.config_modules.somaworkflow_config.ResourceController"]], "spmconfig (class in capsul.study_config.config_modules.spm_config)": [[12, "capsul.study_config.config_modules.spm_config.SPMConfig"]], "smartcachingconfig (class in capsul.study_config.config_modules.smartcaching_config)": [[12, "capsul.study_config.config_modules.smartcaching_config.SmartCachingConfig"]], "somaworkflowconfig (class in capsul.study_config.config_modules.somaworkflow_config)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig"]], "studyconfig (class in capsul.study_config.study_config)": [[12, "capsul.study_config.study_config.StudyConfig"]], "studyconfigmodule (class in capsul.study_config.study_config)": [[12, "capsul.study_config.study_config.StudyConfigModule"]], "unmemorizedprocess (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.UnMemorizedProcess"]], "add_trait() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.add_trait"]], "cache() (capsul.study_config.memory.memory method)": [[12, "capsul.study_config.memory.Memory.cache"], [12, "id0"]], "capsul.study_config": [[12, "module-capsul.study_config"]], "capsul.study_config.config_modules": [[12, "module-capsul.study_config.config_modules"]], "capsul.study_config.config_modules.attributes_config": [[12, "module-capsul.study_config.config_modules.attributes_config"]], "capsul.study_config.config_modules.brainvisa_config": [[12, "module-capsul.study_config.config_modules.brainvisa_config"]], "capsul.study_config.config_modules.fom_config": [[12, "module-capsul.study_config.config_modules.fom_config"]], "capsul.study_config.config_modules.freesurfer_config": [[12, "module-capsul.study_config.config_modules.freesurfer_config"]], "capsul.study_config.config_modules.fsl_config": [[12, "module-capsul.study_config.config_modules.fsl_config"]], "capsul.study_config.config_modules.matlab_config": [[12, "module-capsul.study_config.config_modules.matlab_config"]], "capsul.study_config.config_modules.nipype_config": [[12, "module-capsul.study_config.config_modules.nipype_config"]], "capsul.study_config.config_modules.smartcaching_config": [[12, "module-capsul.study_config.config_modules.smartcaching_config"]], "capsul.study_config.config_modules.somaworkflow_config": [[12, "module-capsul.study_config.config_modules.somaworkflow_config"]], "capsul.study_config.config_modules.spm_config": [[12, "module-capsul.study_config.config_modules.spm_config"]], "capsul.study_config.config_utils": [[12, "module-capsul.study_config.config_utils"]], "capsul.study_config.memory": [[12, "module-capsul.study_config.memory"]], "capsul.study_config.process_instance": [[12, "module-capsul.study_config.process_instance"]], "capsul.study_config.run": [[12, "module-capsul.study_config.run"]], "capsul.study_config.study_config": [[12, "module-capsul.study_config.study_config"]], "clear() (capsul.study_config.memory.memory method)": [[12, "capsul.study_config.memory.Memory.clear"], [12, "id2"]], "connect_resource() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.connect_resource"], [12, "id23"]], "create_output_directories (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.create_output_directories"]], "default() (capsul.study_config.memory.capsulresultencoder method)": [[12, "capsul.study_config.memory.CapsulResultEncoder.default"]], "default_study_config() (in module capsul.study_config.study_config)": [[12, "capsul.study_config.study_config.default_study_config"]], "disconnect_resource() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.disconnect_resource"], [12, "id24"]], "environment() (in module capsul.study_config.config_utils)": [[12, "capsul.study_config.config_utils.environment"]], "file_fingerprint() (in module capsul.study_config.memory)": [[12, "capsul.study_config.memory.file_fingerprint"]], "generate_logging (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.generate_logging"]], "get_configuration_dict() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_configuration_dict"]], "get_iteration_pipeline() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_iteration_pipeline"]], "get_node_class() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.get_node_class"]], "get_node_instance() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.get_node_instance"]], "get_process_instance() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_process_instance"]], "get_process_instance() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.get_process_instance"]], "get_process_signature() (in module capsul.study_config.memory)": [[12, "capsul.study_config.memory.get_process_signature"]], "get_resource_id() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.get_resource_id"], [12, "id25"]], "get_trait() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_trait"], [12, "id7"]], "get_trait_value() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_trait_value"], [12, "id8"]], "get_workflow_controller() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.get_workflow_controller"], [12, "id26"]], "has_attribute() (in module capsul.study_config.memory)": [[12, "capsul.study_config.memory.has_attribute"]], "initialize_callbacks() (capsul.study_config.config_modules.attributes_config.attributesconfig method)": [[12, "capsul.study_config.config_modules.attributes_config.AttributesConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.brainvisa_config.brainvisaconfig method)": [[12, "capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.fom_config.fomconfig method)": [[12, "capsul.study_config.config_modules.fom_config.FomConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.freesurfer_config.freesurferconfig method)": [[12, "capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.fsl_config.fslconfig method)": [[12, "capsul.study_config.config_modules.fsl_config.FSLConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.matlab_config.matlabconfig method)": [[12, "capsul.study_config.config_modules.matlab_config.MatlabConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.nipype_config.nipypeconfig method)": [[12, "capsul.study_config.config_modules.nipype_config.NipypeConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.spm_config.spmconfig method)": [[12, "capsul.study_config.config_modules.spm_config.SPMConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.study_config.studyconfigmodule method)": [[12, "capsul.study_config.study_config.StudyConfigModule.initialize_callbacks"]], "initialize_module() (capsul.study_config.config_modules.attributes_config.attributesconfig method)": [[12, "capsul.study_config.config_modules.attributes_config.AttributesConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.brainvisa_config.brainvisaconfig method)": [[12, "capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.fom_config.fomconfig method)": [[12, "capsul.study_config.config_modules.fom_config.FomConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.freesurfer_config.freesurferconfig method)": [[12, "capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.fsl_config.fslconfig method)": [[12, "capsul.study_config.config_modules.fsl_config.FSLConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.matlab_config.matlabconfig method)": [[12, "capsul.study_config.config_modules.matlab_config.MatlabConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.nipype_config.nipypeconfig method)": [[12, "capsul.study_config.config_modules.nipype_config.NipypeConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.spm_config.spmconfig method)": [[12, "capsul.study_config.config_modules.spm_config.SPMConfig.initialize_module"]], "initialize_module() (capsul.study_config.study_config.studyconfigmodule method)": [[12, "capsul.study_config.study_config.StudyConfigModule.initialize_module"]], "initialize_modules() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.initialize_modules"]], "input_directory (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.input_directory"]], "is_pipeline_node() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.is_pipeline_node"]], "is_process() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.is_process"]], "load_module() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.load_module"]], "name (capsul.study_config.study_config.studyconfigmodule property)": [[12, "capsul.study_config.study_config.StudyConfigModule.name"]], "output_directory (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.output_directory"]], "path_translations (capsul.study_config.config_modules.somaworkflow_config.resourcecontroller attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.ResourceController.path_translations"]], "process_output_directory (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.process_output_directory"]], "queue (capsul.study_config.config_modules.somaworkflow_config.resourcecontroller attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.ResourceController.queue"]], "read_configuration() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.read_configuration"]], "reset_process_counter() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.reset_process_counter"], [12, "id9"]], "run() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.run"], [12, "id10"]], "run_process() (in module capsul.study_config.run)": [[12, "capsul.study_config.run.run_process"]], "save_configuration() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.save_configuration"]], "set_computing_resource_password() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.set_computing_resource_password"], [12, "id27"]], "set_study_configuration() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.set_study_configuration"], [12, "id11"]], "set_trait_value() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.set_trait_value"], [12, "id12"]], "somaworkflow_computing_resource (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_computing_resource"]], "somaworkflow_computing_resources_config (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_computing_resources_config"]], "somaworkflow_config_file (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_config_file"]], "somaworkflow_keep_failed_workflows (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_keep_failed_workflows"]], "somaworkflow_keep_succeeded_workflows (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_keep_succeeded_workflows"]], "transfer_paths (capsul.study_config.config_modules.somaworkflow_config.resourcecontroller attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.ResourceController.transfer_paths"]], "tuple_json_encoder() (in module capsul.study_config.memory)": [[12, "capsul.study_config.memory.tuple_json_encoder"]], "update_study_configuration() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.update_study_configuration"], [12, "id13"]], "use_soma_workflow (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.use_soma_workflow"]], "popen (class in capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.Popen"]], "popen (class in capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.Popen"]], "auto_configuration() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.auto_configuration"]], "auto_configuration() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.auto_configuration"]], "call() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.call"]], "call() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.call"]], "capsul.subprocess": [[13, "module-capsul.subprocess"]], "capsul.subprocess.fsl": [[13, "module-capsul.subprocess.fsl"]], "capsul.subprocess.spm": [[13, "module-capsul.subprocess.spm"]], "check_call() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.check_call"]], "check_call() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.check_call"]], "check_configuration_values() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.check_configuration_values"]], "check_configuration_values() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.check_configuration_values"]], "check_fsl_configuration() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.check_fsl_configuration"]], "check_output() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.check_output"]], "check_output() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.check_output"]], "check_spm_configuration() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.check_spm_configuration"]], "find_spm() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.find_spm"]], "fsl_command_with_environment() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.fsl_command_with_environment"]], "capsul.utils": [[14, "module-capsul.utils"]], "capsul.utils.finder": [[14, "module-capsul.utils.finder"]], "capsul.utils.version_utils": [[14, "module-capsul.utils.version_utils"]], "find_processes() (in module capsul.utils.finder)": [[14, "capsul.utils.finder.find_processes"]], "get_nipype_interfaces_versions() (in module capsul.utils.version_utils)": [[14, "capsul.utils.version_utils.get_nipype_interfaces_versions"]], "get_tool_version() (in module capsul.utils.version_utils)": [[14, "capsul.utils.version_utils.get_tool_version"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["api/api", "api/attributes", "api/engine", "api/in_context", "api/index", "api/info", "api/pipeline", "api/plugins", "api/process", "api/qt_apps", "api/qt_gui", "api/sphinxext", "api/study_config", "api/subprocess", "api/utils", "documentation", "index", "installation", "status", "tutorial/capsul_tutorial", "user_guide_tree/advanced_usage", "user_guide_tree/index", "user_guide_tree/xml_spec"], "filenames": ["api/api.rst", "api/attributes.rst", "api/engine.rst", "api/in_context.rst", "api/index.rst", "api/info.rst", "api/pipeline.rst", "api/plugins.rst", "api/process.rst", "api/qt_apps.rst", "api/qt_gui.rst", "api/sphinxext.rst", "api/study_config.rst", "api/subprocess.rst", "api/utils.rst", "documentation.rst", "index.rst", "installation.rst", "status.rst", "tutorial/capsul_tutorial.ipynb", "user_guide_tree/advanced_usage.rst", "user_guide_tree/index.rst", "user_guide_tree/xml_spec.rst"], "titles": ["capsul.api module", "capsul.attributes module", "capsul.engine module", "capsul.in_context module", "CAPSUL programming API documentation", "<no title>", "capsul.pipeline module", "capsul.plugins module", "capsul.process", "capsul.qt_apps module", "capsul.qt_gui module", "capsul.sphinxext module", "capsul.study_config module", "capsul.subprocess module", "capsul.utils module", "Documentation of the CAPSUL tools", "CAPSUL", "CAPSUL installation", "CAPSUL status", "CAPSUL: chain algorithms in pipelines", "Parameters completion", "User Guide", "XML 2.0 specification"], "terms": {"The": [0, 1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 15, 16, 19, 20, 21], "high": 0, "level": [0, 1, 2, 6, 9, 10, 12, 19, 21, 22], "pre": 0, "import": [0, 1, 2, 3, 6, 8, 11, 12, 19, 20, 21, 22], "main": [0, 3, 6, 10, 11, 12, 15, 21], "object": [0, 1, 2, 3, 6, 8, 10, 12, 19, 22], "from": [0, 1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 16, 17, 19, 21, 22], "sever": [0, 2, 6, 8, 19, 20, 21, 22], "sub": [0, 1, 6, 9, 10, 11, 19, 22], "process": [0, 1, 2, 3, 6, 9, 10, 11, 12, 14, 18], "nipypeprocess": [0, 4], "processresult": [0, 4, 12], "filecopyprocess": [0, 4], "interactiveprocess": [0, 4], "pipelin": [0, 1, 2, 8, 9, 10, 11, 12, 16, 17, 18, 20], "plug": [0, 8, 22], "node": [0, 1, 2, 8, 10, 12, 16, 18, 19, 20, 21], "processnod": [0, 4], "pipelinenod": [0, 4], "switch": [0, 1, 4, 10, 18], "optionaloutputswitch": [0, 4], "studyconfig": [0, 1, 2, 4, 6, 8, 13, 18, 19, 20, 21], "capsul_engin": [0, 3, 4, 8, 12], "get_process_inst": [0, 1, 2, 4, 8, 19, 20, 22], "find_process": [0, 22], "soma": [1, 2, 4, 6, 8, 12, 13, 16, 18, 19, 20, 21], "factori": [1, 2, 4, 8, 10, 12, 20], "classfactori": [1, 4], "control": [1, 2, 4, 6, 8, 9, 10, 12, 19, 21], "trait": [1, 2, 4, 6, 8, 10, 11, 12, 17, 19, 22], "has_trait": [1, 2, 4, 6, 8, 12], "hastrait": [1, 2, 4, 6, 8, 12], "ctrait": [1, 2, 4, 6, 8, 12], "chastrait": [1, 2, 4, 6, 8, 12], "contain": [1, 2, 6, 8, 9, 10, 11, 12, 20, 21, 22], "infrastructur": [1, 6, 8, 10], "util": [1, 4, 6, 8, 10, 12, 20], "need": [1, 2, 6, 8, 10, 12, 19, 22], "defin": [1, 2, 6, 8, 10, 11, 12, 19, 21, 22], "us": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 16, 17, 21, 22], "complet": [1, 2, 6, 8, 10, 12, 15, 16, 18, 19, 21, 22], "system": [1, 2, 4, 6, 8, 10, 12, 16, 19, 21], "class_typ": 1, "sourc": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 22], "hold": [1, 2, 6, 19], "an": [1, 2, 3, 6, 8, 10, 11, 12, 13, 14, 16, 19, 20, 21], "schema": [1, 2, 11, 20], "A": [1, 2, 6, 8, 10, 11, 12, 16, 19, 22], "attrinbut": 1, "within": [1, 2, 6, 10, 11], "framework": [1, 12], "ha": [1, 2, 6, 8, 10, 12, 14, 16, 17, 19, 21, 22], "name": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22], "which": [1, 2, 4, 6, 8, 10, 11, 12, 13, 16, 19, 20, 22], "i": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 20, 21, 22], "identifi": [1, 2, 6, 8, 12, 22], "specifi": [1, 2, 6, 8, 10, 12, 19, 20, 21, 22], "arg": [1, 6, 8, 10, 12], "kwarg": [1, 2, 3, 6, 8, 10, 12, 13], "set": [1, 6, 8, 9, 10, 11, 12, 13, 16, 19, 21], "group": [1, 6, 20, 22], "paramet": [1, 2, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 21], "ar": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 20, 22], "initila": [1, 10, 12], "dure": [1, 2, 6, 8, 12, 17], "initi": [1, 2, 6, 8, 9, 10, 11, 12, 19], "creat": [1, 2, 3, 6, 8, 10, 11, 12, 13, 20, 22], "_user_trait": [1, 12], "all": [1, 2, 6, 8, 9, 10, 11, 12, 15, 16, 19, 21, 22], "instanc": [1, 2, 3, 6, 8, 10, 11, 12, 13, 16, 19, 20, 21, 22], "user": [1, 2, 4, 6, 8, 9, 10, 12, 15, 16, 22], "e": [1, 2, 3, 6, 10, 11, 12, 13, 19, 22], "automat": [1, 2, 6, 8, 10, 11, 12, 13, 16, 19, 20, 21, 22], "we": [1, 2, 6, 8, 9, 10, 11, 12, 17], "can": [1, 2, 6, 8, 9, 10, 11, 12, 13, 16, 17, 19, 20, 21, 22], "access": [1, 2, 6, 8, 10, 12, 19, 21], "thi": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22], "user_trait": [1, 12, 19, 20], "method": [1, 2, 6, 8, 9, 10, 11, 12, 19, 20, 22], "If": [1, 2, 6, 8, 10, 12, 13, 14, 19, 21, 22], "directli": [1, 2, 6, 8, 12, 16, 19, 22], "deriv": [1, 6, 10, 12, 19], "procedur": [1, 9, 12, 17], "call": [1, 2, 3, 4, 6, 8, 12, 19, 20, 22], "add_trait": [1, 6, 8, 12, 19], "order": [1, 2, 6, 8, 9, 10, 12, 16, 19, 21, 22], "share": [1, 2, 6, 12, 19, 20], "between": [1, 2, 6, 8, 10, 12, 16, 19], "schema_dict": [1, 20], "base": [1, 2, 4, 6, 8, 9, 10, 12, 16, 17, 20], "manag": [1, 2, 12, 16, 17, 20], "It": [1, 2, 4, 6, 8, 10, 11, 12, 13, 16, 17, 19, 20, 21, 22], "store": [1, 2, 3, 6, 8, 10, 11, 12, 21], "associ": [1, 2, 6, 8, 11, 20], "each": [1, 2, 6, 8, 9, 10, 11, 12, 19, 20, 22], "its": [1, 2, 6, 8, 10, 12, 19, 20, 21, 22], "valu": [1, 2, 6, 8, 10, 12, 14, 18, 19, 20, 22], "global": [1, 2, 6, 8, 12, 19, 22], "whole": [1, 6], "Or": [1, 2], "mai": [1, 2, 6, 8, 10, 12, 13, 17, 19, 20, 21, 22], "individu": [1, 2, 6, 10, 21], "get_parameters_attribut": [1, 20], "To": [1, 2, 3, 6, 8, 12, 19, 21], "programm": [1, 6], "subclass": [1, 2, 6, 8, 12, 19], "some": [1, 2, 3, 6, 8, 9, 10, 17, 19, 22], "should": [1, 2, 6, 8, 10, 12, 19, 20, 21, 22], "regist": [1, 20], "link": [1, 2, 4, 6, 8, 11, 12, 16, 21], "factory_id": [1, 20], "variabl": [1, 2, 3, 6, 8, 10, 12, 13, 19, 20, 22], "see": [1, 2, 4, 6, 10, 12, 19, 21, 22], "advanc": [1, 19], "usag": [1, 4], "doc": [1, 4, 6, 11, 16, 19, 21], "detail": [1, 2, 6], "copi": [1, 6, 8, 22], "with_valu": 1, "true": [1, 2, 3, 6, 8, 9, 10, 11, 12, 14, 19, 20, 21, 22], "overload": [1, 6, 8, 10], "copy_to_singl": 1, "similar": [1, 3, 13, 16, 22], "except": [1, 2, 6, 8, 12, 19, 22], "convert": [1, 6, 8, 9, 11, 19], "list": [1, 2, 6, 8, 9, 10, 11, 12, 19, 20, 22], "singl": [1, 2, 6, 12, 22], "get": [1, 2, 3, 6, 8, 10, 11, 12, 14, 17, 19, 20, 21, 22], "allow": [1, 2, 6, 8, 10, 11, 12, 16, 19, 21, 22], "determin": [1, 2, 6, 8, 10, 19], "path": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 19, 21, 22], "mere": [1, 2], "end": [1, 2, 8, 10, 11, 22], "set_parameter_attribut": [1, 20], "editable_attribut": 1, "fixed_attibute_valu": 1, "allow_list": 1, "str": [1, 2, 6, 8, 9, 10, 11, 12, 13, 14, 19, 20], "input": [1, 2, 6, 8, 10, 12, 19, 20], "output": [1, 2, 6, 8, 9, 10, 12, 19, 20], "them": [1, 2, 6, 8, 9, 10, 11, 14, 16, 22], "id": [1, 2, 6, 8, 12, 19], "dict": [1, 6, 8, 9, 10, 11, 12, 14, 19, 20], "non": [1, 2, 6, 8, 10, 12, 19], "edit": [1, 2, 10, 16], "bool": [1, 2, 6, 8, 9, 10, 11, 12, 19], "default": [1, 2, 6, 8, 9, 10, 11, 12, 13, 17, 19, 22], "transform": [1, 6, 12, 18, 20], "instanti": [1, 2, 6, 8, 12, 22], "get_completion_engin": [1, 19, 20], "none": [1, 2, 6, 8, 9, 10, 11, 12, 13, 14, 19, 22], "context": [1, 2, 3, 6, 12, 19, 22], "given": [1, 2, 3, 6, 8, 10, 12, 13, 15, 20, 21, 22], "study_config": [1, 2, 6, 8, 10, 13, 19, 20, 21], "": [1, 2, 6, 8, 10, 12, 19, 22], "fom": [1, 10, 12, 18, 21], "noth": [1, 2, 6, 12], "configur": [1, 2, 3, 6, 8, 12, 13, 14, 16, 19, 20, 21], "return": [1, 2, 3, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 22], "abl": [1, 2, 9, 19], "perform": [1, 2, 3, 6, 19, 22], "conform": 1, "api": [1, 2, 8, 11, 12, 15, 20, 21], "deal": [1, 2, 12, 16], "iter": [1, 2, 6, 8, 10, 12, 14, 16, 21, 22], "intern": [1, 2, 6, 8, 10, 12], "machineri": [1, 6], "special": [1, 2, 6, 8, 10, 13, 22], "get_iterated_attribut": 1, "step": [1, 2, 6, 10, 19], "self": [1, 2, 6, 8, 10, 11, 12, 19, 20], "capsul_iteration_step": 1, "complete_iteration_step": 1, "complete_paramet": [1, 6, 20], "process_input": 1, "complete_iter": 1, "file": [1, 2, 3, 6, 8, 9, 10, 11, 12, 16, 21, 22], "includ": [1, 2, 6, 10, 11, 12, 21, 22], "both": [1, 2, 6, 8, 19], "regular": [1, 10], "option": [1, 2, 6, 8, 9, 10, 11, 12, 16, 19, 20, 21, 22], "dictionari": [1, 2, 6, 8, 9, 12, 14, 19, 20, 22], "under": [1, 6, 16], "kei": [1, 2, 6, 8, 9, 11, 12, 14, 19, 20, 22], "capsul_attribut": 1, "fals": [1, 2, 6, 8, 9, 10, 11, 12, 19, 22], "insid": [1, 2, 6, 10, 11, 12, 19, 20, 22], "run": [1, 3, 6, 8, 10, 11, 13, 16, 19, 20, 22], "own": [1, 2, 6, 8, 12], "thu": [1, 2, 6, 8, 12, 16, 19], "correctli": [1, 8, 21], "howev": [1, 6, 8, 10, 16, 22], "2": [1, 2, 6, 8, 10, 16, 17, 19, 20], "advantag": [1, 19], "1": [1, 2, 6, 10, 12, 19, 20, 22], "prevent": [1, 6, 10, 12], "modif": [1, 2], "do": [1, 2, 6, 8, 10, 11, 12, 19], "anywai": [1, 6, 10], "done": [1, 2, 3, 6, 8, 12, 13, 19, 20, 21], "again": [1, 6, 19], "when": [1, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 19, 20, 22], "build": [1, 2, 6, 8, 10, 11, 12, 16, 17, 19, 22], "workflow": [1, 2, 6, 8, 10, 12, 16, 18, 19, 20, 21], "pipeline_workflow": [1, 2, 4, 19], "workflow_from_pipelin": [1, 4, 19], "get_attribute_valu": [1, 19, 20], "type": [1, 2, 6, 8, 9, 10, 11, 12, 13, 14, 19, 20], "get_induced_iterative_paramet": 1, "over": [1, 2, 6, 8, 14, 16], "trigger": [1, 6, 10], "through": [1, 2, 6, 8, 9, 10, 12, 19, 20, 21], "impli": 1, "other": [1, 2, 6, 8, 11, 22], "also": [1, 2, 4, 6, 8, 9, 12, 17, 19, 20, 22], "vari": 1, "ex": [1, 6, 8, 20, 21], "chang": [1, 2, 6, 8, 10, 12, 19, 20], "induc": 1, "give": [1, 17, 19, 22], "implement": [1, 2, 6, 8, 12, 20], "specif": [1, 2, 3, 6, 8, 10, 12, 13, 19], "allowed_extens": [1, 22], "possibl": [1, 2, 6, 8, 10, 12, 19, 20, 21, 22], "extens": [1, 6, 11, 22], "allowed_format": 1, "format": [1, 2, 6, 8, 11, 12, 19, 20, 21, 22], "attributes_to_path": [1, 20], "data": [1, 2, 10, 12, 19, 21], "organ": [1, 2, 6, 9, 12, 19, 21], "deleg": [1, 6], "engin": [1, 3, 6, 10, 12, 19, 21], "note": [1, 2, 6, 8, 11, 12, 19, 20], "assign": [1, 2, 6, 8, 10, 19, 20], "perman": 1, "print": [1, 2, 6, 8, 11, 12, 19, 22], "specific_process_attribut": 1, "onc": [1, 2, 6, 8, 20], "have": [1, 2, 6, 8, 9, 10, 12, 20, 21, 22], "up": [1, 6, 10, 12, 19, 20], "install_auto_complet": [1, 19], "least": [1, 13, 19, 21], "provid": [1, 2, 3, 6, 8, 10, 12, 13, 16, 21], "correct": 1, "model": [1, 2, 12, 19], "set_paramet": [1, 8], "get_path_completion_engin": [1, 20], "remove_auto_complet": 1, "attributes_chang": [1, 20], "obj": [1, 12], "old": [1, 6, 22], "new": [1, 2, 3, 4, 6, 8, 10, 12, 13, 17, 21, 22], "callback": [1, 6, 10, 12, 20], "updat": [1, 2, 6, 8, 10, 12], "basic": [1, 6, 8, 9, 11, 16], "after": [1, 6, 8, 12, 19, 20, 21], "check": [1, 2, 6, 8, 10, 12, 13, 14, 19], "normal": [1, 2, 3, 6, 8, 9, 22], "been": [1, 2, 6, 8, 10, 12, 13, 17, 19, 22], "doe": [1, 2, 6, 8, 12, 16, 19, 21, 22], "merg": [1, 12], "children": [1, 6, 22], "static": [1, 2, 6, 8, 12], "queri": [1, 2, 8], "overrid": 1, "monitor": [1, 12, 16], "influenc": [1, 2, 12], "recomput": 1, "nodes_selection_chang": 1, "remove_attribut": 1, "clear": [1, 12], "cach": [1, 12, 19], "rebuild": 1, "gener": [1, 2, 4, 6, 8, 11, 12, 19, 20, 21, 22], "attach": [1, 6, 8, 19, 22], "remov": [1, 2, 6, 8, 10, 11, 12, 19], "auto": [1, 19, 20, 21], "revert": 1, "remove_switch_observ": 1, "notif": [1, 20], "previous": [1, 2, 6], "listen": 1, "state": [1, 2, 6, 10, 19], "underli": [1, 6, 10], "quit": 1, "incomplet": 1, "specisl": 1, "propag": [1, 6, 10, 19], "select": [1, 2, 6, 8, 10, 12, 13, 19, 22], "correspond": [1, 2, 6, 8, 12, 14, 21, 22], "thei": [1, 2, 6, 8, 12, 16, 19, 20, 21, 22], "retriev": [1, 2, 12], "otherwis": [1, 2, 6, 8, 9, 10, 11, 12, 19, 22], "countrari": 1, "tri": 1, "install_switch_observ": 1, "observ": 1, "setup": [1, 2, 3, 8, 10, 12, 17], "open_values_attribut": 1, "open": [1, 8, 10, 12, 16, 19], "restrict": [1, 6, 10], "directori": [1, 2, 6, 8, 10, 11, 12, 13, 17, 19, 20, 21, 22], "config_modul": [1, 4, 19], "fom_config": [1, 4], "fomconfig": [1, 4, 19, 20], "default_modul": [1, 2, 12, 19], "brainvisaconfig": [1, 4, 19], "update_study_configur": [1, 12], "json": [1, 2, 4, 6, 8, 10, 12, 19, 20, 21, 22], "onli": [1, 2, 3, 6, 8, 10, 12, 16, 19, 22], "morphologist": [1, 8, 11, 20, 21], "But": [1, 2, 6, 17, 19, 22], "creation": [1, 6, 19, 22], "handl": [1, 2, 6, 10, 12, 19, 20], "via": [1, 2, 6, 8, 12, 18, 19, 21, 22], "string": [1, 2, 6, 8, 9, 10, 11, 12, 19, 20], "By": [1, 2, 6, 8, 12], "create_attributes_with_fom": 1, "path_attribut": 1, "filenam": [1, 6, 8, 9, 10, 11, 12, 19, 20, 22], "find": [1, 2, 6, 9, 10, 12, 14, 19, 21, 22], "jsondbengin": [2, 4], "databaseengin": [2, 4], "populsedbengin": [2, 4], "interact": [2, 8, 12], "In": [2, 6, 8, 10, 12, 17, 19, 20, 21, 22], "execut": [2, 3, 6, 8, 9, 10, 11, 12, 13, 16, 18, 19, 22], "mandatori": [2, 3, 6, 8, 9, 10, 11, 12, 14, 16, 19, 22], "Such": [2, 6, 12], "database_loc": 2, "config": [2, 6, 8, 12, 19, 20, 21], "entri": [2, 6], "point": [2, 21, 22], "softwar": [2, 3, 12, 13, 16, 19, 21, 22], "metadata": [2, 6], "environ": [2, 3, 6, 8, 13, 16, 19, 22], "possibli": [2, 6], "remot": [2, 8, 12, 16, 19, 21, 22], "must": [2, 3, 6, 8, 11, 12, 13, 19, 20, 21, 22], "For": [2, 3, 6, 8, 9, 12, 13, 17, 19, 20, 22], "ce": [2, 3, 8, 19], "necessari": [2, 8, 17, 19, 22], "modifi": [2, 6, 8, 10, 12, 19, 22], "appli": [2, 10, 12], "nipyp": [2, 8, 10, 11, 12, 14, 16, 19], "explicitli": [2, 6, 19, 22], "activ": [2, 3, 6, 10, 20, 22], "follow": [2, 6, 10, 12, 13, 17, 19, 21, 22], "code": [2, 6, 8, 10, 11, 12, 22], "here": [2, 6, 9, 12, 19, 22], "select_configur": 2, "ani": [2, 3, 6, 8, 9, 10, 11, 13, 16, 19, 21, 22], "replac": [2, 4, 6, 8, 11, 12, 13, 19, 21, 22], "older": [2, 21], "still": [2, 4, 6, 8, 13, 16, 22], "present": [2, 6, 8, 19], "backward": [2, 10], "compat": [2, 6, 12, 16, 19, 22], "disappear": 2, "later": [2, 6, 8], "version": [2, 6, 8, 12, 13, 14, 17, 19, 22], "exist": [2, 6, 8, 10, 11, 12, 19, 20, 22], "synchron": 2, "mean": [2, 6, 10, 11, 19, 22], "wai": [2, 3, 6, 8, 12, 19, 22], "item": [2, 6, 9, 12, 22], "vice": 2, "versa": 2, "move": [2, 8, 10], "being": [2, 6], "wrapper": [2, 4, 8, 10], "independ": [2, 16, 20, 22], "ax": [2, 10], "addit": [2, 6, 8, 9, 12, 19, 21, 22], "typic": [2, 6, 8, 12, 22], "repres": [2, 6, 8, 10, 19, 22], "comput": [2, 6, 8, 12, 16, 21, 22], "resourc": [2, 6, 8, 12, 16], "connect": [2, 6, 8, 10, 12, 16, 19, 22], "server": [2, 21], "differ": [2, 6, 8, 9, 12, 19, 20, 21], "client": [2, 12, 19], "one": [2, 6, 8, 10, 11, 12, 17, 19, 21, 22], "avail": [2, 6, 10, 12, 20, 21, 22], "extern": [2, 3, 6, 12, 19, 21], "etc": [2, 3, 6, 10, 12, 19, 20, 21], "so": [2, 6, 10, 12, 19], "section": [2, 4, 8, 9, 10, 19], "split": [2, 6, 9], "As": [2, 6, 19, 22], "littl": 2, "bit": [2, 6, 8], "complex": [2, 16], "first": [2, 3, 6, 8, 12, 13, 19], "what": [2, 6, 19], "maintain": 2, "common": [2, 16], "work": [2, 6, 8, 12, 13, 15, 16, 19, 20, 21, 22], "local": [2, 8, 12, 16, 19, 21], "machin": [2, 8, 19], "especi": 2, "who": 2, "either": [2, 6, 8, 10, 12, 16, 17, 19, 21, 22], "persist": [2, 12], "found": [2, 9, 10, 12, 14, 19, 21], "occur": 2, "session": 2, "block": [2, 6, 19, 22], "global_config": 2, "whenev": [2, 6], "ad": [2, 3, 6, 9, 10, 11, 13, 19, 22], "oper": [2, 6, 12], "runtim": [2, 6, 8], "ones": [2, 6, 8, 16, 22], "requir": [2, 6, 8, 12, 17, 19, 20, 22], "request": [2, 6, 8], "element": [2, 3, 6, 8, 9, 12, 13, 19, 20], "per": [2, 22], "amongst": [2, 6, 19], "dedic": 2, "topic": 2, "add": [2, 6, 8, 9, 10, 11, 12, 19, 22], "tabl": [2, 8], "program": [2, 8, 12, 15, 16, 21], "come": [2, 6], "predefin": 2, "constructor": [2, 6, 8, 9, 10, 12], "instead": [2, 6, 8, 12, 17], "computing_resourc": 2, "connected_to": 2, "detailed_inform": 2, "execution_id": 2, "big": 2, "inform": [2, 6, 8, 12, 14, 19, 22], "about": [2, 6, 8, 21, 22], "disconnect": [2, 6, 12, 22], "dispos": 2, "condit": 2, "current": [2, 6, 8, 9, 10, 12, 16, 19], "free": [2, 8, 16], "somaworkflow": 2, "keep": [2, 6, 8, 12, 22], "succeed": [2, 12], "fail": [2, 6, 8, 12, 19, 22], "start": [2, 11, 19, 21, 22], "rais": [2, 6, 12, 13, 19, 22], "get_iteration_pipelin": [2, 12, 20], "pipeline_nam": [2, 12], "node_nam": [2, 6, 10, 12], "process_or_id": [2, 12], "iterative_plug": [2, 6, 12, 19, 20], "do_not_export": [2, 6, 12], "make_opt": [2, 6, 12], "descript": [2, 6, 8, 9, 10, 11, 12, 15, 19], "pass": [2, 6, 8, 9, 12, 19, 21, 22], "add_iterative_process": [2, 6, 10, 12, 19, 20], "offici": 2, "now": [2, 8, 11, 12, 22], "simpli": [2, 12, 19, 22], "futur": [2, 6, 15], "import_config": 2, "config_dict": 2, "cont_on_error": 2, "compar": [2, 12], "load": [2, 6, 8, 10, 11, 12, 19, 21], "interrupt": 2, "try": [2, 10, 12, 13, 19, 22], "stop": [2, 6], "wait": [2, 22], "termin": [2, 22], "load_modul": [2, 12], "module_nam": [2, 6, 9, 11, 14, 22], "alreadi": [2, 6, 10, 12, 19], "case": [2, 6, 8, 10, 11, 13, 19, 21, 22], "fulli": [2, 22], "qualifi": [2, 22], "accept": [2, 21, 22], "statement": [2, 3], "two": [2, 6, 8, 10, 12, 13, 19, 22], "below": [2, 6, 21, 22], "def": [2, 6, 8, 12, 19, 20, 22], "set_environ": 2, "befor": [2, 6, 8, 10, 12, 17, 19, 22], "read": [2, 8, 12, 19], "save": [2, 6, 8, 10, 12, 16, 19, 21, 22], "receiv": [2, 6], "would": [2, 6, 10, 12, 22], "These": [2, 3, 6, 17, 20, 22], "in_context": [2, 19], "appropri": [2, 3, 6, 13, 19], "locat": [2, 8, 11, 12, 21, 22], "raise_for_statu": 2, "statu": [2, 6, 8, 10, 15, 16, 19], "histori": 2, "get_pipelin": 2, "asynchron": 2, "todo": [2, 6, 18], "content": [2, 6, 8, 11, 12, 21], "restart": 2, "time": [2, 6, 8, 10, 12, 19, 21], "yet": 2, "tupl": [2, 6, 8, 10, 12], "actual": [2, 6, 8, 10, 11, 19, 22], "insert": [2, 6, 9, 10, 12], "small": [2, 19, 20], "int": [2, 6, 8, 10, 11, 12, 19, 22], "simpl": [2, 6, 10, 16, 19, 22], "queu": 2, "error": [2, 6, 8, 9, 12, 13, 22], "timeout": 2, "selected_configur": 2, "activate_modul": 2, "assum": [2, 6], "properli": [2, 12, 19], "facrori": 2, "memori": [2, 4, 6, 10], "json_valu": 2, "secon": 2, "computing_config": 2, "where": [2, 3, 6, 8, 9, 10, 12, 13, 17, 22], "search": [2, 9, 10, 19, 20, 21], "sqlite": 2, "test": [2, 6, 12, 13, 17, 19, 20, 22], "populse_db": 2, "url": [2, 9, 21], "json_filenam": 2, "set_json_valu": 2, "named_directori": 2, "absolut": [2, 12, 21, 22], "path_metadata": 2, "param": [2, 6, 8], "uniqu": [2, 6, 16], "c": [2, 6, 19], "set_named_directori": 2, "alwai": [2, 22], "spm_templat": 2, "custom": [2, 4, 6, 8, 9, 10, 12, 19, 22], "real": [2, 6, 8, 9, 10, 19], "set_path_metadata": 2, "result": [2, 6, 8, 10, 12, 19, 22], "check_path": 2, "serializ": [2, 12], "database_engin": 2, "date": 2, "concret": 2, "pair": [2, 6, 12], "eventu": [2, 3, 8, 12, 13, 19], "valueerror": [2, 6, 12], "Then": [2, 6, 11, 12], "name_directori": 2, "rel": [2, 11, 12, 21], "unless": [2, 6, 8], "begin": 2, "edition_widget": 2, "config_id": 2, "gui": [2, 6, 10, 15, 16, 18, 19, 21], "settingseditor": 2, "check_configur": 2, "valid": [2, 3, 6, 8, 12, 13, 19], "brainvisa": [2, 8, 12, 16, 19, 20, 21], "messag": [2, 6, 8, 9, 12, 13, 19], "everyth": [2, 13], "good": [2, 13, 22], "check_notably_invalid_config": 2, "conf": [2, 11], "obvious": 2, "invalid": [2, 6, 12], "fill": [2, 6, 8, 9, 12, 16], "complete_configur": 2, "update_fom": 2, "env": [2, 3, 12, 19], "everi": [2, 6, 12], "slightli": 2, "cannot": [2, 6, 8, 19, 22], "librari": [2, 9, 15, 16, 20], "sometim": 2, "prepar": 2, "side": [2, 6, 20], "hard": 2, "job": [2, 6, 8, 10, 12, 19], "reason": [2, 11], "_run_process": [2, 8, 19], "get_commandlin": [2, 8, 19], "bother": [2, 6], "command": [2, 3, 6, 8, 9, 13, 17, 19], "sy": [2, 11, 19], "short": [2, 11], "usr": [2, 19], "bin": [2, 17], "python3": [2, 17, 19], "produc": [2, 6, 22], "declar": [2, 8, 11, 22], "like": [2, 3, 6, 8, 12, 13, 19, 22], "clariti": 2, "workflowexecutionerror": 2, "workflow_id": 2, "workflow_kept": 2, "verbos": [2, 12, 19], "refer": [2, 6, 12, 19, 22], "workflowcontrol": [2, 12, 19], "choos": [2, 10, 17], "featur": [2, 6, 10, 12, 15, 18, 19, 21, 22], "make": [2, 6, 8, 11, 12, 16, 19, 20, 22], "classic": [2, 8], "same": [2, 6, 8, 16, 21, 22], "8": [2, 19, 22], "12": [2, 6, 8, 19], "variou": [2, 16, 19], "could": [2, 12, 19], "definit": [2, 6, 8, 18, 20, 21, 22], "modular": [2, 19, 20], "well": [2, 17, 19], "known": 2, "instal": [2, 3, 6, 8, 10, 11, 13, 16, 19, 21], "separ": [2, 3, 6, 8, 10, 11, 12, 22], "depend": [2, 6, 8, 10, 12, 16, 17, 19], "standalon": [2, 6, 8, 12], "therefor": [2, 17, 22], "express": [2, 13, 22], "greater": [2, 19, 22], "equal": [2, 10], "g": [2, 3, 6, 10, 11, 12, 13, 22], "cluster": [2, 16], "wa": [2, 6, 8, 13, 19], "storag": 2, "languag": [2, 11, 16], "chosen": 2, "choic": 2, "document": [2, 6, 8, 9, 11, 17, 19, 22], "confiur": 2, "flag": 2, "boolean": [2, 6, 8], "record": [2, 6, 10], "There": [2, 8, 9, 12, 19, 22], "full": [2, 6, 8, 10, 19], "anoth": [2, 6, 10, 12, 17, 19, 22], "sinc": [2, 6, 8, 10, 12, 22], "claus": 2, "new_config": [2, 12], "spm12": 2, "get_all_environ": 2, "abbrevi": 2, "written": [2, 6, 8, 11, 12, 16], "prefix": [2, 3, 6, 8, 11, 13, 19, 21, 22], "dot": [2, 6, 10, 22], "check_invalid_mod": 2, "whose": [2, 11, 12, 22], "activad": 2, "consid": [2, 12, 19], "filter": [2, 6, 9, 10, 12, 19], "global_environ": 2, "miss": [2, 6, 10, 22], "discard": [2, 22], "exampl": [2, 6, 9, 12, 19, 20], "than": [2, 10, 19, 22], "my_environ": 2, "settingssess": 2, "populse_sess": 2, "module_notifi": 2, "modifict": 2, "__enter__": 2, "collection_nam": 2, "collect": 2, "collection_prefix": 2, "congig": 2, "ensur": [2, 8, 12, 19], "most": [2, 8, 12, 16, 19], "more": [2, 4, 6, 10, 19, 21, 22], "match": [2, 6, 8, 9, 10, 12, 22], "settingsconfig": 2, "ensure_module_field": 2, "field": 2, "sure": 2, "three": [2, 9, 22], "mut": 2, "config_id_field": 2, "random": 2, "uuid": [2, 12], "uuid4": 2, "remove_config": 2, "idenfifi": 2, "fslpopen": [3, 4], "subprocess": [3, 11, 19], "popen": [3, 4], "spmpopen": 3, "function": [3, 10, 11, 15, 16, 19, 21], "check_cal": [3, 4], "check_output": [3, 4, 11], "capsulengin": [3, 4, 6, 8, 12], "fsl_check_cal": [3, 19], "bet": [3, 13, 19], "h": [3, 21], "take": [3, 6, 8, 12, 13, 19, 20], "account": [3, 6, 12, 13, 19], "executioncontext": 3, "class": [3, 11, 15, 19, 20, 21, 22], "somewher": [3, 20], "myimag": 3, "nii": [3, 12, 19, 21], "arguent": [3, 13], "line": [3, 9, 10, 11, 13, 19, 22], "without": [3, 6, 8, 11, 12, 13, 19, 22], "nor": [3, 6, 8, 13, 19], "neurodebian": [3, 13, 19], "ubuntu": [3, 13, 17, 19], "16": [3, 13, 17, 19], "04": [3, 13, 17, 19], "fsl5": [3, 13, 19], "0": [3, 6, 8, 10, 12, 13, 19, 20], "equival": [3, 12, 13, 20, 22], "python": [3, 6, 8, 10, 11, 12, 13, 14, 16, 17, 20, 21], "fsl_call": 3, "fsl_check_output": 3, "fsl_command_with_environ": [3, 4], "use_prefix": 3, "use_runtime_env": 3, "usinfg": 3, "func": [3, 6], "fsl_env": 3, "altern": [3, 6, 21], "script": [3, 6, 8, 12, 21], "bash": 3, "spm_check_cal": 3, "spm_batch_filenam": 3, "batch": [3, 13], "matlab": [3, 8, 12, 13], "spm_call": 3, "spm_check_output": 3, "guid": [4, 15], "attributes_factori": 4, "attributesfactori": 4, "attributes_schema": [4, 12, 19, 20], "attributesschema": [4, 20], "editableattribut": [4, 20], "processattribut": [4, 20], "completion_engine_factori": [4, 19, 20], "builtinprocesscompletionenginefactori": 4, "completion_engin": [4, 19, 20], "processcompletionenginefactori": 4, "completion_engine_iter": 4, "processcompletionengineiter": 4, "processcompletionengin": [4, 19, 20], "switchcompletionengin": 4, "pathcompletionengin": [4, 20], "pathcompletionenginefactori": [4, 20], "fom_completion_engin": 4, "fomprocesscompletionengin": [4, 19], "fompathcompletionengin": 4, "fomprocesscompletionengineiter": 4, "database_json": 4, "databas": [4, 8], "database_populs": 4, "pipeline_construct": 4, "pipelineconstructor": 4, "constructedpipelin": 4, "pipeline_nod": 4, "tempfil": [4, 6, 12, 19], "process_iter": [4, 8], "processiter": [4, 8], "topological_sort": 4, "graphnod": 4, "graph": [4, 6, 10, 20], "custom_nod": 4, "strcat_nod": 4, "strcatnod": 4, "cv_node": 4, "crossvalidationfoldnod": 4, "loo_nod": 4, "leaveoneoutnod": [4, 21], "map_nod": 4, "mapnod": 4, "reduce_nod": 4, "reducenod": 4, "processmeta": [4, 19], "metahastrait": [4, 8], "runprocess": [4, 21], "processparamerror": 4, "xml": [4, 10, 12, 16, 19], "xmlprocess": 4, "qt_app": [4, 10], "applic": [4, 6, 10, 19, 20], "pyqt5": [4, 10, 16], "qtwidget": [4, 10], "qapplic": [4, 10, 19, 20], "qtgui": [4, 10, 19], "qguiapplic": [4, 10], "qtcore": [4, 10], "qcoreappl": [4, 10], "qobject": [4, 10], "sip": [4, 10], "simplewrapp": [4, 10], "emittingstream": 4, "window": [4, 10, 19], "myquiload": 4, "board_widget": 4, "boardwidget": 4, "qwidget": [4, 10], "qpaintdevic": [4, 10], "activation_inspector": 4, "activationinspectorapp": 4, "activationinspector": 4, "attributed_process_widget": [4, 19, 20], "attributedprocesswidget": [4, 19, 20], "links_debugg": 4, "capsullinkdebuggerview": 4, "pipeline_developer_view": 4, "colortyp": 4, "qgraphicspolygonitem": [4, 10], "qabstractgraphicsshapeitem": [4, 10], "qgraphicsitem": [4, 10], "embeddedsubpipelineitem": 4, "qgraphicsproxywidget": [4, 10], "qgraphicswidget": [4, 10], "qgraphicsobject": [4, 10], "qgraphicslayoutitem": [4, 10], "boxitem": 4, "qgraphicsrectitem": [4, 10], "nodegwidget": 4, "handleitem": 4, "qgraphicspathitem": [4, 10], "pipelinescen": 4, "qgraphicsscen": [4, 10], "pipelinedeveloperview": 4, "qgraphicsview": [4, 10], "qabstractscrollarea": [4, 10], "qframe": [4, 10], "pipeline_file_warning_widget": 4, "pipelinefilewarningwidget": 4, "qsplitter": [4, 10], "pipeline_user_view": 4, "pipelineuserview": 4, "viewer_widget": 4, "viewerwidget": 4, "sphinxext": [4, 21], "layoutdocgen": [4, 11], "layouthelperwrit": [4, 11], "pipelinedocgen": [4, 11], "pipelinehelpwrit": [4, 11], "usecasesdocgen": [4, 11], "usecaseshelperwrit": [4, 11], "studyconfigmodul": 4, "unmemorizedprocess": 4, "memorizedprocess": 4, "capsulresultencod": 4, "encod": [4, 12], "jsonencod": [4, 12], "capsulresultdecod": [4, 12], "decod": [4, 12], "jsondecod": [4, 12], "attributes_config": 4, "attributesconfig": [4, 20], "brainvisa_config": [4, 19], "freesurfer_config": [4, 19], "freesurferconfig": [4, 19], "fsl_config": [4, 19], "fslconfig": [4, 19], "matlab_config": 4, "matlabconfig": [4, 19], "nipype_config": 4, "nipypeconfig": [4, 19], "smartcaching_config": 4, "smartcachingconfig": [4, 19], "somaworkflow_config": 4, "resourcecontrol": 4, "somaworkflowconfig": [4, 6, 19], "spm_config": 4, "spmconfig": [4, 19], "v3": [4, 8], "obsolet": [4, 7, 8, 12, 13], "in_process": 4, "v2": 4, "check_fsl_configur": 4, "check_configuration_valu": 4, "auto_configur": 4, "find_spm": 4, "check_spm_configur": 4, "spm_command": 4, "workflow_run": 4, "dot_graph_from_pipelin": 4, "save_dot_graph": 4, "save_dot_imag": 4, "nodes_with_existing_output": [4, 10], "nodes_with_missing_input": [4, 10], "disable_runtime_steps_with_existing_output": 4, "where_is_plug_value_from": 4, "plugin": 4, "autoexport_nodes_paramet": [6, 20], "pipeline_definit": [6, 19], "mypipelin": 6, "add_process": [6, 10, 19], "proc1": [6, 19], "my_toolbox": 6, "my_process1": 6, "proc2": [6, 19], "my_process2": 6, "add_switch": [6, 10, 19], "main_switch": 6, "in1": 6, "in2": 6, "out1": [6, 19], "out2": 6, "add_link": [6, 19], "in1_switch_out1": 6, "in1_switch_out2": 6, "in2_switch_out1": 6, "in2_switch_out2": 6, "inner": [6, 12], "export": [6, 22], "parent": [6, 8, 9, 10, 12, 21], "proc1_input": 6, "undefin": [6, 8, 10, 19, 20, 22], "made": 6, "part": [6, 12, 22], "leaf": [6, 9, 10], "brick": 6, "reus": [6, 12, 19], "mechan": [6, 21], "branch": 6, "py": [6, 11, 12, 17], "parallel": [6, 8, 12, 16, 19, 21], "you": [6, 10, 11, 12, 19, 21], "rather": [6, 8, 9], "enabl": [6, 10, 19, 22], "disabl": [6, 10, 16, 19, 22], "form": [6, 21, 22], "chain": [6, 16], "inact": [6, 10], "unselect": 6, "orient": [6, 21], "togeth": 6, "intend": 6, "partial": 6, "describ": [6, 8, 12, 19], "abov": [6, 8, 19, 20, 21, 22], "add_pipeline_step": 6, "act": 6, "highest": 6, "taken": [6, 8, 12], "higher": [6, 10], "becaus": [6, 8, 19], "sens": 6, "add_custom_nod": 6, "add_optional_output_switch": [6, 10, 19], "add_processes_select": 6, "remove_link": 6, "export_paramet": [6, 19], "define_pipeline_step": 6, "define_groups_as_step": 6, "remove_pipeline_step": 6, "enable_all_pipeline_step": 6, "disabled_pipeline_steps_nod": 6, "get_pipeline_step_nod": 6, "find_empty_paramet": 6, "count_item": 6, "workflow_list": 6, "oder": 6, "workflow_repr": 6, "represent": [6, 8, 10, 11, 12, 16, 19, 22], "node_i": 6, "help": [6, 8, 10, 12, 16, 19, 21], "get_input_spec": [6, 8, 19], "get_output_spec": [6, 8, 19], "node_typ": [6, 12], "built": [6, 8, 10, 11, 12, 20, 21, 22], "re": [6, 12], "obtain": [6, 12], "configure_nod": [6, 12], "desir": [6, 12], "suppos": [6, 12, 22], "want": [6, 8, 9, 10, 11, 12, 19], "inputs_to_copi": [6, 8], "inputs_to_clean": [6, 8], "temporari": [6, 8, 10, 12, 19, 22], "weak_link": [6, 19, 22], "allow_export": 6, "destin": [6, 8], "forc": [6, 8, 16, 22], "Its": [6, 8, 20], "shape": [6, 8], "other_nod": 6, "itself": [6, 8, 19], "source_nod": [6, 10], "source_plug_nam": 6, "dest_nod": [6, 10], "dest_plug_nam": 6, "properti": [6, 8, 11, 12, 22], "doesn": 6, "t": [6, 12, 19], "exactli": [6, 22], "conveni": [6, 12], "accord": [6, 12], "kind": 6, "meant": [6, 9], "b": [6, 12, 16, 19, 22], "directlti": 6, "empti": [6, 8, 10, 12, 14, 19, 22], "left": [6, 12, 19, 22], "hidden": [6, 10], "_none": 6, "combin": [6, 22], "input_switch_output": 6, "node1": [6, 19], "step_nam": 6, "define_step": 6, "logic": [6, 10], "regard": [6, 16], "stream": 6, "pure": [6, 19], "virtual": 6, "inactiv": 6, "those": [6, 12, 13], "sequenc": [6, 10, 19], "skip_invalid": 6, "offer": [6, 12], "algorithm": [6, 16], "tell": [6, 8, 19], "interf": 6, "rest": [6, 11, 20, 22], "mark": [6, 10, 22], "silent": 6, "gather": 6, "recommend": [6, 9, 11, 22], "were": 6, "method1": 6, "module1": 6, "method2": 6, "module2": 6, "method3": 6, "module3": 6, "input_param": 6, "n": [6, 12, 19], "select_method": [6, 19, 22], "method1_switch_output": 6, "method2_switch_output": 6, "method3_switch_output": 6, "last": [6, 19], "graphic": [6, 9, 10, 16, 19, 22], "editor": [6, 10], "care": [6, 8], "don": [6, 12, 19], "throw": 6, "selection_paramet": 6, "selection_group": 6, "selector": 6, "mutual": 6, "exclus": 6, "ordereddict": 6, "group_nam": 6, "1st": 6, "export_switch": 6, "output_typ": 6, "switch_valu": [6, 19, 22], "opt_nod": 6, "behaviour": [6, 22], "size": [6, 8, 10, 12, 19], "standard": [6, 10, 12, 13, 19, 22], "length": 6, "number": [6, 11, 12, 19, 22], "relat": 6, "group_switch": 6, "4": [6, 11, 16, 19, 22], "all_nod": 6, "include_opt": [6, 20], "preserv": 6, "useless": 6, "probabl": [6, 8, 12], "call_process_method": 6, "process_nam": [6, 8, 22], "check_requir": [6, 8], "message_list": [6, 8], "reimplement": 6, "compare_to_st": 6, "pipeline_st": 6, "human": 6, "readabl": 6, "explain": 6, "my_process": 6, "count": [6, 12], "nodes_count": 6, "processes_count": 6, "plugs_count": 6, "params_count": 6, "links_count": 6, "enabled_nodes_count": 6, "enabled_procs_count": 6, "enabled_links_count": 6, "portion": 6, "basi": [6, 12, 16], "preprocess": 6, "bias_correct": 6, "histo_analysi": 6, "brain_extract": 6, "brain_segment": 6, "hemispheres_split": 6, "pipeline_step": [6, 21], "prefer": [6, 8], "sorteddictionari": 6, "disabled_nod": 6, "add_step": 6, "reset": [6, 12], "plug_nam": 6, "pipeline_paramet": 6, "is_en": 6, "is_opt": [6, 19], "allow_existing_plug": 6, "weak": [6, 10], "fixm": 6, "track": [6, 8, 10], "3": [6, 12, 16, 17, 19, 20, 21], "parameter_nam": [6, 22], "get_processes_selection_group": 6, "involv": [6, 12, 19, 20], "get_processes_selection_nod": 6, "get_processes_select": 6, "process_select": 6, "install_links_debug_handl": 6, "log_fil": [6, 8], "handler": [6, 9, 10], "debug": [6, 9, 10, 19], "problem": [6, 19], "write": [6, 8, 11, 12, 19], "prepend": 6, "event": [6, 10], "parse_link": 6, "pars": [6, 8, 11, 12], "node_from": 6, "node_to": 6, "plug1": 6, "node2": [6, 19], "plug2": 6, "parse_paramet": 6, "structur": [6, 10, 12, 16, 19, 22], "compos": [6, 22], "propagate_metadata": 6, "forbid_complet": 6, "avoid": [6, 8, 19, 22], "manuy": 6, "overridden": [6, 12], "remove_nod": 6, "remove_trait": 6, "rename_nod": 6, "old_node_nam": 6, "new_node_nam": 6, "reorder_trait": 6, "reorder": 6, "set_study_config": [6, 8, 20], "null": [6, 8, 22], "uninstall_links_debug_handl": 6, "update_nodes_and_plugs_activ": 6, "rule": [6, 10], "workflow_graph": 6, "remove_disabled_step": 6, "remove_disabled_nod": 6, "workflow_ordered_nod": 6, "know": 6, "brief": 6, "helper": [6, 8, 19], "io": [6, 19, 21], "serial": [6, 12, 19], "redefin": 6, "replai": [6, 10], "_pipeline_definition_cal": 6, "dynam": [6, 8, 10, 12, 18], "construct": [6, 12], "readi": 6, "attribut": [6, 8, 10, 12, 14, 16, 18, 19, 21, 22], "subtyp": 6, "add_subpipeline_link": 6, "subpipelin": 6, "add_itconstructedpipelineerative_process": 6, "set_document": 6, "set_node_en": 6, "set_node_posit": 6, "x": [6, 19, 22], "y": [6, 19, 22], "posit": [6, 10, 19, 21, 22], "set_scene_scale_factor": 6, "scale": [6, 10], "view": [6, 10, 18, 19, 22], "factor": [6, 10], "tune": 6, "inherit": [6, 8, 20], "usabl": 6, "reload": [6, 19], "few": [6, 9, 20], "get_node_inst": 6, "reinstanti": 6, "configure_control": 6, "cl": [6, 8], "classmethod": [6, 8], "configured_control": 6, "build_nod": 6, "conf_control": 6, "full_nam": 6, "among": [6, 22], "top": [6, 10], "set_callback_on_plug": 6, "get_plug_valu": 6, "set_plug_valu": 6, "get_trait": [6, 12], "against": [6, 8], "unsatisfi": [6, 8], "understand": [6, 8, 10], "met": [6, 8], "cleanup": 6, "delet": [6, 8, 10, 12, 22], "cyclic": 6, "fire": 6, "exust": 6, "perhap": 6, "get_connections_through": 6, "opaqu": 6, "connected_plug": 6, "get_missing_mandatory_paramet": [6, 8], "exclude_link": 6, "report": [6, 12], "get_study_config": [6, 8, 20], "belong": [6, 8, 12], "trait_nam": [6, 12], "is_job": 6, "remove_callback_from_plug": 6, "f": [6, 8, 19], "spm": [6, 8, 10, 12, 19, 22], "protect": [6, 8], "tristat": [6, 8], "technic": 6, "second": [6, 8, 12], "consequ": [6, 22], "_switch_": [6, 22], "interfac": [6, 8, 9, 10, 11, 12, 13, 14, 16, 19, 22], "has_default_valu": 6, "indic": [6, 22], "even": [6, 19], "links_to": 6, "successor": 6, "is_weak": 6, "links_from": 6, "predecessor": 6, "adjac": 6, "is_parameter_protect": 6, "whether": [6, 19, 22], "protect_paramet": 6, "lock": 6, "just": [6, 8, 12, 19, 20], "manual": 6, "controllerwidget": [6, 10, 19], "tweak": 6, "protected_paramet": 6, "unprotect": 6, "unprotect_paramet": 6, "commut": 6, "sai": 6, "my_switch": 6, "param1": [6, 8], "param2": [6, 8], "node1_switch_param1": 6, "node1_switch_param2": 6, "2nd": 6, "node2_switch_param1": 6, "node2_switch_param2": 6, "reflect": [6, 10], "mani": [6, 19], "visibl": [6, 10, 22], "outsid": [6, 22], "world": 6, "_switch_valu": 6, "_output": 6, "_switch_chang": 6, "_anytrait_chang": 6, "input_nam": 6, "output_nam": 6, "input_plug_nam": 6, "output_plug_nam": 6, "miscellan": 6, "affect": 6, "aim": [6, 19], "overwrit": [6, 8], "downstream": 6, "remain": [6, 10], "nodes_s": 6, "use_nodes_po": 6, "include_io": 6, "enlarge_box": 6, "graphviz": [6, 10], "box": [6, 9, 10, 16], "width": [6, 10], "height": [6, 10], "node_posit": [6, 10], "ignor": [6, 22], "float": [6, 10, 12, 19, 22], "enlarg": 6, "amount": 6, "bigger": 6, "dot_graph": 6, "edg": 6, "prop": 6, "source_node_id": 6, "dest_node_id": 6, "feed": 6, "restor": 6, "export_to_dict": 6, "almost": 6, "recurs": [6, 9, 11, 12, 22], "aspect": [6, 20], "state_dict": 6, "find_nod": 6, "node_chain": 6, "go": [6, 9, 10], "find_plug_connection_destin": 6, "find_plug_connection_sourc": 6, "dest": [6, 19, 22], "param_nam": 6, "parent_nod": 6, "look": [6, 10, 12, 21, 22], "incom": [6, 12], "dir": 6, "map": [6, 8, 12], "flat_dir": 6, "flat": 6, "exclude_inact": 6, "exclude_input": 6, "filesystem": [6, 8, 12], "mayb": 6, "skip": [6, 12], "carri": 6, "appear": [6, 9, 10], "eras": 6, "clean": [6, 8, 12], "selected_nod": 6, "file_nam": 6, "might": 6, "inaccur": 6, "color": [6, 10], "style": [6, 22], "displai": [6, 8, 10, 16, 19, 22], "5": [6, 19], "link_prop": 6, "rgb": 6, "solid": 6, "box_color": 6, "background_fill_color": 6, "dark_color": 6, "imag": [6, 11, 19, 20, 22], "obatain": 6, "nodesep": 6, "rankdir": 6, "tb": 6, "hide": [6, 10], "guess": [6, 10], "uphil": 6, "unconnect": [6, 22], "ascend": 6, "wall": 6, "origin": [6, 10, 22], "write_fake_pipelin": 6, "dirnam": [6, 11, 19], "sleep_tim": 6, "fake": 6, "while": [6, 10, 19, 22], "mimic": 6, "warn": [6, 9, 10, 19, 22], "write_fake_process": 6, "convers": 6, "wf_id": [6, 19], "workflow_nam": 6, "jobs_prior": 6, "create_directori": 6, "transfer": [6, 8, 12], "fly": 6, "adapt": 6, "accordingli": [6, 10], "becom": [6, 22], "prioriti": [6, 12], "issu": [6, 19], "proceed": 6, "thing": [6, 8, 19], "submit": [6, 12], "mainli": [6, 10], "iterative_paramet": 6, "context_nam": 6, "change_iterative_plug": 6, "toggl": [6, 10], "py_fil": 6, "topolog": 6, "tree": [6, 9, 10], "cycl": 6, "r": [6, 9, 12, 17, 19, 20], "tarjanlinear": 6, "linear": 6, "optim": 6, "o": [6, 11, 12, 19, 20], "_node": 6, "_link": 6, "from_nod": 6, "to_nod": 6, "add_nod": [6, 10], "sort": [6, 12, 20], "nnil": 6, "loop": [6, 19], "until": [6, 19], "c_nnil": 6, "degre": 6, "place": [6, 10, 12, 20], "outgo": 6, "d": [6, 9], "assert": [6, 19], "meta": [6, 8], "links_to_degre": 6, "links_from_degre": 6, "add_link_to": 6, "remove_link_to": 6, "add_link_from": 6, "remove_link_from": 6, "xml_file": 6, "placehold": [6, 19], "physic": 6, "concat_plug": 6, "param_typ": 6, "inert": 6, "concaten": [6, 8, 19], "trait_type_as_str": 6, "input_typ": 6, "learn": 6, "sublist": 6, "train": 6, "is_output": 6, "test_is_output": 6, "has_index": 6, "exclud": 6, "leav": [6, 11], "out": [6, 10, 11, 19, 20], "serv": 6, "output_": 6, "seri": [6, 19, 22], "th": 6, "reduc": 6, "revers": 6, "pattern": [6, 10], "substitut": 6, "input_": 6, "input_0": 6, "modul": [8, 17, 19, 20, 21, 22], "activate_copi": 8, "inputs_to_symlink": 8, "use_temp_output_dir": 8, "copied_input": 8, "dst_valu": 8, "copied_fil": 8, "dst_value1": 8, "__call__": 8, "_update_input_trait": 8, "_get_process_argu": 8, "_copy_input_fil": 8, "transpar": [8, 19], "behav": [8, 12], "symlink": 8, "output_directori": [8, 12, 19, 20], "temp": 8, "hardlink": 8, "final": [8, 13], "intermedi": [8, 19], "lot": [8, 16], "is_interact": 8, "background": [8, 10], "standardl": 8, "wrap": [8, 12, 19], "fix": [8, 10, 19, 22], "lack": 8, "nipy": 8, "10": [8, 19, 22], "npproc": 8, "smooth": [8, 10], "_nipype_class_typ": 8, "__postinit__": 8, "_nipype_trait_map": 8, "translat": [8, 11, 12], "underscor": [8, 11, 19], "_": [8, 19, 20], "collis": 8, "_spm_script_fil": 8, "__init__": [8, 10, 11, 19, 20], "twice": 8, "precaut": 8, "__np_init_done__": 8, "init": 8, "smoothed_fil": 8, "spm_script_fil": 8, "nipype_inst": 8, "_nipype_interfac": 8, "privat": 8, "_nipype_modul": 8, "_nipype_class": 8, "_nipype_interface_nam": 8, "nipype_interfac": 8, "returnhelp": 8, "consol": [8, 12, 19], "set_output_directori": 8, "out_dir": 8, "set_usedefault": 8, "usedefault": [8, 22], "atom": 8, "compon": [8, 11], "enthought": 8, "commandlin": [8, 11, 18], "__future__": [8, 19], "print_funct": [8, 19], "myprocess": 8, "def_param1": 8, "super": [8, 19, 20], "out_param": 8, "w": [8, 12, 19], "tmp": [8, 17, 19, 20], "log": [8, 9, 10, 12, 19], "txt": [8, 19], "ok": [8, 12, 18, 19, 22], "distinguish": 8, "behavior": [8, 10, 12], "did": 8, "input_filenam": [8, 19, 22], "out_fil": 8, "our": 8, "often": [8, 10], "forget": 8, "ie": [8, 10, 12], "instaiti": 8, "argument": [8, 19, 21], "get_help": [8, 11, 19], "use_label": 8, "rst": [8, 11], "raw": 8, "restructuredtext": 8, "label": [8, 10, 20], "ambigu": [8, 12], "get_input_help": 8, "rst_format": 8, "helpstr": 8, "get_input": 8, "get_log": 8, "get_output_help": 8, "get_output": 8, "get_paramet": 8, "make_commandline_argu": 8, "trivial": 8, "repr": 8, "params_to_command": 8, "methood": 8, "overwritten": [8, 10], "support": [8, 11, 12, 21], "how": [8, 19, 20], "capsul_job": 8, "somawf_input_param": 8, "format_str": 8, "foreign": 8, "l": [8, 19, 20], "input_dir": 8, "json_job": 8, "m": [8, 11, 17, 21], "my_modul": 8, "run_from_commandlin": 8, "process_definit": 8, "somawf_outut_param": 8, "save_log": 8, "returncod": [8, 12], "attr": 8, "docstr": [8, 11, 12, 15, 21, 22], "mcl": 8, "direct": 8, "complement_doc": 8, "complement": 8, "particular": [8, 12, 19], "base_class": 8, "encapsul": [8, 16], "clone": [8, 17], "monkei": 8, "patch": 8, "process_inst": 8, "_run_interfac": 8, "_list_output": 8, "_gen_filenam": 8, "_parse_input": 8, "sync_nypipe_trait": 8, "sync_process_output_trait": 8, "clone_nipype_trait": 8, "easili": 8, "portabl": 8, "iterated_param": 8, "mosul": 8, "sequenti": [8, 12, 18, 19, 21], "dispatch": 8, "use_soma_workflow": [8, 12, 19], "resource_id": [8, 12], "password": [8, 12], "rsa_key_pass": 8, "queue": [8, 12], "input_file_process": 8, "output_file_process": 8, "keep_workflow": 8, "keep_failed_workflow": 8, "write_workflow_onli": 8, "distribut": [8, 17, 19], "localhost": [8, 12], "ssh": 8, "Not": 8, "rsa": 8, "processtosomaworkflow": 8, "local_path": [8, 12], "no_file_process": 8, "file_transf": 8, "shared_resource_path": 8, "translate_shar": 8, "bv_db_shared_path": 8, "hi": [8, 19], "situat": 8, "k": [8, 19], "callabl": [8, 12], "widget": [9, 19, 20], "though": 9, "extra_opt": 9, "capsulview": 9, "info": [9, 16], "critic": 9, "mode": [9, 10, 19, 21], "redirect": 9, "emit": [9, 10], "parent_item": 9, "menu": [9, 10], "parent_modul": 9, "child": [9, 10, 22], "insensit": 9, "cast": 9, "qtreewidgetitem": 9, "hierach": 9, "sub_modul": 9, "treectrl": 9, "loadabl": 9, "bold": [9, 10], "reach": 9, "qtreecontrol": 9, "is_includ": 9, "mdoul": 9, "scan": [9, 11], "recures": 9, "structured_pipelin": 9, "list_of_pipeline_descript": 9, "docuement": 9, "uifil": 9, "ui": 9, "tool": [10, 14, 16, 18, 19], "qt": [10, 16, 19, 21], "pyqt4": [10, 16, 19, 20], "pysid": [10, 16, 19, 20], "visual": 10, "parametr": 10, "browse_nod": 10, "process_nod": 10, "view_nod": 10, "parent_pipelin": 10, "processing_nod": 10, "uplet": 10, "create_board_tre": 10, "five": 10, "column": 10, "summar": 10, "qualiti": 10, "create_output_widget": 10, "create_viewer_tre": 10, "viewer": [10, 21, 22], "inspect": [10, 12, 19], "deactiv": 10, "ui_fil": 10, "record_fil": 10, "developper_view": 10, "click": [10, 19, 22], "add_controls_to_ui": 10, "find_next": 10, "forward": 10, "is_found": 10, "find_previ": 10, "refresh_activation_from_record": 10, "set_filter_pattern": 10, "filter_pattern": 10, "show": [10, 19, 20, 22], "update_pipeline_activ": 10, "index": [10, 11, 19], "pipeline_path": 10, "develop": [10, 16, 17, 22], "wonder": 10, "why": [10, 19], "plai": 10, "init_window": 10, "attributed_process": 10, "enable_attr_from_filenam": [10, 20], "enable_load_button": [10, 20], "override_control_typ": 10, "separate_output": 10, "user_data": 10, "userlevel": 10, "scroll": 10, "zero": [10, 12, 19], "scrollbar": 10, "on_btn_load_json": 10, "on_btn_save_json": 10, "on_input_filename_chang": 10, "text": 10, "on_show_complet": 10, "on_use_fom_chang": 10, "checkbox": 10, "set_use_fom": 10, "show_complet": 10, "pv": [10, 19], "allow_open_control": [10, 19], "enable_edit": 10, "show_sub_pipelin": [10, 19], "sub_pipeline_wid": 10, "mous": 10, "itemchang": 10, "graphicsitemchang": 10, "mousereleaseev": 10, "qgraphicsscenemouseev": 10, "target": 10, "focusinev": 10, "qfocusev": 10, "focusoutev": 10, "keypressev": 10, "qkeyev": 10, "mousepressev": 10, "rect": 10, "qrectf": 10, "ai": 10, "sub_pipelin": 10, "colored_paramet": 10, "logical_view": 10, "show_opt_input": 10, "show_opt_output": 10, "boundingrect": 10, "mousedoubleclickev": 10, "paint": 10, "painter": 10, "qpainter": 10, "qstyleoptiongraphicsitem": 10, "update_label": 10, "arrow": 10, "signal": 10, "right": 10, "doubl": [10, 19], "ctrl": 10, "embed": 10, "subpipeline_click": 10, "node_right_click": 10, "process_click": 10, "node_click": 10, "node_clicked_ctrl": 10, "plug_click": 10, "plug_right_click": 10, "link_right_click": 10, "scene": 10, "set_pipelin": 10, "is_logical_view": 10, "set_logical_view": 10, "zoom_in": 10, "zoom_out": 10, "openprocesscontrol": 10, "add_embedded_subpipelin": 10, "onloadsubpipelineclick": 10, "onopenprocesscontrol": 10, "enablenod": 10, "enable_step": 10, "disable_preceding_step": 10, "disable_following_step": 10, "enable_preceding_step": 10, "enable_following_step": 10, "set_switch_valu": 10, "disable_done_step": 10, "enable_all_step": 10, "check_fil": 10, "auto_dot_node_posit": 10, "save_dot_image_ui": 10, "reset_initial_nodes_posit": 10, "omit": [10, 22], "red": 10, "pink": 10, "draw": 10, "iterativeprocessinput": 10, "processmoduleinput": 10, "display_str": 10, "class_type_check": 10, "is_process": 10, "processnameedit": 10, "qlineedit": 10, "subpipeline_nam": 10, "ask": [10, 19], "calcul": 10, "overhead": [10, 12], "black": 10, "pamamet": 10, "ital": 10, "font": 10, "green": [10, 19], "grei": 10, "light": [10, 19], "orang": 10, "dragenterev": 10, "enter": [10, 16], "dragmoveev": 10, "dropev": 10, "someth": [10, 19, 22], "drop": 10, "drop_process": 10, "edit_sub_pipelin": 10, "edition_en": 10, "ensure_pipelin": 10, "export_to_db_scan": 10, "database_scan": 10, "is_restricted_edition_mod": 10, "load_pipeline_paramet": 10, "root_path": 10, "mousemoveev": 10, "qmouseev": 10, "foreground": 10, "press": 10, "open_background_menu": 10, "open_filt": 10, "open_node_menu": 10, "popup": 10, "release_pipelin": 10, "releas": [10, 16], "dialog": [10, 22], "smaller": 10, "save_pipelin": 10, "save_pipeline_paramet": 10, "set_enable_edit": 10, "unset": 10, "set_restricted_edition_mod": 10, "action": [10, 22], "show_optional_input": 10, "show_optional_output": 10, "switch_click": 10, "wheelev": 10, "qwheelev": 10, "zoom": [10, 19, 22], "zool": 10, "helpev": 10, "tooltip": [10, 19], "link_tooltip_text": 10, "source_dest": 10, "fiven": 10, "tupe": 10, "source_param": 10, "dest_param": 10, "plug_tooltip_text": 10, "missing_input": 10, "overwritten_output": 10, "pipeline_tool": 10, "workflowview": 10, "a0": 10, "qrect": 10, "qregion": 10, "aw": 10, "ah": 10, "viewer_node_nam": 10, "unactiv": 10, "oncreateviewerclick": 10, "sphinx": [11, 19, 22], "capsul_pipeline_rst": 11, "processes_doc": 11, "module_to_docu": 11, "your": [11, 17, 19], "sphinx_dir": 11, "__file__": [11, 19], "proc_rst_dir": 11, "join": [11, 19, 20], "process_doc": 11, "makedir": [11, 19], "cmd": 11, "desc": [11, 22], "interestingli": 11, "lexer": 11, "toctre": 11, "root_module_nam": 11, "rst_extens": 11, "layout": 11, "project": [11, 19, 21], "packag": [11, 13, 17, 19, 21, 22], "generate_index_entri": 11, "indent": [11, 12], "autodoc": 11, "pilot": 11, "ident": [11, 12], "blank": 11, "rst2html": 11, "html": [11, 21], "title_for": 11, "titl": 11, "write_index": 11, "outdir": 11, "froot": 11, "root": [11, 13, 21], "write_instal": 11, "write_layout": 11, "load_pilot": 11, "pilot_": 11, "use_cas": 11, "referenc": [11, 22], "unitest": 11, "short_nam": 11, "parsabl": 11, "generate_api_doc": 11, "cap": 11, "fmri": 11, "fist": 11, "get_short_nam": 11, "write_api_doc": 11, "returnrst": 11, "disk": [11, 12, 19], "written_modul": 11, "relative_to": 11, "write_main_index": 11, "have_usecas": 11, "usecaseshelp": 11, "generate_usecases_doc": 11, "src_code": 11, "getsourc": 11, "srccode": 11, "write_usecases_doc": 11, "capsul_pipeline_view": 11, "capsul_sphinx_layout": 11, "capsul_usecases_rst": 11, "sh_file": 12, "fsl": [12, 19], "freesurf": [12, 13, 19], "expect": [12, 19, 21, 22], "variable_nam": 12, "sh": [12, 13, 19], "mostli": 12, "much": [12, 16], "karg": 12, "object_hook": 12, "deseri": 12, "rpc": 12, "hint": [12, 21], "object_pairs_hook": 12, "parse_float": 12, "num_str": 12, "datatyp": 12, "parser": 12, "decim": 12, "parse_int": 12, "integ": [12, 19, 22], "parse_const": 12, "infin": 12, "nan": 12, "encount": 12, "strict": 12, "charact": 12, "31": [12, 19], "rang": [12, 16, 19], "tab": 12, "skipkei": 12, "ensure_ascii": 12, "check_circular": 12, "allow_nan": 12, "sort_kei": 12, "sensibl": 12, "typeerror": 12, "attempt": 12, "guarante": 12, "ascii": 12, "escap": 12, "circular": 12, "infinit": 12, "caus": 12, "recursionerror": 12, "compliant": 12, "consist": 12, "javascript": 12, "regress": 12, "dai": 12, "neg": 12, "arrai": [12, 20], "member": 12, "pretti": 12, "newlin": 12, "compact": 12, "item_separ": 12, "key_separ": 12, "elimin": 12, "whitespac": 12, "arbitrari": 12, "els": [12, 19, 20, 22], "let": [12, 19, 22], "cachedir": 12, "timestamp": 12, "decor": [12, 19, 22], "deep": 12, "trace": 12, "base_dir": 12, "proxi": 12, "proxy_process": 12, "extra": 12, "lookup": 12, "folder": 12, "mkdtemp": 12, "mem": 12, "nipype_fsl_merg": 12, "fsl_merg": 12, "dimens": 12, "along": 12, "in_fil": [12, 19], "_merged_fil": 12, "apart": 12, "anyth": 12, "afil": 12, "fingerprint": 12, "mtime": 12, "input_paramet": 12, "signatur": 12, "attribute_nam": 12, "attribute_valu": 12, "axpect": 12, "tuple_json_encod": 12, "encobj": 12, "conf_dict": 12, "warp": 12, "fname": [12, 19], "process_sourc": 12, "processnam": 12, "afterward": 12, "seen": [12, 20], "output_dir": 12, "generate_log": [12, 19], "configuration_dict": [12, 19], "output_log_fil": 12, "study_nam": [12, 19], "init_config": [12, 19], "override_config": 12, "studi": [12, 19, 20], "deprec": 12, "pleas": [12, 19], "turn": [12, 19], "evalu": 12, "afniconfig": [12, 19], "antsconfig": [12, 19], "mrtrixconfig": [12, 19], "capsul_config": 12, "input_directori": [12, 19, 20], "create_output_directori": [12, 19], "process_output_directori": [12, 19], "append": [12, 19, 20, 21], "subdirectori": 12, "process_count": 12, "reset_process_count": [12, 19], "set_trait_valu": 12, "get_trait_valu": 12, "set_study_configur": 12, "transit": 12, "keyword": [12, 21], "get_configuration_dict": 12, "initialize_modul": 12, "config_module_nam": 12, "read_configur": 12, "studies_config": [12, 19], "counter": 12, "process_or_pipelin": [12, 19], "execute_qc_nod": [12, 19], "pepelin": [12, 19], "unchang": [12, 19], "tag": [12, 19], "qualtiti": [12, 19], "save_configur": 12, "writabl": 12, "send": 12, "logger": 12, "trait_valu": 12, "json_fnam": 12, "abstract": 12, "initialize_callback": 12, "startup": 12, "On": [12, 17, 22], "subsequ": 12, "attributes_schema_path": [12, 19, 20], "shchema": 12, "process_complet": [12, 19, 20], "builtin": [12, 19, 20], "path_complet": [12, 19, 20], "axon": [12, 21], "shared_directori": [12, 19, 20], "input_fom": [12, 19, 20], "output_fom": [12, 19, 20], "shared_fom": [12, 19], "volumes_format": [12, 19], "volum": 12, "meshes_format": [12, 19], "mesh": 12, "auto_fom": [12, 19], "moreov": 12, "bring": 12, "6": [12, 19, 22], "7": [12, 16, 19], "fom_path": [12, 19, 20], "use_fom": [12, 19], "setupfreesurf": 12, "use_nipyp": [12, 19], "orkflow": 12, "submiss": 12, "transfer_path": 12, "path_transl": 12, "somaworkflow_computing_resourc": [12, 19], "somaworkflow_config_fil": [12, 19], "home": [12, 21], "soma_workflow": [12, 19], "cfg": 12, "somaworkflow_keep_failed_workflow": [12, 19], "somaworkflow_keep_succeeded_workflow": [12, 19], "somaworkflow_computing_resources_config": [12, 19], "get_resource_id": 12, "set_computing_resource_password": 12, "get_workflow_control": [12, 19], "connect_resourc": 12, "disconnect_resourc": 12, "force_reconnect": 12, "reconnect": 12, "set_it": 12, "host": [12, 19], "rsa_key_password": 12, "credenti": 12, "computinf": 12, "neuroimag": 13, "potenti": 13, "had": [13, 19], "fmrib": [13, 19], "site": [13, 19], "fsldir": [13, 19], "areus": 13, "fl": [13, 19], "tha": 13, "environmenterror": [13, 19], "wrong": 13, "batch_fil": 13, "spm_version": [13, 19], "matlab_exec": [13, 19], "matlab_path": 13, "fed": 13, "addpath": 13, "last_lin": 13, "finder": [14, 22], "ignore_import_error": 14, "version_util": 14, "__version__": [14, 19], "exact": 15, "plan": 15, "design": 16, "easi": 16, "center": [16, 19, 20, 21], "difficulti": 16, "stabl": 16, "http": [16, 17, 19, 21], "github": [16, 17, 19, 21], "com": [16, 17, 19], "populs": [16, 17, 19, 21], "althrough": 16, "facil": 16, "distant": 16, "pyqt": [16, 19], "team": 16, "neurospin": 16, "cecil": 16, "bsd": 16, "suit": 17, "brain": [17, 19], "pip": 17, "compil": 17, "bare": 17, "debian": 17, "linux": 17, "sudo": 17, "apt": 17, "dev": 17, "essenti": 17, "indifer": 17, "pypi": 17, "pip3": 17, "git": 17, "cd": 17, "rm": 17, "venv": 17, "iteraton": 18, "effici": 19, "everybodi": 19, "reusabl": 19, "ipython": [19, 21], "notebook": [19, 21], "close": 19, "demo": 19, "allow_gui": 19, "use_gui": 19, "qt4": 19, "qt_gui": [19, 20], "qt_backend": 19, "set_qt_backend": 19, "process1": 19, "ff": 19, "132": 19, "13": 19, "39": 19, "145": [19, 22], "9": 19, "process2": 19, "echo": 19, "xml_process": [19, 22], "capsul_xml": [19, 22], "proper": 19, "__main__": 19, "40": 19, "42": [19, 22], "cat": 19, "pipeline1": 19, "backend": 19, "pipelinedevelopperview": [19, 21], "run_qt_loop": 19, "app": 19, "argv": 19, "simplic": 19, "view1": 19, "gon": 19, "exec_": 19, "11": 19, "controller_widget": 19, "controller1": 19, "live": [19, 22], "controller2": 19, "pipeline2": 19, "node_str": 19, "view2": 19, "14": 19, "blop": 19, "000000": 19, "glossari": 19, "xml_pipelin": 19, "15": 19, "xmldesc": 19, "openfil": 19, "readlin": 19, "lt": [19, 22], "gt": [19, 22], "34": 19, "p1": 19, "test_load_from_descript": [19, 22], "a_function_to_wrap": 19, "list_of_str": 19, "p2": 19, "pdirectori": 19, "enum": [19, 22], "200": 19, "400": 19, "600": 19, "soon": 19, "clarifi": 19, "xmlpipe": 19, "nodes_activ": 19, "legal": 19, "controllertrait": 19, "No": [19, 20], "pathlik": 19, "list_str": [19, 22], "One": [19, 20, 22], "major": 19, "17": 19, "18": 19, "pipeline3": 19, "case1": 19, "case2": 19, "case1_switch_output": 19, "case2_switch_output": 19, "19": 19, "view3": 19, "20": 19, "21": 19, "yup": 19, "22": 19, "test_pipelin": [19, 22], "threshold_gt_1": [19, 22], "threshold": [19, 22], "threshold_gt_10": [19, 22], "threshold_gt_100": [19, 22], "100": [19, 22], "threshold_lt_1": [19, 22], "threshold_lt_10": [19, 22], "threshold_lt_100": [19, 22], "mask_1": [19, 22], "mask": [19, 22], "mask_10": [19, 22], "mask_100": [19, 22], "input_imag": [19, 22], "output_imag": [19, 22], "output_1": [19, 22], "output_10": [19, 22], "output_100": [19, 22], "processes_select": 19, "processes_group": [19, 22], "lower": [19, 22], "386": [19, 22], "403": [19, 22], "50": [19, 22], "815": [19, 22], "153": [19, 22], "374": [19, 22], "242": [19, 22], "556": [19, 22], "314": [19, 22], "371": [19, 22], "88": [19, 22], "820": [19, 22], "293": [19, 22], "826": [19, 22], "451": [19, 22], "570": [19, 22], "568": [19, 22], "1000": 19, "182": 19, "35615": 19, "658": 19, "8043": 19, "348": 19, "3267625": 19, "205": 19, "125": 19, "183": 19, "6139625": 19, "329": 19, "3854": 19, "488": 19, "9169": 19, "512": 19, "08755": 19, "744": 19, "8167": 19, "146": 19, "998": 19, "805": 19, "8291": 19, "476": 19, "4169": 19, "23": 19, "nifti": [19, 22], "And": 19, "24": 19, "25": 19, "list_float": [19, 22], "sum": 19, "sum_nod": 19, "add_12": 19, "pipeline4": 19, "26": 19, "view4": 19, "54": 19, "27": 19, "28": 19, "node_first": 19, "node_second": 19, "pipeline5": 19, "29": 19, "view5": 19, "realli": 19, "30": 19, "infil": 19, "dummi": 19, "outfil": 19, "dummy_modifi": 19, "dummy_intermedi": 19, "ate": 19, "cake": 19, "morn": 19, "nlet": 19, "eat": 19, "unlink": 19, "solv": 19, "condition": 19, "bridg": 19, "break": 19, "32": 19, "pipeline6": 19, "input_switch_b": 19, "33": 19, "view6": 19, "long": 19, "off": 19, "35": 19, "36": 19, "37": 19, "38": 19, "wide": 19, "art": 19, "medic": 19, "propos": [19, 21, 22], "With": 19, "smart": 19, "worflow": 19, "popul": 19, "default_config": 19, "initial_config": 19, "getattr": 19, "user_level": 19, "afni_path": 19, "use_afni": 19, "ants_path": 19, "use_": 19, "fsl_prefix": 19, "use_fsl": 19, "use_matlab": 19, "mrtrix_path": 19, "use_mrtrix": 19, "use_smart_cach": 19, "openkeycontrol": 19, "0x7f2640ca0860": 19, "spm_directori": 19, "spm_standalon": 19, "spm_exec": 19, "spm_mcr_directori": 19, "use_spm": 19, "opt": 19, "hostedtoolcach": 19, "x64": 19, "lib": 19, "41": 19, "capsul_demo": 19, "__doc__": 19, "cpu": 19, "________________________________________________________________________________": 19, "address": 19, "larg": 19, "huge": 19, "dataset": 19, "limit": 19, "lost": 19, "43": 19, "44": 19, "client_typ": 19, "0x7f2650064400": 19, "0x7f2650064640": 19, "workwlow": 19, "soma_workflow_gui": 19, "45": 19, "swclient": 19, "wc": 19, "submit_workflow": 19, "wait_workflow": 19, "workflow_statu": 19, "delete_workflow": 19, "initialis": 19, "workflow_don": 19, "anymor": 19, "46": 19, "47": 19, "48": 19, "init_wf_list": 19, "wf_list": 19, "wf": 19, "del": 19, "indexerror": 19, "traceback": 19, "recent": 19, "cell": 19, "thirdparti": 19, "49": 19, "lazili": 19, "51": 19, "osp": 19, "test_imag": 19, "mni152": 19, "templat": 19, "mni152_t1_1mm_brain": 19, "gz": [19, 21], "fsl_dir": 19, "glob": 19, "fslpython": 19, "nibabel": 19, "anatom": 19, "namedtemporaryfil": 19, "suffix": 19, "stat": 19, "st_size": 19, "extract": [19, 22], "52": 19, "find_in_path": 19, "betpip": 19, "mni152_t1_2mm": 19, "shown": 19, "unfortun": 19, "mention": 19, "confit": 19, "53": 19, "illustr": 19, "create_xml_pipelin": 19, "xmlstr": 19, "dummyprocess": [19, 20], "proc3": 19, "proc4": 19, "proc_select": 19, "proc_select2": 19, "input_image1": 19, "input_image2": 19, "input_image4": 19, "input_image3": 19, "image_out1": 19, "image_out3": 19, "image_out5": 19, "proc1_switch_imag": 19, "proc2_switch_imag": 19, "proc3_switch_imag": 19, "proc4_switch_imag": 19, "151": 19, "227": 19, "4447": 19, "381": 19, "6498": 19, "160": 19, "1012": 19, "668": 19, "1498": 19, "319": 19, "9886": 19, "507": 19, "1947": 19, "144": 19, "2624": 19, "589": 19, "7949": 19, "123": 19, "391": 19, "171": 19, "8197": 19, "demopipelin": 19, "55": 19, "56": 19, "fom_cont": 19, "fom_nam": [19, 20], "demo_fom": 19, "format_list": 19, "shared_pattern": [19, 20], "subject_dir": 19, "subject": [19, 20, 21], "alt2_": 19, "alt4_": 19, "out_image_": 19, "_1": 19, "_3": 19, "_4": 19, "1035": 19, "57": 19, "scrollcontrollerwidget": 19, "hack": 19, "soma_app": 19, "plugin_modul": 19, "fom_manag": 19, "morphologist_fom": 19, "gii": 19, "_cach": 19, "mp": 19, "__name__": 19, "irm2": 19, "p_view": 19, "ap_view": 19, "back": 19, "impos": 19, "deduc": 19, "swtch": 19, "58": 19, "subjects_irm2": 19, "out_image_irm2_3": 19, "out_image_irm2_4": 19, "59": 19, "shutil": 19, "rmtree": 19, "matter": 20, "attributesmodul": 20, "capsul": [20, 22], "test_studi": 20, "test_attributed_process": 20, "custom_ex": 20, "respons": 20, "compl_engin": 20, "jojo": 20, "barbapapa": 20, "on_trait_chang": 20, "casimir": 20, "truc": 20, "dummyprocess_truc_jojo_casimir": 20, "cwid": 20, "mypathcomplet": 20, "att_dict": 20, "val": 20, "generated_by_paramet": 20, "customattributesschema": 20, "acquisit": 20, "analysi": 20, "dummyprocessattribut": 20, "bidul": 20, "integr": 20, "inpupt_fom": 20, "brainvisa_dir": 20, "nonoverlap": 20, "fom_import": 20, "attribute_definit": 20, "default_valu": 20, "default_acquisit": 20, "default_analysi": 20, "sulci_recognition_sess": 20, "default_sess": 20, "graph_vers": 20, "t1mri": [20, 21], "recognition_analysi": 20, "fold": 20, "_auto": 20, "imported_t1mri": 20, "t1mri_referenti": 20, "registr": 20, "rawt1": 20, "referenti": 20, "reoriented_t1mri": 20, "t1mri_nobia": 20, "nobias_": 20, "split_brain": 20, "segment": 20, "voronoi_": 20, "left_graph": 20, "left_labelled_graph": 20, "right_graph": 20, "right_labelled_graph": 20, "talairach_transform": 20, "_to_talairach": 20, "acpc": 20, "matrix": 20, "morpho": 20, "cm": 20, "s1": 20, "s2": 20, "s3": 20, "jupyt": 21, "download": 21, "my_tutori": 21, "ipynb": 21, "shell": 21, "varieti": 21, "swf": 21, "study_data": 21, "subjet01": 21, "subject01": 21, "subject02": 21, "subject03": 21, "raw_data": 21, "write_engine_config": 21, "spec": 21, "page": 21, "_doc_path": 21, "latter": 21, "hierarchi": 21, "upward": 21, "browser": 21, "latest": 22, "quotient": 22, "remaind": 22, "divid": 22, "straightforward": 22, "veri": 22, "unicod": 22, "liter": 22, "list_int": 22, "list_unicod": 22, "list_fil": 22, "list_directori": 22, "multipl": 22, "decid": 22, "immedi": 22, "button": 22, "ge": 22, "le": 22, "thresold": 22, "output_loc": 22, "threshold_": 22, "put": 22, "binari": 22, "wherea": 22, "convent": 22, "pep": 22, "loadr": 22, "se": 22, "coma": 22, "input1": 22, "input2": 22, "output1": 22, "copyfil": 22, "prove": 22, "fulfil": 22, "enab": 22, "ling": 22, "unlik": 22, "mu": 22, "__": 22, "coordin": 22, "recognis": 22, "python_path": 22, "clinfmri": 22, "p": 22, "hand": 22, "misspel": 22, "unknown": 22, "precis": 22}, "objects": {"capsul": [[0, 0, 0, "-", "api"], [1, 0, 0, "-", "attributes"], [2, 0, 0, "-", "engine"], [3, 0, 0, "-", "in_context"], [5, 0, 0, "-", "info"], [6, 0, 0, "-", "pipeline"], [7, 0, 0, "-", "plugins"], [8, 0, 0, "-", "process"], [9, 0, 0, "-", "qt_apps"], [10, 0, 0, "-", "qt_gui"], [11, 0, 0, "-", "sphinxext"], [12, 0, 0, "-", "study_config"], [13, 0, 0, "-", "subprocess"], [14, 0, 0, "-", "utils"]], "capsul.attributes": [[1, 0, 0, "-", "attributes_factory"], [1, 0, 0, "-", "attributes_schema"], [1, 0, 0, "-", "completion_engine"], [1, 0, 0, "-", "completion_engine_factory"], [1, 0, 0, "-", "completion_engine_iteration"], [1, 0, 0, "-", "fom_completion_engine"]], "capsul.attributes.attributes_factory": [[1, 1, 1, "", "AttributesFactory"]], "capsul.attributes.attributes_schema": [[1, 1, 1, "", "AttributesSchema"], [1, 1, 1, "", "EditableAttributes"], [1, 1, 1, "", "ProcessAttributes"], [1, 3, 1, "", "set_attribute"]], "capsul.attributes.attributes_schema.ProcessAttributes": [[1, 2, 1, "", "copy"], [1, 2, 1, "", "copy_to_single"], [1, 2, 1, "", "get_parameters_attributes"], [1, 2, 1, "", "set_parameter_attributes"]], "capsul.attributes.completion_engine": [[1, 1, 1, "", "PathCompletionEngine"], [1, 1, 1, "", "PathCompletionEngineFactory"], [1, 1, 1, "", "ProcessCompletionEngine"], [1, 1, 1, "", "ProcessCompletionEngineFactory"], [1, 1, 1, "", "SwitchCompletionEngine"]], "capsul.attributes.completion_engine.PathCompletionEngine": [[1, 2, 1, "", "allowed_extensions"], [1, 2, 1, "", "allowed_formats"], [1, 2, 1, "", "attributes_to_path"]], "capsul.attributes.completion_engine.ProcessCompletionEngine": [[1, 2, 1, "", "attributes_changed"], [1, 2, 1, "id0", "attributes_to_path"], [1, 2, 1, "id5", "complete_parameters"], [1, 2, 1, "id6", "get_attribute_values"], [1, 2, 1, "id7", "get_completion_engine"], [1, 2, 1, "id8", "get_path_completion_engine"], [1, 2, 1, "id9", "install_auto_completion"], [1, 2, 1, "", "nodes_selection_changed"], [1, 2, 1, "", "remove_attributes"], [1, 2, 1, "id10", "remove_auto_completion"], [1, 2, 1, "", "remove_switch_observers"], [1, 2, 1, "id11", "set_parameters"]], "capsul.attributes.completion_engine.ProcessCompletionEngineFactory": [[1, 2, 1, "", "get_completion_engine"]], "capsul.attributes.completion_engine.SwitchCompletionEngine": [[1, 2, 1, "", "get_attribute_values"], [1, 2, 1, "", "install_switch_observer"], [1, 2, 1, "", "remove_switch_observer"]], "capsul.attributes.completion_engine_factory": [[1, 1, 1, "", "BuiltinProcessCompletionEngineFactory"]], "capsul.attributes.completion_engine_factory.BuiltinProcessCompletionEngineFactory": [[1, 2, 1, "", "get_completion_engine"]], "capsul.attributes.completion_engine_iteration": [[1, 1, 1, "", "ProcessCompletionEngineIteration"]], "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration": [[1, 2, 1, "", "complete_iteration_step"], [1, 2, 1, "", "complete_parameters"], [1, 2, 1, "", "get_attribute_values"], [1, 2, 1, "", "get_induced_iterative_parameters"], [1, 2, 1, "", "get_iterated_attributes"]], "capsul.attributes.fom_completion_engine": [[1, 1, 1, "", "FomPathCompletionEngine"], [1, 1, 1, "", "FomProcessCompletionEngine"], [1, 1, 1, "", "FomProcessCompletionEngineIteration"]], "capsul.attributes.fom_completion_engine.FomPathCompletionEngine": [[1, 2, 1, "", "allowed_extensions"], [1, 2, 1, "", "allowed_formats"], [1, 2, 1, "", "attributes_to_path"], [1, 2, 1, "", "open_values_attributes"]], "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine": [[1, 2, 1, "id13", "create_attributes_with_fom"], [1, 2, 1, "", "get_attribute_values"], [1, 2, 1, "", "get_path_completion_engine"], [1, 2, 1, "", "path_attributes"]], "capsul.attributes.fom_completion_engine.FomProcessCompletionEngineIteration": [[1, 2, 1, "", "get_iterated_attributes"]], "capsul.engine": [[2, 1, 1, "", "CapsulEngine"], [2, 3, 1, "", "activate_configuration"], [2, 3, 1, "", "activate_module"], [2, 3, 1, "", "capsul_engine"], [2, 0, 0, "-", "database"], [2, 3, 1, "", "database_factory"], [2, 0, 0, "-", "database_json"], [2, 0, 0, "-", "database_populse"], [2, 0, 0, "-", "module"], [2, 0, 0, "-", "run"], [2, 0, 0, "-", "settings"]], "capsul.engine.CapsulEngine": [[2, 2, 1, "", "connect"], [2, 2, 1, "", "connected_to"], [2, 2, 1, "", "detailed_information"], [2, 2, 1, "", "disconnect"], [2, 2, 1, "", "dispose"], [2, 2, 1, "", "executions"], [2, 2, 1, "", "get_iteration_pipeline"], [2, 2, 1, "", "get_process_instance"], [2, 2, 1, "", "import_configs"], [2, 2, 1, "", "interrupt"], [2, 2, 1, "", "load_module"], [2, 2, 1, "", "load_modules"], [2, 2, 1, "", "raise_for_status"], [2, 2, 1, "", "start"], [2, 2, 1, "", "status"], [2, 2, 1, "", "wait"]], "capsul.engine.database": [[2, 1, 1, "", "DatabaseEngine"]], "capsul.engine.database.DatabaseEngine": [[2, 2, 1, "", "check_path"], [2, 2, 1, "", "json_value"], [2, 2, 1, "", "named_directories"], [2, 2, 1, "", "named_directory"], [2, 2, 1, "", "path_metadata"], [2, 2, 1, "", "set_json_value"], [2, 2, 1, "", "set_named_directory"], [2, 2, 1, "", "set_path_metadata"]], "capsul.engine.database_json": [[2, 1, 1, "", "JSONDBEngine"]], "capsul.engine.database_json.JSONDBEngine": [[2, 2, 1, "", "json_value"], [2, 2, 1, "", "named_directories"], [2, 2, 1, "", "named_directory"], [2, 2, 1, "", "path_metadata"], [2, 2, 1, "", "set_json_value"], [2, 2, 1, "", "set_named_directory"], [2, 2, 1, "", "set_path_metadata"]], "capsul.engine.database_populse": [[2, 1, 1, "", "PopulseDBEngine"]], "capsul.engine.database_populse.PopulseDBEngine": [[2, 2, 1, "", "json_value"], [2, 2, 1, "", "named_directories"], [2, 2, 1, "", "named_directory"], [2, 2, 1, "", "path_metadata"], [2, 2, 1, "", "set_json_value"], [2, 2, 1, "", "set_named_directory"], [2, 2, 1, "", "set_path_metadata"]], "capsul.engine.module": [[2, 0, 0, "-", "attributes"], [2, 0, 0, "-", "axon"], [2, 0, 0, "-", "fom"], [2, 0, 0, "-", "fsl"], [2, 0, 0, "-", "matlab"], [2, 0, 0, "-", "python"], [2, 0, 0, "-", "spm"]], "capsul.engine.module.attributes": [[2, 3, 1, "", "edition_widget"]], "capsul.engine.module.axon": [[2, 3, 1, "", "check_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "complete_configurations"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.module.fom": [[2, 3, 1, "", "edition_widget"], [2, 3, 1, "", "update_fom"]], "capsul.engine.module.fsl": [[2, 3, 1, "", "activate_configurations"], [2, 3, 1, "", "check_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "complete_configurations"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.module.matlab": [[2, 3, 1, "", "check_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.module.python": [[2, 3, 1, "", "activate_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.module.spm": [[2, 3, 1, "", "activate_configurations"], [2, 3, 1, "", "check_notably_invalid_config"], [2, 3, 1, "", "edition_widget"]], "capsul.engine.run": [[2, 4, 1, "", "WorkflowExecutionError"], [2, 3, 1, "", "detailed_information"], [2, 3, 1, "", "dispose"], [2, 3, 1, "", "interrupt"], [2, 3, 1, "", "raise_for_status"], [2, 3, 1, "", "start"], [2, 3, 1, "", "status"], [2, 3, 1, "", "wait"]], "capsul.engine.settings": [[2, 1, 1, "", "Settings"], [2, 1, 1, "", "SettingsSession"]], "capsul.engine.settings.Settings": [[2, 2, 1, "", "get_all_environments"], [2, 2, 1, "", "import_configs"], [2, 2, 1, "", "module_name"], [2, 2, 1, "", "select_configurations"]], "capsul.engine.settings.SettingsSession": [[2, 2, 1, "", "collection_name"], [2, 2, 1, "", "config"], [2, 2, 1, "", "configs"], [2, 2, 1, "", "ensure_module_fields"], [2, 2, 1, "", "get_all_environments"], [2, 2, 1, "", "new_config"], [2, 2, 1, "", "remove_config"]], "capsul.in_context": [[3, 0, 0, "-", "fsl"], [3, 0, 0, "-", "spm"]], "capsul.in_context.fsl": [[3, 1, 1, "", "FslPopen"], [3, 3, 1, "", "fsl_call"], [3, 3, 1, "", "fsl_check_call"], [3, 3, 1, "", "fsl_check_output"], [3, 3, 1, "", "fsl_command_with_environment"], [3, 3, 1, "", "fsl_env"]], "capsul.in_context.spm": [[3, 1, 1, "", "SPMPopen"], [3, 3, 1, "", "spm_call"], [3, 3, 1, "", "spm_check_call"], [3, 3, 1, "", "spm_check_output"]], "capsul.pipeline": [[6, 0, 0, "-", "custom_nodes"], [6, 0, 0, "-", "pipeline"], [6, 0, 0, "-", "pipeline_construction"], [6, 0, 0, "-", "pipeline_nodes"], [6, 0, 0, "-", "pipeline_tools"], [6, 0, 0, "-", "pipeline_workflow"], [6, 0, 0, "-", "process_iteration"], [6, 0, 0, "-", "python_export"], [6, 0, 0, "-", "topological_sort"], [6, 0, 0, "-", "xml"]], "capsul.pipeline.custom_nodes": [[6, 0, 0, "-", "cv_node"], [6, 0, 0, "-", "loo_node"], [6, 0, 0, "-", "map_node"], [6, 0, 0, "-", "reduce_node"], [6, 0, 0, "-", "strcat_node"], [6, 0, 0, "-", "strconv"]], "capsul.pipeline.custom_nodes.cv_node": [[6, 1, 1, "", "CrossValidationFoldNode"]], "capsul.pipeline.custom_nodes.loo_node": [[6, 1, 1, "", "LeaveOneOutNode"]], "capsul.pipeline.custom_nodes.map_node": [[6, 1, 1, "", "MapNode"]], "capsul.pipeline.custom_nodes.reduce_node": [[6, 1, 1, "", "ReduceNode"]], "capsul.pipeline.custom_nodes.strcat_node": [[6, 1, 1, "", "StrCatNode"]], "capsul.pipeline.custom_nodes.strconv": [[6, 1, 1, "", "StrConvNode"]], "capsul.pipeline.custom_nodes.strconv.StrConvNode": [[6, 2, 1, "", "get_connections_through"], [6, 2, 1, "", "is_job"]], "capsul.pipeline.pipeline": [[6, 1, 1, "", "Pipeline"]], "capsul.pipeline.pipeline.Pipeline": [[6, 2, 1, "", "add_custom_node"], [6, 2, 1, "", "add_iterative_process"], [6, 2, 1, "", "add_link"], [6, 2, 1, "", "add_optional_output_switch"], [6, 2, 1, "", "add_pipeline_step"], [6, 2, 1, "", "add_process"], [6, 2, 1, "", "add_processes_selection"], [6, 2, 1, "", "add_switch"], [6, 2, 1, "", "add_trait"], [6, 2, 1, "", "all_nodes"], [6, 2, 1, "", "autoexport_nodes_parameters"], [6, 2, 1, "", "call_process_method"], [6, 2, 1, "", "check_requirements"], [6, 2, 1, "", "compare_to_state"], [6, 2, 1, "", "count_items"], [6, 2, 1, "", "define_groups_as_steps"], [6, 2, 1, "", "define_pipeline_steps"], [6, 2, 1, "", "disabled_pipeline_steps_nodes"], [6, 2, 1, "", "enable_all_pipeline_steps"], [6, 2, 1, "", "export_parameter"], [6, 2, 1, "", "find_empty_parameters"], [6, 2, 1, "", "get_pipeline_step_nodes"], [6, 2, 1, "", "get_processes_selection_groups"], [6, 2, 1, "", "get_processes_selection_nodes"], [6, 2, 1, "", "get_processes_selections"], [6, 2, 1, "", "install_links_debug_handler"], [6, 5, 1, "", "nodes"], [6, 2, 1, "", "parse_link"], [6, 2, 1, "", "parse_parameter"], [6, 2, 1, "", "pipeline_definition"], [6, 2, 1, "", "pipeline_state"], [6, 2, 1, "", "propagate_metadata"], [6, 2, 1, "", "remove_link"], [6, 2, 1, "", "remove_node"], [6, 2, 1, "", "remove_pipeline_step"], [6, 2, 1, "", "remove_trait"], [6, 2, 1, "", "rename_node"], [6, 2, 1, "", "reorder_traits"], [6, 2, 1, "", "set_study_config"], [6, 2, 1, "", "uninstall_links_debug_handler"], [6, 2, 1, "", "update_nodes_and_plugs_activation"], [6, 2, 1, "", "workflow_graph"], [6, 5, 1, "", "workflow_list"], [6, 2, 1, "", "workflow_ordered_nodes"], [6, 5, 1, "", "workflow_repr"]], "capsul.pipeline.pipeline_construction": [[6, 1, 1, "", "ConstructedPipeline"], [6, 1, 1, "", "PipelineConstructor"]], "capsul.pipeline.pipeline_construction.ConstructedPipeline": [[6, 2, 1, "", "pipeline_definition"]], "capsul.pipeline.pipeline_construction.PipelineConstructor": [[6, 2, 1, "", "add_custom_node"], [6, 2, 1, "", "add_iterative_process"], [6, 2, 1, "", "add_link"], [6, 2, 1, "", "add_optional_output_switch"], [6, 2, 1, "", "add_pipeline_step"], [6, 2, 1, "", "add_process"], [6, 2, 1, "", "add_processes_selection"], [6, 2, 1, "", "add_subpipeline_link"], [6, 2, 1, "", "add_switch"], [6, 2, 1, "", "call_process_method"], [6, 2, 1, "", "export_parameter"], [6, 2, 1, "", "set_documentation"], [6, 2, 1, "", "set_node_enabled"], [6, 2, 1, "", "set_node_position"], [6, 2, 1, "", "set_scene_scale_factor"]], "capsul.pipeline.pipeline_nodes": [[6, 1, 1, "", "Node"], [6, 1, 1, "", "OptionalOutputSwitch"], [6, 1, 1, "", "PipelineNode"], [6, 1, 1, "", "Plug"], [6, 1, 1, "", "ProcessNode"], [6, 1, 1, "", "Switch"]], "capsul.pipeline.pipeline_nodes.Node": [[6, 5, 1, "", "activated"], [6, 2, 1, "", "check_requirements"], [6, 2, 1, "", "cleanup"], [6, 2, 1, "id0", "connect"], [6, 2, 1, "", "disconnect"], [6, 5, 1, "", "enabled"], [6, 5, 1, "", "full_name"], [6, 2, 1, "", "get_connections_through"], [6, 2, 1, "", "get_missing_mandatory_parameters"], [6, 2, 1, "id3", "get_plug_value"], [6, 2, 1, "", "get_study_config"], [6, 2, 1, "id4", "get_trait"], [6, 2, 1, "", "is_job"], [6, 5, 1, "", "name"], [6, 2, 1, "", "remove_callback_from_plug"], [6, 2, 1, "", "requirements"], [6, 2, 1, "id5", "set_callback_on_plug"], [6, 2, 1, "id6", "set_plug_value"], [6, 2, 1, "", "set_study_config"]], "capsul.pipeline.pipeline_nodes.PipelineNode": [[6, 2, 1, "", "get_connections_through"]], "capsul.pipeline.pipeline_nodes.Plug": [[6, 5, 1, "", "activated"], [6, 5, 1, "", "enabled"], [6, 5, 1, "", "has_default_value"], [6, 5, 1, "", "links_from"], [6, 5, 1, "", "links_to"], [6, 5, 1, "", "optional"], [6, 5, 1, "", "output"]], "capsul.pipeline.pipeline_nodes.ProcessNode": [[6, 2, 1, "", "check_requirements"], [6, 2, 1, "id7", "get_plug_value"], [6, 2, 1, "", "get_study_config"], [6, 2, 1, "id8", "get_trait"], [6, 2, 1, "", "is_job"], [6, 2, 1, "", "is_parameter_protected"], [6, 5, 1, "", "process"], [6, 2, 1, "", "protect_parameter"], [6, 2, 1, "", "remove_callback_from_plug"], [6, 2, 1, "", "requirements"], [6, 2, 1, "id9", "set_callback_on_plug"], [6, 2, 1, "id10", "set_plug_value"], [6, 2, 1, "", "set_study_config"]], "capsul.pipeline.pipeline_nodes.Switch": [[6, 5, 1, "", "_outputs"], [6, 5, 1, "", "_switch_values"], [6, 2, 1, "", "connections"], [6, 2, 1, "", "get_connections_through"], [6, 2, 1, "", "is_job"]], "capsul.pipeline.pipeline_tools": [[6, 3, 1, "", "create_output_directories"], [6, 3, 1, "", "disable_runtime_steps_with_existing_outputs"], [6, 3, 1, "", "dot_graph_from_pipeline"], [6, 3, 1, "", "dot_graph_from_workflow"], [6, 3, 1, "", "dump_pipeline_state_as_dict"], [6, 3, 1, "", "find_node"], [6, 3, 1, "", "find_plug_connection_destinations"], [6, 3, 1, "", "find_plug_connection_sources"], [6, 3, 1, "", "get_output_directories"], [6, 3, 1, "", "is_node_enabled"], [6, 3, 1, "", "load_pipeline_parameters"], [6, 3, 1, "", "nodes_with_existing_outputs"], [6, 3, 1, "", "nodes_with_missing_inputs"], [6, 3, 1, "", "pipeline_link_color"], [6, 3, 1, "", "pipeline_node_colors"], [6, 3, 1, "", "save_dot_graph"], [6, 3, 1, "", "save_dot_image"], [6, 3, 1, "", "save_pipeline"], [6, 3, 1, "", "save_pipeline_parameters"], [6, 3, 1, "", "set_pipeline_state_from_dict"], [6, 3, 1, "", "where_is_plug_value_from"], [6, 3, 1, "", "write_fake_pipeline"], [6, 3, 1, "", "write_fake_process"]], "capsul.pipeline.pipeline_workflow": [[6, 1, 1, "", "TempFile"], [6, 3, 1, "", "workflow_from_pipeline"], [6, 3, 1, "", "workflow_run"]], "capsul.pipeline.process_iteration": [[6, 1, 1, "", "ProcessIteration"]], "capsul.pipeline.process_iteration.ProcessIteration": [[6, 2, 1, "", "change_iterative_plug"], [6, 2, 1, "", "set_study_config"]], "capsul.pipeline.python_export": [[6, 3, 1, "", "save_py_pipeline"]], "capsul.pipeline.topological_sort": [[6, 1, 1, "", "Graph"], [6, 1, 1, "", "GraphNode"]], "capsul.pipeline.topological_sort.Graph": [[6, 5, 1, "", "_links"], [6, 5, 1, "", "_nodes"], [6, 2, 1, "id18", "add_link"], [6, 2, 1, "id19", "add_node"], [6, 2, 1, "id20", "find_node"], [6, 2, 1, "id21", "topological_sort"]], "capsul.pipeline.topological_sort.GraphNode": [[6, 2, 1, "id22", "add_link_from"], [6, 2, 1, "id23", "add_link_to"], [6, 5, 1, "", "links_from"], [6, 5, 1, "", "links_from_degree"], [6, 5, 1, "", "links_to"], [6, 5, 1, "", "links_to_degree"], [6, 5, 1, "", "meta"], [6, 5, 1, "", "name"], [6, 2, 1, "id24", "remove_link_from"], [6, 2, 1, "id25", "remove_link_to"]], "capsul.pipeline.xml": [[6, 3, 1, "", "create_xml_pipeline"], [6, 3, 1, "", "save_xml_pipeline"]], "capsul.process": [[8, 0, 0, "-", "nipype_process"], [8, 0, 0, "-", "process"], [8, 0, 0, "-", "runprocess"], [8, 0, 0, "-", "xml"]], "capsul.process.nipype_process": [[8, 3, 1, "", "nipype_factory"]], "capsul.process.process": [[8, 1, 1, "", "FileCopyProcess"], [8, 1, 1, "", "InteractiveProcess"], [8, 1, 1, "", "NipypeProcess"], [8, 1, 1, "", "Process"], [8, 1, 1, "", "ProcessMeta"], [8, 1, 1, "", "ProcessResult"]], "capsul.process.process.FileCopyProcess": [[8, 2, 1, "", "__call__"], [8, 2, 1, "", "_copy_input_files"], [8, 2, 1, "", "_get_process_arguments"], [8, 2, 1, "", "_update_input_traits"], [8, 5, 1, "", "copied_files"], [8, 5, 1, "", "copied_inputs"]], "capsul.process.process.NipypeProcess": [[8, 5, 1, "", "_nipype_class"], [8, 5, 1, "", "_nipype_interface"], [8, 5, 1, "", "_nipype_interface_name"], [8, 5, 1, "", "_nipype_module"], [8, 2, 1, "", "help"], [8, 2, 1, "", "requirements"], [8, 2, 1, "", "set_output_directory"], [8, 2, 1, "", "set_usedefault"]], "capsul.process.process.Process": [[8, 2, 1, "", "add_trait"], [8, 2, 1, "", "check_requirements"], [8, 2, 1, "", "get_commandline"], [8, 2, 1, "", "get_help"], [8, 2, 1, "", "get_input_help"], [8, 2, 1, "", "get_input_spec"], [8, 2, 1, "", "get_inputs"], [8, 2, 1, "", "get_log"], [8, 2, 1, "", "get_missing_mandatory_parameters"], [8, 2, 1, "", "get_output_help"], [8, 2, 1, "", "get_output_spec"], [8, 2, 1, "", "get_outputs"], [8, 2, 1, "", "get_parameter"], [8, 2, 1, "", "get_study_config"], [8, 2, 1, "", "help"], [8, 5, 1, "", "id"], [8, 5, 1, "", "log_file"], [8, 2, 1, "", "make_commandline_argument"], [8, 5, 1, "", "name"], [8, 2, 1, "", "params_to_command"], [8, 2, 1, "", "requirements"], [8, 2, 1, "", "run"], [8, 2, 1, "", "run_from_commandline"], [8, 2, 1, "", "save_log"], [8, 2, 1, "", "set_parameter"], [8, 2, 1, "", "set_study_config"]], "capsul.process.process.ProcessMeta": [[8, 2, 1, "", "complement_doc"]], "capsul.process.runprocess": [[8, 4, 1, "", "ProcessParamError"], [8, 3, 1, "", "get_process_with_params"], [8, 3, 1, "", "main"], [8, 3, 1, "", "run_process_with_distribution"], [8, 3, 1, "", "set_process_param_from_str"]], "capsul.process.xml": [[8, 1, 1, "", "XMLProcess"], [8, 3, 1, "", "create_xml_process"], [8, 3, 1, "", "string_to_value"], [8, 3, 1, "", "trait_from_xml"], [8, 3, 1, "", "xml_process"]], "capsul.qt_apps": [[9, 0, 0, "-", "utils"]], "capsul.qt_apps.utils": [[9, 0, 0, "-", "application"], [9, 0, 0, "-", "fill_treectrl"], [9, 0, 0, "-", "find_pipelines"], [9, 0, 0, "-", "window"]], "capsul.qt_apps.utils.application": [[9, 1, 1, "", "Application"], [9, 1, 1, "", "EmittingStream"]], "capsul.qt_apps.utils.fill_treectrl": [[9, 3, 1, "", "add_tree_nodes"], [9, 3, 1, "", "fill_treectrl"], [9, 3, 1, "", "search_in_menu"]], "capsul.qt_apps.utils.find_pipelines": [[9, 3, 1, "", "find_pipeline_and_process"], [9, 3, 1, "", "find_pipelines_from_description"], [9, 3, 1, "", "lists2dict"]], "capsul.qt_apps.utils.window": [[9, 1, 1, "", "MyQUiLoader"]], "capsul.qt_gui": [[10, 0, 0, "-", "board_widget"], [10, 0, 0, "-", "widgets"]], "capsul.qt_gui.board_widget": [[10, 1, 1, "", "BoardWidget"]], "capsul.qt_gui.board_widget.BoardWidget": [[10, 2, 1, "", "browse_node"], [10, 2, 1, "", "create_board_tree"], [10, 2, 1, "", "create_output_widget"], [10, 2, 1, "", "create_viewer_tree"]], "capsul.qt_gui.widgets": [[10, 0, 0, "-", "activation_inspector"], [10, 0, 0, "-", "attributed_process_widget"], [10, 0, 0, "-", "links_debugger"], [10, 0, 0, "-", "pipeline_developer_view"], [10, 0, 0, "-", "pipeline_file_warning_widget"], [10, 0, 0, "-", "pipeline_user_view"], [10, 0, 0, "-", "viewer_widget"]], "capsul.qt_gui.widgets.activation_inspector": [[10, 1, 1, "", "ActivationInspector"], [10, 1, 1, "", "ActivationInspectorApp"]], "capsul.qt_gui.widgets.activation_inspector.ActivationInspector": [[10, 2, 1, "", "add_controls_to_ui"], [10, 2, 1, "", "find_next"], [10, 2, 1, "", "find_previous"], [10, 2, 1, "", "refresh_activation_from_record"], [10, 2, 1, "", "set_filter_pattern"], [10, 2, 1, "", "show"], [10, 2, 1, "", "update_pipeline_activation"]], "capsul.qt_gui.widgets.activation_inspector.ActivationInspectorApp": [[10, 2, 1, "", "init_window"]], "capsul.qt_gui.widgets.attributed_process_widget": [[10, 1, 1, "", "AttributedProcessWidget"]], "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget": [[10, 2, 1, "", "on_btn_load_json"], [10, 2, 1, "", "on_btn_save_json"], [10, 2, 1, "", "on_input_filename_changed"], [10, 2, 1, "", "on_show_completion"], [10, 2, 1, "", "on_use_fom_change"], [10, 2, 1, "", "set_use_fom"], [10, 2, 1, "", "show_completion"]], "capsul.qt_gui.widgets.links_debugger": [[10, 1, 1, "", "CapsulLinkDebuggerView"]], "capsul.qt_gui.widgets.links_debugger.CapsulLinkDebuggerView": [[10, 2, 1, "", "show"]], "capsul.qt_gui.widgets.pipeline_developer_view": [[10, 1, 1, "", "EmbeddedSubPipelineItem"], [10, 1, 1, "", "HandleItem"], [10, 1, 1, "", "Link"], [10, 1, 1, "", "NodeGWidget"], [10, 1, 1, "", "PipelineDeveloperView"], [10, 1, 1, "", "PipelineScene"], [10, 1, 1, "", "Plug"], [10, 1, 1, "", "boxItem"]], "capsul.qt_gui.widgets.pipeline_developer_view.HandleItem": [[10, 2, 1, "", "itemChange"], [10, 2, 1, "", "mouseReleaseEvent"]], "capsul.qt_gui.widgets.pipeline_developer_view.Link": [[10, 2, 1, "", "focusInEvent"], [10, 2, 1, "", "focusOutEvent"], [10, 2, 1, "", "keyPressEvent"], [10, 2, 1, "", "mousePressEvent"], [10, 2, 1, "", "update"]], "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget": [[10, 2, 1, "", "boundingRect"], [10, 2, 1, "", "keyPressEvent"], [10, 2, 1, "", "mouseDoubleClickEvent"], [10, 2, 1, "", "mousePressEvent"], [10, 2, 1, "", "paint"], [10, 2, 1, "", "update_labels"]], "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView": [[10, 1, 1, "", "IterativeProcessInput"], [10, 1, 1, "", "ProcessModuleInput"], [10, 1, 1, "", "ProcessNameEdit"], [10, 2, 1, "", "__init__"], [10, 2, 1, "id0", "add_embedded_subpipeline"], [10, 2, 1, "", "add_iterative_process"], [10, 2, 1, "", "add_node"], [10, 2, 1, "", "add_optional_output_switch"], [10, 2, 1, "", "add_process"], [10, 2, 1, "", "add_switch"], [10, 2, 1, "id5", "auto_dot_node_positions"], [10, 2, 1, "", "check_files"], [10, 5, 1, "id6", "colored_parameters"], [10, 2, 1, "", "disable_done_steps"], [10, 2, 1, "", "disable_following_steps"], [10, 2, 1, "", "disable_preceding_steps"], [10, 2, 1, "", "dragEnterEvent"], [10, 2, 1, "", "dragMoveEvent"], [10, 2, 1, "", "dropEvent"], [10, 2, 1, "", "drop_process"], [10, 5, 1, "", "edit_sub_pipeline"], [10, 2, 1, "", "edition_enabled"], [10, 2, 1, "", "enableNode"], [10, 2, 1, "", "enable_all_steps"], [10, 2, 1, "", "enable_following_steps"], [10, 2, 1, "", "enable_preceding_steps"], [10, 2, 1, "", "enable_step"], [10, 2, 1, "", "ensure_pipeline"], [10, 5, 1, "", "export_to_db_scans"], [10, 2, 1, "id7", "is_logical_view"], [10, 2, 1, "", "is_restricted_edition_mode"], [10, 5, 1, "id8", "link_right_clicked"], [10, 2, 1, "", "load_pipeline_parameters"], [10, 2, 1, "", "mouseMoveEvent"], [10, 2, 1, "", "mousePressEvent"], [10, 2, 1, "", "mouseReleaseEvent"], [10, 5, 1, "id9", "node_clicked"], [10, 5, 1, "id10", "node_clicked_ctrl"], [10, 5, 1, "id11", "node_right_clicked"], [10, 2, 1, "id12", "onLoadSubPipelineClicked"], [10, 2, 1, "id13", "onOpenProcessController"], [10, 2, 1, "", "openProcessController"], [10, 2, 1, "", "open_background_menu"], [10, 5, 1, "", "open_filter"], [10, 2, 1, "", "open_node_menu"], [10, 5, 1, "id14", "plug_clicked"], [10, 5, 1, "id15", "plug_right_clicked"], [10, 5, 1, "", "process_clicked"], [10, 2, 1, "", "release_pipeline"], [10, 2, 1, "id16", "reset_initial_nodes_positions"], [10, 2, 1, "id17", "save_dot_image_ui"], [10, 2, 1, "", "save_pipeline"], [10, 2, 1, "", "save_pipeline_parameters"], [10, 5, 1, "id18", "scene"], [10, 2, 1, "", "set_enable_edition"], [10, 2, 1, "id19", "set_logical_view"], [10, 2, 1, "id20", "set_pipeline"], [10, 2, 1, "", "set_restricted_edition_mode"], [10, 2, 1, "", "set_switch_value"], [10, 2, 1, "", "show_optional_inputs"], [10, 2, 1, "", "show_optional_outputs"], [10, 5, 1, "id21", "subpipeline_clicked"], [10, 5, 1, "", "switch_clicked"], [10, 2, 1, "", "wheelEvent"], [10, 2, 1, "id22", "window"], [10, 2, 1, "id23", "zoom_in"], [10, 2, 1, "id24", "zoom_out"]], "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene": [[10, 2, 1, "", "helpEvent"], [10, 2, 1, "", "keyPressEvent"], [10, 2, 1, "", "link_tooltip_text"], [10, 2, 1, "", "plug_tooltip_text"]], "capsul.qt_gui.widgets.pipeline_developer_view.Plug": [[10, 2, 1, "", "mousePressEvent"]], "capsul.qt_gui.widgets.pipeline_developer_view.boxItem": [[10, 2, 1, "", "focusInEvent"], [10, 2, 1, "", "focusOutEvent"], [10, 2, 1, "", "keyPressEvent"]], "capsul.qt_gui.widgets.pipeline_file_warning_widget": [[10, 1, 1, "", "PipelineFileWarningWidget"]], "capsul.qt_gui.widgets.pipeline_user_view": [[10, 1, 1, "", "PipelineUserView"]], "capsul.qt_gui.widgets.pipeline_user_view.PipelineUserView": [[10, 2, 1, "", "update"]], "capsul.qt_gui.widgets.viewer_widget": [[10, 1, 1, "", "ViewerWidget"]], "capsul.qt_gui.widgets.viewer_widget.ViewerWidget": [[10, 2, 1, "", "onCreateViewerClicked"]], "capsul.sphinxext": [[11, 0, 0, "-", "layoutdocgen"], [11, 0, 0, "-", "load_pilots"], [11, 0, 0, "-", "pipelinedocgen"], [11, 0, 0, "-", "usecasesdocgen"]], "capsul.sphinxext.layoutdocgen": [[11, 1, 1, "", "LayoutHelperWriter"]], "capsul.sphinxext.layoutdocgen.LayoutHelperWriter": [[11, 2, 1, "", "generate_index_entry"], [11, 2, 1, "", "rst2html"], [11, 2, 1, "", "title_for"], [11, 2, 1, "", "write_index"], [11, 2, 1, "", "write_installation"], [11, 2, 1, "", "write_layout"]], "capsul.sphinxext.load_pilots": [[11, 3, 1, "", "load_pilots"]], "capsul.sphinxext.pipelinedocgen": [[11, 1, 1, "", "PipelineHelpWriter"]], "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter": [[11, 2, 1, "", "generate_api_doc"], [11, 2, 1, "", "get_short_name"], [11, 2, 1, "", "write_api_docs"], [11, 2, 1, "", "write_index"], [11, 2, 1, "", "write_main_index"]], "capsul.sphinxext.usecasesdocgen": [[11, 1, 1, "", "UseCasesHelperWriter"]], "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter": [[11, 2, 1, "", "generate_usecases_doc"], [11, 2, 1, "", "getsource"], [11, 2, 1, "", "write_index"], [11, 2, 1, "", "write_usecases_docs"]], "capsul.study_config": [[12, 0, 0, "-", "config_modules"], [12, 0, 0, "-", "config_utils"], [12, 0, 0, "-", "memory"], [12, 0, 0, "-", "process_instance"], [12, 0, 0, "-", "run"], [12, 0, 0, "-", "study_config"]], "capsul.study_config.config_modules": [[12, 0, 0, "-", "attributes_config"], [12, 0, 0, "-", "brainvisa_config"], [12, 0, 0, "-", "fom_config"], [12, 0, 0, "-", "freesurfer_config"], [12, 0, 0, "-", "fsl_config"], [12, 0, 0, "-", "matlab_config"], [12, 0, 0, "-", "nipype_config"], [12, 0, 0, "-", "smartcaching_config"], [12, 0, 0, "-", "somaworkflow_config"], [12, 0, 0, "-", "spm_config"]], "capsul.study_config.config_modules.attributes_config": [[12, 1, 1, "", "AttributesConfig"]], "capsul.study_config.config_modules.attributes_config.AttributesConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.brainvisa_config": [[12, 1, 1, "", "BrainVISAConfig"]], "capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.fom_config": [[12, 1, 1, "", "FomConfig"]], "capsul.study_config.config_modules.fom_config.FomConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.freesurfer_config": [[12, 1, 1, "", "FreeSurferConfig"]], "capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.fsl_config": [[12, 1, 1, "", "FSLConfig"]], "capsul.study_config.config_modules.fsl_config.FSLConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.matlab_config": [[12, 1, 1, "", "MatlabConfig"]], "capsul.study_config.config_modules.matlab_config.MatlabConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.nipype_config": [[12, 1, 1, "", "NipypeConfig"]], "capsul.study_config.config_modules.nipype_config.NipypeConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_modules.smartcaching_config": [[12, 1, 1, "", "SmartCachingConfig"]], "capsul.study_config.config_modules.somaworkflow_config": [[12, 1, 1, "", "ResourceController"], [12, 1, 1, "", "SomaWorkflowConfig"]], "capsul.study_config.config_modules.somaworkflow_config.ResourceController": [[12, 5, 1, "", "path_translations"], [12, 5, 1, "", "queue"], [12, 5, 1, "", "transfer_paths"]], "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig": [[12, 2, 1, "id23", "connect_resource"], [12, 2, 1, "id24", "disconnect_resource"], [12, 2, 1, "id25", "get_resource_id"], [12, 2, 1, "id26", "get_workflow_controller"], [12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "id27", "set_computing_resource_password"], [12, 5, 1, "", "somaworkflow_computing_resource"], [12, 5, 1, "", "somaworkflow_computing_resources_config"], [12, 5, 1, "", "somaworkflow_config_file"], [12, 5, 1, "", "somaworkflow_keep_failed_workflows"], [12, 5, 1, "", "somaworkflow_keep_succeeded_workflows"], [12, 5, 1, "", "use_soma_workflow"]], "capsul.study_config.config_modules.spm_config": [[12, 1, 1, "", "SPMConfig"]], "capsul.study_config.config_modules.spm_config.SPMConfig": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"]], "capsul.study_config.config_utils": [[12, 3, 1, "", "environment"]], "capsul.study_config.memory": [[12, 1, 1, "", "CapsulResultDecoder"], [12, 1, 1, "", "CapsulResultEncoder"], [12, 1, 1, "", "MemorizedProcess"], [12, 1, 1, "", "Memory"], [12, 1, 1, "", "UnMemorizedProcess"], [12, 3, 1, "", "file_fingerprint"], [12, 3, 1, "", "get_process_signature"], [12, 3, 1, "", "has_attribute"], [12, 3, 1, "", "tuple_json_encoder"]], "capsul.study_config.memory.CapsulResultEncoder": [[12, 2, 1, "", "default"]], "capsul.study_config.memory.Memory": [[12, 2, 1, "id0", "cache"], [12, 2, 1, "id2", "clear"]], "capsul.study_config.process_instance": [[12, 3, 1, "", "get_node_class"], [12, 3, 1, "", "get_node_instance"], [12, 3, 1, "", "get_process_instance"], [12, 3, 1, "", "is_pipeline_node"], [12, 3, 1, "", "is_process"]], "capsul.study_config.run": [[12, 3, 1, "", "run_process"]], "capsul.study_config.study_config": [[12, 1, 1, "", "StudyConfig"], [12, 1, 1, "", "StudyConfigModule"], [12, 3, 1, "", "default_study_config"]], "capsul.study_config.study_config.StudyConfig": [[12, 2, 1, "", "add_trait"], [12, 5, 1, "", "create_output_directories"], [12, 5, 1, "", "generate_logging"], [12, 2, 1, "", "get_configuration_dict"], [12, 2, 1, "", "get_iteration_pipeline"], [12, 2, 1, "", "get_process_instance"], [12, 2, 1, "id7", "get_trait"], [12, 2, 1, "id8", "get_trait_value"], [12, 2, 1, "", "initialize_modules"], [12, 5, 1, "", "input_directory"], [12, 2, 1, "", "load_module"], [12, 5, 1, "", "output_directory"], [12, 5, 1, "", "process_output_directory"], [12, 2, 1, "", "read_configuration"], [12, 2, 1, "id9", "reset_process_counter"], [12, 2, 1, "id10", "run"], [12, 2, 1, "", "save_configuration"], [12, 2, 1, "id11", "set_study_configuration"], [12, 2, 1, "id12", "set_trait_value"], [12, 2, 1, "id13", "update_study_configuration"]], "capsul.study_config.study_config.StudyConfigModule": [[12, 2, 1, "", "initialize_callbacks"], [12, 2, 1, "", "initialize_module"], [12, 6, 1, "", "name"]], "capsul.subprocess": [[13, 0, 0, "-", "fsl"], [13, 0, 0, "-", "spm"]], "capsul.subprocess.fsl": [[13, 1, 1, "", "Popen"], [13, 3, 1, "", "auto_configuration"], [13, 3, 1, "", "call"], [13, 3, 1, "", "check_call"], [13, 3, 1, "", "check_configuration_values"], [13, 3, 1, "", "check_fsl_configuration"], [13, 3, 1, "", "check_output"], [13, 3, 1, "", "fsl_command_with_environment"]], "capsul.subprocess.spm": [[13, 1, 1, "", "Popen"], [13, 3, 1, "", "auto_configuration"], [13, 3, 1, "", "call"], [13, 3, 1, "", "check_call"], [13, 3, 1, "", "check_configuration_values"], [13, 3, 1, "", "check_output"], [13, 3, 1, "", "check_spm_configuration"], [13, 3, 1, "", "find_spm"]], "capsul.utils": [[14, 0, 0, "-", "finder"], [14, 0, 0, "-", "version_utils"]], "capsul.utils.finder": [[14, 3, 1, "", "find_processes"]], "capsul.utils.version_utils": [[14, 3, 1, "", "get_nipype_interfaces_versions"], [14, 3, 1, "", "get_tool_version"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:exception", "5": "py:attribute", "6": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "exception", "Python exception"], "5": ["py", "attribute", "Python attribute"], "6": ["py", "property", "Python property"]}, "titleterms": {"capsul": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21], "api": [0, 4, 19, 22], "modul": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14], "class": [0, 1, 2, 4, 6, 8, 9, 10, 12, 13], "function": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 22], "attribut": [1, 2, 4, 20], "attributes_factori": 1, "submodul": [1, 2, 3, 6, 8, 9, 10, 12, 13], "attributesfactori": 1, "attributes_schema": 1, "attributesschema": 1, "editableattribut": 1, "processattribut": 1, "set_attribut": 1, "completion_engine_factori": 1, "builtinprocesscompletionenginefactori": 1, "completion_engine_iter": 1, "processcompletionengineiter": 1, "completion_engin": 1, "processcompletionengin": 1, "switchcompletionengin": 1, "pathcompletionengin": 1, "processcompletionenginefactori": 1, "pathcompletionenginefactori": 1, "fom_completion_engin": 1, "fomprocesscompletionengin": 1, "fompathcompletionengin": 1, "fomprocesscompletionengineiter": 1, "engin": [2, 4], "main": [2, 4, 8, 16], "capsulengin": 2, "database_factori": 2, "capsul_engin": 2, "activate_configur": 2, "database_json": 2, "database_populs": 2, "databas": 2, "axon": 2, "fom": [2, 19, 20], "fomconfig": [2, 12], "fsl": [2, 3, 4, 13], "matlab": 2, "python": [2, 19, 22], "spm": [2, 3, 4, 13], "run": [2, 4, 12, 21], "set": [2, 20, 22], "in_context": [3, 4], "program": 4, "document": [4, 15, 16, 21], "inherit": 4, "diagram": 4, "pipelin": [4, 6, 19, 21, 22], "definit": [4, 19], "node": [4, 6, 22], "type": [4, 22], "plug": [4, 6, 10], "process": [4, 8, 19, 20, 21, 22], "configur": 4, "execut": 4, "study_config": [4, 12], "studi": 4, "complet": [4, 20], "extern": 4, "softwar": 4, "subprocess": [4, 13], "workflow": 4, "convers": 4, "gui": [4, 22], "qt_gui": [4, 10], "widget": [4, 10], "viewer": 4, "graphic": [4, 20], "debug": 4, "tool": [4, 15], "list": 4, "pipeline_construct": 6, "pipelineconstructor": 6, "constructedpipelin": 6, "pipeline_nod": 6, "processnod": 6, "pipelinenod": 6, "switch": [6, 19, 22], "optionaloutputswitch": 6, "pipeline_tool": 6, "pipeline_node_color": 6, "pipeline_link_color": 6, "dot_graph_from_pipelin": 6, "dot_graph_from_workflow": 6, "save_dot_graph": 6, "save_dot_imag": 6, "disable_runtime_steps_with_existing_output": 6, "nodes_with_existing_output": 6, "nodes_with_missing_input": 6, "where_is_plug_value_from": 6, "dump_pipeline_state_as_dict": 6, "set_pipeline_state_from_dict": 6, "get_output_directori": 6, "create_output_directori": 6, "save_pipelin": 6, "load_pipeline_paramet": 6, "save_pipeline_paramet": 6, "is_node_en": 6, "pipeline_workflow": 6, "workflow_from_pipelin": 6, "workflow_run": 6, "process_iter": 6, "processiter": 6, "python_export": 6, "save_py_pipelin": 6, "topological_sort": 6, "graphnod": 6, "xml": [6, 8, 21, 22], "create_xml_pipelin": 6, "save_xml_pipelin": 6, "custom_nod": 6, "strcat_nod": 6, "strcatnod": 6, "strconv": 6, "strconvnod": 6, "cv_node": 6, "crossvalidationfoldnod": 6, "loo_nod": 6, "leaveoneoutnod": 6, "map_nod": 6, "mapnod": 6, "reduce_nod": 6, "reducenod": 6, "plugin": 7, "filecopyprocess": 8, "interactiveprocess": 8, "nipypeprocess": 8, "processmeta": 8, "processresult": 8, "nipype_process": 8, "nipype_factori": 8, "runprocess": 8, "processparamerror": 8, "set_process_param_from_str": 8, "get_process_with_param": 8, "run_process_with_distribut": 8, "convert_commandline_paramet": 8, "xmlprocess": 8, "string_to_valu": 8, "trait_from_xml": 8, "create_xml_process": 8, "decor": 8, "xml_process": 8, "qt_app": 9, "main_window": 9, "pipeline_viewer_app": 9, "util": [9, 14], "applic": 9, "emittingstream": 9, "fill_treectrl": 9, "add_tree_nod": 9, "search_in_menu": 9, "find_pipelin": 9, "find_pipelines_from_descript": 9, "find_pipeline_and_process": 9, "lists2dict": 9, "window": 9, "myquiload": 9, "board_widget": 10, "boardwidget": 10, "activation_inspector": 10, "activationinspectorapp": 10, "activationinspector": 10, "attributed_process_widget": 10, "attributedprocesswidget": 10, "links_debugg": 10, "capsullinkdebuggerview": 10, "pipeline_developer_view": 10, "colortyp": 10, "embeddedsubpipelineitem": 10, "boxitem": 10, "nodegwidget": 10, "handleitem": 10, "link": [10, 19, 22], "pipelinescen": 10, "pipelinedeveloperview": 10, "pipeline_file_warning_widget": 10, "pipelinefilewarningwidget": 10, "pipeline_user_view": 10, "pipelineuserview": 10, "viewer_widget": 10, "viewerwidget": 10, "sphinxext": 11, "command": 11, "config_util": 12, "environ": 12, "memori": 12, "unmemorizedprocess": 12, "memorizedprocess": 12, "capsulresultencod": 12, "get_process_signatur": 12, "has_attribut": 12, "file_fingerprint": 12, "process_inst": 12, "is_process": 12, "is_pipeline_nod": 12, "get_process_inst": 12, "get_node_class": 12, "get_node_inst": 12, "run_process": 12, "studyconfig": 12, "studyconfigmodul": 12, "default_study_config": 12, "config_modul": 12, "attributes_config": 12, "attributesconfig": 12, "brainvisa_config": 12, "brainvisaconfig": 12, "fom_config": 12, "freesurfer_config": 12, "freesurferconfig": 12, "fsl_config": 12, "fslconfig": 12, "matlab_config": 12, "matlabconfig": 12, "nipype_config": 12, "nipypeconfig": 12, "smartcaching_config": 12, "smartcachingconfig": 12, "somaworkflow_config": 12, "resourcecontrol": 12, "somaworkflowconfig": 12, "spm_config": 12, "spmconfig": 12, "popen": 13, "fsl_command_with_environ": 13, "check_fsl_configur": 13, "check_configuration_valu": 13, "auto_configur": 13, "call": 13, "check_cal": 13, "check_output": 13, "find_spm": 13, "check_spm_configur": 13, "spm_command": 13, "find_process": 14, "get_tool_vers": 14, "get_nipype_interfaces_vers": 14, "featur": 16, "technic": 16, "content": [16, 22], "licens": 16, "instal": 17, "brainvisa": 17, "without": 17, "prerequisit": 17, "system": [17, 20], "wide": 17, "user": [17, 21], "virtualenv": 17, "statu": 18, "chain": 19, "algorithm": 19, "enter": 19, "paramet": [19, 20, 22], "export": 19, "us": [19, 20], "iter": [19, 20], "over": [19, 20], "now": 19, "cleanup": 19, "file": [19, 20], "we": 19, "have": 19, "creat": 19, "model": 20, "interfac": 20, "defin": 20, "custom": 20, "path": 20, "build": 20, "from": 20, "declar": 20, "put": 20, "thing": 20, "togeth": 20, "organ": 20, "multipl": 20, "data": 20, "guid": 21, "tutori": 21, "commandlin": 21, "specif": [21, 22], "sphinx": 21, "advanc": 21, "usag": 21, "2": 22, "0": 22, "tabl": 22, "role": 22, "associ": 22, "between": 22, "an": 22, "string": 22, "exampl": 22, "The": 22, "doc": 22, "element": 22, "nipyp": 22, "input": 22, "output": 22, "optional_output_switch": 22, "processes_select": 22, "pipeline_step": 22, "step": 22, "valid": 22}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "nbsphinx": 4, "sphinx": 60}, "alltitles": {"capsul.api module": [[0, "capsul-api-module"]], "Classes": [[0, "classes"], [1, "classes"], [1, "id1"], [1, "id2"], [1, "id3"], [1, "id4"], [1, "id12"], [2, "classes"], [2, "id2"], [4, "classes"], [4, "id3"], [6, "classes"], [6, "id1"], [6, "id2"], [6, "id15"], [6, "id17"], [8, "classes"], [8, "id1"], [8, "id3"], [9, "classes"], [9, "module-capsul.qt_apps.utils.window"], [10, "classes"], [10, "id1"], [10, "id2"], [10, "id3"], [10, "id4"], [10, "id25"], [10, "id26"], [10, "id27"], [12, "classes"], [12, "id5"], [12, "id14"], [12, "id15"], [12, "id16"], [12, "id17"], [12, "id18"], [12, "id19"], [12, "id20"], [12, "id21"], [12, "id22"], [12, "id28"], [13, "classes"], [13, "module-capsul.subprocess.spm"]], "Functions": [[0, "functions"], [1, "functions"], [2, "functions"], [4, "functions"], [6, "functions"], [6, "id14"], [6, "id16"], [6, "id26"], [8, "functions"], [8, "id2"], [8, "id4"], [9, "functions"], [9, "module-capsul.qt_apps.utils.find_pipelines"], [12, "functions"], [12, "id1"], [12, "id3"], [12, "id4"], [12, "id6"], [13, "functions"], [13, "id3"], [14, "functions"], [14, "module-capsul.utils.version_utils"]], "capsul.attributes module": [[1, "capsul-attributes-module"]], "capsul.attributes.attributes_factory submodule": [[1, "capsul-attributes-attributes-factory-submodule"]], "AttributesFactory": [[1, "attributesfactory"]], "capsul.attributes.attributes_schema submodule": [[1, "capsul-attributes-attributes-schema-submodule"]], "AttributesSchema": [[1, "attributesschema"]], "EditableAttributes": [[1, "editableattributes"]], "ProcessAttributes": [[1, "processattributes"]], "set_attribute()": [[1, "set-attribute"]], "capsul.attributes.completion_engine_factory submodule": [[1, "capsul-attributes-completion-engine-factory-submodule"]], "BuiltinProcessCompletionEngineFactory": [[1, "builtinprocesscompletionenginefactory"]], "capsul.attributes.completion_engine_iteration submodule": [[1, "capsul-attributes-completion-engine-iteration-submodule"]], "ProcessCompletionEngineIteration": [[1, "processcompletionengineiteration"]], "capsul.attributes.completion_engine submodule": [[1, "capsul-attributes-completion-engine-submodule"]], "ProcessCompletionEngine": [[1, "processcompletionengine"]], "SwitchCompletionEngine": [[1, "switchcompletionengine"]], "PathCompletionEngine": [[1, "pathcompletionengine"]], "ProcessCompletionEngineFactory": [[1, "processcompletionenginefactory"]], "PathCompletionEngineFactory": [[1, "pathcompletionenginefactory"]], "capsul.attributes.fom_completion_engine submodule": [[1, "capsul-attributes-fom-completion-engine-submodule"]], "FomProcessCompletionEngine": [[1, "fomprocesscompletionengine"]], "FomPathCompletionEngine": [[1, "fompathcompletionengine"]], "FomProcessCompletionEngineIteration": [[1, "fomprocesscompletionengineiteration"]], "capsul.engine module": [[2, "capsul-engine-module"]], "Main module": [[2, "main-module"]], "CapsulEngine": [[2, "capsulengine"]], "database_factory()": [[2, "database-factory"]], "capsul_engine()": [[2, "capsul-engine"]], "activate_configuration()": [[2, "activate-configuration"]], "capsul.engine.database_json submodule": [[2, "capsul-engine-database-json-submodule"]], "capsul.engine.database_populse submodule": [[2, "capsul-engine-database-populse-submodule"]], "capsul.engine.database submodule": [[2, "capsul-engine-database-submodule"]], "capsul.engine.module submodule": [[2, "capsul-engine-module-submodule"]], "attributes": [[2, "attributes"]], "axon": [[2, "axon"]], "fom": [[2, "fom"]], "FomConfig": [[2, "fomconfig"], [12, "fomconfig"]], "fsl": [[2, "fsl"]], "matlab": [[2, "matlab"]], "python": [[2, "python"]], "spm": [[2, "spm"]], "capsul.engine.run submodule": [[2, "capsul-engine-run-submodule"]], "capsul.engine.settings submodule": [[2, "capsul-engine-settings-submodule"]], "capsul.in_context module": [[3, "capsul-in-context-module"]], "capsul.in_context.fsl submodule": [[3, "capsul-in-context-fsl-submodule"]], "capsul.in_context.spm submodule": [[3, "capsul-in-context-spm-submodule"]], "CAPSUL programming API documentation": [[4, "capsul-programming-api-documentation"]], "Classes inheritance diagram": [[4, "classes-inheritance-diagram"]], "Main classes and functions": [[4, "main-classes-and-functions"]], "capsul.pipeline: Pipeline": [[4, "capsul-pipeline-pipeline"]], "Pipeline Definition": [[4, "pipeline-definition"]], "Node Types": [[4, "node-types"]], "Plug": [[4, "plug"], [6, "plug"], [10, "plug"]], "capsul.process: Process": [[4, "capsul-process-process"]], "Configuration and execution": [[4, "configuration-and-execution"]], "capsul.engine: Configuration and execution": [[4, "capsul-engine-configuration-and-execution"]], "Classes:": [[4, "id1"]], "Functions:": [[4, "id2"]], "capsul.study_config: Study Configuration": [[4, "capsul-study-config-study-configuration"]], "Study Configuration:": [[4, "study-configuration"]], "Configuration Modules:": [[4, "configuration-modules"]], "capsul.attributes: Attributes and processes completion": [[4, "capsul-attributes-attributes-and-processes-completion"]], "Running external software": [[4, "running-external-software"]], "capsul.in_context": [[4, "capsul-in-context"]], "capsul.subprocess": [[4, "capsul-subprocess"]], "capsul.subprocess.fsl Classes:": [[4, "capsul-subprocess-fsl-classes"]], "capsul.subprocess.fsl Functions:": [[4, "capsul-subprocess-fsl-functions"]], "capsul.subprocess.spm Classes:": [[4, "capsul-subprocess-spm-classes"]], "capsul.subprocess.spm Functions:": [[4, "capsul-subprocess-spm-functions"]], "Workflow conversion": [[4, "workflow-conversion"]], "GUI": [[4, "gui"]], "capsul.qt_gui.widgets: Pipeline Viewers": [[4, "capsul-qt-gui-widgets-pipeline-viewers"]], "Graphical pipeline debugging tools": [[4, "graphical-pipeline-debugging-tools"]], "Complete modules list": [[4, "complete-modules-list"]], "capsul.pipeline module": [[6, "capsul-pipeline-module"]], "capsul.pipeline.pipeline submodule": [[6, "capsul-pipeline-pipeline-submodule"]], "Pipeline": [[6, "pipeline"]], "capsul.pipeline.pipeline_construction submodule": [[6, "capsul-pipeline-pipeline-construction-submodule"]], "PipelineConstructor": [[6, "pipelineconstructor"]], "ConstructedPipeline": [[6, "constructedpipeline"]], "capsul.pipeline.pipeline_nodes submodule": [[6, "capsul-pipeline-pipeline-nodes-submodule"]], "Node": [[6, "node"]], "ProcessNode": [[6, "processnode"]], "PipelineNode": [[6, "pipelinenode"]], "Switch": [[6, "switch"]], "OptionalOutputSwitch": [[6, "optionaloutputswitch"]], "capsul.pipeline.pipeline_tools submodule": [[6, "capsul-pipeline-pipeline-tools-submodule"]], "pipeline_node_colors()": [[6, "pipeline-node-colors"]], "pipeline_link_color()": [[6, "pipeline-link-color"]], "dot_graph_from_pipeline()": [[6, "dot-graph-from-pipeline"]], "dot_graph_from_workflow()": [[6, "dot-graph-from-workflow"]], "save_dot_graph()": [[6, "save-dot-graph"]], "save_dot_image()": [[6, "save-dot-image"]], "disable_runtime_steps_with_existing_outputs()": [[6, "disable-runtime-steps-with-existing-outputs"]], "nodes_with_existing_outputs()": [[6, "nodes-with-existing-outputs"]], "nodes_with_missing_inputs()": [[6, "nodes-with-missing-inputs"]], "where_is_plug_value_from()": [[6, "where-is-plug-value-from"]], "dump_pipeline_state_as_dict()": [[6, "dump-pipeline-state-as-dict"]], "set_pipeline_state_from_dict()": [[6, "set-pipeline-state-from-dict"]], "get_output_directories()": [[6, "get-output-directories"]], "create_output_directories()": [[6, "create-output-directories"]], "save_pipeline()": [[6, "save-pipeline"]], "load_pipeline_parameters()": [[6, "load-pipeline-parameters"]], "save_pipeline_parameters()": [[6, "save-pipeline-parameters"]], "is_node_enabled()": [[6, "is-node-enabled"]], "capsul.pipeline.pipeline_workflow submodule": [[6, "capsul-pipeline-pipeline-workflow-submodule"]], "workflow_from_pipeline()": [[6, "workflow-from-pipeline"]], "workflow_run()": [[6, "workflow-run"]], "capsul.pipeline.process_iteration submodule": [[6, "capsul-pipeline-process-iteration-submodule"]], "ProcessIteration": [[6, "processiteration"]], "capsul.pipeline.python_export submodule": [[6, "capsul-pipeline-python-export-submodule"]], "save_py_pipeline()": [[6, "save-py-pipeline"]], "capsul.pipeline.topological_sort submodule": [[6, "capsul-pipeline-topological-sort-submodule"]], "GraphNode": [[6, "graphnode"]], "capsul.pipeline.xml submodule": [[6, "capsul-pipeline-xml-submodule"]], "create_xml_pipeline()": [[6, "create-xml-pipeline"]], "save_xml_pipeline()": [[6, "save-xml-pipeline"]], "capsul.pipeline.custom_nodes submodule": [[6, "capsul-pipeline-custom-nodes-submodule"]], "capsul.pipeline.custom_nodes.strcat_node": [[6, "capsul-pipeline-custom-nodes-strcat-node"]], "StrCatNode": [[6, "strcatnode"]], "capsul.pipeline.custom_nodes.strconv": [[6, "capsul-pipeline-custom-nodes-strconv"]], "StrConvNode": [[6, "strconvnode"]], "capsul.pipeline.custom_nodes.cv_node": [[6, "capsul-pipeline-custom-nodes-cv-node"]], "CrossValidationFoldNode": [[6, "crossvalidationfoldnode"]], "capsul.pipeline.custom_nodes.loo_node": [[6, "capsul-pipeline-custom-nodes-loo-node"]], "LeaveOneOutNode": [[6, "leaveoneoutnode"]], "capsul.pipeline.custom_nodes.map_node": [[6, "capsul-pipeline-custom-nodes-map-node"]], "MapNode": [[6, "mapnode"]], "capsul.pipeline.custom_nodes.reduce_node": [[6, "capsul-pipeline-custom-nodes-reduce-node"]], "ReduceNode": [[6, "reducenode"]], "capsul.plugins module": [[7, "capsul-plugins-module"]], "capsul.process": [[8, "capsul-process"]], "capsul.process.process submodule": [[8, "capsul-process-process-submodule"]], "Process": [[8, "process"]], "FileCopyProcess": [[8, "filecopyprocess"]], "InteractiveProcess": [[8, "interactiveprocess"]], "NipypeProcess": [[8, "nipypeprocess"]], "ProcessMeta": [[8, "processmeta"]], "ProcessResult": [[8, "processresult"]], "capsul.process.nipype_process submodule": [[8, "capsul-process-nipype-process-submodule"]], "nipype_factory()": [[8, "nipype-factory"]], "capsul.process.runprocess submodule": [[8, "capsul-process-runprocess-submodule"]], "ProcessParamError": [[8, "processparamerror"]], "set_process_param_from_str()": [[8, "set-process-param-from-str"]], "get_process_with_params()": [[8, "get-process-with-params"]], "run_process_with_distribution()": [[8, "run-process-with-distribution"]], "convert_commandline_parameter()": [[8, "convert-commandline-parameter"]], "main()": [[8, "main"]], "capsul.process.xml submodule": [[8, "capsul-process-xml-submodule"]], "XMLProcess": [[8, "xmlprocess"]], "string_to_value()": [[8, "string-to-value"]], "trait_from_xml()": [[8, "trait-from-xml"]], "create_xml_process()": [[8, "create-xml-process"]], "Decorator": [[8, "decorator"]], "xml_process()": [[8, "xml-process"]], "capsul.qt_apps module": [[9, "capsul-qt-apps-module"]], "capsul.qt_apps.main_window submodule": [[9, "capsul-qt-apps-main-window-submodule"]], "capsul.qt_apps.pipeline_viewer_app submodule": [[9, "capsul-qt-apps-pipeline-viewer-app-submodule"]], "capsul.qt_apps.utils submodule": [[9, "capsul-qt-apps-utils-submodule"]], "capsul.qt_apps.utils.application submodule": [[9, "capsul-qt-apps-utils-application-submodule"]], "Application": [[9, "application"]], "EmittingStream": [[9, "emittingstream"]], "capsul.qt_apps.utils.fill_treectrl submodule": [[9, "capsul-qt-apps-utils-fill-treectrl-submodule"]], "fill_treectrl()": [[9, "fill-treectrl"]], "add_tree_nodes()": [[9, "add-tree-nodes"]], "search_in_menu()": [[9, "search-in-menu"]], "capsul.qt_apps.utils.find_pipelines submodule": [[9, "capsul-qt-apps-utils-find-pipelines-submodule"]], "find_pipelines_from_description()": [[9, "find-pipelines-from-description"]], "find_pipeline_and_process()": [[9, "find-pipeline-and-process"]], "lists2dict()": [[9, "lists2dict"]], "capsul.qt_apps.utils.window submodule": [[9, "capsul-qt-apps-utils-window-submodule"]], "MyQUiLoader": [[9, "myquiloader"]], "capsul.qt_gui module": [[10, "capsul-qt-gui-module"]], "capsul.qt_gui.board_widget submodule": [[10, "capsul-qt-gui-board-widget-submodule"]], "BoardWidget": [[10, "boardwidget"]], "capsul.qt_gui.widgets.activation_inspector submodule": [[10, "capsul-qt-gui-widgets-activation-inspector-submodule"]], "ActivationInspectorApp": [[10, "activationinspectorapp"]], "ActivationInspector": [[10, "activationinspector"]], "capsul.qt_gui.widgets.attributed_process_widget submodule": [[10, "capsul-qt-gui-widgets-attributed-process-widget-submodule"]], "AttributedProcessWidget": [[10, "attributedprocesswidget"]], "capsul.qt_gui.widgets.links_debugger submodule": [[10, "capsul-qt-gui-widgets-links-debugger-submodule"]], "CapsulLinkDebuggerView": [[10, "capsullinkdebuggerview"]], "capsul.qt_gui.widgets.pipeline_developer_view submodule": [[10, "capsul-qt-gui-widgets-pipeline-developer-view-submodule"]], "ColorType": [[10, "colortype"]], "EmbeddedSubPipelineItem": [[10, "embeddedsubpipelineitem"]], "boxItem": [[10, "boxitem"]], "NodeGWidget": [[10, "nodegwidget"]], "HandleItem": [[10, "handleitem"]], "Link": [[10, "link"]], "PipelineScene": [[10, "pipelinescene"]], "PipelineDeveloperView": [[10, "pipelinedeveloperview"]], "capsul.qt_gui.widgets.pipeline_file_warning_widget submodule": [[10, "capsul-qt-gui-widgets-pipeline-file-warning-widget-submodule"]], "PipelineFileWarningWidget": [[10, "pipelinefilewarningwidget"]], "capsul.qt_gui.widgets.pipeline_user_view submodule": [[10, "capsul-qt-gui-widgets-pipeline-user-view-submodule"]], "PipelineUserView": [[10, "pipelineuserview"]], "capsul.qt_gui.widgets.viewer_widget submodule": [[10, "capsul-qt-gui-widgets-viewer-widget-submodule"]], "ViewerWidget": [[10, "viewerwidget"]], "capsul.sphinxext module": [[11, "capsul-sphinxext-module"]], "Commands": [[11, "commands"]], "capsul.study_config module": [[12, "capsul-study-config-module"]], "capsul.study_config.config_utils submodule": [[12, "capsul-study-config-config-utils-submodule"]], "environment()": [[12, "environment"]], "capsul.study_config.memory submodule": [[12, "capsul-study-config-memory-submodule"]], "UnMemorizedProcess": [[12, "unmemorizedprocess"]], "MemorizedProcess": [[12, "memorizedprocess"]], "CapsulResultEncoder": [[12, "capsulresultencoder"]], "Memory": [[12, "memory"]], "get_process_signature()": [[12, "get-process-signature"]], "has_attribute()": [[12, "has-attribute"]], "file_fingerprint()": [[12, "file-fingerprint"]], "capsul.study_config.process_instance submodule": [[12, "capsul-study-config-process-instance-submodule"]], "is_process()": [[12, "is-process"]], "is_pipeline_node()": [[12, "is-pipeline-node"]], "get_process_instance()": [[12, "get-process-instance"]], "get_node_class()": [[12, "get-node-class"]], "get_node_instance()": [[12, "get-node-instance"]], "capsul.study_config.run submodule": [[12, "capsul-study-config-run-submodule"]], "run_process()": [[12, "run-process"]], "capsul.study_config.study_config submodule": [[12, "capsul-study-config-study-config-submodule"]], "StudyConfig": [[12, "studyconfig"]], "StudyConfigModule": [[12, "studyconfigmodule"]], "default_study_config()": [[12, "default-study-config"]], "capsul.study_config.config_modules submodule": [[12, "capsul-study-config-config-modules-submodule"]], "capsul.study_config.config_modules.attributes_config submodule": [[12, "capsul-study-config-config-modules-attributes-config-submodule"]], "AttributesConfig": [[12, "attributesconfig"]], "capsul.study_config.config_modules.brainvisa_config submodule": [[12, "capsul-study-config-config-modules-brainvisa-config-submodule"]], "BrainVISAConfig": [[12, "brainvisaconfig"]], "capsul.study_config.config_modules.fom_config submodule": [[12, "capsul-study-config-config-modules-fom-config-submodule"]], "capsul.study_config.config_modules.freesurfer_config submodule": [[12, "capsul-study-config-config-modules-freesurfer-config-submodule"]], "FreeSurferConfig": [[12, "freesurferconfig"]], "capsul.study_config.config_modules.fsl_config submodule": [[12, "capsul-study-config-config-modules-fsl-config-submodule"]], "FSLConfig": [[12, "fslconfig"]], "capsul.study_config.config_modules.matlab_config submodule": [[12, "capsul-study-config-config-modules-matlab-config-submodule"]], "MatlabConfig": [[12, "matlabconfig"]], "capsul.study_config.config_modules.nipype_config submodule": [[12, "capsul-study-config-config-modules-nipype-config-submodule"]], "NipypeConfig": [[12, "nipypeconfig"]], "capsul.study_config.config_modules.smartcaching_config submodule": [[12, "capsul-study-config-config-modules-smartcaching-config-submodule"]], "SmartCachingConfig": [[12, "smartcachingconfig"]], "capsul.study_config.config_modules.somaworkflow_config submodule": [[12, "capsul-study-config-config-modules-somaworkflow-config-submodule"]], "ResourceController": [[12, "resourcecontroller"]], "SomaWorkflowConfig": [[12, "somaworkflowconfig"]], "capsul.study_config.config_modules.spm_config submodule": [[12, "capsul-study-config-config-modules-spm-config-submodule"]], "SPMConfig": [[12, "spmconfig"]], "capsul.subprocess module": [[13, "capsul-subprocess-module"]], "capsul.subprocess.fsl submodule": [[13, "capsul-subprocess-fsl-submodule"]], "Popen": [[13, "popen"], [13, "id2"]], "fsl_command_with_environment()": [[13, "fsl-command-with-environment"]], "check_fsl_configuration()": [[13, "check-fsl-configuration"]], "check_configuration_values()": [[13, "check-configuration-values"], [13, "id4"]], "auto_configuration()": [[13, "auto-configuration"], [13, "id5"]], "call()": [[13, "call"], [13, "id6"]], "check_call()": [[13, "check-call"], [13, "id7"]], "check_output()": [[13, "check-output"], [13, "id8"]], "capsul.subprocess.spm submodule": [[13, "capsul-subprocess-spm-submodule"]], "find_spm()": [[13, "find-spm"]], "check_spm_configuration()": [[13, "check-spm-configuration"]], "spm_command()": [[13, "spm-command"]], "capsul.utils module": [[14, "capsul-utils-module"]], "find_processes()": [[14, "find-processes"]], "get_tool_version()": [[14, "get-tool-version"]], "get_nipype_interfaces_versions()": [[14, "get-nipype-interfaces-versions"]], "Documentation of the CAPSUL tools": [[15, "documentation-of-the-capsul-tools"]], "CAPSUL": [[16, "capsul"]], "Main features": [[16, "main-features"]], "Technical features": [[16, "technical-features"]], "Documentation contents": [[16, "documentation-contents"]], "License": [[16, "license"]], "CAPSUL installation": [[17, "capsul-installation"]], "Installing with BrainVISA": [[17, "installing-with-brainvisa"]], "Installing without BrainVISA": [[17, "installing-without-brainvisa"]], "Prerequisite": [[17, "prerequisite"]], "Install system-wide": [[17, "install-system-wide"]], "Install user-wide": [[17, "install-user-wide"]], "Install with virtualenv": [[17, "install-with-virtualenv"]], "CAPSUL status": [[18, "capsul-status"]], "CAPSUL: chain algorithms in pipelines": [[19, "CAPSUL:-chain-algorithms-in-pipelines"]], "Entering parameters": [[19, "Entering-parameters"]], "Links and exportations": [[19, "Links-and-exportations"]], "Switches": [[19, "Switches"]], "Using the Python API": [[19, "Using-the-Python-API"]], "Iteration over a process or pipeline": [[19, "Iteration-over-a-process-or-pipeline"]], "FOM definition": [[19, "FOM-definition"]], "Now Cleanup the files we have created\u2026": [[19, "Now-Cleanup-the-files-we-have-created..."]], "Parameters completion": [[20, "parameters-completion"]], "Completion model": [[20, "completion-model"]], "Using completion": [[20, "using-completion"]], "Graphical interface": [[20, "graphical-interface"]], "Defining a custom completion system": [[20, "defining-a-custom-completion-system"]], "Path building from attributes": [[20, "path-building-from-attributes"]], "Declaring attributes sets": [[20, "declaring-attributes-sets"]], "Declaring process and parameters attributes": [[20, "declaring-process-and-parameters-attributes"]], "Putting things together": [[20, "putting-things-together"]], "File Organization Model (FOM)": [[20, "file-organization-model-fom"]], "Using FOMs": [[20, "using-foms"]], "Defining FOMs": [[20, "defining-foms"]], "Iterating processing over multiple data": [[20, "iterating-processing-over-multiple-data"]], "User Guide": [[21, "user-guide"]], "Tutorial": [[21, "tutorial"]], "Running Capsul": [[21, "running-capsul"]], "Running as commandline": [[21, "running-as-commandline"]], "XML Specifications": [[21, "xml-specifications"]], "Documenting CAPSUL processes and pipelines with Sphinx": [[21, "documenting-capsul-processes-and-pipelines-with-sphinx"]], "Advanced usage": [[21, "advanced-usage"]], "XML 2.0 specification": [[22, "xml-2-0-specification"]], "Table of content": [[22, "table-of-content"]], "Processes": [[22, "processes"]], "Parameter types": [[22, "parameter-types"]], "Process roles": [[22, "process-roles"]], "Association between a Python function and an XML string": [[22, "association-between-a-python-function-and-an-xml-string"]], "Processes examples": [[22, "processes-examples"]], "Pipelines": [[22, "pipelines"]], "The element": [[22, "the-doc-element"]], "The element": [[22, "the-process-element"]], "": [[22, "set"]], "": [[22, "nipype"]], "The element": [[22, "the-switch-element"]], "": [[22, "input"], [22, "id1"]], "": [[22, "output"], [22, "id2"]], "The element": [[22, "the-optional-output-switch-element"]], "The element": [[22, "the-link-element"]], "The element": [[22, "the-processes-selection-element"]], "The element": [[22, "the-pipeline-steps-element"]], "": [[22, "step"]], "": [[22, "node"]], "The element": [[22, "the-gui-element"]], "Pipeline example": [[22, "pipeline-example"]], "API": [[22, "api"]], "XML validation": [[22, "xml-validation"]]}, "indexentries": {"capsul.api": [[0, "module-capsul.api"]], "module": [[0, "module-capsul.api"], [1, "module-capsul.attributes"], [1, "module-capsul.attributes.attributes_factory"], [1, "module-capsul.attributes.attributes_schema"], [1, "module-capsul.attributes.completion_engine"], [1, "module-capsul.attributes.completion_engine_factory"], [1, "module-capsul.attributes.completion_engine_iteration"], [1, "module-capsul.attributes.fom_completion_engine"], [2, "module-capsul.engine"], [2, "module-capsul.engine.database"], [2, "module-capsul.engine.database_json"], [2, "module-capsul.engine.database_populse"], [2, "module-capsul.engine.module"], [2, "module-capsul.engine.module.attributes"], [2, "module-capsul.engine.module.axon"], [2, "module-capsul.engine.module.fom"], [2, "module-capsul.engine.module.fsl"], [2, "module-capsul.engine.module.matlab"], [2, "module-capsul.engine.module.python"], [2, "module-capsul.engine.module.spm"], [2, "module-capsul.engine.run"], [2, "module-capsul.engine.settings"], [3, "module-capsul.in_context"], [3, "module-capsul.in_context.fsl"], [3, "module-capsul.in_context.spm"], [5, "module-capsul.info"], [6, "module-capsul.pipeline"], [6, "module-capsul.pipeline.custom_nodes"], [6, "module-capsul.pipeline.custom_nodes.cv_node"], [6, "module-capsul.pipeline.custom_nodes.loo_node"], [6, "module-capsul.pipeline.custom_nodes.map_node"], [6, "module-capsul.pipeline.custom_nodes.reduce_node"], [6, "module-capsul.pipeline.custom_nodes.strcat_node"], [6, "module-capsul.pipeline.custom_nodes.strconv"], [6, "module-capsul.pipeline.pipeline"], [6, "module-capsul.pipeline.pipeline_construction"], [6, "module-capsul.pipeline.pipeline_nodes"], [6, "module-capsul.pipeline.pipeline_tools"], [6, "module-capsul.pipeline.pipeline_workflow"], [6, "module-capsul.pipeline.process_iteration"], [6, "module-capsul.pipeline.python_export"], [6, "module-capsul.pipeline.topological_sort"], [6, "module-capsul.pipeline.xml"], [7, "module-capsul.plugins"], [8, "module-capsul.process"], [8, "module-capsul.process.nipype_process"], [8, "module-capsul.process.process"], [8, "module-capsul.process.runprocess"], [8, "module-capsul.process.xml"], [9, "module-capsul.qt_apps"], [9, "module-capsul.qt_apps.utils"], [9, "module-capsul.qt_apps.utils.application"], [9, "module-capsul.qt_apps.utils.fill_treectrl"], [9, "module-capsul.qt_apps.utils.find_pipelines"], [9, "module-capsul.qt_apps.utils.window"], [10, "module-capsul.qt_gui"], [10, "module-capsul.qt_gui.board_widget"], [10, "module-capsul.qt_gui.widgets"], [10, "module-capsul.qt_gui.widgets.activation_inspector"], [10, "module-capsul.qt_gui.widgets.attributed_process_widget"], [10, "module-capsul.qt_gui.widgets.links_debugger"], [10, "module-capsul.qt_gui.widgets.pipeline_developer_view"], [10, "module-capsul.qt_gui.widgets.pipeline_file_warning_widget"], [10, "module-capsul.qt_gui.widgets.pipeline_user_view"], [10, "module-capsul.qt_gui.widgets.viewer_widget"], [11, "module-capsul.sphinxext"], [11, "module-capsul.sphinxext.layoutdocgen"], [11, "module-capsul.sphinxext.load_pilots"], [11, "module-capsul.sphinxext.pipelinedocgen"], [11, "module-capsul.sphinxext.usecasesdocgen"], [12, "module-capsul.study_config"], [12, "module-capsul.study_config.config_modules"], [12, "module-capsul.study_config.config_modules.attributes_config"], [12, "module-capsul.study_config.config_modules.brainvisa_config"], [12, "module-capsul.study_config.config_modules.fom_config"], [12, "module-capsul.study_config.config_modules.freesurfer_config"], [12, "module-capsul.study_config.config_modules.fsl_config"], [12, "module-capsul.study_config.config_modules.matlab_config"], [12, "module-capsul.study_config.config_modules.nipype_config"], [12, "module-capsul.study_config.config_modules.smartcaching_config"], [12, "module-capsul.study_config.config_modules.somaworkflow_config"], [12, "module-capsul.study_config.config_modules.spm_config"], [12, "module-capsul.study_config.config_utils"], [12, "module-capsul.study_config.memory"], [12, "module-capsul.study_config.process_instance"], [12, "module-capsul.study_config.run"], [12, "module-capsul.study_config.study_config"], [13, "module-capsul.subprocess"], [13, "module-capsul.subprocess.fsl"], [13, "module-capsul.subprocess.spm"], [14, "module-capsul.utils"], [14, "module-capsul.utils.finder"], [14, "module-capsul.utils.version_utils"]], "attributesfactory (class in capsul.attributes.attributes_factory)": [[1, "capsul.attributes.attributes_factory.AttributesFactory"]], "attributesschema (class in capsul.attributes.attributes_schema)": [[1, "capsul.attributes.attributes_schema.AttributesSchema"]], "builtinprocesscompletionenginefactory (class in capsul.attributes.completion_engine_factory)": [[1, "capsul.attributes.completion_engine_factory.BuiltinProcessCompletionEngineFactory"]], "editableattributes (class in capsul.attributes.attributes_schema)": [[1, "capsul.attributes.attributes_schema.EditableAttributes"]], "fompathcompletionengine (class in capsul.attributes.fom_completion_engine)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine"]], "fomprocesscompletionengine (class in capsul.attributes.fom_completion_engine)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine"]], "fomprocesscompletionengineiteration (class in capsul.attributes.fom_completion_engine)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngineIteration"]], "pathcompletionengine (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.PathCompletionEngine"]], "pathcompletionenginefactory (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.PathCompletionEngineFactory"]], "processattributes (class in capsul.attributes.attributes_schema)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes"]], "processcompletionengine (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine"]], "processcompletionenginefactory (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngineFactory"]], "processcompletionengineiteration (class in capsul.attributes.completion_engine_iteration)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration"]], "switchcompletionengine (class in capsul.attributes.completion_engine)": [[1, "capsul.attributes.completion_engine.SwitchCompletionEngine"]], "allowed_extensions() (capsul.attributes.completion_engine.pathcompletionengine method)": [[1, "capsul.attributes.completion_engine.PathCompletionEngine.allowed_extensions"]], "allowed_extensions() (capsul.attributes.fom_completion_engine.fompathcompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine.allowed_extensions"]], "allowed_formats() (capsul.attributes.completion_engine.pathcompletionengine method)": [[1, "capsul.attributes.completion_engine.PathCompletionEngine.allowed_formats"]], "allowed_formats() (capsul.attributes.fom_completion_engine.fompathcompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine.allowed_formats"]], "attributes_changed() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.attributes_changed"]], "attributes_to_path() (capsul.attributes.completion_engine.pathcompletionengine method)": [[1, "capsul.attributes.completion_engine.PathCompletionEngine.attributes_to_path"]], "attributes_to_path() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.attributes_to_path"], [1, "id0"]], "attributes_to_path() (capsul.attributes.fom_completion_engine.fompathcompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine.attributes_to_path"]], "capsul.attributes": [[1, "module-capsul.attributes"]], "capsul.attributes.attributes_factory": [[1, "module-capsul.attributes.attributes_factory"]], "capsul.attributes.attributes_schema": [[1, "module-capsul.attributes.attributes_schema"]], "capsul.attributes.completion_engine": [[1, "module-capsul.attributes.completion_engine"]], "capsul.attributes.completion_engine_factory": [[1, "module-capsul.attributes.completion_engine_factory"]], "capsul.attributes.completion_engine_iteration": [[1, "module-capsul.attributes.completion_engine_iteration"]], "capsul.attributes.fom_completion_engine": [[1, "module-capsul.attributes.fom_completion_engine"]], "complete_iteration_step() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.complete_iteration_step"]], "complete_parameters() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.complete_parameters"], [1, "id5"]], "complete_parameters() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.complete_parameters"]], "copy() (capsul.attributes.attributes_schema.processattributes method)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes.copy"]], "copy_to_single() (capsul.attributes.attributes_schema.processattributes method)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes.copy_to_single"]], "create_attributes_with_fom() (capsul.attributes.fom_completion_engine.fomprocesscompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine.create_attributes_with_fom"], [1, "id13"]], "get_attribute_values() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.get_attribute_values"], [1, "id6"]], "get_attribute_values() (capsul.attributes.completion_engine.switchcompletionengine method)": [[1, "capsul.attributes.completion_engine.SwitchCompletionEngine.get_attribute_values"]], "get_attribute_values() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.get_attribute_values"]], "get_attribute_values() (capsul.attributes.fom_completion_engine.fomprocesscompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine.get_attribute_values"]], "get_completion_engine() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.get_completion_engine"]], "get_completion_engine() (capsul.attributes.completion_engine.processcompletionengine static method)": [[1, "id7"]], "get_completion_engine() (capsul.attributes.completion_engine.processcompletionenginefactory method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngineFactory.get_completion_engine"]], "get_completion_engine() (capsul.attributes.completion_engine_factory.builtinprocesscompletionenginefactory method)": [[1, "capsul.attributes.completion_engine_factory.BuiltinProcessCompletionEngineFactory.get_completion_engine"]], "get_induced_iterative_parameters() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.get_induced_iterative_parameters"]], "get_iterated_attributes() (capsul.attributes.completion_engine_iteration.processcompletionengineiteration method)": [[1, "capsul.attributes.completion_engine_iteration.ProcessCompletionEngineIteration.get_iterated_attributes"]], "get_iterated_attributes() (capsul.attributes.fom_completion_engine.fomprocesscompletionengineiteration method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngineIteration.get_iterated_attributes"]], "get_parameters_attributes() (capsul.attributes.attributes_schema.processattributes method)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes.get_parameters_attributes"]], "get_path_completion_engine() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.get_path_completion_engine"], [1, "id8"]], "get_path_completion_engine() (capsul.attributes.fom_completion_engine.fomprocesscompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine.get_path_completion_engine"]], "install_auto_completion() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.install_auto_completion"], [1, "id9"]], "install_switch_observer() (capsul.attributes.completion_engine.switchcompletionengine method)": [[1, "capsul.attributes.completion_engine.SwitchCompletionEngine.install_switch_observer"]], "nodes_selection_changed() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.nodes_selection_changed"]], "open_values_attributes() (capsul.attributes.fom_completion_engine.fompathcompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomPathCompletionEngine.open_values_attributes"]], "path_attributes() (capsul.attributes.fom_completion_engine.fomprocesscompletionengine method)": [[1, "capsul.attributes.fom_completion_engine.FomProcessCompletionEngine.path_attributes"]], "remove_attributes() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.remove_attributes"]], "remove_auto_completion() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.remove_auto_completion"], [1, "id10"]], "remove_switch_observer() (capsul.attributes.completion_engine.switchcompletionengine method)": [[1, "capsul.attributes.completion_engine.SwitchCompletionEngine.remove_switch_observer"]], "remove_switch_observers() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.remove_switch_observers"]], "set_attribute() (in module capsul.attributes.attributes_schema)": [[1, "capsul.attributes.attributes_schema.set_attribute"]], "set_parameter_attributes() (capsul.attributes.attributes_schema.processattributes method)": [[1, "capsul.attributes.attributes_schema.ProcessAttributes.set_parameter_attributes"]], "set_parameters() (capsul.attributes.completion_engine.processcompletionengine method)": [[1, "capsul.attributes.completion_engine.ProcessCompletionEngine.set_parameters"], [1, "id11"]], "capsulengine (class in capsul.engine)": [[2, "capsul.engine.CapsulEngine"]], "databaseengine (class in capsul.engine.database)": [[2, "capsul.engine.database.DatabaseEngine"]], "jsondbengine (class in capsul.engine.database_json)": [[2, "capsul.engine.database_json.JSONDBEngine"]], "populsedbengine (class in capsul.engine.database_populse)": [[2, "capsul.engine.database_populse.PopulseDBEngine"]], "settings (class in capsul.engine.settings)": [[2, "capsul.engine.settings.Settings"]], "settingssession (class in capsul.engine.settings)": [[2, "capsul.engine.settings.SettingsSession"]], "workflowexecutionerror": [[2, "capsul.engine.run.WorkflowExecutionError"]], "activate_configuration() (in module capsul.engine)": [[2, "capsul.engine.activate_configuration"]], "activate_configurations() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.activate_configurations"]], "activate_configurations() (in module capsul.engine.module.python)": [[2, "capsul.engine.module.python.activate_configurations"]], "activate_configurations() (in module capsul.engine.module.spm)": [[2, "capsul.engine.module.spm.activate_configurations"]], "activate_module() (in module capsul.engine)": [[2, "capsul.engine.activate_module"]], "capsul.engine": [[2, "module-capsul.engine"]], "capsul.engine.database": [[2, "module-capsul.engine.database"]], "capsul.engine.database_json": [[2, "module-capsul.engine.database_json"]], "capsul.engine.database_populse": [[2, "module-capsul.engine.database_populse"]], "capsul.engine.module": [[2, "module-capsul.engine.module"]], "capsul.engine.module.attributes": [[2, "module-capsul.engine.module.attributes"]], "capsul.engine.module.axon": [[2, "module-capsul.engine.module.axon"]], "capsul.engine.module.fom": [[2, "module-capsul.engine.module.fom"]], "capsul.engine.module.fsl": [[2, "module-capsul.engine.module.fsl"]], "capsul.engine.module.matlab": [[2, "module-capsul.engine.module.matlab"]], "capsul.engine.module.python": [[2, "module-capsul.engine.module.python"]], "capsul.engine.module.spm": [[2, "module-capsul.engine.module.spm"]], "capsul.engine.run": [[2, "module-capsul.engine.run"]], "capsul.engine.settings": [[2, "module-capsul.engine.settings"]], "capsul_engine() (in module capsul.engine)": [[2, "capsul.engine.capsul_engine"]], "check_configurations() (in module capsul.engine.module.axon)": [[2, "capsul.engine.module.axon.check_configurations"]], "check_configurations() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.check_configurations"]], "check_configurations() (in module capsul.engine.module.matlab)": [[2, "capsul.engine.module.matlab.check_configurations"]], "check_notably_invalid_config() (in module capsul.engine.module.axon)": [[2, "capsul.engine.module.axon.check_notably_invalid_config"]], "check_notably_invalid_config() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.check_notably_invalid_config"]], "check_notably_invalid_config() (in module capsul.engine.module.matlab)": [[2, "capsul.engine.module.matlab.check_notably_invalid_config"]], "check_notably_invalid_config() (in module capsul.engine.module.python)": [[2, "capsul.engine.module.python.check_notably_invalid_config"]], "check_notably_invalid_config() (in module capsul.engine.module.spm)": [[2, "capsul.engine.module.spm.check_notably_invalid_config"]], "check_path() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.check_path"]], "collection_name() (capsul.engine.settings.settingssession static method)": [[2, "capsul.engine.settings.SettingsSession.collection_name"]], "complete_configurations() (in module capsul.engine.module.axon)": [[2, "capsul.engine.module.axon.complete_configurations"]], "complete_configurations() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.complete_configurations"]], "config() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.config"]], "configs() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.configs"]], "connect() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.connect"]], "connected_to() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.connected_to"]], "database_factory() (in module capsul.engine)": [[2, "capsul.engine.database_factory"]], "detailed_information() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.detailed_information"]], "detailed_information() (in module capsul.engine.run)": [[2, "capsul.engine.run.detailed_information"]], "disconnect() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.disconnect"]], "dispose() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.dispose"]], "dispose() (in module capsul.engine.run)": [[2, "capsul.engine.run.dispose"]], "edition_widget() (in module capsul.engine.module.attributes)": [[2, "capsul.engine.module.attributes.edition_widget"]], "edition_widget() (in module capsul.engine.module.axon)": [[2, "capsul.engine.module.axon.edition_widget"]], "edition_widget() (in module capsul.engine.module.fom)": [[2, "capsul.engine.module.fom.edition_widget"]], "edition_widget() (in module capsul.engine.module.fsl)": [[2, "capsul.engine.module.fsl.edition_widget"]], "edition_widget() (in module capsul.engine.module.matlab)": [[2, "capsul.engine.module.matlab.edition_widget"]], "edition_widget() (in module capsul.engine.module.python)": [[2, "capsul.engine.module.python.edition_widget"]], "edition_widget() (in module capsul.engine.module.spm)": [[2, "capsul.engine.module.spm.edition_widget"]], "ensure_module_fields() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.ensure_module_fields"]], "executions() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.executions"]], "get_all_environments() (capsul.engine.settings.settings method)": [[2, "capsul.engine.settings.Settings.get_all_environments"]], "get_all_environments() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.get_all_environments"]], "get_iteration_pipeline() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.get_iteration_pipeline"]], "get_process_instance() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.get_process_instance"]], "import_configs() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.import_configs"]], "import_configs() (capsul.engine.settings.settings method)": [[2, "capsul.engine.settings.Settings.import_configs"]], "interrupt() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.interrupt"]], "interrupt() (in module capsul.engine.run)": [[2, "capsul.engine.run.interrupt"]], "json_value() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.json_value"]], "json_value() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.json_value"]], "json_value() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.json_value"]], "load_module() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.load_module"]], "load_modules() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.load_modules"]], "module_name() (capsul.engine.settings.settings static method)": [[2, "capsul.engine.settings.Settings.module_name"]], "named_directories() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.named_directories"]], "named_directories() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.named_directories"]], "named_directories() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.named_directories"]], "named_directory() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.named_directory"]], "named_directory() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.named_directory"]], "named_directory() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.named_directory"]], "new_config() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.new_config"]], "path_metadata() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.path_metadata"]], "path_metadata() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.path_metadata"]], "path_metadata() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.path_metadata"]], "raise_for_status() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.raise_for_status"]], "raise_for_status() (in module capsul.engine.run)": [[2, "capsul.engine.run.raise_for_status"]], "remove_config() (capsul.engine.settings.settingssession method)": [[2, "capsul.engine.settings.SettingsSession.remove_config"]], "select_configurations() (capsul.engine.settings.settings method)": [[2, "capsul.engine.settings.Settings.select_configurations"]], "set_json_value() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.set_json_value"]], "set_json_value() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.set_json_value"]], "set_json_value() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.set_json_value"]], "set_named_directory() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.set_named_directory"]], "set_named_directory() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.set_named_directory"]], "set_named_directory() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.set_named_directory"]], "set_path_metadata() (capsul.engine.database.databaseengine method)": [[2, "capsul.engine.database.DatabaseEngine.set_path_metadata"]], "set_path_metadata() (capsul.engine.database_json.jsondbengine method)": [[2, "capsul.engine.database_json.JSONDBEngine.set_path_metadata"]], "set_path_metadata() (capsul.engine.database_populse.populsedbengine method)": [[2, "capsul.engine.database_populse.PopulseDBEngine.set_path_metadata"]], "start() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.start"]], "start() (in module capsul.engine.run)": [[2, "capsul.engine.run.start"]], "status() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.status"]], "status() (in module capsul.engine.run)": [[2, "capsul.engine.run.status"]], "update_fom() (in module capsul.engine.module.fom)": [[2, "capsul.engine.module.fom.update_fom"]], "wait() (capsul.engine.capsulengine method)": [[2, "capsul.engine.CapsulEngine.wait"]], "wait() (in module capsul.engine.run)": [[2, "capsul.engine.run.wait"]], "fslpopen (class in capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.FslPopen"]], "spmpopen (class in capsul.in_context.spm)": [[3, "capsul.in_context.spm.SPMPopen"]], "capsul.in_context": [[3, "module-capsul.in_context"]], "capsul.in_context.fsl": [[3, "module-capsul.in_context.fsl"]], "capsul.in_context.spm": [[3, "module-capsul.in_context.spm"]], "fsl_call() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_call"]], "fsl_check_call() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_check_call"]], "fsl_check_output() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_check_output"]], "fsl_command_with_environment() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_command_with_environment"]], "fsl_env() (in module capsul.in_context.fsl)": [[3, "capsul.in_context.fsl.fsl_env"]], "spm_call() (in module capsul.in_context.spm)": [[3, "capsul.in_context.spm.spm_call"]], "spm_check_call() (in module capsul.in_context.spm)": [[3, "capsul.in_context.spm.spm_check_call"]], "spm_check_output() (in module capsul.in_context.spm)": [[3, "capsul.in_context.spm.spm_check_output"]], "capsul.info": [[5, "module-capsul.info"]], "constructedpipeline (class in capsul.pipeline.pipeline_construction)": [[6, "capsul.pipeline.pipeline_construction.ConstructedPipeline"]], "crossvalidationfoldnode (class in capsul.pipeline.custom_nodes.cv_node)": [[6, "capsul.pipeline.custom_nodes.cv_node.CrossValidationFoldNode"]], "graph (class in capsul.pipeline.topological_sort)": [[6, "capsul.pipeline.topological_sort.Graph"]], "graphnode (class in capsul.pipeline.topological_sort)": [[6, "capsul.pipeline.topological_sort.GraphNode"]], "leaveoneoutnode (class in capsul.pipeline.custom_nodes.loo_node)": [[6, "capsul.pipeline.custom_nodes.loo_node.LeaveOneOutNode"]], "mapnode (class in capsul.pipeline.custom_nodes.map_node)": [[6, "capsul.pipeline.custom_nodes.map_node.MapNode"]], "node (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.Node"]], "optionaloutputswitch (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.OptionalOutputSwitch"]], "pipeline (class in capsul.pipeline.pipeline)": [[6, "capsul.pipeline.pipeline.Pipeline"]], "pipelineconstructor (class in capsul.pipeline.pipeline_construction)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor"]], "pipelinenode (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.PipelineNode"]], "plug (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.Plug"]], "processiteration (class in capsul.pipeline.process_iteration)": [[6, "capsul.pipeline.process_iteration.ProcessIteration"]], "processnode (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode"]], "reducenode (class in capsul.pipeline.custom_nodes.reduce_node)": [[6, "capsul.pipeline.custom_nodes.reduce_node.ReduceNode"]], "strcatnode (class in capsul.pipeline.custom_nodes.strcat_node)": [[6, "capsul.pipeline.custom_nodes.strcat_node.StrCatNode"]], "strconvnode (class in capsul.pipeline.custom_nodes.strconv)": [[6, "capsul.pipeline.custom_nodes.strconv.StrConvNode"]], "switch (class in capsul.pipeline.pipeline_nodes)": [[6, "capsul.pipeline.pipeline_nodes.Switch"]], "tempfile (class in capsul.pipeline.pipeline_workflow)": [[6, "capsul.pipeline.pipeline_workflow.TempFile"]], "_links (capsul.pipeline.topological_sort.graph attribute)": [[6, "capsul.pipeline.topological_sort.Graph._links"]], "_nodes (capsul.pipeline.topological_sort.graph attribute)": [[6, "capsul.pipeline.topological_sort.Graph._nodes"]], "_outputs (capsul.pipeline.pipeline_nodes.switch attribute)": [[6, "capsul.pipeline.pipeline_nodes.Switch._outputs"]], "_switch_values (capsul.pipeline.pipeline_nodes.switch attribute)": [[6, "capsul.pipeline.pipeline_nodes.Switch._switch_values"]], "activated (capsul.pipeline.pipeline_nodes.node attribute)": [[6, "capsul.pipeline.pipeline_nodes.Node.activated"]], "activated (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.activated"]], "add_custom_node() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_custom_node"]], "add_custom_node() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_custom_node"]], "add_iterative_process() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_iterative_process"]], "add_iterative_process() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_iterative_process"]], "add_link() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_link"]], "add_link() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_link"]], "add_link() (capsul.pipeline.topological_sort.graph method)": [[6, "capsul.pipeline.topological_sort.Graph.add_link"], [6, "id18"]], "add_link_from() (capsul.pipeline.topological_sort.graphnode method)": [[6, "capsul.pipeline.topological_sort.GraphNode.add_link_from"], [6, "id22"]], "add_link_to() (capsul.pipeline.topological_sort.graphnode method)": [[6, "capsul.pipeline.topological_sort.GraphNode.add_link_to"], [6, "id23"]], "add_node() (capsul.pipeline.topological_sort.graph method)": [[6, "capsul.pipeline.topological_sort.Graph.add_node"], [6, "id19"]], "add_optional_output_switch() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_optional_output_switch"]], "add_optional_output_switch() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_optional_output_switch"]], "add_pipeline_step() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_pipeline_step"]], "add_pipeline_step() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_pipeline_step"]], "add_process() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_process"]], "add_process() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_process"]], "add_processes_selection() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_processes_selection"]], "add_processes_selection() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_processes_selection"]], "add_subpipeline_link() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_subpipeline_link"]], "add_switch() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_switch"]], "add_switch() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.add_switch"]], "add_trait() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.add_trait"]], "all_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.all_nodes"]], "autoexport_nodes_parameters() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.autoexport_nodes_parameters"]], "call_process_method() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.call_process_method"]], "call_process_method() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.call_process_method"]], "capsul.pipeline": [[6, "module-capsul.pipeline"]], "capsul.pipeline.custom_nodes": [[6, "module-capsul.pipeline.custom_nodes"]], "capsul.pipeline.custom_nodes.cv_node": [[6, "module-capsul.pipeline.custom_nodes.cv_node"]], "capsul.pipeline.custom_nodes.loo_node": [[6, "module-capsul.pipeline.custom_nodes.loo_node"]], "capsul.pipeline.custom_nodes.map_node": [[6, "module-capsul.pipeline.custom_nodes.map_node"]], "capsul.pipeline.custom_nodes.reduce_node": [[6, "module-capsul.pipeline.custom_nodes.reduce_node"]], "capsul.pipeline.custom_nodes.strcat_node": [[6, "module-capsul.pipeline.custom_nodes.strcat_node"]], "capsul.pipeline.custom_nodes.strconv": [[6, "module-capsul.pipeline.custom_nodes.strconv"]], "capsul.pipeline.pipeline": [[6, "module-capsul.pipeline.pipeline"]], "capsul.pipeline.pipeline_construction": [[6, "module-capsul.pipeline.pipeline_construction"]], "capsul.pipeline.pipeline_nodes": [[6, "module-capsul.pipeline.pipeline_nodes"]], "capsul.pipeline.pipeline_tools": [[6, "module-capsul.pipeline.pipeline_tools"]], "capsul.pipeline.pipeline_workflow": [[6, "module-capsul.pipeline.pipeline_workflow"]], "capsul.pipeline.process_iteration": [[6, "module-capsul.pipeline.process_iteration"]], "capsul.pipeline.python_export": [[6, "module-capsul.pipeline.python_export"]], "capsul.pipeline.topological_sort": [[6, "module-capsul.pipeline.topological_sort"]], "capsul.pipeline.xml": [[6, "module-capsul.pipeline.xml"]], "change_iterative_plug() (capsul.pipeline.process_iteration.processiteration method)": [[6, "capsul.pipeline.process_iteration.ProcessIteration.change_iterative_plug"]], "check_requirements() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.check_requirements"]], "check_requirements() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.check_requirements"]], "check_requirements() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.check_requirements"]], "cleanup() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.cleanup"]], "compare_to_state() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.compare_to_state"]], "connect() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.connect"], [6, "id0"]], "connections() (capsul.pipeline.pipeline_nodes.switch method)": [[6, "capsul.pipeline.pipeline_nodes.Switch.connections"]], "count_items() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.count_items"]], "create_output_directories() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.create_output_directories"]], "create_xml_pipeline() (in module capsul.pipeline.xml)": [[6, "capsul.pipeline.xml.create_xml_pipeline"]], "define_groups_as_steps() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.define_groups_as_steps"]], "define_pipeline_steps() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.define_pipeline_steps"]], "disable_runtime_steps_with_existing_outputs() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.disable_runtime_steps_with_existing_outputs"]], "disabled_pipeline_steps_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.disabled_pipeline_steps_nodes"]], "disconnect() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.disconnect"]], "dot_graph_from_pipeline() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.dot_graph_from_pipeline"]], "dot_graph_from_workflow() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.dot_graph_from_workflow"]], "dump_pipeline_state_as_dict() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.dump_pipeline_state_as_dict"]], "enable_all_pipeline_steps() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.enable_all_pipeline_steps"]], "enabled (capsul.pipeline.pipeline_nodes.node attribute)": [[6, "capsul.pipeline.pipeline_nodes.Node.enabled"]], "enabled (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.enabled"]], "export_parameter() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.export_parameter"]], "export_parameter() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.export_parameter"]], "find_empty_parameters() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.find_empty_parameters"]], "find_node() (capsul.pipeline.topological_sort.graph method)": [[6, "capsul.pipeline.topological_sort.Graph.find_node"], [6, "id20"]], "find_node() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.find_node"]], "find_plug_connection_destinations() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.find_plug_connection_destinations"]], "find_plug_connection_sources() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.find_plug_connection_sources"]], "full_name (capsul.pipeline.pipeline_nodes.node attribute)": [[6, "capsul.pipeline.pipeline_nodes.Node.full_name"]], "get_connections_through() (capsul.pipeline.custom_nodes.strconv.strconvnode method)": [[6, "capsul.pipeline.custom_nodes.strconv.StrConvNode.get_connections_through"]], "get_connections_through() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_connections_through"]], "get_connections_through() (capsul.pipeline.pipeline_nodes.pipelinenode method)": [[6, "capsul.pipeline.pipeline_nodes.PipelineNode.get_connections_through"]], "get_connections_through() (capsul.pipeline.pipeline_nodes.switch method)": [[6, "capsul.pipeline.pipeline_nodes.Switch.get_connections_through"]], "get_missing_mandatory_parameters() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_missing_mandatory_parameters"]], "get_output_directories() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.get_output_directories"]], "get_pipeline_step_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.get_pipeline_step_nodes"]], "get_plug_value() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_plug_value"], [6, "id3"]], "get_plug_value() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.get_plug_value"], [6, "id7"]], "get_processes_selection_groups() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.get_processes_selection_groups"]], "get_processes_selection_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.get_processes_selection_nodes"]], "get_processes_selections() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.get_processes_selections"]], "get_study_config() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_study_config"]], "get_study_config() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.get_study_config"]], "get_trait() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.get_trait"], [6, "id4"]], "get_trait() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.get_trait"], [6, "id8"]], "has_default_value (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.has_default_value"]], "install_links_debug_handler() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.install_links_debug_handler"]], "is_job() (capsul.pipeline.custom_nodes.strconv.strconvnode method)": [[6, "capsul.pipeline.custom_nodes.strconv.StrConvNode.is_job"]], "is_job() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.is_job"]], "is_job() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.is_job"]], "is_job() (capsul.pipeline.pipeline_nodes.switch method)": [[6, "capsul.pipeline.pipeline_nodes.Switch.is_job"]], "is_node_enabled() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.is_node_enabled"]], "is_parameter_protected() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.is_parameter_protected"]], "links_from (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.links_from"]], "links_from (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.links_from"]], "links_from_degree (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.links_from_degree"]], "links_to (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.links_to"]], "links_to (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.links_to"]], "links_to_degree (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.links_to_degree"]], "load_pipeline_parameters() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.load_pipeline_parameters"]], "meta (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.meta"]], "name (capsul.pipeline.pipeline_nodes.node attribute)": [[6, "capsul.pipeline.pipeline_nodes.Node.name"]], "name (capsul.pipeline.topological_sort.graphnode attribute)": [[6, "capsul.pipeline.topological_sort.GraphNode.name"]], "nodes (capsul.pipeline.pipeline.pipeline attribute)": [[6, "capsul.pipeline.pipeline.Pipeline.nodes"]], "nodes_with_existing_outputs() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.nodes_with_existing_outputs"]], "nodes_with_missing_inputs() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.nodes_with_missing_inputs"]], "optional (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.optional"]], "output (capsul.pipeline.pipeline_nodes.plug attribute)": [[6, "capsul.pipeline.pipeline_nodes.Plug.output"]], "parse_link() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.parse_link"]], "parse_parameter() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.parse_parameter"]], "pipeline_definition() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.pipeline_definition"]], "pipeline_definition() (capsul.pipeline.pipeline_construction.constructedpipeline method)": [[6, "capsul.pipeline.pipeline_construction.ConstructedPipeline.pipeline_definition"]], "pipeline_link_color() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.pipeline_link_color"]], "pipeline_node_colors() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.pipeline_node_colors"]], "pipeline_state() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.pipeline_state"]], "process (capsul.pipeline.pipeline_nodes.processnode attribute)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.process"]], "propagate_metadata() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.propagate_metadata"]], "protect_parameter() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.protect_parameter"]], "remove_callback_from_plug() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.remove_callback_from_plug"]], "remove_callback_from_plug() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.remove_callback_from_plug"]], "remove_link() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.remove_link"]], "remove_link_from() (capsul.pipeline.topological_sort.graphnode method)": [[6, "capsul.pipeline.topological_sort.GraphNode.remove_link_from"], [6, "id24"]], "remove_link_to() (capsul.pipeline.topological_sort.graphnode method)": [[6, "capsul.pipeline.topological_sort.GraphNode.remove_link_to"], [6, "id25"]], "remove_node() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.remove_node"]], "remove_pipeline_step() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.remove_pipeline_step"]], "remove_trait() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.remove_trait"]], "rename_node() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.rename_node"]], "reorder_traits() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.reorder_traits"]], "requirements() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.requirements"]], "requirements() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.requirements"]], "save_dot_graph() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.save_dot_graph"]], "save_dot_image() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.save_dot_image"]], "save_pipeline() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.save_pipeline"]], "save_pipeline_parameters() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.save_pipeline_parameters"]], "save_py_pipeline() (in module capsul.pipeline.python_export)": [[6, "capsul.pipeline.python_export.save_py_pipeline"]], "save_xml_pipeline() (in module capsul.pipeline.xml)": [[6, "capsul.pipeline.xml.save_xml_pipeline"]], "set_callback_on_plug() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.set_callback_on_plug"], [6, "id5"]], "set_callback_on_plug() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.set_callback_on_plug"], [6, "id9"]], "set_documentation() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.set_documentation"]], "set_node_enabled() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.set_node_enabled"]], "set_node_position() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.set_node_position"]], "set_pipeline_state_from_dict() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.set_pipeline_state_from_dict"]], "set_plug_value() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.set_plug_value"], [6, "id6"]], "set_plug_value() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.set_plug_value"], [6, "id10"]], "set_scene_scale_factor() (capsul.pipeline.pipeline_construction.pipelineconstructor method)": [[6, "capsul.pipeline.pipeline_construction.PipelineConstructor.set_scene_scale_factor"]], "set_study_config() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.set_study_config"]], "set_study_config() (capsul.pipeline.pipeline_nodes.node method)": [[6, "capsul.pipeline.pipeline_nodes.Node.set_study_config"]], "set_study_config() (capsul.pipeline.pipeline_nodes.processnode method)": [[6, "capsul.pipeline.pipeline_nodes.ProcessNode.set_study_config"]], "set_study_config() (capsul.pipeline.process_iteration.processiteration method)": [[6, "capsul.pipeline.process_iteration.ProcessIteration.set_study_config"]], "topological_sort() (capsul.pipeline.topological_sort.graph method)": [[6, "capsul.pipeline.topological_sort.Graph.topological_sort"], [6, "id21"]], "uninstall_links_debug_handler() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.uninstall_links_debug_handler"]], "update_nodes_and_plugs_activation() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.update_nodes_and_plugs_activation"]], "where_is_plug_value_from() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.where_is_plug_value_from"]], "workflow_from_pipeline() (in module capsul.pipeline.pipeline_workflow)": [[6, "capsul.pipeline.pipeline_workflow.workflow_from_pipeline"]], "workflow_graph() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.workflow_graph"]], "workflow_list (capsul.pipeline.pipeline.pipeline attribute)": [[6, "capsul.pipeline.pipeline.Pipeline.workflow_list"]], "workflow_ordered_nodes() (capsul.pipeline.pipeline.pipeline method)": [[6, "capsul.pipeline.pipeline.Pipeline.workflow_ordered_nodes"]], "workflow_repr (capsul.pipeline.pipeline.pipeline attribute)": [[6, "capsul.pipeline.pipeline.Pipeline.workflow_repr"]], "workflow_run() (in module capsul.pipeline.pipeline_workflow)": [[6, "capsul.pipeline.pipeline_workflow.workflow_run"]], "write_fake_pipeline() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.write_fake_pipeline"]], "write_fake_process() (in module capsul.pipeline.pipeline_tools)": [[6, "capsul.pipeline.pipeline_tools.write_fake_process"]], "capsul.plugins": [[7, "module-capsul.plugins"]], "filecopyprocess (class in capsul.process.process)": [[8, "capsul.process.process.FileCopyProcess"]], "interactiveprocess (class in capsul.process.process)": [[8, "capsul.process.process.InteractiveProcess"]], "nipypeprocess (class in capsul.process.process)": [[8, "capsul.process.process.NipypeProcess"]], "process (class in capsul.process.process)": [[8, "capsul.process.process.Process"]], "processmeta (class in capsul.process.process)": [[8, "capsul.process.process.ProcessMeta"]], "processparamerror": [[8, "capsul.process.runprocess.ProcessParamError"]], "processresult (class in capsul.process.process)": [[8, "capsul.process.process.ProcessResult"]], "xmlprocess (class in capsul.process.xml)": [[8, "capsul.process.xml.XMLProcess"]], "__call__() (capsul.process.process.filecopyprocess method)": [[8, "capsul.process.process.FileCopyProcess.__call__"]], "_copy_input_files() (capsul.process.process.filecopyprocess method)": [[8, "capsul.process.process.FileCopyProcess._copy_input_files"]], "_get_process_arguments() (capsul.process.process.filecopyprocess method)": [[8, "capsul.process.process.FileCopyProcess._get_process_arguments"]], "_nipype_class (capsul.process.process.nipypeprocess attribute)": [[8, "capsul.process.process.NipypeProcess._nipype_class"]], "_nipype_interface (capsul.process.process.nipypeprocess attribute)": [[8, "capsul.process.process.NipypeProcess._nipype_interface"]], "_nipype_interface_name (capsul.process.process.nipypeprocess attribute)": [[8, "capsul.process.process.NipypeProcess._nipype_interface_name"]], "_nipype_module (capsul.process.process.nipypeprocess attribute)": [[8, "capsul.process.process.NipypeProcess._nipype_module"]], "_update_input_traits() (capsul.process.process.filecopyprocess method)": [[8, "capsul.process.process.FileCopyProcess._update_input_traits"]], "add_trait() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.add_trait"]], "capsul.process": [[8, "module-capsul.process"]], "capsul.process.nipype_process": [[8, "module-capsul.process.nipype_process"]], "capsul.process.process": [[8, "module-capsul.process.process"]], "capsul.process.runprocess": [[8, "module-capsul.process.runprocess"]], "capsul.process.xml": [[8, "module-capsul.process.xml"]], "check_requirements() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.check_requirements"]], "complement_doc() (capsul.process.process.processmeta static method)": [[8, "capsul.process.process.ProcessMeta.complement_doc"]], "copied_files (capsul.process.process.filecopyprocess attribute)": [[8, "capsul.process.process.FileCopyProcess.copied_files"]], "copied_inputs (capsul.process.process.filecopyprocess attribute)": [[8, "capsul.process.process.FileCopyProcess.copied_inputs"]], "create_xml_process() (in module capsul.process.xml)": [[8, "capsul.process.xml.create_xml_process"]], "get_commandline() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_commandline"]], "get_help() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_help"]], "get_input_help() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_input_help"]], "get_input_spec() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_input_spec"]], "get_inputs() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_inputs"]], "get_log() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_log"]], "get_missing_mandatory_parameters() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_missing_mandatory_parameters"]], "get_output_help() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_output_help"]], "get_output_spec() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_output_spec"]], "get_outputs() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_outputs"]], "get_parameter() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_parameter"]], "get_process_with_params() (in module capsul.process.runprocess)": [[8, "capsul.process.runprocess.get_process_with_params"]], "get_study_config() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.get_study_config"]], "help() (capsul.process.process.nipypeprocess class method)": [[8, "capsul.process.process.NipypeProcess.help"]], "help() (capsul.process.process.process class method)": [[8, "capsul.process.process.Process.help"]], "id (capsul.process.process.process attribute)": [[8, "capsul.process.process.Process.id"]], "log_file (capsul.process.process.process attribute)": [[8, "capsul.process.process.Process.log_file"]], "main() (in module capsul.process.runprocess)": [[8, "capsul.process.runprocess.main"]], "make_commandline_argument() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.make_commandline_argument"]], "name (capsul.process.process.process attribute)": [[8, "capsul.process.process.Process.name"]], "nipype_factory() (in module capsul.process.nipype_process)": [[8, "capsul.process.nipype_process.nipype_factory"]], "params_to_command() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.params_to_command"]], "requirements() (capsul.process.process.nipypeprocess method)": [[8, "capsul.process.process.NipypeProcess.requirements"]], "requirements() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.requirements"]], "run() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.run"]], "run_from_commandline() (capsul.process.process.process static method)": [[8, "capsul.process.process.Process.run_from_commandline"]], "run_process_with_distribution() (in module capsul.process.runprocess)": [[8, "capsul.process.runprocess.run_process_with_distribution"]], "save_log() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.save_log"]], "set_output_directory() (capsul.process.process.nipypeprocess method)": [[8, "capsul.process.process.NipypeProcess.set_output_directory"]], "set_parameter() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.set_parameter"]], "set_process_param_from_str() (in module capsul.process.runprocess)": [[8, "capsul.process.runprocess.set_process_param_from_str"]], "set_study_config() (capsul.process.process.process method)": [[8, "capsul.process.process.Process.set_study_config"]], "set_usedefault() (capsul.process.process.nipypeprocess method)": [[8, "capsul.process.process.NipypeProcess.set_usedefault"]], "string_to_value() (in module capsul.process.xml)": [[8, "capsul.process.xml.string_to_value"]], "trait_from_xml() (in module capsul.process.xml)": [[8, "capsul.process.xml.trait_from_xml"]], "xml_process() (in module capsul.process.xml)": [[8, "capsul.process.xml.xml_process"]], "application (class in capsul.qt_apps.utils.application)": [[9, "capsul.qt_apps.utils.application.Application"]], "emittingstream (class in capsul.qt_apps.utils.application)": [[9, "capsul.qt_apps.utils.application.EmittingStream"]], "myquiloader (class in capsul.qt_apps.utils.window)": [[9, "capsul.qt_apps.utils.window.MyQUiLoader"]], "add_tree_nodes() (in module capsul.qt_apps.utils.fill_treectrl)": [[9, "capsul.qt_apps.utils.fill_treectrl.add_tree_nodes"]], "capsul.qt_apps": [[9, "module-capsul.qt_apps"]], "capsul.qt_apps.utils": [[9, "module-capsul.qt_apps.utils"]], "capsul.qt_apps.utils.application": [[9, "module-capsul.qt_apps.utils.application"]], "capsul.qt_apps.utils.fill_treectrl": [[9, "module-capsul.qt_apps.utils.fill_treectrl"]], "capsul.qt_apps.utils.find_pipelines": [[9, "module-capsul.qt_apps.utils.find_pipelines"]], "capsul.qt_apps.utils.window": [[9, "module-capsul.qt_apps.utils.window"]], "fill_treectrl() (in module capsul.qt_apps.utils.fill_treectrl)": [[9, "capsul.qt_apps.utils.fill_treectrl.fill_treectrl"]], "find_pipeline_and_process() (in module capsul.qt_apps.utils.find_pipelines)": [[9, "capsul.qt_apps.utils.find_pipelines.find_pipeline_and_process"]], "find_pipelines_from_description() (in module capsul.qt_apps.utils.find_pipelines)": [[9, "capsul.qt_apps.utils.find_pipelines.find_pipelines_from_description"]], "lists2dict() (in module capsul.qt_apps.utils.find_pipelines)": [[9, "capsul.qt_apps.utils.find_pipelines.lists2dict"]], "search_in_menu() (in module capsul.qt_apps.utils.fill_treectrl)": [[9, "capsul.qt_apps.utils.fill_treectrl.search_in_menu"]], "activationinspector (class in capsul.qt_gui.widgets.activation_inspector)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector"]], "activationinspectorapp (class in capsul.qt_gui.widgets.activation_inspector)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspectorApp"]], "attributedprocesswidget (class in capsul.qt_gui.widgets.attributed_process_widget)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget"]], "boardwidget (class in capsul.qt_gui.board_widget)": [[10, "capsul.qt_gui.board_widget.BoardWidget"]], "capsullinkdebuggerview (class in capsul.qt_gui.widgets.links_debugger)": [[10, "capsul.qt_gui.widgets.links_debugger.CapsulLinkDebuggerView"]], "embeddedsubpipelineitem (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.EmbeddedSubPipelineItem"]], "handleitem (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.HandleItem"]], "link (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link"]], "nodegwidget (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget"]], "pipelinedeveloperview (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView"]], "pipelinedeveloperview.iterativeprocessinput (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.IterativeProcessInput"]], "pipelinedeveloperview.processmoduleinput (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.ProcessModuleInput"]], "pipelinedeveloperview.processnameedit (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.ProcessNameEdit"]], "pipelinefilewarningwidget (class in capsul.qt_gui.widgets.pipeline_file_warning_widget)": [[10, "capsul.qt_gui.widgets.pipeline_file_warning_widget.PipelineFileWarningWidget"]], "pipelinescene (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene"]], "pipelineuserview (class in capsul.qt_gui.widgets.pipeline_user_view)": [[10, "capsul.qt_gui.widgets.pipeline_user_view.PipelineUserView"]], "plug (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Plug"]], "viewerwidget (class in capsul.qt_gui.widgets.viewer_widget)": [[10, "capsul.qt_gui.widgets.viewer_widget.ViewerWidget"]], "__init__() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.__init__"]], "add_controls_to_ui() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.add_controls_to_ui"]], "add_embedded_subpipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_embedded_subpipeline"], [10, "id0"]], "add_iterative_process() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_iterative_process"]], "add_node() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_node"]], "add_optional_output_switch() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_optional_output_switch"]], "add_process() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_process"]], "add_switch() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.add_switch"]], "auto_dot_node_positions() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.auto_dot_node_positions"], [10, "id5"]], "boundingrect() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.boundingRect"]], "boxitem (class in capsul.qt_gui.widgets.pipeline_developer_view)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.boxItem"]], "browse_node() (capsul.qt_gui.board_widget.boardwidget method)": [[10, "capsul.qt_gui.board_widget.BoardWidget.browse_node"]], "capsul.qt_gui": [[10, "module-capsul.qt_gui"]], "capsul.qt_gui.board_widget": [[10, "module-capsul.qt_gui.board_widget"]], "capsul.qt_gui.widgets": [[10, "module-capsul.qt_gui.widgets"]], "capsul.qt_gui.widgets.activation_inspector": [[10, "module-capsul.qt_gui.widgets.activation_inspector"]], "capsul.qt_gui.widgets.attributed_process_widget": [[10, "module-capsul.qt_gui.widgets.attributed_process_widget"]], "capsul.qt_gui.widgets.links_debugger": [[10, "module-capsul.qt_gui.widgets.links_debugger"]], "capsul.qt_gui.widgets.pipeline_developer_view": [[10, "module-capsul.qt_gui.widgets.pipeline_developer_view"]], "capsul.qt_gui.widgets.pipeline_file_warning_widget": [[10, "module-capsul.qt_gui.widgets.pipeline_file_warning_widget"]], "capsul.qt_gui.widgets.pipeline_user_view": [[10, "module-capsul.qt_gui.widgets.pipeline_user_view"]], "capsul.qt_gui.widgets.viewer_widget": [[10, "module-capsul.qt_gui.widgets.viewer_widget"]], "check_files() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.check_files"]], "colored_parameters (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.colored_parameters"], [10, "id6"]], "create_board_tree() (capsul.qt_gui.board_widget.boardwidget method)": [[10, "capsul.qt_gui.board_widget.BoardWidget.create_board_tree"]], "create_output_widget() (capsul.qt_gui.board_widget.boardwidget method)": [[10, "capsul.qt_gui.board_widget.BoardWidget.create_output_widget"]], "create_viewer_tree() (capsul.qt_gui.board_widget.boardwidget method)": [[10, "capsul.qt_gui.board_widget.BoardWidget.create_viewer_tree"]], "disable_done_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.disable_done_steps"]], "disable_following_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.disable_following_steps"]], "disable_preceding_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.disable_preceding_steps"]], "dragenterevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.dragEnterEvent"]], "dragmoveevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.dragMoveEvent"]], "dropevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.dropEvent"]], "drop_process() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.drop_process"]], "edit_sub_pipeline (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.edit_sub_pipeline"]], "edition_enabled() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.edition_enabled"]], "enablenode() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enableNode"]], "enable_all_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enable_all_steps"]], "enable_following_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enable_following_steps"]], "enable_preceding_steps() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enable_preceding_steps"]], "enable_step() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.enable_step"]], "ensure_pipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.ensure_pipeline"]], "export_to_db_scans (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.export_to_db_scans"]], "find_next() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.find_next"]], "find_previous() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.find_previous"]], "focusinevent() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.focusInEvent"]], "focusinevent() (capsul.qt_gui.widgets.pipeline_developer_view.boxitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.boxItem.focusInEvent"]], "focusoutevent() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.focusOutEvent"]], "focusoutevent() (capsul.qt_gui.widgets.pipeline_developer_view.boxitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.boxItem.focusOutEvent"]], "helpevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinescene method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene.helpEvent"]], "init_window() (capsul.qt_gui.widgets.activation_inspector.activationinspectorapp method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspectorApp.init_window"]], "is_logical_view() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.is_logical_view"], [10, "id7"]], "is_restricted_edition_mode() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.is_restricted_edition_mode"]], "itemchange() (capsul.qt_gui.widgets.pipeline_developer_view.handleitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.HandleItem.itemChange"]], "keypressevent() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.keyPressEvent"]], "keypressevent() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.keyPressEvent"]], "keypressevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinescene method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene.keyPressEvent"]], "keypressevent() (capsul.qt_gui.widgets.pipeline_developer_view.boxitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.boxItem.keyPressEvent"]], "link_right_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.link_right_clicked"], [10, "id8"]], "link_tooltip_text() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinescene method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene.link_tooltip_text"]], "load_pipeline_parameters() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.load_pipeline_parameters"]], "mousedoubleclickevent() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.mouseDoubleClickEvent"]], "mousemoveevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.mouseMoveEvent"]], "mousepressevent() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.mousePressEvent"]], "mousepressevent() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.mousePressEvent"]], "mousepressevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.mousePressEvent"]], "mousepressevent() (capsul.qt_gui.widgets.pipeline_developer_view.plug method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Plug.mousePressEvent"]], "mousereleaseevent() (capsul.qt_gui.widgets.pipeline_developer_view.handleitem method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.HandleItem.mouseReleaseEvent"]], "mousereleaseevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.mouseReleaseEvent"]], "node_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.node_clicked"], [10, "id9"]], "node_clicked_ctrl (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.node_clicked_ctrl"], [10, "id10"]], "node_right_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.node_right_clicked"], [10, "id11"]], "oncreateviewerclicked() (capsul.qt_gui.widgets.viewer_widget.viewerwidget method)": [[10, "capsul.qt_gui.widgets.viewer_widget.ViewerWidget.onCreateViewerClicked"]], "onloadsubpipelineclicked() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.onLoadSubPipelineClicked"], [10, "id12"]], "onopenprocesscontroller() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.onOpenProcessController"], [10, "id13"]], "on_btn_load_json() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_btn_load_json"]], "on_btn_save_json() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_btn_save_json"]], "on_input_filename_changed() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_input_filename_changed"]], "on_show_completion() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_show_completion"]], "on_use_fom_change() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.on_use_fom_change"]], "openprocesscontroller() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.openProcessController"]], "open_background_menu() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.open_background_menu"]], "open_filter (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.open_filter"]], "open_node_menu() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.open_node_menu"]], "paint() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.paint"]], "plug_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.plug_clicked"], [10, "id14"]], "plug_right_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.plug_right_clicked"], [10, "id15"]], "plug_tooltip_text() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinescene method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineScene.plug_tooltip_text"]], "process_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.process_clicked"]], "refresh_activation_from_record() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.refresh_activation_from_record"]], "release_pipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.release_pipeline"]], "reset_initial_nodes_positions() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.reset_initial_nodes_positions"], [10, "id16"]], "save_dot_image_ui() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.save_dot_image_ui"], [10, "id17"]], "save_pipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.save_pipeline"]], "save_pipeline_parameters() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.save_pipeline_parameters"]], "scene (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.scene"], [10, "id18"]], "set_enable_edition() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_enable_edition"]], "set_filter_pattern() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.set_filter_pattern"]], "set_logical_view() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_logical_view"], [10, "id19"]], "set_pipeline() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_pipeline"], [10, "id20"]], "set_restricted_edition_mode() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_restricted_edition_mode"]], "set_switch_value() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.set_switch_value"]], "set_use_fom() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.set_use_fom"]], "show() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.show"]], "show() (capsul.qt_gui.widgets.links_debugger.capsullinkdebuggerview method)": [[10, "capsul.qt_gui.widgets.links_debugger.CapsulLinkDebuggerView.show"]], "show_completion() (capsul.qt_gui.widgets.attributed_process_widget.attributedprocesswidget method)": [[10, "capsul.qt_gui.widgets.attributed_process_widget.AttributedProcessWidget.show_completion"]], "show_optional_inputs() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.show_optional_inputs"]], "show_optional_outputs() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.show_optional_outputs"]], "subpipeline_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.subpipeline_clicked"], [10, "id21"]], "switch_clicked (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview attribute)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.switch_clicked"]], "update() (capsul.qt_gui.widgets.pipeline_developer_view.link method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.Link.update"]], "update() (capsul.qt_gui.widgets.pipeline_user_view.pipelineuserview method)": [[10, "capsul.qt_gui.widgets.pipeline_user_view.PipelineUserView.update"]], "update_labels() (capsul.qt_gui.widgets.pipeline_developer_view.nodegwidget method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.NodeGWidget.update_labels"]], "update_pipeline_activation() (capsul.qt_gui.widgets.activation_inspector.activationinspector method)": [[10, "capsul.qt_gui.widgets.activation_inspector.ActivationInspector.update_pipeline_activation"]], "wheelevent() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.wheelEvent"]], "window() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.window"], [10, "id22"]], "zoom_in() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.zoom_in"], [10, "id23"]], "zoom_out() (capsul.qt_gui.widgets.pipeline_developer_view.pipelinedeveloperview method)": [[10, "capsul.qt_gui.widgets.pipeline_developer_view.PipelineDeveloperView.zoom_out"], [10, "id24"]], "layouthelperwriter (class in capsul.sphinxext.layoutdocgen)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter"]], "pipelinehelpwriter (class in capsul.sphinxext.pipelinedocgen)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter"]], "usecaseshelperwriter (class in capsul.sphinxext.usecasesdocgen)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter"]], "capsul.sphinxext": [[11, "module-capsul.sphinxext"]], "capsul.sphinxext.layoutdocgen": [[11, "module-capsul.sphinxext.layoutdocgen"]], "capsul.sphinxext.load_pilots": [[11, "module-capsul.sphinxext.load_pilots"]], "capsul.sphinxext.pipelinedocgen": [[11, "module-capsul.sphinxext.pipelinedocgen"]], "capsul.sphinxext.usecasesdocgen": [[11, "module-capsul.sphinxext.usecasesdocgen"]], "generate_api_doc() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.generate_api_doc"]], "generate_index_entry() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.generate_index_entry"]], "generate_usecases_doc() (capsul.sphinxext.usecasesdocgen.usecaseshelperwriter method)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter.generate_usecases_doc"]], "get_short_name() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.get_short_name"]], "getsource() (capsul.sphinxext.usecasesdocgen.usecaseshelperwriter method)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter.getsource"]], "load_pilots() (in module capsul.sphinxext.load_pilots)": [[11, "capsul.sphinxext.load_pilots.load_pilots"]], "rst2html() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.rst2html"]], "title_for() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.title_for"]], "write_api_docs() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.write_api_docs"]], "write_index() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.write_index"]], "write_index() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.write_index"]], "write_index() (capsul.sphinxext.usecasesdocgen.usecaseshelperwriter method)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter.write_index"]], "write_installation() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.write_installation"]], "write_layout() (capsul.sphinxext.layoutdocgen.layouthelperwriter method)": [[11, "capsul.sphinxext.layoutdocgen.LayoutHelperWriter.write_layout"]], "write_main_index() (capsul.sphinxext.pipelinedocgen.pipelinehelpwriter method)": [[11, "capsul.sphinxext.pipelinedocgen.PipelineHelpWriter.write_main_index"]], "write_usecases_docs() (capsul.sphinxext.usecasesdocgen.usecaseshelperwriter method)": [[11, "capsul.sphinxext.usecasesdocgen.UseCasesHelperWriter.write_usecases_docs"]], "attributesconfig (class in capsul.study_config.config_modules.attributes_config)": [[12, "capsul.study_config.config_modules.attributes_config.AttributesConfig"]], "brainvisaconfig (class in capsul.study_config.config_modules.brainvisa_config)": [[12, "capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig"]], "capsulresultdecoder (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.CapsulResultDecoder"]], "capsulresultencoder (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.CapsulResultEncoder"]], "fslconfig (class in capsul.study_config.config_modules.fsl_config)": [[12, "capsul.study_config.config_modules.fsl_config.FSLConfig"]], "fomconfig (class in capsul.study_config.config_modules.fom_config)": [[12, "capsul.study_config.config_modules.fom_config.FomConfig"]], "freesurferconfig (class in capsul.study_config.config_modules.freesurfer_config)": [[12, "capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig"]], "matlabconfig (class in capsul.study_config.config_modules.matlab_config)": [[12, "capsul.study_config.config_modules.matlab_config.MatlabConfig"]], "memorizedprocess (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.MemorizedProcess"]], "memory (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.Memory"]], "nipypeconfig (class in capsul.study_config.config_modules.nipype_config)": [[12, "capsul.study_config.config_modules.nipype_config.NipypeConfig"]], "resourcecontroller (class in capsul.study_config.config_modules.somaworkflow_config)": [[12, "capsul.study_config.config_modules.somaworkflow_config.ResourceController"]], "spmconfig (class in capsul.study_config.config_modules.spm_config)": [[12, "capsul.study_config.config_modules.spm_config.SPMConfig"]], "smartcachingconfig (class in capsul.study_config.config_modules.smartcaching_config)": [[12, "capsul.study_config.config_modules.smartcaching_config.SmartCachingConfig"]], "somaworkflowconfig (class in capsul.study_config.config_modules.somaworkflow_config)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig"]], "studyconfig (class in capsul.study_config.study_config)": [[12, "capsul.study_config.study_config.StudyConfig"]], "studyconfigmodule (class in capsul.study_config.study_config)": [[12, "capsul.study_config.study_config.StudyConfigModule"]], "unmemorizedprocess (class in capsul.study_config.memory)": [[12, "capsul.study_config.memory.UnMemorizedProcess"]], "add_trait() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.add_trait"]], "cache() (capsul.study_config.memory.memory method)": [[12, "capsul.study_config.memory.Memory.cache"], [12, "id0"]], "capsul.study_config": [[12, "module-capsul.study_config"]], "capsul.study_config.config_modules": [[12, "module-capsul.study_config.config_modules"]], "capsul.study_config.config_modules.attributes_config": [[12, "module-capsul.study_config.config_modules.attributes_config"]], "capsul.study_config.config_modules.brainvisa_config": [[12, "module-capsul.study_config.config_modules.brainvisa_config"]], "capsul.study_config.config_modules.fom_config": [[12, "module-capsul.study_config.config_modules.fom_config"]], "capsul.study_config.config_modules.freesurfer_config": [[12, "module-capsul.study_config.config_modules.freesurfer_config"]], "capsul.study_config.config_modules.fsl_config": [[12, "module-capsul.study_config.config_modules.fsl_config"]], "capsul.study_config.config_modules.matlab_config": [[12, "module-capsul.study_config.config_modules.matlab_config"]], "capsul.study_config.config_modules.nipype_config": [[12, "module-capsul.study_config.config_modules.nipype_config"]], "capsul.study_config.config_modules.smartcaching_config": [[12, "module-capsul.study_config.config_modules.smartcaching_config"]], "capsul.study_config.config_modules.somaworkflow_config": [[12, "module-capsul.study_config.config_modules.somaworkflow_config"]], "capsul.study_config.config_modules.spm_config": [[12, "module-capsul.study_config.config_modules.spm_config"]], "capsul.study_config.config_utils": [[12, "module-capsul.study_config.config_utils"]], "capsul.study_config.memory": [[12, "module-capsul.study_config.memory"]], "capsul.study_config.process_instance": [[12, "module-capsul.study_config.process_instance"]], "capsul.study_config.run": [[12, "module-capsul.study_config.run"]], "capsul.study_config.study_config": [[12, "module-capsul.study_config.study_config"]], "clear() (capsul.study_config.memory.memory method)": [[12, "capsul.study_config.memory.Memory.clear"], [12, "id2"]], "connect_resource() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.connect_resource"], [12, "id23"]], "create_output_directories (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.create_output_directories"]], "default() (capsul.study_config.memory.capsulresultencoder method)": [[12, "capsul.study_config.memory.CapsulResultEncoder.default"]], "default_study_config() (in module capsul.study_config.study_config)": [[12, "capsul.study_config.study_config.default_study_config"]], "disconnect_resource() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.disconnect_resource"], [12, "id24"]], "environment() (in module capsul.study_config.config_utils)": [[12, "capsul.study_config.config_utils.environment"]], "file_fingerprint() (in module capsul.study_config.memory)": [[12, "capsul.study_config.memory.file_fingerprint"]], "generate_logging (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.generate_logging"]], "get_configuration_dict() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_configuration_dict"]], "get_iteration_pipeline() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_iteration_pipeline"]], "get_node_class() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.get_node_class"]], "get_node_instance() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.get_node_instance"]], "get_process_instance() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_process_instance"]], "get_process_instance() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.get_process_instance"]], "get_process_signature() (in module capsul.study_config.memory)": [[12, "capsul.study_config.memory.get_process_signature"]], "get_resource_id() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.get_resource_id"], [12, "id25"]], "get_trait() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_trait"], [12, "id7"]], "get_trait_value() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.get_trait_value"], [12, "id8"]], "get_workflow_controller() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.get_workflow_controller"], [12, "id26"]], "has_attribute() (in module capsul.study_config.memory)": [[12, "capsul.study_config.memory.has_attribute"]], "initialize_callbacks() (capsul.study_config.config_modules.attributes_config.attributesconfig method)": [[12, "capsul.study_config.config_modules.attributes_config.AttributesConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.brainvisa_config.brainvisaconfig method)": [[12, "capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.fom_config.fomconfig method)": [[12, "capsul.study_config.config_modules.fom_config.FomConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.freesurfer_config.freesurferconfig method)": [[12, "capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.fsl_config.fslconfig method)": [[12, "capsul.study_config.config_modules.fsl_config.FSLConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.matlab_config.matlabconfig method)": [[12, "capsul.study_config.config_modules.matlab_config.MatlabConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.nipype_config.nipypeconfig method)": [[12, "capsul.study_config.config_modules.nipype_config.NipypeConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.config_modules.spm_config.spmconfig method)": [[12, "capsul.study_config.config_modules.spm_config.SPMConfig.initialize_callbacks"]], "initialize_callbacks() (capsul.study_config.study_config.studyconfigmodule method)": [[12, "capsul.study_config.study_config.StudyConfigModule.initialize_callbacks"]], "initialize_module() (capsul.study_config.config_modules.attributes_config.attributesconfig method)": [[12, "capsul.study_config.config_modules.attributes_config.AttributesConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.brainvisa_config.brainvisaconfig method)": [[12, "capsul.study_config.config_modules.brainvisa_config.BrainVISAConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.fom_config.fomconfig method)": [[12, "capsul.study_config.config_modules.fom_config.FomConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.freesurfer_config.freesurferconfig method)": [[12, "capsul.study_config.config_modules.freesurfer_config.FreeSurferConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.fsl_config.fslconfig method)": [[12, "capsul.study_config.config_modules.fsl_config.FSLConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.matlab_config.matlabconfig method)": [[12, "capsul.study_config.config_modules.matlab_config.MatlabConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.nipype_config.nipypeconfig method)": [[12, "capsul.study_config.config_modules.nipype_config.NipypeConfig.initialize_module"]], "initialize_module() (capsul.study_config.config_modules.spm_config.spmconfig method)": [[12, "capsul.study_config.config_modules.spm_config.SPMConfig.initialize_module"]], "initialize_module() (capsul.study_config.study_config.studyconfigmodule method)": [[12, "capsul.study_config.study_config.StudyConfigModule.initialize_module"]], "initialize_modules() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.initialize_modules"]], "input_directory (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.input_directory"]], "is_pipeline_node() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.is_pipeline_node"]], "is_process() (in module capsul.study_config.process_instance)": [[12, "capsul.study_config.process_instance.is_process"]], "load_module() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.load_module"]], "name (capsul.study_config.study_config.studyconfigmodule property)": [[12, "capsul.study_config.study_config.StudyConfigModule.name"]], "output_directory (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.output_directory"]], "path_translations (capsul.study_config.config_modules.somaworkflow_config.resourcecontroller attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.ResourceController.path_translations"]], "process_output_directory (capsul.study_config.study_config.studyconfig attribute)": [[12, "capsul.study_config.study_config.StudyConfig.process_output_directory"]], "queue (capsul.study_config.config_modules.somaworkflow_config.resourcecontroller attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.ResourceController.queue"]], "read_configuration() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.read_configuration"]], "reset_process_counter() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.reset_process_counter"], [12, "id9"]], "run() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.run"], [12, "id10"]], "run_process() (in module capsul.study_config.run)": [[12, "capsul.study_config.run.run_process"]], "save_configuration() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.save_configuration"]], "set_computing_resource_password() (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig method)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.set_computing_resource_password"], [12, "id27"]], "set_study_configuration() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.set_study_configuration"], [12, "id11"]], "set_trait_value() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.set_trait_value"], [12, "id12"]], "somaworkflow_computing_resource (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_computing_resource"]], "somaworkflow_computing_resources_config (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_computing_resources_config"]], "somaworkflow_config_file (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_config_file"]], "somaworkflow_keep_failed_workflows (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_keep_failed_workflows"]], "somaworkflow_keep_succeeded_workflows (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.somaworkflow_keep_succeeded_workflows"]], "transfer_paths (capsul.study_config.config_modules.somaworkflow_config.resourcecontroller attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.ResourceController.transfer_paths"]], "tuple_json_encoder() (in module capsul.study_config.memory)": [[12, "capsul.study_config.memory.tuple_json_encoder"]], "update_study_configuration() (capsul.study_config.study_config.studyconfig method)": [[12, "capsul.study_config.study_config.StudyConfig.update_study_configuration"], [12, "id13"]], "use_soma_workflow (capsul.study_config.config_modules.somaworkflow_config.somaworkflowconfig attribute)": [[12, "capsul.study_config.config_modules.somaworkflow_config.SomaWorkflowConfig.use_soma_workflow"]], "popen (class in capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.Popen"]], "popen (class in capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.Popen"]], "auto_configuration() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.auto_configuration"]], "auto_configuration() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.auto_configuration"]], "call() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.call"]], "call() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.call"]], "capsul.subprocess": [[13, "module-capsul.subprocess"]], "capsul.subprocess.fsl": [[13, "module-capsul.subprocess.fsl"]], "capsul.subprocess.spm": [[13, "module-capsul.subprocess.spm"]], "check_call() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.check_call"]], "check_call() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.check_call"]], "check_configuration_values() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.check_configuration_values"]], "check_configuration_values() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.check_configuration_values"]], "check_fsl_configuration() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.check_fsl_configuration"]], "check_output() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.check_output"]], "check_output() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.check_output"]], "check_spm_configuration() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.check_spm_configuration"]], "find_spm() (in module capsul.subprocess.spm)": [[13, "capsul.subprocess.spm.find_spm"]], "fsl_command_with_environment() (in module capsul.subprocess.fsl)": [[13, "capsul.subprocess.fsl.fsl_command_with_environment"]], "capsul.utils": [[14, "module-capsul.utils"]], "capsul.utils.finder": [[14, "module-capsul.utils.finder"]], "capsul.utils.version_utils": [[14, "module-capsul.utils.version_utils"]], "find_processes() (in module capsul.utils.finder)": [[14, "capsul.utils.finder.find_processes"]], "get_nipype_interfaces_versions() (in module capsul.utils.version_utils)": [[14, "capsul.utils.version_utils.get_nipype_interfaces_versions"]], "get_tool_version() (in module capsul.utils.version_utils)": [[14, "capsul.utils.version_utils.get_tool_version"]]}}) \ No newline at end of file diff --git a/status.html b/status.html index 2aa2690c5..36dc853ba 100644 --- a/status.html +++ b/status.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -108,7 +108,7 @@

    Navigation

    -

    CAPSUL status

    +

    CAPSUL status

    Features status

    @@ -212,8 +212,8 @@

    Navigation

    \ No newline at end of file diff --git a/tutorial/capsul_tutorial.html b/tutorial/capsul_tutorial.html index ed99aca4d..78a2359b0 100644 --- a/tutorial/capsul_tutorial.html +++ b/tutorial/capsul_tutorial.html @@ -1,6 +1,6 @@ - + @@ -13,14 +13,14 @@ - - - + + + - - - + + + @@ -107,7 +107,7 @@

    Navigation

    -

    CAPSUL: chain algorithms in pipelines

    +

    CAPSUL: chain algorithms in pipelines

    Capsul is a simple and efficient Python tool that aims to organize a set of processings. It is accessible to everybody, and is reusable in various contexts. The project is hosted on github: https://github.com/populse/capsul.

    Documentation: http://populse.github.io/capsul

    The following examples are using CAPSUL, and PyQt (or PySide). To get the GUI running in a non-blocking way, the IPython notebook should be started with the option –gui=qt:

    @@ -345,7 +345,7 @@

    Viewing / debugging a pipeline

    It should display something like this: capsul pipeline view

    -

    Entering parameters

    +

    Entering parameters

    [11]:
     
    @@ -364,7 +364,7 @@

    Entering parameters

    -

    Using the Python API

    +

    Using the Python API

    [18]:
     
    @@ -810,7 +810,7 @@

    Using XML definition

    xml pipeline xml pipeline controller

    -

    Iteration over a process or pipeline

    +

    Iteration over a process or pipeline

    A process can be used several times in parallel: some of its parameters will be changed for lists

    [25]:
    @@ -1129,13 +1129,15 @@ 

    StudyConfig

    use_fsl : <undefined> matlab_exec : <undefined> use_matlab : False +mrtrix_path : <undefined> +use_mrtrix : <undefined> use_smart_caching : False use_soma_workflow : False somaworkflow_computing_resource : <undefined> somaworkflow_config_file : <undefined> somaworkflow_keep_failed_workflows : True somaworkflow_keep_succeeded_workflows : False -somaworkflow_computing_resources_config : <soma.controller.controller.OpenKeyController object at 0x7f2218479270> +somaworkflow_computing_resources_config : <soma.controller.controller.OpenKeyController object at 0x7f2640ca0860> spm_directory : <undefined> spm_standalone : <undefined> spm_version : <undefined> @@ -1294,8 +1296,8 @@

    Distributed execution using Soma-Workflow

    -jobs: [<soma_workflow.client_types.Job object at 0x7f2218511a00>, <soma_workflow.client_types.Job object at 0x7f2218511100>]
    -dependencies: {(<soma_workflow.client_types.Job object at 0x7f2218511100>, <soma_workflow.client_types.Job object at 0x7f2218511a00>)}
    +jobs: [<soma_workflow.client_types.Job object at 0x7f2650064400>, <soma_workflow.client_types.Job object at 0x7f2650064640>]
    +dependencies: {(<soma_workflow.client_types.Job object at 0x7f2650064640>, <soma_workflow.client_types.Job object at 0x7f2650064400>)}
     

    The workwlow can be saved and reloaded in soma_workflow_gui, or used in a soma-workflow controller:

    @@ -1433,7 +1435,7 @@

    Use thirdparty software in Capsul

    -['AFNIConfig', 'ANTSConfig', 'FSLConfig', 'MatlabConfig', 'SmartCachingConfig', 'SomaWorkflowConfig', 'SPMConfig']
    +['AFNIConfig', 'ANTSConfig', 'FSLConfig', 'MatlabConfig', 'MRTRIXConfig', 'SmartCachingConfig', 'SomaWorkflowConfig', 'SPMConfig']
     

    In order to change modules that are used, one must give a full module list to StudyConfig():

    @@ -1644,7 +1646,7 @@

    Parameters completion using FOM (File Organization Model)

    pipeline

    -

    FOM definition

    +

    FOM definition

    [56]:
     
    @@ -1802,7 +1804,7 @@

    File names completion using FOM

    changed pipeline changed completion controller

    -

    Now Cleanup the files we have created…

    +

    Now Cleanup the files we have created…

    [59]:
     
    @@ -1864,8 +1866,8 @@

    Navigation

    \ No newline at end of file diff --git a/tutorial/capsul_tutorial.ipynb b/tutorial/capsul_tutorial.ipynb index 3a0d35bee..6c6edbac9 100644 --- a/tutorial/capsul_tutorial.ipynb +++ b/tutorial/capsul_tutorial.ipynb @@ -53,10 +53,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:14.738597Z", - "iopub.status.busy": "2023-07-12T09:01:14.737890Z", - "iopub.status.idle": "2023-07-12T09:01:14.747845Z", - "shell.execute_reply": "2023-07-12T09:01:14.747152Z" + "iopub.execute_input": "2023-08-21T11:37:01.456650Z", + "iopub.status.busy": "2023-08-21T11:37:01.456023Z", + "iopub.status.idle": "2023-08-21T11:37:01.467221Z", + "shell.execute_reply": "2023-08-21T11:37:01.466367Z" } }, "outputs": [], @@ -82,10 +82,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:14.751658Z", - "iopub.status.busy": "2023-07-12T09:01:14.751176Z", - "iopub.status.idle": "2023-07-12T09:01:14.756121Z", - "shell.execute_reply": "2023-07-12T09:01:14.755393Z" + "iopub.execute_input": "2023-08-21T11:37:01.475943Z", + "iopub.status.busy": "2023-08-21T11:37:01.475705Z", + "iopub.status.idle": "2023-08-21T11:37:01.481262Z", + "shell.execute_reply": "2023-08-21T11:37:01.480370Z" } }, "outputs": [ @@ -124,10 +124,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:14.806788Z", - "iopub.status.busy": "2023-07-12T09:01:14.806304Z", - "iopub.status.idle": "2023-07-12T09:01:15.071134Z", - "shell.execute_reply": "2023-07-12T09:01:15.069754Z" + "iopub.execute_input": "2023-08-21T11:37:01.536316Z", + "iopub.status.busy": "2023-08-21T11:37:01.535332Z", + "iopub.status.idle": "2023-08-21T11:37:01.853877Z", + "shell.execute_reply": "2023-08-21T11:37:01.852478Z" } }, "outputs": [ @@ -179,10 +179,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.074877Z", - "iopub.status.busy": "2023-07-12T09:01:15.074375Z", - "iopub.status.idle": "2023-07-12T09:01:15.080475Z", - "shell.execute_reply": "2023-07-12T09:01:15.079764Z" + "iopub.execute_input": "2023-08-21T11:37:01.859766Z", + "iopub.status.busy": "2023-08-21T11:37:01.857368Z", + "iopub.status.idle": "2023-08-21T11:37:01.870066Z", + "shell.execute_reply": "2023-08-21T11:37:01.869317Z" } }, "outputs": [], @@ -220,10 +220,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.083751Z", - "iopub.status.busy": "2023-07-12T09:01:15.083312Z", - "iopub.status.idle": "2023-07-12T09:01:15.087809Z", - "shell.execute_reply": "2023-07-12T09:01:15.087095Z" + "iopub.execute_input": "2023-08-21T11:37:01.874380Z", + "iopub.status.busy": "2023-08-21T11:37:01.873647Z", + "iopub.status.idle": "2023-08-21T11:37:01.878580Z", + "shell.execute_reply": "2023-08-21T11:37:01.877671Z" } }, "outputs": [], @@ -262,10 +262,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.090976Z", - "iopub.status.busy": "2023-07-12T09:01:15.090727Z", - "iopub.status.idle": "2023-07-12T09:01:15.095043Z", - "shell.execute_reply": "2023-07-12T09:01:15.094329Z" + "iopub.execute_input": "2023-08-21T11:37:01.881998Z", + "iopub.status.busy": "2023-08-21T11:37:01.881754Z", + "iopub.status.idle": "2023-08-21T11:37:01.886425Z", + "shell.execute_reply": "2023-08-21T11:37:01.885617Z" } }, "outputs": [], @@ -293,10 +293,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.098785Z", - "iopub.status.busy": "2023-07-12T09:01:15.098238Z", - "iopub.status.idle": "2023-07-12T09:01:15.103434Z", - "shell.execute_reply": "2023-07-12T09:01:15.102759Z" + "iopub.execute_input": "2023-08-21T11:37:01.890633Z", + "iopub.status.busy": "2023-08-21T11:37:01.890149Z", + "iopub.status.idle": "2023-08-21T11:37:01.896720Z", + "shell.execute_reply": "2023-08-21T11:37:01.895829Z" } }, "outputs": [ @@ -334,10 +334,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.106791Z", - "iopub.status.busy": "2023-07-12T09:01:15.106274Z", - "iopub.status.idle": "2023-07-12T09:01:15.111387Z", - "shell.execute_reply": "2023-07-12T09:01:15.110675Z" + "iopub.execute_input": "2023-08-21T11:37:01.900703Z", + "iopub.status.busy": "2023-08-21T11:37:01.900422Z", + "iopub.status.idle": "2023-08-21T11:37:01.906642Z", + "shell.execute_reply": "2023-08-21T11:37:01.905838Z" } }, "outputs": [], @@ -380,10 +380,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.114489Z", - "iopub.status.busy": "2023-07-12T09:01:15.114140Z", - "iopub.status.idle": "2023-07-12T09:01:15.122638Z", - "shell.execute_reply": "2023-07-12T09:01:15.121937Z" + "iopub.execute_input": "2023-08-21T11:37:01.910958Z", + "iopub.status.busy": "2023-08-21T11:37:01.910354Z", + "iopub.status.idle": "2023-08-21T11:37:01.921020Z", + "shell.execute_reply": "2023-08-21T11:37:01.920188Z" } }, "outputs": [], @@ -419,10 +419,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.125648Z", - "iopub.status.busy": "2023-07-12T09:01:15.125225Z", - "iopub.status.idle": "2023-07-12T09:01:15.130556Z", - "shell.execute_reply": "2023-07-12T09:01:15.129850Z" + "iopub.execute_input": "2023-08-21T11:37:01.925354Z", + "iopub.status.busy": "2023-08-21T11:37:01.924603Z", + "iopub.status.idle": "2023-08-21T11:37:01.931477Z", + "shell.execute_reply": "2023-08-21T11:37:01.930545Z" } }, "outputs": [], @@ -472,10 +472,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.133882Z", - "iopub.status.busy": "2023-07-12T09:01:15.133326Z", - "iopub.status.idle": "2023-07-12T09:01:15.137732Z", - "shell.execute_reply": "2023-07-12T09:01:15.137055Z" + "iopub.execute_input": "2023-08-21T11:37:01.936068Z", + "iopub.status.busy": "2023-08-21T11:37:01.935546Z", + "iopub.status.idle": "2023-08-21T11:37:01.940571Z", + "shell.execute_reply": "2023-08-21T11:37:01.939821Z" } }, "outputs": [], @@ -511,10 +511,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.141074Z", - "iopub.status.busy": "2023-07-12T09:01:15.140474Z", - "iopub.status.idle": "2023-07-12T09:01:15.144991Z", - "shell.execute_reply": "2023-07-12T09:01:15.144329Z" + "iopub.execute_input": "2023-08-21T11:37:01.943693Z", + "iopub.status.busy": "2023-08-21T11:37:01.943467Z", + "iopub.status.idle": "2023-08-21T11:37:01.948856Z", + "shell.execute_reply": "2023-08-21T11:37:01.947862Z" } }, "outputs": [], @@ -539,10 +539,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.148018Z", - "iopub.status.busy": "2023-07-12T09:01:15.147590Z", - "iopub.status.idle": "2023-07-12T09:01:15.154466Z", - "shell.execute_reply": "2023-07-12T09:01:15.153790Z" + "iopub.execute_input": "2023-08-21T11:37:01.952566Z", + "iopub.status.busy": "2023-08-21T11:37:01.952231Z", + "iopub.status.idle": "2023-08-21T11:37:01.961448Z", + "shell.execute_reply": "2023-08-21T11:37:01.960462Z" } }, "outputs": [], @@ -573,10 +573,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.157417Z", - "iopub.status.busy": "2023-07-12T09:01:15.157072Z", - "iopub.status.idle": "2023-07-12T09:01:15.169537Z", - "shell.execute_reply": "2023-07-12T09:01:15.168746Z" + "iopub.execute_input": "2023-08-21T11:37:01.965147Z", + "iopub.status.busy": "2023-08-21T11:37:01.964909Z", + "iopub.status.idle": "2023-08-21T11:37:01.981481Z", + "shell.execute_reply": "2023-08-21T11:37:01.980438Z" } }, "outputs": [ @@ -615,10 +615,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.172818Z", - "iopub.status.busy": "2023-07-12T09:01:15.172348Z", - "iopub.status.idle": "2023-07-12T09:01:15.178805Z", - "shell.execute_reply": "2023-07-12T09:01:15.178147Z" + "iopub.execute_input": "2023-08-21T11:37:01.985607Z", + "iopub.status.busy": "2023-08-21T11:37:01.985031Z", + "iopub.status.idle": "2023-08-21T11:37:01.995566Z", + "shell.execute_reply": "2023-08-21T11:37:01.994695Z" }, "scrolled": false }, @@ -687,10 +687,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.181780Z", - "iopub.status.busy": "2023-07-12T09:01:15.181381Z", - "iopub.status.idle": "2023-07-12T09:01:15.208022Z", - "shell.execute_reply": "2023-07-12T09:01:15.207328Z" + "iopub.execute_input": "2023-08-21T11:37:01.999191Z", + "iopub.status.busy": "2023-08-21T11:37:01.998916Z", + "iopub.status.idle": "2023-08-21T11:37:02.042072Z", + "shell.execute_reply": "2023-08-21T11:37:02.040966Z" } }, "outputs": [ @@ -760,10 +760,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.211399Z", - "iopub.status.busy": "2023-07-12T09:01:15.210931Z", - "iopub.status.idle": "2023-07-12T09:01:15.215625Z", - "shell.execute_reply": "2023-07-12T09:01:15.214894Z" + "iopub.execute_input": "2023-08-21T11:37:02.048411Z", + "iopub.status.busy": "2023-08-21T11:37:02.047916Z", + "iopub.status.idle": "2023-08-21T11:37:02.055172Z", + "shell.execute_reply": "2023-08-21T11:37:02.053858Z" } }, "outputs": [], @@ -807,10 +807,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.218743Z", - "iopub.status.busy": "2023-07-12T09:01:15.218313Z", - "iopub.status.idle": "2023-07-12T09:01:15.222856Z", - "shell.execute_reply": "2023-07-12T09:01:15.222163Z" + "iopub.execute_input": "2023-08-21T11:37:02.062411Z", + "iopub.status.busy": "2023-08-21T11:37:02.061728Z", + "iopub.status.idle": "2023-08-21T11:37:02.068655Z", + "shell.execute_reply": "2023-08-21T11:37:02.067811Z" } }, "outputs": [], @@ -835,10 +835,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.226218Z", - "iopub.status.busy": "2023-07-12T09:01:15.225617Z", - "iopub.status.idle": "2023-07-12T09:01:15.234889Z", - "shell.execute_reply": "2023-07-12T09:01:15.234284Z" + "iopub.execute_input": "2023-08-21T11:37:02.074698Z", + "iopub.status.busy": "2023-08-21T11:37:02.074135Z", + "iopub.status.idle": "2023-08-21T11:37:02.086587Z", + "shell.execute_reply": "2023-08-21T11:37:02.085671Z" } }, "outputs": [], @@ -869,10 +869,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.237872Z", - "iopub.status.busy": "2023-07-12T09:01:15.237444Z", - "iopub.status.idle": "2023-07-12T09:01:15.241479Z", - "shell.execute_reply": "2023-07-12T09:01:15.240806Z" + "iopub.execute_input": "2023-08-21T11:37:02.092440Z", + "iopub.status.busy": "2023-08-21T11:37:02.090541Z", + "iopub.status.idle": "2023-08-21T11:37:02.097173Z", + "shell.execute_reply": "2023-08-21T11:37:02.096196Z" } }, "outputs": [], @@ -893,10 +893,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.244666Z", - "iopub.status.busy": "2023-07-12T09:01:15.244076Z", - "iopub.status.idle": "2023-07-12T09:01:15.254400Z", - "shell.execute_reply": "2023-07-12T09:01:15.253578Z" + "iopub.execute_input": "2023-08-21T11:37:02.102594Z", + "iopub.status.busy": "2023-08-21T11:37:02.102134Z", + "iopub.status.idle": "2023-08-21T11:37:02.118980Z", + "shell.execute_reply": "2023-08-21T11:37:02.118083Z" } }, "outputs": [ @@ -930,10 +930,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.257728Z", - "iopub.status.busy": "2023-07-12T09:01:15.257247Z", - "iopub.status.idle": "2023-07-12T09:01:15.264436Z", - "shell.execute_reply": "2023-07-12T09:01:15.263819Z" + "iopub.execute_input": "2023-08-21T11:37:02.124968Z", + "iopub.status.busy": "2023-08-21T11:37:02.124688Z", + "iopub.status.idle": "2023-08-21T11:37:02.134887Z", + "shell.execute_reply": "2023-08-21T11:37:02.133329Z" } }, "outputs": [ @@ -1077,10 +1077,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.267460Z", - "iopub.status.busy": "2023-07-12T09:01:15.267015Z", - "iopub.status.idle": "2023-07-12T09:01:15.308212Z", - "shell.execute_reply": "2023-07-12T09:01:15.307507Z" + "iopub.execute_input": "2023-08-21T11:37:02.140229Z", + "iopub.status.busy": "2023-08-21T11:37:02.138461Z", + "iopub.status.idle": "2023-08-21T11:37:02.204432Z", + "shell.execute_reply": "2023-08-21T11:37:02.203274Z" } }, "outputs": [ @@ -1157,10 +1157,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.311663Z", - "iopub.status.busy": "2023-07-12T09:01:15.311185Z", - "iopub.status.idle": "2023-07-12T09:01:15.316411Z", - "shell.execute_reply": "2023-07-12T09:01:15.315741Z" + "iopub.execute_input": "2023-08-21T11:37:02.210231Z", + "iopub.status.busy": "2023-08-21T11:37:02.208444Z", + "iopub.status.idle": "2023-08-21T11:37:02.217413Z", + "shell.execute_reply": "2023-08-21T11:37:02.216529Z" } }, "outputs": [], @@ -1200,10 +1200,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.319565Z", - "iopub.status.busy": "2023-07-12T09:01:15.319128Z", - "iopub.status.idle": "2023-07-12T09:01:15.324324Z", - "shell.execute_reply": "2023-07-12T09:01:15.323647Z" + "iopub.execute_input": "2023-08-21T11:37:02.221254Z", + "iopub.status.busy": "2023-08-21T11:37:02.220985Z", + "iopub.status.idle": "2023-08-21T11:37:02.227820Z", + "shell.execute_reply": "2023-08-21T11:37:02.226884Z" } }, "outputs": [], @@ -1240,10 +1240,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.327524Z", - "iopub.status.busy": "2023-07-12T09:01:15.327165Z", - "iopub.status.idle": "2023-07-12T09:01:15.336149Z", - "shell.execute_reply": "2023-07-12T09:01:15.335511Z" + "iopub.execute_input": "2023-08-21T11:37:02.231687Z", + "iopub.status.busy": "2023-08-21T11:37:02.231416Z", + "iopub.status.idle": "2023-08-21T11:37:02.242052Z", + "shell.execute_reply": "2023-08-21T11:37:02.241221Z" } }, "outputs": [], @@ -1291,10 +1291,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.339377Z", - "iopub.status.busy": "2023-07-12T09:01:15.338940Z", - "iopub.status.idle": "2023-07-12T09:01:15.372999Z", - "shell.execute_reply": "2023-07-12T09:01:15.372145Z" + "iopub.execute_input": "2023-08-21T11:37:02.245457Z", + "iopub.status.busy": "2023-08-21T11:37:02.245202Z", + "iopub.status.idle": "2023-08-21T11:37:02.289097Z", + "shell.execute_reply": "2023-08-21T11:37:02.288260Z" } }, "outputs": [ @@ -1332,10 +1332,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.376546Z", - "iopub.status.busy": "2023-07-12T09:01:15.376150Z", - "iopub.status.idle": "2023-07-12T09:01:15.383166Z", - "shell.execute_reply": "2023-07-12T09:01:15.382443Z" + "iopub.execute_input": "2023-08-21T11:37:02.293127Z", + "iopub.status.busy": "2023-08-21T11:37:02.292612Z", + "iopub.status.idle": "2023-08-21T11:37:02.300748Z", + "shell.execute_reply": "2023-08-21T11:37:02.299564Z" } }, "outputs": [], @@ -1377,10 +1377,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.386226Z", - "iopub.status.busy": "2023-07-12T09:01:15.385860Z", - "iopub.status.idle": "2023-07-12T09:01:15.394855Z", - "shell.execute_reply": "2023-07-12T09:01:15.394183Z" + "iopub.execute_input": "2023-08-21T11:37:02.304714Z", + "iopub.status.busy": "2023-08-21T11:37:02.304340Z", + "iopub.status.idle": "2023-08-21T11:37:02.316403Z", + "shell.execute_reply": "2023-08-21T11:37:02.315516Z" } }, "outputs": [], @@ -1413,10 +1413,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.397969Z", - "iopub.status.busy": "2023-07-12T09:01:15.397457Z", - "iopub.status.idle": "2023-07-12T09:01:15.405381Z", - "shell.execute_reply": "2023-07-12T09:01:15.404752Z" + "iopub.execute_input": "2023-08-21T11:37:02.321908Z", + "iopub.status.busy": "2023-08-21T11:37:02.321511Z", + "iopub.status.idle": "2023-08-21T11:37:02.332384Z", + "shell.execute_reply": "2023-08-21T11:37:02.331635Z" } }, "outputs": [ @@ -1449,10 +1449,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.408350Z", - "iopub.status.busy": "2023-07-12T09:01:15.407918Z", - "iopub.status.idle": "2023-07-12T09:01:15.411324Z", - "shell.execute_reply": "2023-07-12T09:01:15.410626Z" + "iopub.execute_input": "2023-08-21T11:37:02.335876Z", + "iopub.status.busy": "2023-08-21T11:37:02.335589Z", + "iopub.status.idle": "2023-08-21T11:37:02.339911Z", + "shell.execute_reply": "2023-08-21T11:37:02.338943Z" } }, "outputs": [], @@ -1480,10 +1480,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.414491Z", - "iopub.status.busy": "2023-07-12T09:01:15.414075Z", - "iopub.status.idle": "2023-07-12T09:01:15.418635Z", - "shell.execute_reply": "2023-07-12T09:01:15.417959Z" + "iopub.execute_input": "2023-08-21T11:37:02.343992Z", + "iopub.status.busy": "2023-08-21T11:37:02.343729Z", + "iopub.status.idle": "2023-08-21T11:37:02.349127Z", + "shell.execute_reply": "2023-08-21T11:37:02.348284Z" } }, "outputs": [], @@ -1507,10 +1507,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.421754Z", - "iopub.status.busy": "2023-07-12T09:01:15.421339Z", - "iopub.status.idle": "2023-07-12T09:01:15.430860Z", - "shell.execute_reply": "2023-07-12T09:01:15.430138Z" + "iopub.execute_input": "2023-08-21T11:37:02.352456Z", + "iopub.status.busy": "2023-08-21T11:37:02.352204Z", + "iopub.status.idle": "2023-08-21T11:37:02.363498Z", + "shell.execute_reply": "2023-08-21T11:37:02.362694Z" } }, "outputs": [], @@ -1543,10 +1543,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.434458Z", - "iopub.status.busy": "2023-07-12T09:01:15.433830Z", - "iopub.status.idle": "2023-07-12T09:01:15.440976Z", - "shell.execute_reply": "2023-07-12T09:01:15.440267Z" + "iopub.execute_input": "2023-08-21T11:37:02.367108Z", + "iopub.status.busy": "2023-08-21T11:37:02.366630Z", + "iopub.status.idle": "2023-08-21T11:37:02.375862Z", + "shell.execute_reply": "2023-08-21T11:37:02.374740Z" } }, "outputs": [ @@ -1574,10 +1574,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.444215Z", - "iopub.status.busy": "2023-07-12T09:01:15.443765Z", - "iopub.status.idle": "2023-07-12T09:01:15.447066Z", - "shell.execute_reply": "2023-07-12T09:01:15.446357Z" + "iopub.execute_input": "2023-08-21T11:37:02.379422Z", + "iopub.status.busy": "2023-08-21T11:37:02.379020Z", + "iopub.status.idle": "2023-08-21T11:37:02.383702Z", + "shell.execute_reply": "2023-08-21T11:37:02.382830Z" } }, "outputs": [], @@ -1594,10 +1594,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.450204Z", - "iopub.status.busy": "2023-07-12T09:01:15.449773Z", - "iopub.status.idle": "2023-07-12T09:01:15.453588Z", - "shell.execute_reply": "2023-07-12T09:01:15.452910Z" + "iopub.execute_input": "2023-08-21T11:37:02.387789Z", + "iopub.status.busy": "2023-08-21T11:37:02.387502Z", + "iopub.status.idle": "2023-08-21T11:37:02.391929Z", + "shell.execute_reply": "2023-08-21T11:37:02.390981Z" } }, "outputs": [], @@ -1613,10 +1613,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.456617Z", - "iopub.status.busy": "2023-07-12T09:01:15.456190Z", - "iopub.status.idle": "2023-07-12T09:01:15.459836Z", - "shell.execute_reply": "2023-07-12T09:01:15.459145Z" + "iopub.execute_input": "2023-08-21T11:37:02.396681Z", + "iopub.status.busy": "2023-08-21T11:37:02.395802Z", + "iopub.status.idle": "2023-08-21T11:37:02.400832Z", + "shell.execute_reply": "2023-08-21T11:37:02.399638Z" } }, "outputs": [], @@ -1647,10 +1647,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.463178Z", - "iopub.status.busy": "2023-07-12T09:01:15.462568Z", - "iopub.status.idle": "2023-07-12T09:01:15.470489Z", - "shell.execute_reply": "2023-07-12T09:01:15.469817Z" + "iopub.execute_input": "2023-08-21T11:37:02.404447Z", + "iopub.status.busy": "2023-08-21T11:37:02.403900Z", + "iopub.status.idle": "2023-08-21T11:37:02.411104Z", + "shell.execute_reply": "2023-08-21T11:37:02.410224Z" } }, "outputs": [ @@ -1676,10 +1676,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.474065Z", - "iopub.status.busy": "2023-07-12T09:01:15.473618Z", - "iopub.status.idle": "2023-07-12T09:01:15.478460Z", - "shell.execute_reply": "2023-07-12T09:01:15.477783Z" + "iopub.execute_input": "2023-08-21T11:37:02.414736Z", + "iopub.status.busy": "2023-08-21T11:37:02.414351Z", + "iopub.status.idle": "2023-08-21T11:37:02.419063Z", + "shell.execute_reply": "2023-08-21T11:37:02.418169Z" } }, "outputs": [], @@ -1732,10 +1732,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.481916Z", - "iopub.status.busy": "2023-07-12T09:01:15.481465Z", - "iopub.status.idle": "2023-07-12T09:01:15.543018Z", - "shell.execute_reply": "2023-07-12T09:01:15.542135Z" + "iopub.execute_input": "2023-08-21T11:37:02.423387Z", + "iopub.status.busy": "2023-08-21T11:37:02.422776Z", + "iopub.status.idle": "2023-08-21T11:37:02.507877Z", + "shell.execute_reply": "2023-08-21T11:37:02.506751Z" } }, "outputs": [ @@ -1759,13 +1759,15 @@ "use_fsl : \n", "matlab_exec : \n", "use_matlab : False\n", + "mrtrix_path : \n", + "use_mrtrix : \n", "use_smart_caching : False\n", "use_soma_workflow : False\n", "somaworkflow_computing_resource : \n", "somaworkflow_config_file : \n", "somaworkflow_keep_failed_workflows : True\n", "somaworkflow_keep_succeeded_workflows : False\n", - "somaworkflow_computing_resources_config : \n", + "somaworkflow_computing_resources_config : \n", "spm_directory : \n", "spm_standalone : \n", "spm_version : \n", @@ -1821,10 +1823,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.547812Z", - "iopub.status.busy": "2023-07-12T09:01:15.546421Z", - "iopub.status.idle": "2023-07-12T09:01:15.574258Z", - "shell.execute_reply": "2023-07-12T09:01:15.573387Z" + "iopub.execute_input": "2023-08-21T11:37:02.511863Z", + "iopub.status.busy": "2023-08-21T11:37:02.511431Z", + "iopub.status.idle": "2023-08-21T11:37:02.548086Z", + "shell.execute_reply": "2023-08-21T11:37:02.547104Z" } }, "outputs": [ @@ -1894,10 +1896,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.577973Z", - "iopub.status.busy": "2023-07-12T09:01:15.577491Z", - "iopub.status.idle": "2023-07-12T09:01:15.590803Z", - "shell.execute_reply": "2023-07-12T09:01:15.589881Z" + "iopub.execute_input": "2023-08-21T11:37:02.552804Z", + "iopub.status.busy": "2023-08-21T11:37:02.552518Z", + "iopub.status.idle": "2023-08-21T11:37:02.569871Z", + "shell.execute_reply": "2023-08-21T11:37:02.568704Z" } }, "outputs": [ @@ -1945,10 +1947,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.594270Z", - "iopub.status.busy": "2023-07-12T09:01:15.593774Z", - "iopub.status.idle": "2023-07-12T09:01:15.602484Z", - "shell.execute_reply": "2023-07-12T09:01:15.601790Z" + "iopub.execute_input": "2023-08-21T11:37:02.574521Z", + "iopub.status.busy": "2023-08-21T11:37:02.574208Z", + "iopub.status.idle": "2023-08-21T11:37:02.584847Z", + "shell.execute_reply": "2023-08-21T11:37:02.583953Z" } }, "outputs": [], @@ -1994,10 +1996,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.605613Z", - "iopub.status.busy": "2023-07-12T09:01:15.605179Z", - "iopub.status.idle": "2023-07-12T09:01:15.626831Z", - "shell.execute_reply": "2023-07-12T09:01:15.626110Z" + "iopub.execute_input": "2023-08-21T11:37:02.588710Z", + "iopub.status.busy": "2023-08-21T11:37:02.588246Z", + "iopub.status.idle": "2023-08-21T11:37:02.611886Z", + "shell.execute_reply": "2023-08-21T11:37:02.610971Z" } }, "outputs": [ @@ -2005,8 +2007,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "jobs: [, ]\n", - "dependencies: {(, )}\n" + "jobs: [, ]\n", + "dependencies: {(, )}\n" ] } ], @@ -2037,10 +2039,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:15.630483Z", - "iopub.status.busy": "2023-07-12T09:01:15.630026Z", - "iopub.status.idle": "2023-07-12T09:01:18.750856Z", - "shell.execute_reply": "2023-07-12T09:01:18.750122Z" + "iopub.execute_input": "2023-08-21T11:37:02.615871Z", + "iopub.status.busy": "2023-08-21T11:37:02.615536Z", + "iopub.status.idle": "2023-08-21T11:37:05.762657Z", + "shell.execute_reply": "2023-08-21T11:37:05.761794Z" } }, "outputs": [ @@ -2108,10 +2110,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:18.754807Z", - "iopub.status.busy": "2023-07-12T09:01:18.754426Z", - "iopub.status.idle": "2023-07-12T09:01:18.759353Z", - "shell.execute_reply": "2023-07-12T09:01:18.758713Z" + "iopub.execute_input": "2023-08-21T11:37:05.766887Z", + "iopub.status.busy": "2023-08-21T11:37:05.766690Z", + "iopub.status.idle": "2023-08-21T11:37:05.772460Z", + "shell.execute_reply": "2023-08-21T11:37:05.771671Z" } }, "outputs": [], @@ -2139,10 +2141,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:18.762584Z", - "iopub.status.busy": "2023-07-12T09:01:18.762204Z", - "iopub.status.idle": "2023-07-12T09:01:21.820169Z", - "shell.execute_reply": "2023-07-12T09:01:21.819359Z" + "iopub.execute_input": "2023-08-21T11:37:05.776112Z", + "iopub.status.busy": "2023-08-21T11:37:05.775907Z", + "iopub.status.idle": "2023-08-21T11:37:08.865451Z", + "shell.execute_reply": "2023-08-21T11:37:08.864303Z" } }, "outputs": [ @@ -2180,10 +2182,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:21.824586Z", - "iopub.status.busy": "2023-07-12T09:01:21.823948Z", - "iopub.status.idle": "2023-07-12T09:01:25.100549Z", - "shell.execute_reply": "2023-07-12T09:01:25.099791Z" + "iopub.execute_input": "2023-08-21T11:37:08.871694Z", + "iopub.status.busy": "2023-08-21T11:37:08.871201Z", + "iopub.status.idle": "2023-08-21T11:37:12.172383Z", + "shell.execute_reply": "2023-08-21T11:37:12.171172Z" } }, "outputs": [ @@ -2247,10 +2249,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.104552Z", - "iopub.status.busy": "2023-07-12T09:01:25.103884Z", - "iopub.status.idle": "2023-07-12T09:01:25.108076Z", - "shell.execute_reply": "2023-07-12T09:01:25.107422Z" + "iopub.execute_input": "2023-08-21T11:37:12.177648Z", + "iopub.status.busy": "2023-08-21T11:37:12.177109Z", + "iopub.status.idle": "2023-08-21T11:37:12.184945Z", + "shell.execute_reply": "2023-08-21T11:37:12.183899Z" } }, "outputs": [ @@ -2258,7 +2260,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "['AFNIConfig', 'ANTSConfig', 'FSLConfig', 'MatlabConfig', 'SmartCachingConfig', 'SomaWorkflowConfig', 'SPMConfig']\n" + "['AFNIConfig', 'ANTSConfig', 'FSLConfig', 'MatlabConfig', 'MRTRIXConfig', 'SmartCachingConfig', 'SomaWorkflowConfig', 'SPMConfig']\n" ] } ], @@ -2286,10 +2288,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.111336Z", - "iopub.status.busy": "2023-07-12T09:01:25.110756Z", - "iopub.status.idle": "2023-07-12T09:01:25.150659Z", - "shell.execute_reply": "2023-07-12T09:01:25.149983Z" + "iopub.execute_input": "2023-08-21T11:37:12.188801Z", + "iopub.status.busy": "2023-08-21T11:37:12.188394Z", + "iopub.status.idle": "2023-08-21T11:37:12.243778Z", + "shell.execute_reply": "2023-08-21T11:37:12.242726Z" } }, "outputs": [], @@ -2334,10 +2336,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.154473Z", - "iopub.status.busy": "2023-07-12T09:01:25.153940Z", - "iopub.status.idle": "2023-07-12T09:01:25.197929Z", - "shell.execute_reply": "2023-07-12T09:01:25.197280Z" + "iopub.execute_input": "2023-08-21T11:37:12.247557Z", + "iopub.status.busy": "2023-08-21T11:37:12.247368Z", + "iopub.status.idle": "2023-08-21T11:37:12.308369Z", + "shell.execute_reply": "2023-08-21T11:37:12.307553Z" } }, "outputs": [ @@ -2420,10 +2422,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.201571Z", - "iopub.status.busy": "2023-07-12T09:01:25.200927Z", - "iopub.status.idle": "2023-07-12T09:01:25.236455Z", - "shell.execute_reply": "2023-07-12T09:01:25.235602Z" + "iopub.execute_input": "2023-08-21T11:37:12.313062Z", + "iopub.status.busy": "2023-08-21T11:37:12.312200Z", + "iopub.status.idle": "2023-08-21T11:37:12.365184Z", + "shell.execute_reply": "2023-08-21T11:37:12.364211Z" } }, "outputs": [ @@ -2471,10 +2473,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.240229Z", - "iopub.status.busy": "2023-07-12T09:01:25.239629Z", - "iopub.status.idle": "2023-07-12T09:01:25.243553Z", - "shell.execute_reply": "2023-07-12T09:01:25.242842Z" + "iopub.execute_input": "2023-08-21T11:37:12.370369Z", + "iopub.status.busy": "2023-08-21T11:37:12.370139Z", + "iopub.status.idle": "2023-08-21T11:37:12.374297Z", + "shell.execute_reply": "2023-08-21T11:37:12.373566Z" } }, "outputs": [], @@ -2504,10 +2506,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.247503Z", - "iopub.status.busy": "2023-07-12T09:01:25.247103Z", - "iopub.status.idle": "2023-07-12T09:01:25.267304Z", - "shell.execute_reply": "2023-07-12T09:01:25.266614Z" + "iopub.execute_input": "2023-08-21T11:37:12.378460Z", + "iopub.status.busy": "2023-08-21T11:37:12.378251Z", + "iopub.status.idle": "2023-08-21T11:37:12.403907Z", + "shell.execute_reply": "2023-08-21T11:37:12.403013Z" } }, "outputs": [], @@ -2582,10 +2584,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.270992Z", - "iopub.status.busy": "2023-07-12T09:01:25.270574Z", - "iopub.status.idle": "2023-07-12T09:01:25.276043Z", - "shell.execute_reply": "2023-07-12T09:01:25.275384Z" + "iopub.execute_input": "2023-08-21T11:37:12.407767Z", + "iopub.status.busy": "2023-08-21T11:37:12.407539Z", + "iopub.status.idle": "2023-08-21T11:37:12.412094Z", + "shell.execute_reply": "2023-08-21T11:37:12.411203Z" } }, "outputs": [], @@ -2620,10 +2622,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.279683Z", - "iopub.status.busy": "2023-07-12T09:01:25.279174Z", - "iopub.status.idle": "2023-07-12T09:01:25.287975Z", - "shell.execute_reply": "2023-07-12T09:01:25.287353Z" + "iopub.execute_input": "2023-08-21T11:37:12.416767Z", + "iopub.status.busy": "2023-08-21T11:37:12.416575Z", + "iopub.status.idle": "2023-08-21T11:37:12.423540Z", + "shell.execute_reply": "2023-08-21T11:37:12.422676Z" } }, "outputs": [ @@ -2701,10 +2703,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.291432Z", - "iopub.status.busy": "2023-07-12T09:01:25.291107Z", - "iopub.status.idle": "2023-07-12T09:01:25.461523Z", - "shell.execute_reply": "2023-07-12T09:01:25.460819Z" + "iopub.execute_input": "2023-08-21T11:37:12.428994Z", + "iopub.status.busy": "2023-08-21T11:37:12.428801Z", + "iopub.status.idle": "2023-08-21T11:37:12.655438Z", + "shell.execute_reply": "2023-08-21T11:37:12.654528Z" } }, "outputs": [ @@ -2795,10 +2797,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.464998Z", - "iopub.status.busy": "2023-07-12T09:01:25.464561Z", - "iopub.status.idle": "2023-07-12T09:01:25.481784Z", - "shell.execute_reply": "2023-07-12T09:01:25.481140Z" + "iopub.execute_input": "2023-08-21T11:37:12.660277Z", + "iopub.status.busy": "2023-08-21T11:37:12.659677Z", + "iopub.status.idle": "2023-08-21T11:37:12.680645Z", + "shell.execute_reply": "2023-08-21T11:37:12.679847Z" } }, "outputs": [ @@ -2843,10 +2845,10 @@ "deletable": true, "editable": true, "execution": { - "iopub.execute_input": "2023-07-12T09:01:25.485379Z", - "iopub.status.busy": "2023-07-12T09:01:25.484695Z", - "iopub.status.idle": "2023-07-12T09:01:25.488588Z", - "shell.execute_reply": "2023-07-12T09:01:25.487946Z" + "iopub.execute_input": "2023-08-21T11:37:12.684049Z", + "iopub.status.busy": "2023-08-21T11:37:12.683860Z", + "iopub.status.idle": "2023-08-21T11:37:12.689511Z", + "shell.execute_reply": "2023-08-21T11:37:12.688738Z" } }, "outputs": [], diff --git a/user_guide_tree/advanced_usage.html b/user_guide_tree/advanced_usage.html index ab75975d6..2fea08ff9 100644 --- a/user_guide_tree/advanced_usage.html +++ b/user_guide_tree/advanced_usage.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,11 +104,11 @@

    Navigation

    -

    Parameters completion

    +

    Parameters completion

    -

    Completion model

    +

    Completion model

    -

    Using completion

    +

    Using completion

    Process parameters completion for filenames is working using attributes assigned to a process or to its parameters. For instance a given data organization may organize data by study, center, subject, … These study, center, subject elements can be seen as attributes.

    Using an existing completion model is a matter of configuration in StudyConfig. One must use the AttributesModule of StudyConfig, then specify which organization schemas to use.

    from capsul.api import StudyConfig
    @@ -153,7 +153,7 @@ 

    Using completion -

    Graphical interface

    +

    Graphical interface

    Once PyQt4 or PySide QApplication is created:

    from capsul.qt_gui.widgets.attributed_process_widget \
         import AttributedProcessWidget
    @@ -165,10 +165,10 @@ 

    Graphical interface -

    Defining a custom completion system

    +

    Defining a custom completion system

    It may require to define a few classes to handle the different aspects.

    -

    Path building from attributes

    +

    Path building from attributes

    -

    Declaring attributes sets

    +

    Declaring attributes sets

    class CustomAttributesSchema(AttributesSchema):
         factory_id = 'custom_ex'
     
    @@ -215,7 +215,7 @@ 

    Declaring attributes sets -

    Declaring process and parameters attributes

    +

    Declaring process and parameters attributes

    class DummyProcessAttributes(ProcessAttributes):
         factory_id = 'DummyProcess'
     
    @@ -230,16 +230,16 @@ 

    Declaring process and parameters attributestruc and bidule will inherit the attributes declared for Acquisition: namely, center and subject.

    -

    Putting things together

    +

    Putting things together

    The modules containing these definitions must be registered in study_config.attributes_schema_paths, and their names have to be used in study_config.attributes_schemas and study_config.path_completion

    -

    File Organization Model (FOM)

    +

    File Organization Model (FOM)

    FOMs are defined in the Soma-base library as an independent system, and used in Capsul as a files completion implementation.

    -

    Using FOMs

    +

    Using FOMs

    FOMs are integrated in the completion system. It is activated using the FomConfig module of StudyConfig:

    from capsul.api import StudyConfig
     
    @@ -258,7 +258,7 @@ 

    Using FOMs -

    Defining FOMs

    +

    Defining FOMs

    FOMs are JSON files placed in a FOM path defined somewhere in the application - generally <brainvisa_dir>/share/fom. They define how a set of attributes are used to build paths for processes parameters.

    In Capsul a StudyConfig option, StudyConfig.fom_path is defined in the FomConfig module to handle the FOM search path.

    Ex:

    @@ -320,7 +320,7 @@

    Defining FOMs -

    Iterating processing over multiple data

    +

    Iterating processing over multiple data

    Iterating is done by creating a small pipeline containing an iterative node. This can be done using the utility method get_iteration_pipeline() of StudyConfig:

    from capsul.api import Pipeline, StudyConfig
     from capsul.attributes.completion_engine import ProcessCompletionEngine
    @@ -401,8 +401,8 @@ 

    Navigation

    \ No newline at end of file diff --git a/user_guide_tree/index.html b/user_guide_tree/index.html index 43beb939b..4b3eb519d 100644 --- a/user_guide_tree/index.html +++ b/user_guide_tree/index.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,10 +104,10 @@

    Navigation

    -

    User Guide

    +

    User Guide

    The main documentation of all the proposed scripts.

    -

    Tutorial

    +

    Tutorial

    Tutorial is available as a Jupyter notebook (Jupyter is the new name for IPython notebook).

    \ No newline at end of file diff --git a/user_guide_tree/xml_spec.html b/user_guide_tree/xml_spec.html index 477b79360..948f399c9 100644 --- a/user_guide_tree/xml_spec.html +++ b/user_guide_tree/xml_spec.html @@ -1,6 +1,6 @@ - + @@ -13,13 +13,13 @@ - - - + + + - - - + + + @@ -104,9 +104,9 @@

    Navigation

    -

    XML 2.0 specification

    +

    XML 2.0 specification

    -

    Table of content

    +

    Table of content

    • Processes

    • Parameters types

    • @@ -129,7 +129,7 @@

      Table of content -

      Processes

      +

      Processes

      The XML process specification makes it possible to use a standard Python function and to associate it with an XML string that enables the creation of a Process instance. This XML string will define the type @@ -224,7 +224,7 @@

      Processes -

      Parameter types

      +

      Parameter types

      For <input>, <output> and <return> elements, the type attribute can have the following values:

    -

    Process roles

    +

    Process roles

    The role of a process gives information about the expected execution context. It can be used to decide whether a process should be executed in a given context or not. The role can also be used to propose a @@ -274,7 +274,7 @@

    Process roles -

    Association between a Python function and an XML string

    +

    Association between a Python function and an XML string

    There are two ways to perform the association between the function and the XML. The recommended method is to use a decorator to explicitly define the XML string associated to the function. Here is an example :

    @@ -311,7 +311,7 @@

    Association between a Python function and an XML string

    -

    Processes examples

    +

    Processes examples

    from capsul.process.xml import xml_process
     
     @xml_process('''
    @@ -340,7 +340,7 @@ 

    Processes examples -

    Pipelines

    +

    Pipelines

    An XML pipeline is an XML document containing a single <pipeline> element that may contains some global properties for the pipeline. Since a pipeline is also a process, the <pipeline> @@ -355,12 +355,12 @@

    Pipelines<processes_selection> element is used to define a set of selectable process groups.

    -

    The <doc> element

    +

    The <doc> element

    This element has no attributes and contains the documentation of the process in a Sphinx compatible format.

    -

    The <process> element

    +

    The <process> element

    A <process> element adds a new process instance to the pipeline. This instance is given a name that can be used in other XML elements to reference it. The process instance is referencing a module which @@ -392,7 +392,7 @@

    The <process

    The <process> element can contain the following elements:

    -

    <set>

    +

    <set>

    The <set> element is used to set a fixed value to a parameter. It contains only two attributes:

      @@ -409,7 +409,7 @@

      <set>When a value is set on a parameter, it becomes an optional parameter.

    -

    <nipype>

    +

    <nipype>

    Capsul can use Nipype interfaces as process module. These interfaces uses traits types that have some parameters that need to be set in some contexts. The Nipype specific <nipype> element contains a @@ -431,7 +431,7 @@

    <nipype><

    -

    The <switch> element

    +

    The <switch> element

    Represents switch nodes. May be replaced by process selection if it proves to fulfill all the needs, but for now “old-style” switches still exist, and are the only ones which can be saved.

    @@ -444,7 +444,7 @@

    The <switch&

    Children:

    -

    <input>

    +

    <input>

    Input name for the switch. Input plugs will be a combination of input/output names <input>_switch_<output>

    Attributes:

    @@ -454,7 +454,7 @@

    <input>

    -

    <output>

    +

    <output>

    Output plug for the switch.

    Attributes:

      @@ -464,7 +464,7 @@

      <output><

    -

    The <optional_output_switch> element

    +

    The <optional_output_switch> element

    Represents a specific switch node which allows to have optional output files in the pipeline parameters, while keeping them available for temporary values inside the pipeline if they are left undefined.

    @@ -475,7 +475,7 @@

    The <optiona

    Children:

    -

    <input>

    +

    <input>

    Input name for the switch. Input plugs will be a combination of input/output names <input>_switch_<output>. In an optional output switch, only one input is allowed.

    @@ -486,7 +486,7 @@

    <input>

    -

    <output>

    +

    <output>

    Output plug for the switch. Only one output is allowed.

    Attributes:

      @@ -495,7 +495,7 @@

      <output><

    -

    The <processes_selection> element

    +

    The <processes_selection> element

    The <processes_selection> element defines a series of processes groups. Each processes group is composed by a series of processes added in the pipeline with the <process> element. Only one of these @@ -535,10 +535,10 @@

    The <process element <#the-process-element>`__ above).

    -

    The <pipeline_steps> element

    +

    The <pipeline_steps> element

    Children:

    -

    <step>

    +

    <step>

    Attributes:

    • name: name for the step

    • @@ -546,7 +546,7 @@

      <step>

      Children:

      -
      <node>
      +
      <node>

      Attributes:

      • name: name of an existing pipeline node which will be part of @@ -556,7 +556,7 @@

        <node>
      -

      The <gui> element

      +

      The <gui> element

      The <gui> element enables to define the position of nodes for a graphical representation. The position of a node is given by a <position> element that contains three attributes :

      @@ -571,7 +571,7 @@

      The <gui> floating point.

      -

      Pipeline example

      +

      Pipeline example

      <pipeline capsul_xml="2.0">
           <process name="threshold_gt_1"
            module="capsul.process.test.test_load_from_description.threshold">
      @@ -668,7 +668,7 @@ 

      Pipeline example -

      API

      +

      API

      Definition of processes and pipelines in Capsul XML 2.0 are recognised by get_process_instance. For an XML process, the identifier of the process is <module>.<function> where <module> is the fully @@ -705,7 +705,7 @@

      API

      -

      XML validation

      +

      XML validation

      There is no validation of the XML document in get_process_instance. As a consequence, one will only get an error if the XML does not allow to build a process or pipeline class (for instance if a mandatory @@ -795,8 +795,8 @@

      Navigation

    \ No newline at end of file