diff --git a/404.html b/404.html index 49be0b93..daeabc57 100644 --- a/404.html +++ b/404.html @@ -21,7 +21,7 @@ </head> <body> <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><!----><div class="VPContent" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><!--[--><div class="NotFound" data-v-a494bd1d data-v-c70503b8><p class="code" data-v-c70503b8>404</p><h1 class="title" data-v-c70503b8>PAGE NOT FOUND</h1><div class="divider" data-v-c70503b8></div><blockquote class="quote" data-v-c70503b8> But if you don't change your direction, and if you keep looking, you may end up where you are heading. </blockquote><div class="action" data-v-c70503b8><a class="link" href="/" aria-label="go to home" data-v-c70503b8> Take me home </a></div></div><!--]--></div><footer class="VPFooter" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/about/approach.html b/about/approach.html index ed815590..88e5cde4 100644 --- a/about/approach.html +++ b/about/approach.html @@ -25,7 +25,7 @@ </head> <body> <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link active" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><!----><div class="VPContent" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _about_approach" data-v-c4b0d3cf><div><h1 id="about-machinable-s-approach" tabindex="-1">About machinable's approach <a class="header-anchor" href="#about-machinable-s-approach" aria-label="Permalink to "About machinable's approach""></a></h1><div class="tip custom-block"><p class="custom-block-title">Optional reading</p><p>This background discusses the big-picture approach. For a hands-on tutorial, refer to the <a href="./../guide/introduction.html">guide</a>.</p></div><div class="warning custom-block"><p class="custom-block-title">Coming soon</p><p>This section is currently under construction</p></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/about/approach.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/assets/examples_aimstack-storage_index.md.ed71c2fe.js b/assets/examples_aimstack-storage_index.md.728bc3cc.js similarity index 99% rename from assets/examples_aimstack-storage_index.md.ed71c2fe.js rename to assets/examples_aimstack-storage_index.md.728bc3cc.js index ae6f6eb9..24e8870e 100644 --- a/assets/examples_aimstack-storage_index.md.ed71c2fe.js +++ b/assets/examples_aimstack-storage_index.md.728bc3cc.js @@ -2,7 +2,7 @@ import{_ as s,o as a,c as n,O as l}from"./chunks/framework.62020867.js";const C= <span class="line"></span> <span class="line"><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">aimstack</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">repo</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">./path/to/aim-repo</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">}).</span><span style="color:#82AAFF;">__enter__</span><span style="color:#89DDFF;">()</span></span> <span class="line"></span> -<span class="line"><span style="color:#676E95;font-style:italic;"># your code</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-WEfoa" id="tab-8xwIXcX" checked="checked"><label for="tab-8xwIXcX">aimstack.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> List</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span></span> +<span class="line"><span style="color:#676E95;font-style:italic;"># your code</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-wXGAQ" id="tab-EbCok2p" checked="checked"><label for="tab-EbCok2p">aimstack.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> List</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> os</span></span> <span class="line"></span> diff --git a/assets/examples_aimstack-storage_index.md.ed71c2fe.lean.js b/assets/examples_aimstack-storage_index.md.728bc3cc.lean.js similarity index 100% rename from assets/examples_aimstack-storage_index.md.ed71c2fe.lean.js rename to assets/examples_aimstack-storage_index.md.728bc3cc.lean.js diff --git a/assets/examples_globus-storage_index.md.565fd1a1.js b/assets/examples_globus-storage_index.md.b5f6bec3.js similarity index 99% rename from assets/examples_globus-storage_index.md.565fd1a1.js rename to assets/examples_globus-storage_index.md.b5f6bec3.js index fffc5b80..50a10fcd 100644 --- a/assets/examples_globus-storage_index.md.565fd1a1.js +++ b/assets/examples_globus-storage_index.md.b5f6bec3.js @@ -13,7 +13,7 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i= <span class="line"><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">matches</span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> <span class="line"><span style="color:#676E95;font-style:italic;"># download from globus</span></span> -<span class="line"><span style="color:#A6ACCD;">storage</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">download</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">matches</span><span style="color:#89DDFF;">[</span><span style="color:#F78C6C;">0</span><span style="color:#89DDFF;">].</span><span style="color:#F07178;">uuid</span><span style="color:#89DDFF;">)</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-uj8kQ" id="tab-eHaiZnU" checked="checked"><label for="tab-eHaiZnU">globus.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> TYPE_CHECKING</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> List</span></span> +<span class="line"><span style="color:#A6ACCD;">storage</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">download</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">matches</span><span style="color:#89DDFF;">[</span><span style="color:#F78C6C;">0</span><span style="color:#89DDFF;">].</span><span style="color:#F07178;">uuid</span><span style="color:#89DDFF;">)</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-AM_4D" id="tab-NwhnFVP" checked="checked"><label for="tab-NwhnFVP">globus.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> TYPE_CHECKING</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> List</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> os</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> time</span></span> diff --git a/assets/examples_globus-storage_index.md.565fd1a1.lean.js b/assets/examples_globus-storage_index.md.b5f6bec3.lean.js similarity index 100% rename from assets/examples_globus-storage_index.md.565fd1a1.lean.js rename to assets/examples_globus-storage_index.md.b5f6bec3.lean.js diff --git a/assets/examples_mpi-execution_index.md.8f6d3933.js b/assets/examples_mpi-execution_index.md.552b84cf.js similarity index 54% rename from assets/examples_mpi-execution_index.md.8f6d3933.js rename to assets/examples_mpi-execution_index.md.552b84cf.js index 7f4d3475..9220e486 100644 --- a/assets/examples_mpi-execution_index.md.8f6d3933.js +++ b/assets/examples_mpi-execution_index.md.552b84cf.js @@ -1,9 +1,8 @@ -import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const C=JSON.parse('{"title":"MPI execution","description":"","frontmatter":{},"headers":[],"relativePath":"examples/mpi-execution/index.md","filePath":"examples/mpi-execution/index.md"}'),p={name:"examples/mpi-execution/index.md"},o=l(`<h1 id="mpi-execution" tabindex="-1">MPI execution <a class="header-anchor" href="#mpi-execution" aria-label="Permalink to "MPI execution""></a></h1><p>Integration to launch <a href="https://en.wikipedia.org/wiki/Message_Passing_Interface" target="_blank" rel="noreferrer">MPI</a> jobs.</p><h2 id="usage-example" tabindex="-1">Usage example <a class="header-anchor" href="#usage-example" aria-label="Permalink to "Usage example""></a></h2><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> +import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i=JSON.parse('{"title":"MPI execution","description":"","frontmatter":{},"headers":[],"relativePath":"examples/mpi-execution/index.md","filePath":"examples/mpi-execution/index.md"}'),p={name:"examples/mpi-execution/index.md"},o=l(`<h1 id="mpi-execution" tabindex="-1">MPI execution <a class="header-anchor" href="#mpi-execution" aria-label="Permalink to "MPI execution""></a></h1><p>Integration to launch <a href="https://en.wikipedia.org/wiki/Message_Passing_Interface" target="_blank" rel="noreferrer">MPI</a> jobs.</p><h2 id="usage-example" tabindex="-1">Usage example <a class="header-anchor" href="#usage-example" aria-label="Permalink to "Usage example""></a></h2><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">ranks</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#F78C6C;">8</span><span style="color:#89DDFF;">}):</span></span> -<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># your MPI ready component</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-5B43x" id="tab-28AePBd" checked="checked"><label for="tab-28AePBd">mpi.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Union</span></span> +<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># your MPI ready component</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-R5v6V" id="tab-StGNsIL" checked="checked"><label for="tab-StGNsIL">mpi.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Union</span></span> <span class="line"></span> -<span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> shutil</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> sys</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Execution</span></span> @@ -18,7 +17,9 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const C= <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> preamble</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">""</span></span> <span class="line"><span style="color:#A6ACCD;"> mpi</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpirun</span><span style="color:#89DDFF;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> python</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None</span></span> <span class="line"><span style="color:#A6ACCD;"> resume_failed</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Union</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">bool</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">new</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">skip</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">]]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">False</span></span> +<span class="line"><span style="color:#A6ACCD;"> dry</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bool</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">False</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">def</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">on_compute_default_resources</span><span style="color:#89DDFF;">(</span><span style="color:#F07178;font-style:italic;">self</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#A6ACCD;font-style:italic;">executable</span><span style="color:#89DDFF;">):</span></span> <span class="line"><span style="color:#A6ACCD;"> resources </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{}</span></span> @@ -43,69 +44,84 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const C= <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">elif</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">resume_failed</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">==</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">skip</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">continue</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">raise</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">ExecutionFailed</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">module</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> <</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">)> has previously been executed unsuccessfully. Set \`resume_failed\` to True, 'new' or 'skip' to handle resubmission."</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> msg </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">module</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> <</span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">)> has previously been executed unsuccessfully. Set \`resume_failed\` to True, 'new' or 'skip' to handle resubmission."</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">dry</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Dry run ... </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> msg</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">continue</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">raise</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">ExecutionFailed</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">msg</span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> resources </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">computed_resources</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> python </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">python</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">or</span><span style="color:#A6ACCD;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">executable</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None:</span></span> -<span class="line"><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">dispatch</span><span style="color:#89DDFF;">()</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">#!/usr/bin/env bash</span><span style="color:#A6ACCD;">\\n</span><span style="color:#89DDFF;">"</span></span> -<span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span></span> -<span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">dispatch_code</span><span style="color:#89DDFF;">()</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">#!/usr/bin/env bash</span><span style="color:#A6ACCD;">\\n</span><span style="color:#89DDFF;">"</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> script_file </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">chmodx</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi.sh</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> -<span class="line"><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">shutil</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">which</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi</span><span style="color:#89DDFF;">)]</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">for</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;font-style:italic;">in</span><span style="color:#A6ACCD;"> resources</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">items</span><span style="color:#89DDFF;">():</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;">not</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">in</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[None,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">True]:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">startswith</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">--</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">):</span></span> -<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">k</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">=</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">v</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">"</span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">extend</span><span style="color:#89DDFF;">([</span><span style="color:#82AAFF;">k</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">v</span><span style="color:#89DDFF;">)])</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">k</span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">script_file</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># add debug information</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">\\n</span><span style="color:#89DDFF;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"# </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">module</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> <</span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">></span><span style="color:#A6ACCD;">\\n</span><span style="color:#C3E88D;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"# </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">()</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">></span><span style="color:#A6ACCD;">\\n</span><span style="color:#C3E88D;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">\\n</span><span style="color:#89DDFF;">"</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">))</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">dispatch_code</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">python</span><span style="color:#89DDFF;">=</span><span style="color:#82AAFF;">python</span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi.json</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">data</span><span style="color:#89DDFF;">={</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">cmd</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">script</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">},</span></span> +<span class="line"><span style="color:#A6ACCD;"> script_file </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">chmodx</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi.sh</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">open</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">output.log</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">w</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">buffering</span><span style="color:#89DDFF;">=</span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">try</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">run_and_stream</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">stdout_handler</span><span style="color:#89DDFF;">=</span><span style="color:#C792EA;">lambda</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">o</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span></span> -<span class="line"><span style="color:#82AAFF;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stdout</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">],</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">stderr_handler</span><span style="color:#89DDFF;">=</span><span style="color:#C792EA;">lambda</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">o</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span></span> -<span class="line"><span style="color:#82AAFF;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stderr</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">],</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">except</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">KeyboardInterrupt</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> _ex</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">raise</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">KeyboardInterrupt</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Interrupting \`</span><span style="color:#89DDFF;">"</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">+</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">)</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">+</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">\`</span><span style="color:#89DDFF;">"</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> _ex</span></span></code></pre></div></div></div>`,6),e=[o];function t(c,F,r,D,y,A){return n(),a("div",null,e)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None:</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[]</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">mpi</span><span style="color:#89DDFF;">]</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">for</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;font-style:italic;">in</span><span style="color:#A6ACCD;"> resources</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">items</span><span style="color:#89DDFF;">():</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">or</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">True:</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">k</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">startswith</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">--</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">):</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">k</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">=</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">v</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">"</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">extend</span><span style="color:#89DDFF;">([</span><span style="color:#82AAFF;">k</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">v</span><span style="color:#89DDFF;">)])</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">script_file</span><span style="color:#89DDFF;">)</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">))</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi.json</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">data</span><span style="color:#89DDFF;">={</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">cmd</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">script</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">},</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">dry</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Dry run ... </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> executable</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">continue</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">open</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">output.log</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">w</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">buffering</span><span style="color:#89DDFF;">=</span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">try</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">run_and_stream</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">stdout_handler</span><span style="color:#89DDFF;">=</span><span style="color:#C792EA;">lambda</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">o</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span></span> +<span class="line"><span style="color:#82AAFF;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stdout</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">stderr_handler</span><span style="color:#89DDFF;">=</span><span style="color:#C792EA;">lambda</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">o</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span></span> +<span class="line"><span style="color:#82AAFF;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stderr</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">except</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">KeyboardInterrupt</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> _ex</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">raise</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">KeyboardInterrupt</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Interrupting \`</span><span style="color:#89DDFF;">"</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">+</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">)</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">+</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">\`</span><span style="color:#89DDFF;">"</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> _ex</span></span></code></pre></div></div></div>`,6),e=[o];function t(c,F,r,D,y,A){return n(),a("div",null,e)}const u=s(p,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/examples_mpi-execution_index.md.8f6d3933.lean.js b/assets/examples_mpi-execution_index.md.552b84cf.lean.js similarity index 73% rename from assets/examples_mpi-execution_index.md.8f6d3933.lean.js rename to assets/examples_mpi-execution_index.md.552b84cf.lean.js index d632f238..1ae4376e 100644 --- a/assets/examples_mpi-execution_index.md.8f6d3933.lean.js +++ b/assets/examples_mpi-execution_index.md.552b84cf.lean.js @@ -1 +1 @@ -import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const C=JSON.parse('{"title":"MPI execution","description":"","frontmatter":{},"headers":[],"relativePath":"examples/mpi-execution/index.md","filePath":"examples/mpi-execution/index.md"}'),p={name:"examples/mpi-execution/index.md"},o=l("",6),e=[o];function t(c,F,r,D,y,A){return n(),a("div",null,e)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; +import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i=JSON.parse('{"title":"MPI execution","description":"","frontmatter":{},"headers":[],"relativePath":"examples/mpi-execution/index.md","filePath":"examples/mpi-execution/index.md"}'),p={name:"examples/mpi-execution/index.md"},o=l("",6),e=[o];function t(c,F,r,D,y,A){return n(),a("div",null,e)}const u=s(p,[["render",t]]);export{i as __pageData,u as default}; diff --git a/assets/examples_require-execution_index.md.f9f6e603.js b/assets/examples_require-execution_index.md.c82a5923.js similarity index 98% rename from assets/examples_require-execution_index.md.f9f6e603.js rename to assets/examples_require-execution_index.md.c82a5923.js index da6b1d95..57b88ace 100644 --- a/assets/examples_require-execution_index.md.f9f6e603.js +++ b/assets/examples_require-execution_index.md.c82a5923.js @@ -1,7 +1,7 @@ import{_ as s,o as a,c as n,O as l}from"./chunks/framework.62020867.js";const C=JSON.parse('{"title":"Require execution","description":"","frontmatter":{},"headers":[],"relativePath":"examples/require-execution/index.md","filePath":"examples/require-execution/index.md"}'),p={name:"examples/require-execution/index.md"},o=l(`<h1 id="require-execution" tabindex="-1">Require execution <a class="header-anchor" href="#require-execution" aria-label="Permalink to "Require execution""></a></h1><p>A way to assert that components have been cached.</p><h2 id="usage-example" tabindex="-1">Usage example <a class="header-anchor" href="#usage-example" aria-label="Permalink to "Usage example""></a></h2><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">require</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">):</span></span> -<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># components to check</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-GWc8l" id="tab-FTiECLK" checked="checked"><label for="tab-FTiECLK">require.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Execution</span></span> +<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># components to check</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-rP2q4" id="tab-eMbEKvp" checked="checked"><label for="tab-eMbEKvp">require.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Execution</span></span> <span class="line"></span> <span class="line"></span> <span class="line"><span style="color:#C792EA;">class</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Require</span><span style="color:#89DDFF;">(</span><span style="color:#FFCB6B;">Execution</span><span style="color:#89DDFF;">):</span></span> diff --git a/assets/examples_require-execution_index.md.f9f6e603.lean.js b/assets/examples_require-execution_index.md.c82a5923.lean.js similarity index 100% rename from assets/examples_require-execution_index.md.f9f6e603.lean.js rename to assets/examples_require-execution_index.md.c82a5923.lean.js diff --git a/assets/examples_slurm-execution_index.md.2da5de23.js b/assets/examples_slurm-execution_index.md.c22a144a.js similarity index 92% rename from assets/examples_slurm-execution_index.md.2da5de23.js rename to assets/examples_slurm-execution_index.md.c22a144a.js index 7d6f3169..af4057c5 100644 --- a/assets/examples_slurm-execution_index.md.2da5de23.js +++ b/assets/examples_slurm-execution_index.md.c22a144a.js @@ -1,7 +1,7 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i=JSON.parse('{"title":"Slurm execution","description":"","frontmatter":{},"headers":[],"relativePath":"examples/slurm-execution/index.md","filePath":"examples/slurm-execution/index.md"}'),o={name:"examples/slurm-execution/index.md"},p=l(`<h1 id="slurm-execution" tabindex="-1">Slurm execution <a class="header-anchor" href="#slurm-execution" aria-label="Permalink to "Slurm execution""></a></h1><p>Integration to submit to the <a href="https://slurm.schedmd.com/documentation.html" target="_blank" rel="noreferrer">Slurm</a> scheduler.</p><h2 id="usage-example" tabindex="-1">Usage example <a class="header-anchor" href="#usage-example" aria-label="Permalink to "Usage example""></a></h2><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">slurm</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">ranks</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#F78C6C;">8</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">preamble</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">mpirun</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">}):</span></span> -<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># your component</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-mo9Ip" id="tab-3L-2HuR" checked="checked"><label for="tab-3L-2HuR">slurm.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Union</span></span> +<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># your component</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-xgqXu" id="tab-e28PKTw" checked="checked"><label for="tab-e28PKTw">slurm.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Union</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> os</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> subprocess</span></span> @@ -101,6 +101,7 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i= <span class="line"><span style="color:#A6ACCD;"> confirm</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bool</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">True</span></span> <span class="line"><span style="color:#A6ACCD;"> copy_project_source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bool</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">True</span></span> <span class="line"><span style="color:#A6ACCD;"> resume_failed</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Union</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">bool</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">new</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">skip</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">]]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">False</span></span> +<span class="line"><span style="color:#A6ACCD;"> dry</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bool</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">False</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">def</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">on_before_dispatch</span><span style="color:#89DDFF;">(</span><span style="color:#F07178;font-style:italic;">self</span><span style="color:#89DDFF;">):</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">confirm</span><span style="color:#89DDFF;">:</span></span> @@ -151,7 +152,7 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i= <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> source_code </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> Project</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">().</span><span style="color:#82AAFF;">path</span><span style="color:#89DDFF;">()</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">copy_project_source</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">copy_project_source</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">and</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">not</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">dry</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Copy project source code ...</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> source_code </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">source_code</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">rsync</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">-a</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Project</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">().</span><span style="color:#82AAFF;">path</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">""</span><span style="color:#89DDFF;">),</span><span style="color:#A6ACCD;"> source_code</span><span style="color:#89DDFF;">]</span></span> @@ -162,7 +163,13 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i= <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> resources </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">computed_resources</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi</span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> mpi_args </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi_args</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi_args</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> mpi_args </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi_args</span></span> +<span class="line"><span style="color:#A6ACCD;"> ranks </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">ranks</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">None)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> ranks </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">not</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi_args</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> mpi_args </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> mpi_args</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">replace</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#F78C6C;">{ranks}</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">ranks</span><span style="color:#89DDFF;">))</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> mpi_args </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">-n </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">ranks</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">))</span></span> <span class="line"><span style="color:#A6ACCD;"> python </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">python</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">or</span><span style="color:#A6ACCD;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">executable</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># usage dependencies</span></span> @@ -202,6 +209,12 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i= <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span></span> <span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># add debug information</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">\\n</span><span style="color:#89DDFF;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"# </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">module</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> <</span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">></span><span style="color:#A6ACCD;">\\n</span><span style="color:#C3E88D;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"# </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">()</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">></span><span style="color:#A6ACCD;">\\n</span><span style="color:#C3E88D;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">\\n</span><span style="color:#89DDFF;">"</span></span> +<span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi</span><span style="color:#89DDFF;">[-</span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">!=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span></span> @@ -225,6 +238,19 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i= <span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">sbatch</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> script_file</span><span style="color:#89DDFF;">]</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">))</span></span> <span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">slurm.json</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">data</span><span style="color:#89DDFF;">={</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">job_id</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">None,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">cmd</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> sbatch_arguments</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">script</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">},</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">dry</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Dry run ... </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> executable</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">continue</span></span> +<span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">try</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> output </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> subprocess</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">run</span><span style="color:#89DDFF;">(</span></span> <span class="line"><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> @@ -246,7 +272,7 @@ import{_ as s,o as n,c as a,O as l}from"./chunks/framework.62020867.js";const i= <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">job_id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> named \`</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">resources</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">--job-name</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">]</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">\` for </span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">()</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> (output at </span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">resources</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">--output</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">]</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">)"</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># save job information</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># update job information</span></span> <span class="line"><span style="color:#A6ACCD;"> jobs</span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> job_id</span></span> <span class="line"><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">slurm.json</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> diff --git a/assets/examples_slurm-execution_index.md.2da5de23.lean.js b/assets/examples_slurm-execution_index.md.c22a144a.lean.js similarity index 100% rename from assets/examples_slurm-execution_index.md.2da5de23.lean.js rename to assets/examples_slurm-execution_index.md.c22a144a.lean.js diff --git a/assets/guide_component.md.e71caaa7.js b/assets/guide_component.md.cd64290d.js similarity index 98% rename from assets/guide_component.md.e71caaa7.js rename to assets/guide_component.md.cd64290d.js index be7f4020..f7d77626 100644 --- a/assets/guide_component.md.e71caaa7.js +++ b/assets/guide_component.md.cd64290d.js @@ -17,7 +17,7 @@ import{_ as p,D as t,o as c,c as r,z as n,a as s,G as o,B as l,O as e}from"./chu <span class="line"><span style="color:#89DDFF;">>>></span><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">launch</span><span style="color:#89DDFF;">()</span></span> <span class="line"><span style="color:#A6ACCD;">Downloading </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">mnist</span><span style="color:#89DDFF;">'</span><span style="color:#A6ACCD;"> ...</span></span></code></pre></div><p>If the execution is successful, the component is marked as finished.</p><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">>>></span><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">execution</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">is_finished</span><span style="color:#89DDFF;">()</span></span> <span class="line"><span style="color:#89DDFF;">True</span></span></code></pre></div><p>By design, component instances can only be executed once. They are automatically assigned a timestamp, random seed, as well as a nickname for easy identification.</p><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">>>></span><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">seed</span></span> -<span class="line"><span style="color:#F78C6C;">1632827863</span></span></code></pre></div><p>Invocations of <code>launch()</code> after successful execution, do not trigger another execution since the component is marked as cached. On the other hand, if the execution failed, calling <code>launch()</code> will resume the execution with the same configuration.</p><h2 id="implementing-custom-execution" tabindex="-1">Implementing custom execution <a class="header-anchor" href="#implementing-custom-execution" aria-label="Permalink to "Implementing custom execution""></a></h2><p>Components can be executed in different ways. You may, for example, like to run components using multiprocessing or execute in a cloud environment. However, instead of adding the execution logic directly to your component code, machinable makes it easy to separate concerns. You can encapsulate the execution implementation in its own execution class that can then be used to execute the component.</p>`,8),C=e(`<div class="vp-code-group"><div class="tabs"><input type="radio" name="group-r20xS" id="tab-4nu_84u" checked="checked"><label for="tab-4nu_84u">multiprocess.py</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> multiprocessing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Pool</span></span> +<span class="line"><span style="color:#F78C6C;">1632827863</span></span></code></pre></div><p>Invocations of <code>launch()</code> after successful execution, do not trigger another execution since the component is marked as cached. On the other hand, if the execution failed, calling <code>launch()</code> will resume the execution with the same configuration.</p><h2 id="implementing-custom-execution" tabindex="-1">Implementing custom execution <a class="header-anchor" href="#implementing-custom-execution" aria-label="Permalink to "Implementing custom execution""></a></h2><p>Components can be executed in different ways. You may, for example, like to run components using multiprocessing or execute in a cloud environment. However, instead of adding the execution logic directly to your component code, machinable makes it easy to separate concerns. You can encapsulate the execution implementation in its own execution class that can then be used to execute the component.</p>`,8),C=e(`<div class="vp-code-group"><div class="tabs"><input type="radio" name="group-AxYUx" id="tab-zTtgYtv" checked="checked"><label for="tab-zTtgYtv">multiprocess.py</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> multiprocessing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Pool</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Execution</span></span> <span class="line"></span> @@ -39,4 +39,4 @@ import{_ as p,D as t,o as c,c as r,z as n,a as s,G as o,B as l,O as e}from"./chu <span class="line"></span> <span class="line"><span style="color:#A6ACCD;">multiprocess </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">multiprocess</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">processes</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#F78C6C;">2</span><span style="color:#89DDFF;">})</span></span></code></pre></div><p>Then, to use it, we can wrap the launch in the execution context:</p><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> multiprocessing</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">launch</span><span style="color:#89DDFF;">()</span></span></code></pre></div><p>Check out the <a href="./../examples/">execution examples</a> that include generally useful implementations you may like to use in your projects.</p><h2 id="using-the-cli" tabindex="-1">Using the CLI <a class="header-anchor" href="#using-the-cli" aria-label="Permalink to "Using the CLI""></a></h2><p>Components can be launched directly from the command-line. The CLI works out of the box and closely mirrors the Python interface. To run a component, type its module name and method name, optionally followed by the configuration options, for example:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">machinable</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">mnist_data</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">batch_size=</span><span style="color:#F78C6C;">4</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--launch</span></span></code></pre></div><p>To use multiprocessing, you may type:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">machinable</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">mnist_data</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">batch_size=</span><span style="color:#F78C6C;">4</span><span style="color:#A6ACCD;"> \\</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">multiprocess</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">processes=</span><span style="color:#F78C6C;">4</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--launch</span></span></code></pre></div>`,12);function A(d,u,m,h,g,f){const a=t("Pydoc");return c(),r("div",null,[y,n("p",null,[s("While interfaces are designed to associate data with code, "),o(a,{caption:"components"},{default:l(()=>[s("machinable.Component")]),_:1}),s(" are the special case that allows for execution.")]),D,n("p",null,[s("Once implemented and configured, components can be executed by calling "),o(a,{caption:"launch()"},{default:l(()=>[s("machinable.Component.launch")]),_:1}),s(":")]),F,n("p",null,[s("To implement an execution, implement an interface that inherits from the "),o(a,null,{default:l(()=>[s("machinable.Execution")]),_:1}),s(" base class, for example:")]),C])}const x=p(i,[["render",A]]);export{b as __pageData,x as default}; +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">multiprocess</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">processes=</span><span style="color:#F78C6C;">4</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--launch</span></span></code></pre></div>`,12);function A(d,m,u,h,g,f){const a=t("Pydoc");return c(),r("div",null,[y,n("p",null,[s("While interfaces are designed to associate data with code, "),o(a,{caption:"components"},{default:l(()=>[s("machinable.Component")]),_:1}),s(" are the special case that allows for execution.")]),D,n("p",null,[s("Once implemented and configured, components can be executed by calling "),o(a,{caption:"launch()"},{default:l(()=>[s("machinable.Component.launch")]),_:1}),s(":")]),F,n("p",null,[s("To implement an execution, implement an interface that inherits from the "),o(a,null,{default:l(()=>[s("machinable.Execution")]),_:1}),s(" base class, for example:")]),C])}const x=p(i,[["render",A]]);export{b as __pageData,x as default}; diff --git a/assets/guide_component.md.e71caaa7.lean.js b/assets/guide_component.md.cd64290d.lean.js similarity index 94% rename from assets/guide_component.md.e71caaa7.lean.js rename to assets/guide_component.md.cd64290d.lean.js index 4f97cf53..3b6f2678 100644 --- a/assets/guide_component.md.e71caaa7.lean.js +++ b/assets/guide_component.md.cd64290d.lean.js @@ -1 +1 @@ -import{_ as p,D as t,o as c,c as r,z as n,a as s,G as o,B as l,O as e}from"./chunks/framework.62020867.js";const b=JSON.parse('{"title":"Component","description":"","frontmatter":{},"headers":[],"relativePath":"guide/component.md","filePath":"guide/component.md"}'),i={name:"guide/component.md"},y=n("h1",{id:"component",tabindex:"-1"},[s("Component "),n("a",{class:"header-anchor",href:"#component","aria-label":'Permalink to "Component"'},"")],-1),D=e("",3),F=e("",8),C=e("",12);function A(d,u,m,h,g,f){const a=t("Pydoc");return c(),r("div",null,[y,n("p",null,[s("While interfaces are designed to associate data with code, "),o(a,{caption:"components"},{default:l(()=>[s("machinable.Component")]),_:1}),s(" are the special case that allows for execution.")]),D,n("p",null,[s("Once implemented and configured, components can be executed by calling "),o(a,{caption:"launch()"},{default:l(()=>[s("machinable.Component.launch")]),_:1}),s(":")]),F,n("p",null,[s("To implement an execution, implement an interface that inherits from the "),o(a,null,{default:l(()=>[s("machinable.Execution")]),_:1}),s(" base class, for example:")]),C])}const x=p(i,[["render",A]]);export{b as __pageData,x as default}; +import{_ as p,D as t,o as c,c as r,z as n,a as s,G as o,B as l,O as e}from"./chunks/framework.62020867.js";const b=JSON.parse('{"title":"Component","description":"","frontmatter":{},"headers":[],"relativePath":"guide/component.md","filePath":"guide/component.md"}'),i={name:"guide/component.md"},y=n("h1",{id:"component",tabindex:"-1"},[s("Component "),n("a",{class:"header-anchor",href:"#component","aria-label":'Permalink to "Component"'},"")],-1),D=e("",3),F=e("",8),C=e("",12);function A(d,m,u,h,g,f){const a=t("Pydoc");return c(),r("div",null,[y,n("p",null,[s("While interfaces are designed to associate data with code, "),o(a,{caption:"components"},{default:l(()=>[s("machinable.Component")]),_:1}),s(" are the special case that allows for execution.")]),D,n("p",null,[s("Once implemented and configured, components can be executed by calling "),o(a,{caption:"launch()"},{default:l(()=>[s("machinable.Component.launch")]),_:1}),s(":")]),F,n("p",null,[s("To implement an execution, implement an interface that inherits from the "),o(a,null,{default:l(()=>[s("machinable.Execution")]),_:1}),s(" base class, for example:")]),C])}const x=p(i,[["render",A]]);export{b as __pageData,x as default}; diff --git a/assets/guide_interface.md.04d93558.js b/assets/guide_interface.md.9f71e6f3.js similarity index 98% rename from assets/guide_interface.md.04d93558.js rename to assets/guide_interface.md.9f71e6f3.js index cc1b2dcc..5c0304c6 100644 --- a/assets/guide_interface.md.04d93558.js +++ b/assets/guide_interface.md.9f71e6f3.js @@ -21,7 +21,7 @@ import{_ as t,D as p,o as c,c as r,z as a,a as s,G as l,B as o,O as e}from"./chu <span class="line"><span style="color:#A6ACCD;">├─ estimate_gravity.py # contains a data analysis component</span></span> <span class="line"><span style="color:#A6ACCD;">├─ evolution/ </span></span> <span class="line"><span style="color:#A6ACCD;">| └─ simulate_offspring.py # contains a evolutionary simulation</span></span> -<span class="line"><span style="color:#A6ACCD;">└─ main.py # main script to execute</span></span></code></pre></div><p>The benefit of this requirement is that you can refer to the classes via their module import path. For example, using this <em>module convention</em>, you can simplify the instantiation of classes that are located in different modules:</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-9OzUQ" id="tab-t3IYrn7" checked="checked"><label for="tab-t3IYrn7">main.py (before)</label><input type="radio" name="group-9OzUQ" id="tab-aKvmcvb"><label for="tab-aKvmcvb">main.py (using the module convention)</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> +<span class="line"><span style="color:#A6ACCD;">└─ main.py # main script to execute</span></span></code></pre></div><p>The benefit of this requirement is that you can refer to the classes via their module import path. For example, using this <em>module convention</em>, you can simplify the instantiation of classes that are located in different modules:</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-b1Yvq" id="tab-G5a7T-1" checked="checked"><label for="tab-G5a7T-1">main.py (before)</label><input type="radio" name="group-b1Yvq" id="tab-lT1RiyC"><label for="tab-lT1RiyC">main.py (using the module convention)</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> estimate_gravity </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> EstimateGravity</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> evolution</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">simulate_offspring </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> SimulateOffspring</span></span> @@ -40,4 +40,4 @@ import{_ as t,D as p,o as c,c as r,z as a,a as s,G as l,B as o,O as e}from"./chu <span class="line"><span style="color:#A6ACCD;">mnist </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mnist_data</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">open</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">mnist</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">download_script.sh</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">),</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">w</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">...</span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> os</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">chmod</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">f</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">name</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">0o</span><span style="color:#F78C6C;">755</span><span style="color:#89DDFF;">)</span></span></code></pre></div><p>Overall, interfaces make it easy to associate data with code as instantiation, storage and retrieval are managed automatically behind the scenes.</p>`,2);function _(b,v,E,T,q,w){const n=p("Pydoc");return c(),r("div",null,[y,D,a("p",null,[s("To enable storage and retrival we can use an "),l(n,null,{default:o(()=>[s("machinable.Interface")]),_:1}),s(" class.")]),F,a("p",null,[s("Specifically, to instantiate an interface (e.g. "),A,s(") we can leverage the "),l(n,null,{default:o(()=>[s("machinable.get")]),_:1}),s(" function, which takes a class as the first argument and optional constructor arguments.")]),d,a("p",null,[s("What is happening here is that "),l(n,{caption:"get()"},{default:o(()=>[s("machinable.get")]),_:1}),s(" automatically searches the storage for an interface of type "),C,s(" with a "),u,s(" of "),h,s(". If such an instance has not been committed yet (like when initially running the code), a new instance with this configuration will be returned. But if such an instance has previously been committed, it will simply be reloaded.")]),m,a("p",null,[s("While machinable automatically commits crucial information about the interface, you can use "),l(n,null,{default:o(()=>[s("machinable.Interface.save_file")]),_:1}),s(" and "),l(n,null,{default:o(()=>[s("machinable.Interface.load_file")]),_:1}),s(" to easily store and retrieve additional custom data in different file formats:")]),f,a("p",null,[s("This may be useful to save and restore some custom state of the interface. Furthermore, you are free to implement your own methods to persist data by writing and reading from the interface's "),l(n,{caption:"local_directory()"},{default:o(()=>[s("machinable.Interface.local_directory")]),_:1}),s(":")]),g])}const S=t(i,[["render",_]]);export{k as __pageData,S as default}; +<span class="line"><span style="color:#A6ACCD;"> os</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">chmod</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">f</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">name</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">0o</span><span style="color:#F78C6C;">755</span><span style="color:#89DDFF;">)</span></span></code></pre></div><p>Overall, interfaces make it easy to associate data with code as instantiation, storage and retrieval are managed automatically behind the scenes.</p>`,2);function _(b,v,T,E,q,w){const n=p("Pydoc");return c(),r("div",null,[y,D,a("p",null,[s("To enable storage and retrival we can use an "),l(n,null,{default:o(()=>[s("machinable.Interface")]),_:1}),s(" class.")]),F,a("p",null,[s("Specifically, to instantiate an interface (e.g. "),A,s(") we can leverage the "),l(n,null,{default:o(()=>[s("machinable.get")]),_:1}),s(" function, which takes a class as the first argument and optional constructor arguments.")]),d,a("p",null,[s("What is happening here is that "),l(n,{caption:"get()"},{default:o(()=>[s("machinable.get")]),_:1}),s(" automatically searches the storage for an interface of type "),C,s(" with a "),u,s(" of "),h,s(". If such an instance has not been committed yet (like when initially running the code), a new instance with this configuration will be returned. But if such an instance has previously been committed, it will simply be reloaded.")]),m,a("p",null,[s("While machinable automatically commits crucial information about the interface, you can use "),l(n,null,{default:o(()=>[s("machinable.Interface.save_file")]),_:1}),s(" and "),l(n,null,{default:o(()=>[s("machinable.Interface.load_file")]),_:1}),s(" to easily store and retrieve additional custom data in different file formats:")]),f,a("p",null,[s("This may be useful to save and restore some custom state of the interface. Furthermore, you are free to implement your own methods to persist data by writing and reading from the interface's "),l(n,{caption:"local_directory()"},{default:o(()=>[s("machinable.Interface.local_directory")]),_:1}),s(":")]),g])}const S=t(i,[["render",_]]);export{k as __pageData,S as default}; diff --git a/assets/guide_interface.md.04d93558.lean.js b/assets/guide_interface.md.9f71e6f3.lean.js similarity index 97% rename from assets/guide_interface.md.04d93558.lean.js rename to assets/guide_interface.md.9f71e6f3.lean.js index 5fb79023..3500304d 100644 --- a/assets/guide_interface.md.04d93558.lean.js +++ b/assets/guide_interface.md.9f71e6f3.lean.js @@ -1 +1 @@ -import{_ as t,D as p,o as c,c as r,z as a,a as s,G as l,B as o,O as e}from"./chunks/framework.62020867.js";const k=JSON.parse('{"title":"Interface","description":"","frontmatter":{},"headers":[],"relativePath":"guide/interface.md","filePath":"guide/interface.md"}'),i={name:"guide/interface.md"},y=a("h1",{id:"interface",tabindex:"-1"},[s("Interface "),a("a",{class:"header-anchor",href:"#interface","aria-label":'Permalink to "Interface"'},"")],-1),D=a("p",null,[a("a",{href:"./element.html"},"Elements"),s(" by themselves are limited in that they are effectively stateless. You can construct and use them but any computed result or additional information will not be persisted.")],-1),F=e("",6),A=a("code",null,"MnistData()",-1),d=e("",3),C=a("code",null,"MnistData",-1),u=a("code",null,"batch_size",-1),h=a("code",null,"8",-1),m=e("",7),f=e("",1),g=e("",2);function _(b,v,E,T,q,w){const n=p("Pydoc");return c(),r("div",null,[y,D,a("p",null,[s("To enable storage and retrival we can use an "),l(n,null,{default:o(()=>[s("machinable.Interface")]),_:1}),s(" class.")]),F,a("p",null,[s("Specifically, to instantiate an interface (e.g. "),A,s(") we can leverage the "),l(n,null,{default:o(()=>[s("machinable.get")]),_:1}),s(" function, which takes a class as the first argument and optional constructor arguments.")]),d,a("p",null,[s("What is happening here is that "),l(n,{caption:"get()"},{default:o(()=>[s("machinable.get")]),_:1}),s(" automatically searches the storage for an interface of type "),C,s(" with a "),u,s(" of "),h,s(". If such an instance has not been committed yet (like when initially running the code), a new instance with this configuration will be returned. But if such an instance has previously been committed, it will simply be reloaded.")]),m,a("p",null,[s("While machinable automatically commits crucial information about the interface, you can use "),l(n,null,{default:o(()=>[s("machinable.Interface.save_file")]),_:1}),s(" and "),l(n,null,{default:o(()=>[s("machinable.Interface.load_file")]),_:1}),s(" to easily store and retrieve additional custom data in different file formats:")]),f,a("p",null,[s("This may be useful to save and restore some custom state of the interface. Furthermore, you are free to implement your own methods to persist data by writing and reading from the interface's "),l(n,{caption:"local_directory()"},{default:o(()=>[s("machinable.Interface.local_directory")]),_:1}),s(":")]),g])}const S=t(i,[["render",_]]);export{k as __pageData,S as default}; +import{_ as t,D as p,o as c,c as r,z as a,a as s,G as l,B as o,O as e}from"./chunks/framework.62020867.js";const k=JSON.parse('{"title":"Interface","description":"","frontmatter":{},"headers":[],"relativePath":"guide/interface.md","filePath":"guide/interface.md"}'),i={name:"guide/interface.md"},y=a("h1",{id:"interface",tabindex:"-1"},[s("Interface "),a("a",{class:"header-anchor",href:"#interface","aria-label":'Permalink to "Interface"'},"")],-1),D=a("p",null,[a("a",{href:"./element.html"},"Elements"),s(" by themselves are limited in that they are effectively stateless. You can construct and use them but any computed result or additional information will not be persisted.")],-1),F=e("",6),A=a("code",null,"MnistData()",-1),d=e("",3),C=a("code",null,"MnistData",-1),u=a("code",null,"batch_size",-1),h=a("code",null,"8",-1),m=e("",7),f=e("",1),g=e("",2);function _(b,v,T,E,q,w){const n=p("Pydoc");return c(),r("div",null,[y,D,a("p",null,[s("To enable storage and retrival we can use an "),l(n,null,{default:o(()=>[s("machinable.Interface")]),_:1}),s(" class.")]),F,a("p",null,[s("Specifically, to instantiate an interface (e.g. "),A,s(") we can leverage the "),l(n,null,{default:o(()=>[s("machinable.get")]),_:1}),s(" function, which takes a class as the first argument and optional constructor arguments.")]),d,a("p",null,[s("What is happening here is that "),l(n,{caption:"get()"},{default:o(()=>[s("machinable.get")]),_:1}),s(" automatically searches the storage for an interface of type "),C,s(" with a "),u,s(" of "),h,s(". If such an instance has not been committed yet (like when initially running the code), a new instance with this configuration will be returned. But if such an instance has previously been committed, it will simply be reloaded.")]),m,a("p",null,[s("While machinable automatically commits crucial information about the interface, you can use "),l(n,null,{default:o(()=>[s("machinable.Interface.save_file")]),_:1}),s(" and "),l(n,null,{default:o(()=>[s("machinable.Interface.load_file")]),_:1}),s(" to easily store and retrieve additional custom data in different file formats:")]),f,a("p",null,[s("This may be useful to save and restore some custom state of the interface. Furthermore, you are free to implement your own methods to persist data by writing and reading from the interface's "),l(n,{caption:"local_directory()"},{default:o(()=>[s("machinable.Interface.local_directory")]),_:1}),s(":")]),g])}const S=t(i,[["render",_]]);export{k as __pageData,S as default}; diff --git a/assets/guide_introduction.md.fbe498c5.js b/assets/guide_introduction.md.2d13e130.js similarity index 97% rename from assets/guide_introduction.md.fbe498c5.js rename to assets/guide_introduction.md.2d13e130.js index c4cff78f..8cdbdfee 100644 --- a/assets/guide_introduction.md.fbe498c5.js +++ b/assets/guide_introduction.md.2d13e130.js @@ -1,4 +1,4 @@ -import{_ as s,o as a,c as n,O as l}from"./chunks/framework.62020867.js";const C=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduction.md","filePath":"guide/introduction.md"}'),o={name:"guide/introduction.md"},p=l(`<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><h2 id="what-is-machinable" tabindex="-1">What is machinable? <a class="header-anchor" href="#what-is-machinable" aria-label="Permalink to "What is machinable?""></a></h2><p><em>machinable</em> is a Python API for research code. It provides an object-oriented skeleton that helps you develop and experiment in a unified interface while handling tedious housekeeping behind the scenes.</p><p>The key idea is to unify the running of code and the retrieval of produced results in one abstraction. A detailed discussion of this approach can be found in the <a href="./../about/approach.html">about section</a>, but for now, here is a minimal example that illustrates the idea.</p><ol><li>Write some code</li></ol><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-SdiUk" id="tab-iyp7NKv" checked="checked"><label for="tab-iyp7NKv">montecarlo.py</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> random </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> random</span></span> +import{_ as s,o as a,c as n,O as l}from"./chunks/framework.62020867.js";const C=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduction.md","filePath":"guide/introduction.md"}'),o={name:"guide/introduction.md"},p=l(`<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><h2 id="what-is-machinable" tabindex="-1">What is machinable? <a class="header-anchor" href="#what-is-machinable" aria-label="Permalink to "What is machinable?""></a></h2><p><em>machinable</em> is a Python API for research code. It provides an object-oriented skeleton that helps you develop and experiment in a unified interface while handling tedious housekeeping behind the scenes.</p><p>The key idea is to unify the running of code and the retrieval of produced results in one abstraction. A detailed discussion of this approach can be found in the <a href="./../about/approach.html">about section</a>, but for now, here is a minimal example that illustrates the idea.</p><ol><li>Write some code</li></ol><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-b1V7D" id="tab-H6QUs-V" checked="checked"><label for="tab-H6QUs-V">montecarlo.py</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> random </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> random</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> pydantic </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> BaseModel</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Field</span></span> <span class="line"></span> @@ -26,7 +26,7 @@ import{_ as s,o as a,c as n,O as l}from"./chunks/framework.62020867.js";const C= <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"After </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">samples</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> samples, "</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"PI is approximately </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">load_file</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">result.json</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">)[</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">pi</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">]</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">."</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span></code></pre></div></div></div><ol start="2"><li>Run and inspect it using a unified abstraction</li></ol><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-oPZjC" id="tab-sShJL0s" checked="checked"><label for="tab-sShJL0s">Python</label><input type="radio" name="group-oPZjC" id="tab-fKxVU8b"><label for="tab-fKxVU8b">Jupyter</label><input type="radio" name="group-oPZjC" id="tab-lBc8Njj"><label for="tab-lBc8Njj">CLI</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span></code></pre></div></div></div><ol start="2"><li>Run and inspect it using a unified abstraction</li></ol><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-oDVLv" id="tab-jaNghjj" checked="checked"><label for="tab-jaNghjj">Python</label><input type="radio" name="group-oDVLv" id="tab-hbiBUWe"><label for="tab-hbiBUWe">Jupyter</label><input type="radio" name="group-oDVLv" id="tab-N_GSGAr"><label for="tab-N_GSGAr">CLI</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#676E95;font-style:italic;"># Imports component in \`montecarlo.py\` with samples=150;</span></span> <span class="line"><span style="color:#676E95;font-style:italic;"># if an component with this configuration exists, it</span></span> diff --git a/assets/guide_introduction.md.fbe498c5.lean.js b/assets/guide_introduction.md.2d13e130.lean.js similarity index 100% rename from assets/guide_introduction.md.fbe498c5.lean.js rename to assets/guide_introduction.md.2d13e130.lean.js diff --git a/examples/aimstack-storage/index.html b/examples/aimstack-storage/index.html index 6983bf1f..ce816c56 100644 --- a/examples/aimstack-storage/index.html +++ b/examples/aimstack-storage/index.html @@ -11,7 +11,7 @@ <link rel="modulepreload" href="/assets/chunks/framework.62020867.js"> <link rel="modulepreload" href="/assets/chunks/theme.240a561e.js"> <link rel="modulepreload" href="/assets/chunks/Pydoc.e1ecbd85.js"> - <link rel="modulepreload" href="/assets/examples_aimstack-storage_index.md.ed71c2fe.lean.js"> + <link rel="modulepreload" href="/assets/examples_aimstack-storage_index.md.728bc3cc.lean.js"> <link rel="icon" href="/logo.png"> <link rel="manifest" href="/manifest.json"> <meta name="theme-color" content="#3eaf7c"> @@ -28,7 +28,7 @@ <span class="line"></span> <span class="line"><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">aimstack</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">repo</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">./path/to/aim-repo</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">}).</span><span style="color:#82AAFF;">__enter__</span><span style="color:#89DDFF;">()</span></span> <span class="line"></span> -<span class="line"><span style="color:#676E95;font-style:italic;"># your code</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-WEfoa" id="tab-8xwIXcX" checked="checked"><label for="tab-8xwIXcX">aimstack.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> List</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span></span> +<span class="line"><span style="color:#676E95;font-style:italic;"># your code</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-wXGAQ" id="tab-EbCok2p" checked="checked"><label for="tab-EbCok2p">aimstack.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> List</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> os</span></span> <span class="line"></span> @@ -84,7 +84,7 @@ <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">for</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;font-style:italic;">in</span><span style="color:#A6ACCD;"> interface</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">__model__</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">model_dump</span><span style="color:#89DDFF;">().</span><span style="color:#82AAFF;">items</span><span style="color:#89DDFF;">():</span></span> <span class="line"><span style="color:#A6ACCD;"> run</span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">k</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> v</span></span></code></pre></div></div></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/examples/aimstack-storage/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><!----></div><div class="pager" data-v-face870a><a class="pager-link next" href="/examples/globus-storage/" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Globus</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/examples/dependent-schedules/index.html b/examples/dependent-schedules/index.html index 5aea177e..4346cf30 100644 --- a/examples/dependent-schedules/index.html +++ b/examples/dependent-schedules/index.html @@ -25,7 +25,7 @@ </head> <body> <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Storage</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/aimstack-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Aimstack</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/globus-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Globus</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Execution</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/mpi-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>MPI</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/slurm-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Slurm</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/require-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Require</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _examples_dependent-schedules_index" data-v-c4b0d3cf><div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/examples/dependent-schedules/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><!----></div><div class="pager" data-v-face870a><a class="pager-link next" href="/examples/aimstack-storage/" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Aimstack</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/examples/globus-storage/index.html b/examples/globus-storage/index.html index e3532163..6e3eca7b 100644 --- a/examples/globus-storage/index.html +++ b/examples/globus-storage/index.html @@ -11,7 +11,7 @@ <link rel="modulepreload" href="/assets/chunks/framework.62020867.js"> <link rel="modulepreload" href="/assets/chunks/theme.240a561e.js"> <link rel="modulepreload" href="/assets/chunks/Pydoc.e1ecbd85.js"> - <link rel="modulepreload" href="/assets/examples_globus-storage_index.md.565fd1a1.lean.js"> + <link rel="modulepreload" href="/assets/examples_globus-storage_index.md.b5f6bec3.lean.js"> <link rel="icon" href="/logo.png"> <link rel="manifest" href="/manifest.json"> <meta name="theme-color" content="#3eaf7c"> @@ -39,7 +39,7 @@ <span class="line"><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">matches</span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> <span class="line"><span style="color:#676E95;font-style:italic;"># download from globus</span></span> -<span class="line"><span style="color:#A6ACCD;">storage</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">download</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">matches</span><span style="color:#89DDFF;">[</span><span style="color:#F78C6C;">0</span><span style="color:#89DDFF;">].</span><span style="color:#F07178;">uuid</span><span style="color:#89DDFF;">)</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-uj8kQ" id="tab-eHaiZnU" checked="checked"><label for="tab-eHaiZnU">globus.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> TYPE_CHECKING</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> List</span></span> +<span class="line"><span style="color:#A6ACCD;">storage</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">download</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">matches</span><span style="color:#89DDFF;">[</span><span style="color:#F78C6C;">0</span><span style="color:#89DDFF;">].</span><span style="color:#F07178;">uuid</span><span style="color:#89DDFF;">)</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-AM_4D" id="tab-NwhnFVP" checked="checked"><label for="tab-NwhnFVP">globus.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> TYPE_CHECKING</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> List</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> os</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> time</span></span> @@ -265,7 +265,7 @@ <span class="line"><span style="color:#A6ACCD;"> found</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">item</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">name</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">])</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">return</span><span style="color:#A6ACCD;"> found</span></span></code></pre></div></div></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/examples/globus-storage/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/examples/aimstack-storage/" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Aimstack</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/examples/mpi-execution/" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>MPI</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/examples/index.html b/examples/index.html index b9b9719f..1f4cef48 100644 --- a/examples/index.html +++ b/examples/index.html @@ -25,7 +25,7 @@ </head> <body> <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Storage</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/aimstack-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Aimstack</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/globus-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Globus</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Execution</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/mpi-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>MPI</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/slurm-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Slurm</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/require-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Require</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _examples_index" data-v-c4b0d3cf><div><h1 id="how-to-examples" tabindex="-1">How-to examples <a class="header-anchor" href="#how-to-examples" aria-label="Permalink to "How-to examples""></a></h1><p>This section presents code examples that demonstrate real-world usage and my be a good starting point when implementing your own projects.</p><p>Please select an example from the menu.</p></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/examples/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><!----></div><div class="pager" data-v-face870a><a class="pager-link next" href="/examples/aimstack-storage/" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Aimstack</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/examples/mpi-execution/index.html b/examples/mpi-execution/index.html index 06c2e7b6..13315347 100644 --- a/examples/mpi-execution/index.html +++ b/examples/mpi-execution/index.html @@ -11,7 +11,7 @@ <link rel="modulepreload" href="/assets/chunks/framework.62020867.js"> <link rel="modulepreload" href="/assets/chunks/theme.240a561e.js"> <link rel="modulepreload" href="/assets/chunks/Pydoc.e1ecbd85.js"> - <link rel="modulepreload" href="/assets/examples_mpi-execution_index.md.8f6d3933.lean.js"> + <link rel="modulepreload" href="/assets/examples_mpi-execution_index.md.552b84cf.lean.js"> <link rel="icon" href="/logo.png"> <link rel="manifest" href="/manifest.json"> <meta name="theme-color" content="#3eaf7c"> @@ -27,9 +27,8 @@ <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Storage</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/aimstack-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Aimstack</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/globus-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Globus</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Execution</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/mpi-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>MPI</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/slurm-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Slurm</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/require-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Require</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _examples_mpi-execution_index" data-v-c4b0d3cf><div><h1 id="mpi-execution" tabindex="-1">MPI execution <a class="header-anchor" href="#mpi-execution" aria-label="Permalink to "MPI execution""></a></h1><p>Integration to launch <a href="https://en.wikipedia.org/wiki/Message_Passing_Interface" target="_blank" rel="noreferrer">MPI</a> jobs.</p><h2 id="usage-example" tabindex="-1">Usage example <a class="header-anchor" href="#usage-example" aria-label="Permalink to "Usage example""></a></h2><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">ranks</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#F78C6C;">8</span><span style="color:#89DDFF;">}):</span></span> -<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># your MPI ready component</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-5B43x" id="tab-28AePBd" checked="checked"><label for="tab-28AePBd">mpi.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Union</span></span> +<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># your MPI ready component</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-R5v6V" id="tab-StGNsIL" checked="checked"><label for="tab-StGNsIL">mpi.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Union</span></span> <span class="line"></span> -<span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> shutil</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> sys</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Execution</span></span> @@ -44,7 +43,9 @@ <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> preamble</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">""</span></span> <span class="line"><span style="color:#A6ACCD;"> mpi</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpirun</span><span style="color:#89DDFF;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> python</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None</span></span> <span class="line"><span style="color:#A6ACCD;"> resume_failed</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Union</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">bool</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">new</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">skip</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">]]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">False</span></span> +<span class="line"><span style="color:#A6ACCD;"> dry</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bool</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">False</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">def</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">on_compute_default_resources</span><span style="color:#89DDFF;">(</span><span style="color:#F07178;font-style:italic;">self</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#A6ACCD;font-style:italic;">executable</span><span style="color:#89DDFF;">):</span></span> <span class="line"><span style="color:#A6ACCD;"> resources </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">{}</span></span> @@ -69,73 +70,88 @@ <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">elif</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">resume_failed</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">==</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">skip</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">continue</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">raise</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">ExecutionFailed</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">module</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> <</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">)> has previously been executed unsuccessfully. Set `resume_failed` to True, 'new' or 'skip' to handle resubmission."</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> msg </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">module</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> <</span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">)> has previously been executed unsuccessfully. Set `resume_failed` to True, 'new' or 'skip' to handle resubmission."</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">dry</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Dry run ... </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> msg</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">continue</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">raise</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">ExecutionFailed</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">msg</span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> resources </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">computed_resources</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> python </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">python</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">or</span><span style="color:#A6ACCD;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">executable</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None:</span></span> -<span class="line"><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">dispatch</span><span style="color:#89DDFF;">()</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">#!/usr/bin/env bash</span><span style="color:#A6ACCD;">\n</span><span style="color:#89DDFF;">"</span></span> -<span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span></span> -<span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">dispatch_code</span><span style="color:#89DDFF;">()</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">#!/usr/bin/env bash</span><span style="color:#A6ACCD;">\n</span><span style="color:#89DDFF;">"</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> script_file </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">chmodx</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi.sh</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> -<span class="line"><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">shutil</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">which</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi</span><span style="color:#89DDFF;">)]</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">for</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;font-style:italic;">in</span><span style="color:#A6ACCD;"> resources</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">items</span><span style="color:#89DDFF;">():</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;">not</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">in</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[None,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">True]:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">startswith</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">--</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">):</span></span> -<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">k</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">=</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">v</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">"</span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">extend</span><span style="color:#89DDFF;">([</span><span style="color:#82AAFF;">k</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">v</span><span style="color:#89DDFF;">)])</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">k</span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">script_file</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># add debug information</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">\n</span><span style="color:#89DDFF;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"# </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">module</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> <</span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">></span><span style="color:#A6ACCD;">\n</span><span style="color:#C3E88D;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"# </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">()</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">></span><span style="color:#A6ACCD;">\n</span><span style="color:#C3E88D;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">\n</span><span style="color:#89DDFF;">"</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">))</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">dispatch_code</span><span style="color:#89DDFF;">(</span><span style="color:#A6ACCD;font-style:italic;">python</span><span style="color:#89DDFF;">=</span><span style="color:#82AAFF;">python</span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi.json</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">data</span><span style="color:#89DDFF;">={</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">cmd</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">script</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">},</span></span> +<span class="line"><span style="color:#A6ACCD;"> script_file </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">chmodx</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi.sh</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">open</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">output.log</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">w</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">buffering</span><span style="color:#89DDFF;">=</span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">try</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">run_and_stream</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">stdout_handler</span><span style="color:#89DDFF;">=</span><span style="color:#C792EA;">lambda</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">o</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span></span> -<span class="line"><span style="color:#82AAFF;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stdout</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">],</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">stderr_handler</span><span style="color:#89DDFF;">=</span><span style="color:#C792EA;">lambda</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">o</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span></span> -<span class="line"><span style="color:#82AAFF;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stderr</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">],</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">except</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">KeyboardInterrupt</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> _ex</span><span style="color:#89DDFF;">:</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">raise</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">KeyboardInterrupt</span><span style="color:#89DDFF;">(</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Interrupting `</span><span style="color:#89DDFF;">"</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">+</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">)</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">+</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">`</span><span style="color:#89DDFF;">"</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> _ex</span></span></code></pre></div></div></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/examples/mpi-execution/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/examples/globus-storage/" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Globus</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/examples/slurm-execution/" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Slurm</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None:</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[]</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">mpi</span><span style="color:#89DDFF;">]</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">for</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;font-style:italic;">in</span><span style="color:#A6ACCD;"> resources</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">items</span><span style="color:#89DDFF;">():</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">or</span><span style="color:#A6ACCD;"> v </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">True:</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">k</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">startswith</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">--</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">):</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">k</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">=</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">v</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">"</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">extend</span><span style="color:#89DDFF;">([</span><span style="color:#82AAFF;">k</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">v</span><span style="color:#89DDFF;">)])</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> cmd</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">append</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">script_file</span><span style="color:#89DDFF;">)</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">))</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi.json</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">data</span><span style="color:#89DDFF;">={</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">cmd</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">script</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">},</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">dry</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Dry run ... </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> executable</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">continue</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">open</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">output.log</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">w</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">buffering</span><span style="color:#89DDFF;">=</span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">try</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">run_and_stream</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">stdout_handler</span><span style="color:#89DDFF;">=</span><span style="color:#C792EA;">lambda</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">o</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span></span> +<span class="line"><span style="color:#82AAFF;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stdout</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">stderr_handler</span><span style="color:#89DDFF;">=</span><span style="color:#C792EA;">lambda</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">o</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span></span> +<span class="line"><span style="color:#82AAFF;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">stderr</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">o</span><span style="color:#89DDFF;">),</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">except</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">KeyboardInterrupt</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> _ex</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">raise</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">KeyboardInterrupt</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Interrupting `</span><span style="color:#89DDFF;">"</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">+</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">)</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">+</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">`</span><span style="color:#89DDFF;">"</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> _ex</span></span></code></pre></div></div></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/examples/mpi-execution/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/examples/globus-storage/" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Globus</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/examples/slurm-execution/" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Slurm</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/examples/require-execution/index.html b/examples/require-execution/index.html index 5d4f9702..d01825d1 100644 --- a/examples/require-execution/index.html +++ b/examples/require-execution/index.html @@ -11,7 +11,7 @@ <link rel="modulepreload" href="/assets/chunks/framework.62020867.js"> <link rel="modulepreload" href="/assets/chunks/theme.240a561e.js"> <link rel="modulepreload" href="/assets/chunks/Pydoc.e1ecbd85.js"> - <link rel="modulepreload" href="/assets/examples_require-execution_index.md.f9f6e603.lean.js"> + <link rel="modulepreload" href="/assets/examples_require-execution_index.md.c82a5923.lean.js"> <link rel="icon" href="/logo.png"> <link rel="manifest" href="/manifest.json"> <meta name="theme-color" content="#3eaf7c"> @@ -27,7 +27,7 @@ <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Storage</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/aimstack-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Aimstack</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/globus-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Globus</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Execution</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/mpi-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>MPI</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/slurm-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Slurm</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/require-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Require</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _examples_require-execution_index" data-v-c4b0d3cf><div><h1 id="require-execution" tabindex="-1">Require execution <a class="header-anchor" href="#require-execution" aria-label="Permalink to "Require execution""></a></h1><p>A way to assert that components have been cached.</p><h2 id="usage-example" tabindex="-1">Usage example <a class="header-anchor" href="#usage-example" aria-label="Permalink to "Usage example""></a></h2><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">require</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">):</span></span> -<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># components to check</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-GWc8l" id="tab-FTiECLK" checked="checked"><label for="tab-FTiECLK">require.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Execution</span></span> +<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># components to check</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-rP2q4" id="tab-eMbEKvp" checked="checked"><label for="tab-eMbEKvp">require.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Execution</span></span> <span class="line"></span> <span class="line"></span> <span class="line"><span style="color:#C792EA;">class</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">Require</span><span style="color:#89DDFF;">(</span><span style="color:#FFCB6B;">Execution</span><span style="color:#89DDFF;">):</span></span> @@ -62,7 +62,7 @@ <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span></code></pre></div></div></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/examples/require-execution/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/examples/slurm-execution/" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Slurm</span></a></div><div class="has-prev pager" data-v-face870a><!----></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/examples/slurm-execution/index.html b/examples/slurm-execution/index.html index 063f510a..06a0b84a 100644 --- a/examples/slurm-execution/index.html +++ b/examples/slurm-execution/index.html @@ -11,7 +11,7 @@ <link rel="modulepreload" href="/assets/chunks/framework.62020867.js"> <link rel="modulepreload" href="/assets/chunks/theme.240a561e.js"> <link rel="modulepreload" href="/assets/chunks/Pydoc.e1ecbd85.js"> - <link rel="modulepreload" href="/assets/examples_slurm-execution_index.md.2da5de23.lean.js"> + <link rel="modulepreload" href="/assets/examples_slurm-execution_index.md.c22a144a.lean.js"> <link rel="icon" href="/logo.png"> <link rel="manifest" href="/manifest.json"> <meta name="theme-color" content="#3eaf7c"> @@ -27,7 +27,7 @@ <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Storage</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/aimstack-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Aimstack</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/globus-storage/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Globus</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Execution</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/mpi-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>MPI</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/slurm-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Slurm</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/examples/require-execution/" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Require</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _examples_slurm-execution_index" data-v-c4b0d3cf><div><h1 id="slurm-execution" tabindex="-1">Slurm execution <a class="header-anchor" href="#slurm-execution" aria-label="Permalink to "Slurm execution""></a></h1><p>Integration to submit to the <a href="https://slurm.schedmd.com/documentation.html" target="_blank" rel="noreferrer">Slurm</a> scheduler.</p><h2 id="usage-example" tabindex="-1">Usage example <a class="header-anchor" href="#usage-example" aria-label="Permalink to "Usage example""></a></h2><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">slurm</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">ranks</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#F78C6C;">8</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">preamble</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">mpirun</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">}):</span></span> -<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># your component</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-mo9Ip" id="tab-3L-2HuR" checked="checked"><label for="tab-3L-2HuR">slurm.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Union</span></span> +<span class="line"><span style="color:#A6ACCD;"> ... </span><span style="color:#676E95;font-style:italic;"># your component</span></span></code></pre></div><h2 id="source" tabindex="-1">Source <a class="header-anchor" href="#source" aria-label="Permalink to "Source""></a></h2><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-xgqXu" id="tab-e28PKTw" checked="checked"><label for="tab-e28PKTw">slurm.py</label></div><div class="blocks"><div class="language-py active"><button title="Copy Code" class="copy"></button><span class="lang">py</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> typing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Optional</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Union</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> os</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> subprocess</span></span> @@ -127,6 +127,7 @@ <span class="line"><span style="color:#A6ACCD;"> confirm</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bool</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">True</span></span> <span class="line"><span style="color:#A6ACCD;"> copy_project_source</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bool</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">True</span></span> <span class="line"><span style="color:#A6ACCD;"> resume_failed</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> Union</span><span style="color:#89DDFF;">[</span><span style="color:#FFCB6B;">bool</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Literal</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">new</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">skip</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">]]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">False</span></span> +<span class="line"><span style="color:#A6ACCD;"> dry</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bool</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">False</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">def</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">on_before_dispatch</span><span style="color:#89DDFF;">(</span><span style="color:#F07178;font-style:italic;">self</span><span style="color:#89DDFF;">):</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">confirm</span><span style="color:#89DDFF;">:</span></span> @@ -177,7 +178,7 @@ <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> source_code </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> Project</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">().</span><span style="color:#82AAFF;">path</span><span style="color:#89DDFF;">()</span></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">copy_project_source</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">copy_project_source</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">and</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">not</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">dry</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Copy project source code ...</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> source_code </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">source_code</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">rsync</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">-a</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Project</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">().</span><span style="color:#82AAFF;">path</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">""</span><span style="color:#89DDFF;">),</span><span style="color:#A6ACCD;"> source_code</span><span style="color:#89DDFF;">]</span></span> @@ -188,7 +189,13 @@ <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> resources </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">computed_resources</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi</span><span style="color:#89DDFF;">)</span></span> -<span class="line"><span style="color:#A6ACCD;"> mpi_args </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">mpi_args</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi_args</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> mpi_args </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">mpi_args</span></span> +<span class="line"><span style="color:#A6ACCD;"> ranks </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">ranks</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">None)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> ranks </span><span style="color:#89DDFF;">is</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">not</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">None:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi_args</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> mpi_args </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> mpi_args</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">replace</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#F78C6C;">{ranks}</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">ranks</span><span style="color:#89DDFF;">))</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">else</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> mpi_args </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">-n </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">ranks</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">))</span></span> <span class="line"><span style="color:#A6ACCD;"> python </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">python</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">or</span><span style="color:#A6ACCD;"> sys</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">executable</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># usage dependencies</span></span> @@ -228,6 +235,12 @@ <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">preamble</span></span> <span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># add debug information</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">\n</span><span style="color:#89DDFF;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"# </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">module</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> <</span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">></span><span style="color:#A6ACCD;">\n</span><span style="color:#C3E88D;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"# </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">()</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">></span><span style="color:#A6ACCD;">\n</span><span style="color:#C3E88D;">"</span></span> +<span class="line"><span style="color:#A6ACCD;"> script </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;">\n</span><span style="color:#89DDFF;">"</span></span> +<span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> mpi</span><span style="color:#89DDFF;">[-</span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">!=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> mpi </span><span style="color:#89DDFF;">+=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span></span> @@ -251,6 +264,19 @@ <span class="line"><span style="color:#A6ACCD;"> cmd </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">sbatch</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> script_file</span><span style="color:#89DDFF;">]</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;"> </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">join</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">cmd</span><span style="color:#89DDFF;">))</span></span> <span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">slurm.json</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#A6ACCD;font-style:italic;">data</span><span style="color:#89DDFF;">={</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">job_id</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">None,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">cmd</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> sbatch_arguments</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">script</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> script</span><span style="color:#89DDFF;">,</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">},</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> +<span class="line"></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">if</span><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">dry</span><span style="color:#89DDFF;">:</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">Dry run ... </span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> executable</span><span style="color:#89DDFF;">)</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">continue</span></span> +<span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">try</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> output </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> subprocess</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">run</span><span style="color:#89DDFF;">(</span></span> <span class="line"><span style="color:#82AAFF;"> cmd</span><span style="color:#89DDFF;">,</span></span> @@ -272,7 +298,7 @@ <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">job_id</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> named `</span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">resources</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">--job-name</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">]</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">` for </span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">()</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> (output at </span><span style="color:#F78C6C;">{</span><span style="color:#82AAFF;">resources</span><span style="color:#89DDFF;">[</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">--output</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">]</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">)"</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> -<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># save job information</span></span> +<span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#676E95;font-style:italic;"># update job information</span></span> <span class="line"><span style="color:#A6ACCD;"> jobs</span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> job_id</span></span> <span class="line"><span style="color:#A6ACCD;"> self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">save_file</span><span style="color:#89DDFF;">(</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">[</span><span style="color:#82AAFF;">executable</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">id</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">slurm.json</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">],</span></span> @@ -357,7 +383,7 @@ <span class="line"><span style="color:#A6ACCD;"> canonicalized</span><span style="color:#89DDFF;">[</span><span style="color:#A6ACCD;">prefix </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">--</span><span style="color:#89DDFF;">"</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">+</span><span style="color:#A6ACCD;"> k</span><span style="color:#89DDFF;">]</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">str</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">v</span><span style="color:#89DDFF;">)</span></span> <span class="line"></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">return</span><span style="color:#A6ACCD;"> canonicalized</span></span></code></pre></div></div></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/examples/slurm-execution/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/examples/mpi-execution/" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>MPI</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/examples/require-execution/" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Require</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/guide/component.html b/guide/component.html index bd86b2dd..c2adc3f8 100644 --- a/guide/component.html +++ b/guide/component.html @@ -11,7 +11,7 @@ <link rel="modulepreload" href="/assets/chunks/framework.62020867.js"> <link rel="modulepreload" href="/assets/chunks/theme.240a561e.js"> <link rel="modulepreload" href="/assets/chunks/Pydoc.e1ecbd85.js"> - <link rel="modulepreload" href="/assets/guide_component.md.e71caaa7.lean.js"> + <link rel="modulepreload" href="/assets/guide_component.md.cd64290d.lean.js"> <link rel="icon" href="/logo.png"> <link rel="manifest" href="/manifest.json"> <meta name="theme-color" content="#3eaf7c"> @@ -43,7 +43,7 @@ <span class="line"><span style="color:#89DDFF;">>>></span><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">launch</span><span style="color:#89DDFF;">()</span></span> <span class="line"><span style="color:#A6ACCD;">Downloading </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">mnist</span><span style="color:#89DDFF;">'</span><span style="color:#A6ACCD;"> ...</span></span></code></pre></div><p>If the execution is successful, the component is marked as finished.</p><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">>>></span><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">execution</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">is_finished</span><span style="color:#89DDFF;">()</span></span> <span class="line"><span style="color:#89DDFF;">True</span></span></code></pre></div><p>By design, component instances can only be executed once. They are automatically assigned a timestamp, random seed, as well as a nickname for easy identification.</p><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;">>>></span><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">seed</span></span> -<span class="line"><span style="color:#F78C6C;">1632827863</span></span></code></pre></div><p>Invocations of <code>launch()</code> after successful execution, do not trigger another execution since the component is marked as cached. On the other hand, if the execution failed, calling <code>launch()</code> will resume the execution with the same configuration.</p><h2 id="implementing-custom-execution" tabindex="-1">Implementing custom execution <a class="header-anchor" href="#implementing-custom-execution" aria-label="Permalink to "Implementing custom execution""></a></h2><p>Components can be executed in different ways. You may, for example, like to run components using multiprocessing or execute in a cloud environment. However, instead of adding the execution logic directly to your component code, machinable makes it easy to separate concerns. You can encapsulate the execution implementation in its own execution class that can then be used to execute the component.</p><p>To implement an execution, implement an interface that inherits from the <a href="#" style="">Execution</a> base class, for example:</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-r20xS" id="tab-4nu_84u" checked="checked"><label for="tab-4nu_84u">multiprocess.py</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> multiprocessing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Pool</span></span> +<span class="line"><span style="color:#F78C6C;">1632827863</span></span></code></pre></div><p>Invocations of <code>launch()</code> after successful execution, do not trigger another execution since the component is marked as cached. On the other hand, if the execution failed, calling <code>launch()</code> will resume the execution with the same configuration.</p><h2 id="implementing-custom-execution" tabindex="-1">Implementing custom execution <a class="header-anchor" href="#implementing-custom-execution" aria-label="Permalink to "Implementing custom execution""></a></h2><p>Components can be executed in different ways. You may, for example, like to run components using multiprocessing or execute in a cloud environment. However, instead of adding the execution logic directly to your component code, machinable makes it easy to separate concerns. You can encapsulate the execution implementation in its own execution class that can then be used to execute the component.</p><p>To implement an execution, implement an interface that inherits from the <a href="#" style="">Execution</a> base class, for example:</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-AxYUx" id="tab-zTtgYtv" checked="checked"><label for="tab-zTtgYtv">multiprocess.py</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> multiprocessing </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Pool</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> Execution</span></span> <span class="line"></span> @@ -66,7 +66,7 @@ <span class="line"><span style="color:#A6ACCD;">multiprocess </span><span style="color:#89DDFF;">=</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">get</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">multiprocess</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">processes</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">:</span><span style="color:#82AAFF;"> </span><span style="color:#F78C6C;">2</span><span style="color:#89DDFF;">})</span></span></code></pre></div><p>Then, to use it, we can wrap the launch in the execution context:</p><div class="language-python"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> multiprocessing</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">launch</span><span style="color:#89DDFF;">()</span></span></code></pre></div><p>Check out the <a href="./../examples/">execution examples</a> that include generally useful implementations you may like to use in your projects.</p><h2 id="using-the-cli" tabindex="-1">Using the CLI <a class="header-anchor" href="#using-the-cli" aria-label="Permalink to "Using the CLI""></a></h2><p>Components can be launched directly from the command-line. The CLI works out of the box and closely mirrors the Python interface. To run a component, type its module name and method name, optionally followed by the configuration options, for example:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">machinable</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">mnist_data</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">batch_size=</span><span style="color:#F78C6C;">4</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--launch</span></span></code></pre></div><p>To use multiprocessing, you may type:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">machinable</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">mnist_data</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">batch_size=</span><span style="color:#F78C6C;">4</span><span style="color:#A6ACCD;"> \</span></span> <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">multiprocess</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">processes=</span><span style="color:#F78C6C;">4</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--launch</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/guide/component.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/guide/interface.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Interface</span></a></div><div class="has-prev pager" data-v-face870a><!----></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/guide/element.html b/guide/element.html index 148d7460..a03e9271 100644 --- a/guide/element.html +++ b/guide/element.html @@ -78,7 +78,7 @@ <span class="line"><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">batch_size</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">8</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">name</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">mnist</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">}</span></span> <span class="line"><span style="color:#89DDFF;">>>></span><span style="color:#A6ACCD;"> mnist</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">_update_</span></span> <span class="line"><span style="color:#89DDFF;">{</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">batch_size</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">:</span><span style="color:#A6ACCD;"> </span><span style="color:#F78C6C;">1</span><span style="color:#89DDFF;">}</span></span></code></pre></div><p>Elements support many more advanced configuration features such as typing, validation, parameter documentation, computed values, etc., which will be covered in later sections of the Guide. For now, to summarize, elements are classes with default configurations that may be modified with a list of configuration updates.</p></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/guide/element.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/guide/installation.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Installation</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/guide/interface.html" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Interface</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/guide/installation.html b/guide/installation.html index 4a572cfb..8ab4c3cd 100644 --- a/guide/installation.html +++ b/guide/installation.html @@ -25,7 +25,7 @@ </head> <body> <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Getting Started</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/introduction.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Introduction</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/installation.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Installation</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Core</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/element.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Element</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/interface.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Interface</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/component.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Component</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _guide_installation" data-v-c4b0d3cf><div><h1 id="installation" tabindex="-1">Installation <a class="header-anchor" href="#installation" aria-label="Permalink to "Installation""></a></h1><p>machinable is available via <a href="https://pypi.org/project/machinable/" target="_blank" rel="noreferrer">pip</a>. Install the current release</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">$</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">pip</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">machinable</span></span></code></pre></div><div class="info custom-block"><p class="custom-block-title">INFO</p><p>machinable currently supports Python 3.8 and higher</p></div><p>Note that machinable requires the sqlite json1 extension, otherwise, you will likely see the error message: <code>sqlite3.OperationalError: no such function: json_extract</code>. In this case, an easy way to obtain a suitable sqlite version is to install the pysqlite package:</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">$</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">pip</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">pysqlite3-binary</span></span></code></pre></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/guide/installation.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/guide/introduction.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Introduction</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/guide/element.html" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Element</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/guide/interface.html b/guide/interface.html index 29223a5f..f147b31b 100644 --- a/guide/interface.html +++ b/guide/interface.html @@ -11,7 +11,7 @@ <link rel="modulepreload" href="/assets/chunks/framework.62020867.js"> <link rel="modulepreload" href="/assets/chunks/theme.240a561e.js"> <link rel="modulepreload" href="/assets/chunks/Pydoc.e1ecbd85.js"> - <link rel="modulepreload" href="/assets/guide_interface.md.04d93558.lean.js"> + <link rel="modulepreload" href="/assets/guide_interface.md.9f71e6f3.lean.js"> <link rel="icon" href="/logo.png"> <link rel="manifest" href="/manifest.json"> <meta name="theme-color" content="#3eaf7c"> @@ -47,7 +47,7 @@ <span class="line"><span style="color:#A6ACCD;">├─ estimate_gravity.py # contains a data analysis component</span></span> <span class="line"><span style="color:#A6ACCD;">├─ evolution/ </span></span> <span class="line"><span style="color:#A6ACCD;">| └─ simulate_offspring.py # contains a evolutionary simulation</span></span> -<span class="line"><span style="color:#A6ACCD;">└─ main.py # main script to execute</span></span></code></pre></div><p>The benefit of this requirement is that you can refer to the classes via their module import path. For example, using this <em>module convention</em>, you can simplify the instantiation of classes that are located in different modules:</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-9OzUQ" id="tab-t3IYrn7" checked="checked"><label for="tab-t3IYrn7">main.py (before)</label><input type="radio" name="group-9OzUQ" id="tab-aKvmcvb"><label for="tab-aKvmcvb">main.py (using the module convention)</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> +<span class="line"><span style="color:#A6ACCD;">└─ main.py # main script to execute</span></span></code></pre></div><p>The benefit of this requirement is that you can refer to the classes via their module import path. For example, using this <em>module convention</em>, you can simplify the instantiation of classes that are located in different modules:</p><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-b1Yvq" id="tab-G5a7T-1" checked="checked"><label for="tab-G5a7T-1">main.py (before)</label><input type="radio" name="group-b1Yvq" id="tab-lT1RiyC"><label for="tab-lT1RiyC">main.py (using the module convention)</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> estimate_gravity </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> EstimateGravity</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> evolution</span><span style="color:#89DDFF;">.</span><span style="color:#A6ACCD;">simulate_offspring </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> SimulateOffspring</span></span> @@ -67,7 +67,7 @@ <span class="line"><span style="color:#89DDFF;font-style:italic;">with</span><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">open</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">mnist</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">download_script.sh</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">),</span><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">"</span><span style="color:#C3E88D;">w</span><span style="color:#89DDFF;">"</span><span style="color:#89DDFF;">)</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;font-style:italic;">as</span><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">:</span></span> <span class="line"><span style="color:#A6ACCD;"> f</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">write</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">...</span><span style="color:#89DDFF;">)</span></span> <span class="line"><span style="color:#A6ACCD;"> os</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">chmod</span><span style="color:#89DDFF;">(</span><span style="color:#82AAFF;">f</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">name</span><span style="color:#89DDFF;">,</span><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">0o</span><span style="color:#F78C6C;">755</span><span style="color:#89DDFF;">)</span></span></code></pre></div><p>Overall, interfaces make it easy to associate data with code as instantiation, storage and retrieval are managed automatically behind the scenes.</p></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/guide/interface.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><a class="pager-link prev" href="/guide/element.html" data-v-face870a><span class="desc" data-v-face870a>Previous page</span><span class="title" data-v-face870a>Element</span></a></div><div class="has-prev pager" data-v-face870a><a class="pager-link next" href="/guide/component.html" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Component</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/guide/introduction.html b/guide/introduction.html index 64f24cee..3d89291f 100644 --- a/guide/introduction.html +++ b/guide/introduction.html @@ -11,7 +11,7 @@ <link rel="modulepreload" href="/assets/chunks/framework.62020867.js"> <link rel="modulepreload" href="/assets/chunks/theme.240a561e.js"> <link rel="modulepreload" href="/assets/chunks/Pydoc.e1ecbd85.js"> - <link rel="modulepreload" href="/assets/guide_introduction.md.fbe498c5.lean.js"> + <link rel="modulepreload" href="/assets/guide_introduction.md.2d13e130.lean.js"> <link rel="icon" href="/logo.png"> <link rel="manifest" href="/manifest.json"> <meta name="theme-color" content="#3eaf7c"> @@ -24,7 +24,7 @@ <script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script> </head> <body> - <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Getting Started</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/introduction.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Introduction</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/installation.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Installation</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Core</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/element.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Element</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/interface.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Interface</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/component.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Component</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _guide_introduction" data-v-c4b0d3cf><div><h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><h2 id="what-is-machinable" tabindex="-1">What is machinable? <a class="header-anchor" href="#what-is-machinable" aria-label="Permalink to "What is machinable?""></a></h2><p><em>machinable</em> is a Python API for research code. It provides an object-oriented skeleton that helps you develop and experiment in a unified interface while handling tedious housekeeping behind the scenes.</p><p>The key idea is to unify the running of code and the retrieval of produced results in one abstraction. A detailed discussion of this approach can be found in the <a href="./../about/approach.html">about section</a>, but for now, here is a minimal example that illustrates the idea.</p><ol><li>Write some code</li></ol><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-SdiUk" id="tab-iyp7NKv" checked="checked"><label for="tab-iyp7NKv">montecarlo.py</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> random </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> random</span></span> + <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar has-sidebar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle has-sidebar" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-392e1bf8><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="menu-icon" data-v-392e1bf8><path d="M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"></path><path d="M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"></path><path d="M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"></path><path d="M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"></path></svg><span class="menu-text" data-v-392e1bf8>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><aside class="VPSidebar" data-v-b2cf3e0b data-v-af16598e><div class="curtain" data-v-af16598e></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-af16598e><span class="visually-hidden" id="sidebar-aria-label" data-v-af16598e> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="group" data-v-af16598e><section class="VPSidebarItem level-0 has-active" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Getting Started</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link is-active has-active" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/introduction.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Introduction</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/installation.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Installation</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><div class="group" data-v-af16598e><section class="VPSidebarItem level-0" data-v-af16598e data-v-c4656e6d><div class="item" role="button" tabindex="0" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><h2 class="text" data-v-c4656e6d>Core</h2><!----></div><div class="items" data-v-c4656e6d><!--[--><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/element.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Element</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/interface.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Interface</p><!--]--><!----></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-c4656e6d data-v-c4656e6d><div class="item" data-v-c4656e6d><div class="indicator" data-v-c4656e6d></div><a class="VPLink link link" href="/guide/component.html" data-v-c4656e6d data-v-8f4dc553><!--[--><p class="text" data-v-c4656e6d>Component</p><!--]--><!----></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-sidebar has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _guide_introduction" data-v-c4b0d3cf><div><h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to "Introduction""></a></h1><h2 id="what-is-machinable" tabindex="-1">What is machinable? <a class="header-anchor" href="#what-is-machinable" aria-label="Permalink to "What is machinable?""></a></h2><p><em>machinable</em> is a Python API for research code. It provides an object-oriented skeleton that helps you develop and experiment in a unified interface while handling tedious housekeeping behind the scenes.</p><p>The key idea is to unify the running of code and the retrieval of produced results in one abstraction. A detailed discussion of this approach can be found in the <a href="./../about/approach.html">about section</a>, but for now, here is a minimal example that illustrates the idea.</p><ol><li>Write some code</li></ol><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-b1V7D" id="tab-H6QUs-V" checked="checked"><label for="tab-H6QUs-V">montecarlo.py</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> random </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> random</span></span> <span class="line"></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> pydantic </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> BaseModel</span><span style="color:#89DDFF;">,</span><span style="color:#A6ACCD;"> Field</span></span> <span class="line"></span> @@ -52,7 +52,7 @@ <span class="line"><span style="color:#A6ACCD;"> </span><span style="color:#82AAFF;">print</span><span style="color:#89DDFF;">(</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"After </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">config</span><span style="color:#89DDFF;">.</span><span style="color:#F07178;">samples</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;"> samples, "</span></span> <span class="line"><span style="color:#82AAFF;"> </span><span style="color:#C792EA;">f</span><span style="color:#C3E88D;">"PI is approximately </span><span style="color:#F78C6C;">{</span><span style="color:#A6ACCD;">self</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">load_file</span><span style="color:#89DDFF;">(</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">result.json</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">)[</span><span style="color:#89DDFF;">'</span><span style="color:#C3E88D;">pi</span><span style="color:#89DDFF;">'</span><span style="color:#89DDFF;">]</span><span style="color:#F78C6C;">}</span><span style="color:#C3E88D;">."</span></span> -<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span></code></pre></div></div></div><ol start="2"><li>Run and inspect it using a unified abstraction</li></ol><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-oPZjC" id="tab-sShJL0s" checked="checked"><label for="tab-sShJL0s">Python</label><input type="radio" name="group-oPZjC" id="tab-fKxVU8b"><label for="tab-fKxVU8b">Jupyter</label><input type="radio" name="group-oPZjC" id="tab-lBc8Njj"><label for="tab-lBc8Njj">CLI</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> +<span class="line"><span style="color:#82AAFF;"> </span><span style="color:#89DDFF;">)</span></span></code></pre></div></div></div><ol start="2"><li>Run and inspect it using a unified abstraction</li></ol><div class="vp-code-group"><div class="tabs"><input type="radio" name="group-oDVLv" id="tab-jaNghjj" checked="checked"><label for="tab-jaNghjj">Python</label><input type="radio" name="group-oDVLv" id="tab-hbiBUWe"><label for="tab-hbiBUWe">Jupyter</label><input type="radio" name="group-oDVLv" id="tab-N_GSGAr"><label for="tab-N_GSGAr">CLI</label></div><div class="blocks"><div class="language-python active"><button title="Copy Code" class="copy"></button><span class="lang">python</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#89DDFF;font-style:italic;">from</span><span style="color:#A6ACCD;"> machinable </span><span style="color:#89DDFF;font-style:italic;">import</span><span style="color:#A6ACCD;"> get</span></span> <span class="line"></span> <span class="line"><span style="color:#676E95;font-style:italic;"># Imports component in `montecarlo.py` with samples=150;</span></span> <span class="line"><span style="color:#676E95;font-style:italic;"># if an component with this configuration exists, it</span></span> @@ -76,7 +76,7 @@ <span class="line"><span style="color:#89DDFF;">>>></span><span style="color:#A6ACCD;"> experiment</span><span style="color:#89DDFF;">.</span><span style="color:#82AAFF;">local_directory</span><span style="color:#89DDFF;">()</span></span> <span class="line"><span style="color:#89DDFF;font-style:italic;">'</span><span style="color:#676E95;font-style:italic;">./storage/24aee0fd05024400b116593d1436e9f5</span><span style="color:#89DDFF;font-style:italic;">'</span></span></code></pre></div><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">$</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">machinable</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">montecarlo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">samples=</span><span style="color:#F78C6C;">150</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--launch</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--summary</span></span> <span class="line"><span style="color:#89DDFF;">></span><span style="color:#A6ACCD;"> After 150 samples, PI is approximately 3.1466666666666665.</span></span></code></pre></div></div></div><p>The above example demonstrates the two core principles of <em>machinable</em> code:</p><ul><li><strong>Enforced modularity</strong> The Monte Carlo algorithm is encapsulated in its own module that can be instantiated with different configuration settings.</li><li><strong>Unified representation</strong> Running code is handled through the same interface that is used to retrieve produced results; multiple invocations simply reload and display the results without re-running the experiment.</li></ul><p>You may already have questions - don't worry. We will cover the details in the rest of the documentation. For now, please read along so you can have a high-level understanding of what machinable offers.</p><h2 id="what-it-is-not" tabindex="-1">What it is not <a class="header-anchor" href="#what-it-is-not" aria-label="Permalink to "What it is not""></a></h2><p>Research is extremely diverse so machinable primarily aims to be an <strong>API-spec</strong> that leaves concrete feature implementation to the user. Check out the <a href="./../examples/">examples</a> to learn what this looks like in practice.</p><h2 id="where-to-go-from-here" tabindex="-1">Where to go from here <a class="header-anchor" href="#where-to-go-from-here" aria-label="Permalink to "Where to go from here""></a></h2><div class="info custom-block"><p class="custom-block-title">⚙️ Installation</p><p>We recommend <a href="./installation.html">installing machinable</a> to try things out while following along.</p></div><div class="info custom-block"><p class="custom-block-title">🧑🎓 <a href="./element.html">Continue with the Guide</a></p><p>Designed to learn concepts hands-on. Starts with the bare minimum of concepts necessary to start using machinable. Along the way, it will provide pointers to sections that discuss concepts in more detail or cover more advanced functionality.</p></div><div class="info custom-block"><p class="custom-block-title">➡️ <a href="./../examples/">Check out the How-to guides</a></p><p>Explore real-world examples that demonstrate advanced concepts</p></div><div class="info custom-block"><p class="custom-block-title">📖 <a href="./../reference/">Consult the Reference</a></p><p>Describes available APIs in full detail.</p></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/guide/introduction.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><div class="prev-next" data-v-face870a><div class="pager" data-v-face870a><!----></div><div class="pager" data-v-face870a><a class="pager-link next" href="/guide/installation.html" data-v-face870a><span class="desc" data-v-face870a>Next page</span><span class="title" data-v-face870a>Installation</span></a></div></div></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/hashmap.json b/hashmap.json index 83a1e068..df699901 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"guide_component.md":"e71caaa7","examples_index.md":"6a333571","guide_introduction.md":"fbe498c5","guide_interface.md":"04d93558","index.md":"ec5fddb7","guide_element.md":"b35f8b9f","about_approach.md":"40736853","reference_index.md":"a073225b","guide_installation.md":"59aa7ee4","examples_require-execution_index.md":"f9f6e603","examples_dependent-schedules_index.md":"150d073c","examples_aimstack-storage_index.md":"ed71c2fe","examples_globus-storage_index.md":"565fd1a1","examples_slurm-execution_index.md":"2da5de23","examples_mpi-execution_index.md":"8f6d3933"} +{"guide_component.md":"cd64290d","examples_index.md":"6a333571","about_approach.md":"40736853","examples_aimstack-storage_index.md":"728bc3cc","reference_index.md":"a073225b","examples_require-execution_index.md":"c82a5923","examples_dependent-schedules_index.md":"150d073c","examples_mpi-execution_index.md":"552b84cf","index.md":"ec5fddb7","examples_globus-storage_index.md":"b5f6bec3","guide_interface.md":"9f71e6f3","guide_installation.md":"59aa7ee4","guide_element.md":"b35f8b9f","examples_slurm-execution_index.md":"c22a144a","guide_introduction.md":"2d13e130"} diff --git a/index.html b/index.html index 96cb6a36..454c9453 100644 --- a/index.html +++ b/index.html @@ -25,7 +25,7 @@ </head> <body> <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPHome" data-v-a494bd1d data-v-d82743a8><!--[--><!--]--><div class="VPHero has-image VPHomeHero" data-v-d82743a8 data-v-fd2650d5><div class="container" data-v-fd2650d5><div class="main" data-v-fd2650d5><!--[--><h1 class="name" data-v-fd2650d5><span class="clip" data-v-fd2650d5>machinable</span></h1><p class="text" data-v-fd2650d5>research code</p><p class="tagline" data-v-fd2650d5>A modular system to manage research code so you can move quickly while enabling reuse and collaboration.</p><!--]--><div class="actions" data-v-fd2650d5><!--[--><div class="action" data-v-fd2650d5><a class="VPButton medium brand" href="/guide/introduction.html" data-v-fd2650d5 data-v-567ba664>Get Started</a></div><div class="action" data-v-fd2650d5><a class="VPButton medium alt" href="https://github.com/machinable-org/machinable" target="_blank" rel="noreferrer" data-v-fd2650d5 data-v-567ba664>View on GitHub</a></div><!--]--></div></div><div class="image" data-v-fd2650d5><div class="image-container" data-v-fd2650d5><div class="image-bg" data-v-fd2650d5></div><!--[--><!--[--><img class="VPImage image-src" src="/logo/logo.png" alt="machinable-logo" data-v-6db2186b><!--]--><!--]--></div></div></div></div><!--[--><!--]--><!--[--><!--]--><div class="VPFeatures VPHomeFeatures" data-v-d82743a8 data-v-ba861f23><div class="container" data-v-ba861f23><div class="items" data-v-ba861f23><!--[--><div class="grid-3 item" data-v-ba861f23><span class="VPLink VPFeature" data-v-ba861f23 data-v-837f6cca data-v-8f4dc553><!--[--><article class="box" data-v-837f6cca><div class="icon" data-v-837f6cca>🛠️</div><h2 class="title" data-v-837f6cca>Unified representation</h2><p class="details" data-v-837f6cca>Run code and inspect results using the same abstraction. Check out the example below ⏬</p><!----></article><!--]--><!----></span></div><div class="grid-3 item" data-v-ba861f23><span class="VPLink VPFeature" data-v-ba861f23 data-v-837f6cca data-v-8f4dc553><!--[--><article class="box" data-v-837f6cca><div class="icon" data-v-837f6cca>⚡️</div><h2 class="title" data-v-837f6cca>Designed for rapid iteration</h2><p class="details" data-v-837f6cca>Spend more time experimenting while relying on machinable to keep things organized.</p><!----></article><!--]--><!----></span></div><div class="grid-3 item" data-v-ba861f23><span class="VPLink VPFeature" data-v-ba861f23 data-v-837f6cca data-v-8f4dc553><!--[--><article class="box" data-v-837f6cca><div class="icon" data-v-837f6cca>💡</div><h2 class="title" data-v-837f6cca>Hackable and interactive</h2><p class="details" data-v-837f6cca>Tweak, extend, override while leveraging first-class support for Jupyter as well as the CLI.</p><!----></article><!--]--><!----></span></div><!--]--></div></div></div><!--[--><!--]--><div style="position:relative;" data-v-d82743a8><div data-v-7602e9ce><br data-v-7602e9ce><br data-v-7602e9ce><br data-v-7602e9ce><br data-v-7602e9ce><section id="pitch" data-v-7602e9ce><div class="container" data-v-7602e9ce><div class="top" data-v-7602e9ce><span class="first dot" data-v-7602e9ce></span><span class="second dot" data-v-7602e9ce></span><span class="third dot" data-v-7602e9ce></span> 💻 </div><div class="content" data-v-7602e9ce><div class="info custom-block" data-v-7602e9ce><p class="custom-block-title" data-v-7602e9ce>Some research code</p><p data-v-7602e9ce>Running code ...</p><p data-v-7602e9ce><code data-v-7602e9ce>python regression.py --rate=0.1 --logs=1 --name=run-01</code></p><p data-v-7602e9ce>... and loading the corresponding results ...</p><p data-v-7602e9ce><code data-v-7602e9ce>python plot_regression_result.py --component=run-01</code></p><p data-v-7602e9ce>... are distinct and often redundant.</p><p data-v-7602e9ce>This means you have to manually keep track by remembering what the component with <code data-v-7602e9ce>rate=0.1</code> was called.</p></div><br data-v-7602e9ce><div class="tip custom-block" data-v-7602e9ce><p class="custom-block-title" data-v-7602e9ce>machinable research code</p><p data-v-7602e9ce>Running code ...</p><p data-v-7602e9ce><code data-v-7602e9ce>machinable regression rate=0.1 logs_=True --launch</code></p><p data-v-7602e9ce>... and loading the corresponding results ...</p><p data-v-7602e9ce><code data-v-7602e9ce>machinable regression rate=0.1 logs_=True --launch --plot</code></p><p data-v-7602e9ce>... are distinct but use the same abstraction.</p><p data-v-7602e9ce>This means no need to worry about names as machinable automatically keeps track if you ran <code data-v-7602e9ce>rate=0.1</code> before.</p></div><br data-v-7602e9ce><p data-v-7602e9ce>➡️ <a href="./about/approach.html" data-v-7602e9ce>Learn more about machinable's approach</a></p></div></div></section><br data-v-7602e9ce><br data-v-7602e9ce><br data-v-7602e9ce><img src="/assets/logo.9895b1a3.png" style="width:64px;margin:0 auto;" alt="logo" data-v-7602e9ce></div></div></div></div><footer class="VPFooter" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body> diff --git a/reference/index.html b/reference/index.html index 183152fa..9da6c553 100644 --- a/reference/index.html +++ b/reference/index.html @@ -25,7 +25,7 @@ </head> <body> <div id="app"><div class="Layout" data-v-b2cf3e0b><!--[--><!--]--><!--[--><span tabindex="-1" data-v-c8616af1></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-c8616af1> Skip to content </a><!--]--><!----><header class="VPNav" data-v-b2cf3e0b data-v-7e5bc4a5><div class="VPNavBar" data-v-7e5bc4a5 data-v-7c10cd25><div class="container" data-v-7c10cd25><div class="title" data-v-7c10cd25><div class="VPNavBarTitle" data-v-7c10cd25 data-v-4d981103><a class="title" href="/" data-v-4d981103><!--[--><!--]--><!--[--><img class="VPImage logo" src="/logo/logo.svg" alt data-v-6db2186b><!--]--><!--[-->machinable<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-7c10cd25><div class="curtain" data-v-7c10cd25></div><div class="content-body" data-v-7c10cd25><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-7c10cd25><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-7c10cd25 data-v-7f418b0f><span id="main-nav-aria-label" class="visually-hidden" data-v-7f418b0f>Main Navigation</span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/guide/introduction.html" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Guide<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/reference/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Reference<!--]--><!----></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/examples/" tabindex="0" data-v-7f418b0f data-v-5e623618 data-v-8f4dc553><!--[-->Examples<!--]--><!----></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-7f418b0f data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-764effdf><span class="text" data-v-764effdf><!----> About <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-764effdf><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><div class="items" data-v-e7ea1737><!--[--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="/about/approach.html" data-v-2f2cfafc data-v-8f4dc553><!--[-->Approach<!--]--><!----></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-e7ea1737 data-v-2f2cfafc><a class="VPLink link" href="https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md" target="_blank" rel="noreferrer" data-v-2f2cfafc data-v-8f4dc553><!--[-->Changelog<!--]--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" height="24px" viewbox="0 0 24 24" width="24px" class="icon" data-v-8f4dc553><path d="M0 0h24v24H0V0z" fill="none"></path><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"></path></svg></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-7c10cd25 data-v-f6a63727><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-f6a63727 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-7c10cd25 data-v-0394ad82 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-7c10cd25 data-v-40855f84 data-v-764effdf><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-764effdf><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-764effdf><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-764effdf><div class="VPMenu" data-v-764effdf data-v-e7ea1737><!----><!--[--><!--[--><!----><div class="group" data-v-40855f84><div class="item appearance" data-v-40855f84><p class="label" data-v-40855f84>Appearance</p><div class="appearance-action" data-v-40855f84><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-40855f84 data-v-87de0873 data-v-f3c41672><span class="check" data-v-f3c41672><span class="icon" data-v-f3c41672><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-87de0873><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-87de0873><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-40855f84><div class="item social-links" data-v-40855f84><div class="VPSocialLinks social-links-list" data-v-40855f84 data-v-d7a53887><!--[--><a class="VPSocialLink" href="https://github.com/machinable-org/machinable" aria-label="github" target="_blank" rel="noopener" data-v-d7a53887 data-v-c530cc0a><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-7c10cd25 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><!----></header><div class="VPLocalNav" data-v-b2cf3e0b data-v-392e1bf8><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-392e1bf8 data-v-079b16a8><button data-v-079b16a8>Return to top</button><!----></div></div><!----><div class="VPContent" id="VPContent" data-v-b2cf3e0b data-v-a494bd1d><div class="VPDoc has-aside" data-v-a494bd1d data-v-c4b0d3cf><!--[--><!--]--><div class="container" data-v-c4b0d3cf><div class="aside" data-v-c4b0d3cf><div class="aside-curtain" data-v-c4b0d3cf></div><div class="aside-container" data-v-c4b0d3cf><div class="aside-content" data-v-c4b0d3cf><div class="VPDocAside" data-v-c4b0d3cf data-v-3f215769><!--[--><!--]--><!--[--><!--]--><div class="VPDocAsideOutline" data-v-3f215769 data-v-ff0f39c8><div class="content" data-v-ff0f39c8><div class="outline-marker" data-v-ff0f39c8></div><div class="outline-title" data-v-ff0f39c8>On this page</div><nav aria-labelledby="doc-outline-aria-label" data-v-ff0f39c8><span class="visually-hidden" id="doc-outline-aria-label" data-v-ff0f39c8> Table of Contents for current page </span><ul class="root" data-v-ff0f39c8 data-v-9a431c33><!--[--><!--]--></ul></nav></div></div><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-c4b0d3cf><div class="content-container" data-v-c4b0d3cf><!--[--><!--]--><!----><main class="main" data-v-c4b0d3cf><div style="position:relative;" class="vp-doc _reference_index" data-v-c4b0d3cf><div><h1 id="reference-documentation" tabindex="-1">Reference documentation <a class="header-anchor" href="#reference-documentation" aria-label="Permalink to "Reference documentation""></a></h1><p>This page contains detailed API reference documentation. It is intended to be an in-depth resource for understanding the implementation details of machinable's interfaces. You may prefer reviewing the more explanatory <a href="./../guide/introduction.html">guide</a> before consulting this reference.</p><h2 id="api" tabindex="-1">API <a class="header-anchor" href="#api" aria-label="Permalink to "API""></a></h2><div><ul><!--[--><li><a href="#" style="">Component</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">dispatch</a><!----></li><li><a href="#" style="">dispatch_code</a><!----></li><li><a href="#" style="">executions</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_after_dispatch</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_before_dispatch</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_failure</a><!----></li><li><a href="#" style="">on_finish</a><!----></li><li><a href="#" style="">on_heartbeat</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">on_seeding</a><!----></li><li><a href="#" style="">on_success</a><!----></li><li><a href="#" style="">on_write_meta_data</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Element</a><ul><!--[--><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Execution</a><ul><!--[--><li><a href="#" style="">add</a><!----></li><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">canonicalize_resources</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">component_directory</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">computed_resources</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">deferred</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">dispatch</a><!----></li><li><a href="#" style="">executable</a><!----></li><li><a href="#" style="">executables</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">finished_at</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">heartbeat_at</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_active</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_finished</a><!----></li><li><a href="#" style="">is_incomplete</a><!----></li><li><a href="#" style="">is_live</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">is_resumed</a><!----></li><li><a href="#" style="">is_started</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">of</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_after_dispatch</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_before_dispatch</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_default_resources</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">on_verify_schedule</a><!----></li><li><a href="#" style="">output</a><!----></li><li><a href="#" style="">output_filepath</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">resumed_at</a><!----></li><li><a href="#" style="">retrieve_status</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">schedule</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">started_at</a><!----></li><li><a href="#" style="">stream_output</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">update_status</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Index</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">config_in_directory</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">create_relation</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_context</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">find_related</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">import_directory</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Interface</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Mixin</a><!----></li><li><a href="#" style="">Project</a><ul><!--[--><li><a href="#" style="">add_to_path</a><!----></li><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">element</a><!----></li><li><a href="#" style="">exists</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">get_code_version</a><!----></li><li><a href="#" style="">get_diff</a><!----></li><li><a href="#" style="">get_host_info</a><!----></li><li><a href="#" style="">get_root</a><!----></li><li><a href="#" style="">get_vendors</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">is_root</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">name</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">on_parse_cli</a><!----></li><li><a href="#" style="">on_resolve_element</a><!----></li><li><a href="#" style="">on_resolve_remotes</a><!----></li><li><a href="#" style="">on_resolve_vendor</a><!----></li><li><a href="#" style="">path</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">provider</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">resolve_remotes</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Schedule</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Scope</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Storage</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">contains</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">download</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">retrieve</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">update</a><!----></li><li><a href="#" style="">upload</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">mixin</a><ul><!--[--><li><a href="#" style="">Mixin</a><!----></li><li><a href="#" style="">bind</a><!----></li><li><a href="#" style="">mixin</a><!----></li><!--]--></ul></li><li><a href="#" style="">cli</a><ul><!--[--><li><a href="#" style="">from_cli</a><!----></li><li><a href="#" style="">main</a><!----></li><li><a href="#" style="">parse</a><!----></li><!--]--></ul></li><li><a href="#" style="">collection</a><ul><!--[--><li><a href="#" style="">Collection</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">append</a><!----></li><li><a href="#" style="">as_dataframe</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">as_numpy</a><!----></li><li><a href="#" style="">as_table</a><!----></li><li><a href="#" style="">avg</a><!----></li><li><a href="#" style="">chunk</a><!----></li><li><a href="#" style="">collapse</a><!----></li><li><a href="#" style="">contains</a><!----></li><li><a href="#" style="">count</a><!----></li><li><a href="#" style="">diff</a><!----></li><li><a href="#" style="">each</a><!----></li><li><a href="#" style="">empty</a><!----></li><li><a href="#" style="">every</a><!----></li><li><a href="#" style="">filter</a><!----></li><li><a href="#" style="">first</a><!----></li><li><a href="#" style="">flatten</a><!----></li><li><a href="#" style="">forget</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">implode</a><!----></li><li><a href="#" style="">last</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">map</a><!----></li><li><a href="#" style="">max</a><!----></li><li><a href="#" style="">merge</a><!----></li><li><a href="#" style="">min</a><!----></li><li><a href="#" style="">only</a><!----></li><li><a href="#" style="">pluck</a><!----></li><li><a href="#" style="">pluck_or_nan</a><!----></li><li><a href="#" style="">pluck_or_none</a><!----></li><li><a href="#" style="">pop</a><!----></li><li><a href="#" style="">pprint</a><!----></li><li><a href="#" style="">prepend</a><!----></li><li><a href="#" style="">pull</a><!----></li><li><a href="#" style="">put</a><!----></li><li><a href="#" style="">reduce</a><!----></li><li><a href="#" style="">reject</a><!----></li><li><a href="#" style="">reverse</a><!----></li><li><a href="#" style="">section</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">sort</a><!----></li><li><a href="#" style="">sum</a><!----></li><li><a href="#" style="">take</a><!----></li><li><a href="#" style="">transform</a><!----></li><li><a href="#" style="">unique</a><!----></li><li><a href="#" style="">where</a><!----></li><li><a href="#" style="">without</a><!----></li><li><a href="#" style="">zip</a><!----></li><!--]--></ul></li><li><a href="#" style="">ComponentCollection</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">append</a><!----></li><li><a href="#" style="">as_dataframe</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">as_numpy</a><!----></li><li><a href="#" style="">as_table</a><!----></li><li><a href="#" style="">avg</a><!----></li><li><a href="#" style="">chunk</a><!----></li><li><a href="#" style="">collapse</a><!----></li><li><a href="#" style="">contains</a><!----></li><li><a href="#" style="">count</a><!----></li><li><a href="#" style="">diff</a><!----></li><li><a href="#" style="">each</a><!----></li><li><a href="#" style="">empty</a><!----></li><li><a href="#" style="">every</a><!----></li><li><a href="#" style="">filter</a><!----></li><li><a href="#" style="">filter_by_context</a><!----></li><li><a href="#" style="">filter_by_module</a><!----></li><li><a href="#" style="">first</a><!----></li><li><a href="#" style="">flatten</a><!----></li><li><a href="#" style="">forget</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">implode</a><!----></li><li><a href="#" style="">last</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">map</a><!----></li><li><a href="#" style="">max</a><!----></li><li><a href="#" style="">merge</a><!----></li><li><a href="#" style="">min</a><!----></li><li><a href="#" style="">only</a><!----></li><li><a href="#" style="">pluck</a><!----></li><li><a href="#" style="">pluck_or_nan</a><!----></li><li><a href="#" style="">pluck_or_none</a><!----></li><li><a href="#" style="">pop</a><!----></li><li><a href="#" style="">pprint</a><!----></li><li><a href="#" style="">prepend</a><!----></li><li><a href="#" style="">pull</a><!----></li><li><a href="#" style="">put</a><!----></li><li><a href="#" style="">reduce</a><!----></li><li><a href="#" style="">reject</a><!----></li><li><a href="#" style="">reverse</a><!----></li><li><a href="#" style="">section</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">sort</a><!----></li><li><a href="#" style="">sum</a><!----></li><li><a href="#" style="">take</a><!----></li><li><a href="#" style="">transform</a><!----></li><li><a href="#" style="">unique</a><!----></li><li><a href="#" style="">where</a><!----></li><li><a href="#" style="">without</a><!----></li><li><a href="#" style="">zip</a><!----></li><!--]--></ul></li><li><a href="#" style="">ElementCollection</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">append</a><!----></li><li><a href="#" style="">as_dataframe</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">as_numpy</a><!----></li><li><a href="#" style="">as_table</a><!----></li><li><a href="#" style="">avg</a><!----></li><li><a href="#" style="">chunk</a><!----></li><li><a href="#" style="">collapse</a><!----></li><li><a href="#" style="">contains</a><!----></li><li><a href="#" style="">count</a><!----></li><li><a href="#" style="">diff</a><!----></li><li><a href="#" style="">each</a><!----></li><li><a href="#" style="">empty</a><!----></li><li><a href="#" style="">every</a><!----></li><li><a href="#" style="">filter</a><!----></li><li><a href="#" style="">filter_by_context</a><!----></li><li><a href="#" style="">filter_by_module</a><!----></li><li><a href="#" style="">first</a><!----></li><li><a href="#" style="">flatten</a><!----></li><li><a href="#" style="">forget</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">implode</a><!----></li><li><a href="#" style="">last</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">map</a><!----></li><li><a href="#" style="">max</a><!----></li><li><a href="#" style="">merge</a><!----></li><li><a href="#" style="">min</a><!----></li><li><a href="#" style="">only</a><!----></li><li><a href="#" style="">pluck</a><!----></li><li><a href="#" style="">pluck_or_nan</a><!----></li><li><a href="#" style="">pluck_or_none</a><!----></li><li><a href="#" style="">pop</a><!----></li><li><a href="#" style="">pprint</a><!----></li><li><a href="#" style="">prepend</a><!----></li><li><a href="#" style="">pull</a><!----></li><li><a href="#" style="">put</a><!----></li><li><a href="#" style="">reduce</a><!----></li><li><a href="#" style="">reject</a><!----></li><li><a href="#" style="">reverse</a><!----></li><li><a href="#" style="">section</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">sort</a><!----></li><li><a href="#" style="">sum</a><!----></li><li><a href="#" style="">take</a><!----></li><li><a href="#" style="">transform</a><!----></li><li><a href="#" style="">unique</a><!----></li><li><a href="#" style="">where</a><!----></li><li><a href="#" style="">without</a><!----></li><li><a href="#" style="">zip</a><!----></li><!--]--></ul></li><li><a href="#" style="">ExecutionCollection</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">append</a><!----></li><li><a href="#" style="">as_dataframe</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">as_numpy</a><!----></li><li><a href="#" style="">as_table</a><!----></li><li><a href="#" style="">avg</a><!----></li><li><a href="#" style="">chunk</a><!----></li><li><a href="#" style="">collapse</a><!----></li><li><a href="#" style="">contains</a><!----></li><li><a href="#" style="">count</a><!----></li><li><a href="#" style="">diff</a><!----></li><li><a href="#" style="">each</a><!----></li><li><a href="#" style="">empty</a><!----></li><li><a href="#" style="">every</a><!----></li><li><a href="#" style="">filter</a><!----></li><li><a href="#" style="">filter_by_context</a><!----></li><li><a href="#" style="">filter_by_module</a><!----></li><li><a href="#" style="">first</a><!----></li><li><a href="#" style="">flatten</a><!----></li><li><a href="#" style="">forget</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">implode</a><!----></li><li><a href="#" style="">last</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">map</a><!----></li><li><a href="#" style="">max</a><!----></li><li><a href="#" style="">merge</a><!----></li><li><a href="#" style="">min</a><!----></li><li><a href="#" style="">only</a><!----></li><li><a href="#" style="">pluck</a><!----></li><li><a href="#" style="">pluck_or_nan</a><!----></li><li><a href="#" style="">pluck_or_none</a><!----></li><li><a href="#" style="">pop</a><!----></li><li><a href="#" style="">pprint</a><!----></li><li><a href="#" style="">prepend</a><!----></li><li><a href="#" style="">pull</a><!----></li><li><a href="#" style="">put</a><!----></li><li><a href="#" style="">reduce</a><!----></li><li><a href="#" style="">reject</a><!----></li><li><a href="#" style="">reverse</a><!----></li><li><a href="#" style="">section</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">sort</a><!----></li><li><a href="#" style="">status</a><!----></li><li><a href="#" style="">sum</a><!----></li><li><a href="#" style="">take</a><!----></li><li><a href="#" style="">transform</a><!----></li><li><a href="#" style="">unique</a><!----></li><li><a href="#" style="">where</a><!----></li><li><a href="#" style="">without</a><!----></li><li><a href="#" style="">zip</a><!----></li><!--]--></ul></li><li><a href="#" style="">InterfaceCollection</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">append</a><!----></li><li><a href="#" style="">as_dataframe</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">as_numpy</a><!----></li><li><a href="#" style="">as_table</a><!----></li><li><a href="#" style="">avg</a><!----></li><li><a href="#" style="">chunk</a><!----></li><li><a href="#" style="">collapse</a><!----></li><li><a href="#" style="">contains</a><!----></li><li><a href="#" style="">count</a><!----></li><li><a href="#" style="">diff</a><!----></li><li><a href="#" style="">each</a><!----></li><li><a href="#" style="">empty</a><!----></li><li><a href="#" style="">every</a><!----></li><li><a href="#" style="">filter</a><!----></li><li><a href="#" style="">filter_by_context</a><!----></li><li><a href="#" style="">filter_by_module</a><!----></li><li><a href="#" style="">first</a><!----></li><li><a href="#" style="">flatten</a><!----></li><li><a href="#" style="">forget</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">implode</a><!----></li><li><a href="#" style="">last</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">map</a><!----></li><li><a href="#" style="">max</a><!----></li><li><a href="#" style="">merge</a><!----></li><li><a href="#" style="">min</a><!----></li><li><a href="#" style="">only</a><!----></li><li><a href="#" style="">pluck</a><!----></li><li><a href="#" style="">pluck_or_nan</a><!----></li><li><a href="#" style="">pluck_or_none</a><!----></li><li><a href="#" style="">pop</a><!----></li><li><a href="#" style="">pprint</a><!----></li><li><a href="#" style="">prepend</a><!----></li><li><a href="#" style="">pull</a><!----></li><li><a href="#" style="">put</a><!----></li><li><a href="#" style="">reduce</a><!----></li><li><a href="#" style="">reject</a><!----></li><li><a href="#" style="">reverse</a><!----></li><li><a href="#" style="">section</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">sort</a><!----></li><li><a href="#" style="">sum</a><!----></li><li><a href="#" style="">take</a><!----></li><li><a href="#" style="">transform</a><!----></li><li><a href="#" style="">unique</a><!----></li><li><a href="#" style="">where</a><!----></li><li><a href="#" style="">without</a><!----></li><li><a href="#" style="">zip</a><!----></li><!--]--></ul></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">data_get</a><!----></li><li><a href="#" style="">reduce</a><!----></li><!--]--></ul></li><li><a href="#" style="">component</a><ul><!--[--><li><a href="#" style="">Component</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">dispatch</a><!----></li><li><a href="#" style="">dispatch_code</a><!----></li><li><a href="#" style="">executions</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_after_dispatch</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_before_dispatch</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_failure</a><!----></li><li><a href="#" style="">on_finish</a><!----></li><li><a href="#" style="">on_heartbeat</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">on_seeding</a><!----></li><li><a href="#" style="">on_success</a><!----></li><li><a href="#" style="">on_write_meta_data</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="#" style="">config</a><ul><!--[--><li><a href="#" style="">to_dict</a><!----></li><!--]--></ul></li><li><a href="#" style="">element</a><ul><!--[--><li><a href="#" style="">ConfigMethod</a><!----></li><li><a href="#" style="">Element</a><ul><!--[--><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">compact</a><!----></li><li><a href="#" style="">defaultversion</a><!----></li><li><a href="#" style="">equaljson</a><!----></li><li><a href="#" style="">equalversion</a><!----></li><li><a href="#" style="">extend</a><!----></li><li><a href="#" style="">extract</a><!----></li><li><a href="#" style="">get_dump</a><!----></li><li><a href="#" style="">get_lineage</a><!----></li><li><a href="#" style="">instantiate</a><!----></li><li><a href="#" style="">normversion</a><!----></li><li><a href="#" style="">reset_connections</a><!----></li><li><a href="#" style="">transfer_to</a><!----></li><li><a href="#" style="">uuid_to_id</a><!----></li><!--]--></ul></li><li><a href="#" style="">errors</a><ul><!--[--><li><a href="#" style="">ComponentException</a><ul><!--[--><li><a href="#" style="">add_note</a><!----></li><li><a href="#" style="">with_traceback</a><!----></li><!--]--></ul></li><li><a href="#" style="">ConfigurationError</a><ul><!--[--><li><a href="#" style="">add_note</a><!----></li><li><a href="#" style="">with_traceback</a><!----></li><!--]--></ul></li><li><a href="#" style="">DependencyMissing</a><ul><!--[--><li><a href="#" style="">add_note</a><!----></li><li><a href="#" style="">with_traceback</a><!----></li><!--]--></ul></li><li><a href="#" style="">ExecutionFailed</a><ul><!--[--><li><a href="#" style="">add_note</a><!----></li><li><a href="#" style="">with_traceback</a><!----></li><!--]--></ul></li><li><a href="#" style="">MachinableError</a><ul><!--[--><li><a href="#" style="">add_note</a><!----></li><li><a href="#" style="">with_traceback</a><!----></li><!--]--></ul></li><li><a href="#" style="">StorageError</a><ul><!--[--><li><a href="#" style="">add_note</a><!----></li><li><a href="#" style="">with_traceback</a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="#" style="">execution</a><ul><!--[--><li><a href="#" style="">Execution</a><ul><!--[--><li><a href="#" style="">add</a><!----></li><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">canonicalize_resources</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">component_directory</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">computed_resources</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">deferred</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">dispatch</a><!----></li><li><a href="#" style="">executable</a><!----></li><li><a href="#" style="">executables</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">finished_at</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">heartbeat_at</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_active</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_finished</a><!----></li><li><a href="#" style="">is_incomplete</a><!----></li><li><a href="#" style="">is_live</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">is_resumed</a><!----></li><li><a href="#" style="">is_started</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">of</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_after_dispatch</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_before_dispatch</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_default_resources</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">on_verify_schedule</a><!----></li><li><a href="#" style="">output</a><!----></li><li><a href="#" style="">output_filepath</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">resumed_at</a><!----></li><li><a href="#" style="">retrieve_status</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">schedule</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">started_at</a><!----></li><li><a href="#" style="">stream_output</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">update_status</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="#" style="">index</a><ul><!--[--><li><a href="#" style="">Index</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">config_in_directory</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">create_relation</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_context</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">find_related</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">import_directory</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">db</a><!----></li><li><a href="#" style="">interface_row_factory</a><!----></li><li><a href="#" style="">load</a><!----></li><li><a href="#" style="">migrate</a><!----></li><!--]--></ul></li><li><a href="#" style="">interface</a><ul><!--[--><li><a href="#" style="">BelongsTo</a><ul><!--[--><li><a href="#" style="">collect</a><!----></li><!--]--></ul></li><li><a href="#" style="">BelongsToMany</a><ul><!--[--><li><a href="#" style="">collect</a><!----></li><!--]--></ul></li><li><a href="#" style="">HasMany</a><ul><!--[--><li><a href="#" style="">collect</a><!----></li><!--]--></ul></li><li><a href="#" style="">HasOne</a><ul><!--[--><li><a href="#" style="">collect</a><!----></li><!--]--></ul></li><li><a href="#" style="">Interface</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">Relation</a><ul><!--[--><li><a href="#" style="">collect</a><!----></li><!--]--></ul></li><li><a href="#" style="">belongs_to</a><!----></li><li><a href="#" style="">belongs_to_many</a><!----></li><li><a href="#" style="">has_many</a><!----></li><li><a href="#" style="">has_one</a><!----></li><!--]--></ul></li><li><a href="#" style="">project</a><ul><!--[--><li><a href="#" style="">Project</a><ul><!--[--><li><a href="#" style="">add_to_path</a><!----></li><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">element</a><!----></li><li><a href="#" style="">exists</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">get_code_version</a><!----></li><li><a href="#" style="">get_diff</a><!----></li><li><a href="#" style="">get_host_info</a><!----></li><li><a href="#" style="">get_root</a><!----></li><li><a href="#" style="">get_vendors</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">is_root</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">name</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">on_parse_cli</a><!----></li><li><a href="#" style="">on_resolve_element</a><!----></li><li><a href="#" style="">on_resolve_remotes</a><!----></li><li><a href="#" style="">on_resolve_vendor</a><!----></li><li><a href="#" style="">path</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">provider</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">resolve_remotes</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">fetch_directory</a><!----></li><li><a href="#" style="">fetch_git</a><!----></li><li><a href="#" style="">fetch_link</a><!----></li><li><a href="#" style="">fetch_vendor</a><!----></li><li><a href="#" style="">fetch_vendors</a><!----></li><li><a href="#" style="">import_element</a><!----></li><!--]--></ul></li><li><a href="#" style="">query</a><ul><!--[--><li><a href="#" style="">Query</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">by_id</a><!----></li><li><a href="#" style="">cached_or_fail</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">or_fail</a><!----></li><li><a href="#" style="">or_none</a><!----></li><li><a href="#" style="">prefer_cached</a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="#" style="">schedule</a><ul><!--[--><li><a href="#" style="">Schedule</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="#" style="">schema</a><ul><!--[--><li><a href="#" style="">Component</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><li><a href="#" style="">Element</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><li><a href="#" style="">Execution</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><li><a href="#" style="">Index</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><li><a href="#" style="">Interface</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><li><a href="#" style="">Project</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><li><a href="#" style="">Schedule</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><li><a href="#" style="">Scope</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><li><a href="#" style="">Storage</a><ul><!--[--><li><a href="#" style="">construct</a><!----></li><li><a href="#" style="">copy</a><!----></li><li><a href="#" style="">dict</a><!----></li><li><a href="#" style="">extra</a><!----></li><li><a href="#" style="">from_orm</a><!----></li><li><a href="#" style="">json</a><!----></li><li><a href="#" style="">model_construct</a><!----></li><li><a href="#" style="">model_copy</a><!----></li><li><a href="#" style="">model_dump</a><!----></li><li><a href="#" style="">model_dump_json</a><!----></li><li><a href="#" style="">model_json_schema</a><!----></li><li><a href="#" style="">model_parametrized_name</a><!----></li><li><a href="#" style="">model_post_init</a><!----></li><li><a href="#" style="">model_rebuild</a><!----></li><li><a href="#" style="">model_validate</a><!----></li><li><a href="#" style="">model_validate_json</a><!----></li><li><a href="#" style="">model_validate_strings</a><!----></li><li><a href="#" style="">parse_file</a><!----></li><li><a href="#" style="">parse_obj</a><!----></li><li><a href="#" style="">parse_raw</a><!----></li><li><a href="#" style="">schema</a><!----></li><li><a href="#" style="">schema_json</a><!----></li><li><a href="#" style="">update_forward_refs</a><!----></li><li><a href="#" style="">validate</a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="#" style="">scope</a><ul><!--[--><li><a href="#" style="">Scope</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="#" style="">storage</a><ul><!--[--><li><a href="#" style="">Storage</a><ul><!--[--><li><a href="#" style="">all</a><!----></li><li><a href="#" style="">ancestor</a><!----></li><li><a href="#" style="">as_default</a><!----></li><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">cached</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">collect</a><!----></li><li><a href="#" style="">commit</a><!----></li><li><a href="#" style="">compute_context</a><!----></li><li><a href="#" style="">compute_predicate</a><!----></li><li><a href="#" style="">connected</a><!----></li><li><a href="#" style="">contains</a><!----></li><li><a href="#" style="">created_at</a><!----></li><li><a href="#" style="">derive</a><!----></li><li><a href="#" style="">derived</a><!----></li><li><a href="#" style="">download</a><!----></li><li><a href="#" style="">fetch</a><!----></li><li><a href="#" style="">find</a><!----></li><li><a href="#" style="">find_by_hash</a><!----></li><li><a href="#" style="">find_by_id</a><!----></li><li><a href="#" style="">find_many_by_id</a><!----></li><li><a href="#" style="">from_directory</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">from_model</a><!----></li><li><a href="#" style="">future</a><!----></li><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">instance</a><!----></li><li><a href="#" style="">is_committed</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><li><a href="#" style="">is_mounted</a><!----></li><li><a href="#" style="">launch</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">local_directory</a><!----></li><li><a href="#" style="">make</a><!----></li><li><a href="#" style="">matches</a><!----></li><li><a href="#" style="">model</a><!----></li><li><a href="#" style="">new</a><!----></li><li><a href="#" style="">on_after_commit</a><!----></li><li><a href="#" style="">on_after_configure</a><!----></li><li><a href="#" style="">on_before_commit</a><!----></li><li><a href="#" style="">on_before_configure</a><!----></li><li><a href="#" style="">on_commit</a><!----></li><li><a href="#" style="">on_compute_predicate</a><!----></li><li><a href="#" style="">on_configure</a><!----></li><li><a href="#" style="">on_instantiate</a><!----></li><li><a href="#" style="">project</a><!----></li><li><a href="#" style="">push_related</a><!----></li><li><a href="#" style="">related</a><!----></li><li><a href="#" style="">related_iterator</a><!----></li><li><a href="#" style="">retrieve</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">set_default</a><!----></li><li><a href="#" style="">set_model</a><!----></li><li><a href="#" style="">singleton</a><!----></li><li><a href="#" style="">to_cli</a><!----></li><li><a href="#" style="">to_directory</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><li><a href="#" style="">update</a><!----></li><li><a href="#" style="">upload</a><!----></li><li><a href="#" style="">used_by</a><!----></li><li><a href="#" style="">uses</a><!----></li><li><a href="#" style="">version</a><!----></li><!--]--></ul></li><li><a href="#" style="">fetch</a><!----></li><!--]--></ul></li><li><a href="#" style="">types</a><!----></li><li><a href="#" style="">utils</a><ul><!--[--><li><a href="#" style="">Connectable</a><ul><!--[--><li><a href="#" style="">get</a><!----></li><li><a href="#" style="">is_connected</a><!----></li><!--]--></ul></li><li><a href="#" style="">Jsonable</a><ul><!--[--><li><a href="#" style="">as_json</a><!----></li><li><a href="#" style="">clone</a><!----></li><li><a href="#" style="">from_json</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">unserialize</a><!----></li><!--]--></ul></li><li><a href="#" style="">chmodx</a><!----></li><li><a href="#" style="">compute_object_hash</a><!----></li><li><a href="#" style="">dot_splitter</a><!----></li><li><a href="#" style="">empty_uuid</a><!----></li><li><a href="#" style="">file_hash</a><!----></li><li><a href="#" style="">find_installed_extensions</a><!----></li><li><a href="#" style="">find_subclass_in_module</a><!----></li><li><a href="#" style="">generate_nickname</a><!----></li><li><a href="#" style="">generate_seed</a><!----></li><li><a href="#" style="">get_commit</a><!----></li><li><a href="#" style="">get_diff</a><!----></li><li><a href="#" style="">get_root_commit</a><!----></li><li><a href="#" style="">id_from_uuid</a><!----></li><li><a href="#" style="">import_from_directory</a><!----></li><li><a href="#" style="">is_directory_version</a><!----></li><li><a href="#" style="">is_valid_module_path</a><!----></li><li><a href="#" style="">is_valid_variable_name</a><!----></li><li><a href="#" style="">iskeyword</a><!----></li><li><a href="#" style="">joinpath</a><!----></li><li><a href="#" style="">load_file</a><!----></li><li><a href="#" style="">norm_version_call</a><!----></li><li><a href="#" style="">random_str</a><!----></li><li><a href="#" style="">run_and_stream</a><!----></li><li><a href="#" style="">save_file</a><!----></li><li><a href="#" style="">serialize</a><!----></li><li><a href="#" style="">timestamp_to_directory</a><!----></li><li><a href="#" style="">unflatten_dict</a><!----></li><li><a href="#" style="">update_dict</a><!----></li><li><a href="#" style="">update_uuid_payload</a><!----></li><!--]--></ul></li><!--]--></ul></div></div></div></main><footer class="VPDocFooter" data-v-c4b0d3cf data-v-face870a><!--[--><!--]--><div class="edit-info" data-v-face870a><div class="edit-link" data-v-face870a><a class="VPLink link edit-link-button" href="https://github.com/machinable-org/machinable/edit/main/docs/reference/index.md" target="_blank" rel="noreferrer" data-v-face870a data-v-8f4dc553><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-face870a><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--><!----></a></div><!----></div><!----></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter" data-v-b2cf3e0b data-v-2f86ebd2><div class="container" data-v-2f86ebd2><p class="message" data-v-2f86ebd2>MIT Licensed</p><p class="copyright" data-v-2f86ebd2>Copyright © 2021-present</p></div></footer><!--[--><!--]--></div></div> - <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"e71caaa7\",\"examples_index.md\":\"6a333571\",\"guide_introduction.md\":\"fbe498c5\",\"guide_interface.md\":\"04d93558\",\"index.md\":\"ec5fddb7\",\"guide_element.md\":\"b35f8b9f\",\"about_approach.md\":\"40736853\",\"reference_index.md\":\"a073225b\",\"guide_installation.md\":\"59aa7ee4\",\"examples_require-execution_index.md\":\"f9f6e603\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_aimstack-storage_index.md\":\"ed71c2fe\",\"examples_globus-storage_index.md\":\"565fd1a1\",\"examples_slurm-execution_index.md\":\"2da5de23\",\"examples_mpi-execution_index.md\":\"8f6d3933\"}") + <script>__VP_HASH_MAP__ = JSON.parse("{\"guide_component.md\":\"cd64290d\",\"examples_index.md\":\"6a333571\",\"about_approach.md\":\"40736853\",\"examples_aimstack-storage_index.md\":\"728bc3cc\",\"reference_index.md\":\"a073225b\",\"examples_require-execution_index.md\":\"c82a5923\",\"examples_dependent-schedules_index.md\":\"150d073c\",\"examples_mpi-execution_index.md\":\"552b84cf\",\"index.md\":\"ec5fddb7\",\"examples_globus-storage_index.md\":\"b5f6bec3\",\"guide_interface.md\":\"9f71e6f3\",\"guide_installation.md\":\"59aa7ee4\",\"guide_element.md\":\"b35f8b9f\",\"examples_slurm-execution_index.md\":\"c22a144a\",\"guide_introduction.md\":\"2d13e130\"}") __VP_SITE_DATA__ = JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"machinable\",\"description\":\"A modular configuration system for research projects\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo/logo.svg\",\"nav\":[{\"text\":\"Guide\",\"link\":\"/guide/introduction\"},{\"text\":\"Reference\",\"link\":\"/reference/\"},{\"text\":\"Examples\",\"link\":\"/examples/\"},{\"text\":\"About\",\"items\":[{\"text\":\"Approach\",\"link\":\"/about/approach\"},{\"text\":\"Changelog\",\"link\":\"https://github.com/machinable-org/machinable/blob/main/CHANGELOG.md\"}]}],\"sidebar\":{\"/guide/\":[{\"text\":\"Getting Started\",\"items\":[{\"text\":\"Introduction\",\"link\":\"/guide/introduction\"},{\"text\":\"Installation\",\"link\":\"/guide/installation\"}]},{\"text\":\"Core\",\"items\":[{\"text\":\"Element\",\"link\":\"/guide/element\"},{\"text\":\"Interface\",\"link\":\"/guide/interface\"},{\"text\":\"Component\",\"link\":\"/guide/component\"}]}],\"/examples/\":[{\"text\":\"Storage\",\"items\":[{\"text\":\"Aimstack\",\"link\":\"/examples/aimstack-storage/\"},{\"text\":\"Globus\",\"link\":\"/examples/globus-storage/\"}]},{\"text\":\"Execution\",\"items\":[{\"text\":\"MPI\",\"link\":\"/examples/mpi-execution/\"},{\"text\":\"Slurm\",\"link\":\"/examples/slurm-execution/\"},{\"text\":\"Require\",\"link\":\"/examples/require-execution/\"}]}]},\"footer\":{\"message\":\"MIT Licensed\",\"copyright\":\"Copyright © 2021-present\"},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/machinable-org/machinable\"}],\"editLink\":{\"pattern\":\"https://github.com/machinable-org/machinable/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}")</script> </body>