Skip to content

v0.4.0 Release Prep #80

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion custom-nb-image/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ RUN pip install -r requirements.txt
RUN pip uninstall pickle5 -y

# Install codeflare-sdk and other libraries
RUN pip install codeflare-sdk==0.3.1 \
RUN pip install codeflare-sdk==0.4.0 \
datasets==2.6.1 \
transformers==4.23.1 \
evaluate==0.3.0 \
Expand Down
2 changes: 1 addition & 1 deletion custom-nb-image/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
sdk0.3.1-v1
sdk0.4.0-v1
6 changes: 3 additions & 3 deletions docs/cluster/auth.html
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ <h1 class="title">Module <code>codeflare_sdk.cluster.auth</code></h1>
args.append(&#34;--insecure-skip-tls-verify&#34;)
try:
response = oc.invoke(&#34;login&#34;, args)
except OpenShiftPythonException as osp:
except OpenShiftPythonException as osp: # pragma: no cover
error_msg = osp.result.err()
if &#34;The server uses a certificate signed by unknown authority&#34; in error_msg:
return &#34;Error: certificate auth failure, please set `skip_tls=True` in TokenAuthentication&#34;
Expand Down Expand Up @@ -360,7 +360,7 @@ <h3>Methods</h3>
args.append(&#34;--insecure-skip-tls-verify&#34;)
try:
response = oc.invoke(&#34;login&#34;, args)
except OpenShiftPythonException as osp:
except OpenShiftPythonException as osp: # pragma: no cover
error_msg = osp.result.err()
if &#34;The server uses a certificate signed by unknown authority&#34; in error_msg:
return &#34;Error: certificate auth failure, please set `skip_tls=True` in TokenAuthentication&#34;
Expand Down Expand Up @@ -406,7 +406,7 @@ <h3>Methods</h3>
args.append(&#34;--insecure-skip-tls-verify&#34;)
try:
response = oc.invoke(&#34;login&#34;, args)
except OpenShiftPythonException as osp:
except OpenShiftPythonException as osp: # pragma: no cover
error_msg = osp.result.err()
if &#34;The server uses a certificate signed by unknown authority&#34; in error_msg:
return &#34;Error: certificate auth failure, please set `skip_tls=True` in TokenAuthentication&#34;
Expand Down
77 changes: 71 additions & 6 deletions docs/cluster/cluster.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ <h1 class="title">Module <code>codeflare_sdk.cluster.cluster</code></h1>

from os import stat
from time import sleep
from typing import List, Optional, Tuple
from typing import List, Optional, Tuple, Dict

import openshift as oc
from ray.job_submission import JobSubmissionClient
Expand All @@ -77,6 +77,8 @@ <h1 class="title">Module <code>codeflare_sdk.cluster.cluster</code></h1>
Note that currently, the underlying implementation is a Ray cluster.
&#34;&#34;&#34;

torchx_scheduler = &#34;ray&#34;

def __init__(self, config: ClusterConfiguration):
&#34;&#34;&#34;
Create the resource cluster object by passing in a ClusterConfiguration
Expand Down Expand Up @@ -222,7 +224,7 @@ <h1 class="title">Module <code>codeflare_sdk.cluster.cluster</code></h1>
if status == CodeFlareClusterStatus.UNKNOWN:
pretty_print.print_no_resources_found()
else:
pretty_print.print_app_wrappers_status([appwrapper])
pretty_print.print_app_wrappers_status([appwrapper], starting=True)

return status, ready

Expand Down Expand Up @@ -300,6 +302,20 @@ <h1 class="title">Module <code>codeflare_sdk.cluster.cluster</code></h1>
client = JobSubmissionClient(dashboard_route)
return client.get_job_logs(job_id)

def torchx_config(
self, working_dir: str = None, requirements: str = None
) -&gt; Dict[str, str]:
dashboard_address = f&#34;{self.cluster_dashboard_uri().lstrip(&#39;http://&#39;)}&#34;
to_return = {
&#34;cluster_name&#34;: self.config.name,
&#34;dashboard_address&#34;: dashboard_address,
}
if working_dir:
to_return[&#34;working_dir&#34;] = working_dir
if requirements:
to_return[&#34;requirements&#34;] = requirements
return to_return


def get_current_namespace() -&gt; str:
&#34;&#34;&#34;
Expand Down Expand Up @@ -621,6 +637,8 @@ <h2 class="section-title" id="header-classes">Classes</h2>
Note that currently, the underlying implementation is a Ray cluster.
&#34;&#34;&#34;

torchx_scheduler = &#34;ray&#34;

def __init__(self, config: ClusterConfiguration):
&#34;&#34;&#34;
Create the resource cluster object by passing in a ClusterConfiguration
Expand Down Expand Up @@ -766,7 +784,7 @@ <h2 class="section-title" id="header-classes">Classes</h2>
if status == CodeFlareClusterStatus.UNKNOWN:
pretty_print.print_no_resources_found()
else:
pretty_print.print_app_wrappers_status([appwrapper])
pretty_print.print_app_wrappers_status([appwrapper], starting=True)

return status, ready

Expand Down Expand Up @@ -842,8 +860,29 @@ <h2 class="section-title" id="header-classes">Classes</h2>
&#34;&#34;&#34;
dashboard_route = self.cluster_dashboard_uri()
client = JobSubmissionClient(dashboard_route)
return client.get_job_logs(job_id)</code></pre>
return client.get_job_logs(job_id)

def torchx_config(
self, working_dir: str = None, requirements: str = None
) -&gt; Dict[str, str]:
dashboard_address = f&#34;{self.cluster_dashboard_uri().lstrip(&#39;http://&#39;)}&#34;
to_return = {
&#34;cluster_name&#34;: self.config.name,
&#34;dashboard_address&#34;: dashboard_address,
}
if working_dir:
to_return[&#34;working_dir&#34;] = working_dir
if requirements:
to_return[&#34;requirements&#34;] = requirements
return to_return</code></pre>
</details>
<h3>Class variables</h3>
<dl>
<dt id="codeflare_sdk.cluster.cluster.Cluster.torchx_scheduler"><code class="name">var <span class="ident">torchx_scheduler</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="codeflare_sdk.cluster.cluster.Cluster.cluster_dashboard_uri"><code class="name flex">
Expand Down Expand Up @@ -1022,7 +1061,7 @@ <h3>Methods</h3>
</details>
</dd>
<dt id="codeflare_sdk.cluster.cluster.Cluster.list_jobs"><code class="name flex">
<span>def <span class="ident">list_jobs</span></span>(<span>self) ‑> List</span>
<span>def <span class="ident">list_jobs</span></span>(<span>self) ‑> List[~T]</span>
</code></dt>
<dd>
<div class="desc"><p>This method accesses the head ray node in your cluster and lists the running jobs.</p></div>
Expand Down Expand Up @@ -1106,11 +1145,35 @@ <h3>Methods</h3>
if status == CodeFlareClusterStatus.UNKNOWN:
pretty_print.print_no_resources_found()
else:
pretty_print.print_app_wrappers_status([appwrapper])
pretty_print.print_app_wrappers_status([appwrapper], starting=True)

return status, ready</code></pre>
</details>
</dd>
<dt id="codeflare_sdk.cluster.cluster.Cluster.torchx_config"><code class="name flex">
<span>def <span class="ident">torchx_config</span></span>(<span>self, working_dir: str = None, requirements: str = None) ‑> Dict[str, str]</span>
</code></dt>
<dd>
<div class="desc"></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">def torchx_config(
self, working_dir: str = None, requirements: str = None
) -&gt; Dict[str, str]:
dashboard_address = f&#34;{self.cluster_dashboard_uri().lstrip(&#39;http://&#39;)}&#34;
to_return = {
&#34;cluster_name&#34;: self.config.name,
&#34;dashboard_address&#34;: dashboard_address,
}
if working_dir:
to_return[&#34;working_dir&#34;] = working_dir
if requirements:
to_return[&#34;requirements&#34;] = requirements
return to_return</code></pre>
</details>
</dd>
<dt id="codeflare_sdk.cluster.cluster.Cluster.up"><code class="name flex">
<span>def <span class="ident">up</span></span>(<span>self)</span>
</code></dt>
Expand Down Expand Up @@ -1209,6 +1272,8 @@ <h4><code><a title="codeflare_sdk.cluster.cluster.Cluster" href="#codeflare_sdk.
<li><code><a title="codeflare_sdk.cluster.cluster.Cluster.job_status" href="#codeflare_sdk.cluster.cluster.Cluster.job_status">job_status</a></code></li>
<li><code><a title="codeflare_sdk.cluster.cluster.Cluster.list_jobs" href="#codeflare_sdk.cluster.cluster.Cluster.list_jobs">list_jobs</a></code></li>
<li><code><a title="codeflare_sdk.cluster.cluster.Cluster.status" href="#codeflare_sdk.cluster.cluster.Cluster.status">status</a></code></li>
<li><code><a title="codeflare_sdk.cluster.cluster.Cluster.torchx_config" href="#codeflare_sdk.cluster.cluster.Cluster.torchx_config">torchx_config</a></code></li>
<li><code><a title="codeflare_sdk.cluster.cluster.Cluster.torchx_scheduler" href="#codeflare_sdk.cluster.cluster.Cluster.torchx_scheduler">torchx_scheduler</a></code></li>
<li><code><a title="codeflare_sdk.cluster.cluster.Cluster.up" href="#codeflare_sdk.cluster.cluster.Cluster.up">up</a></code></li>
<li><code><a title="codeflare_sdk.cluster.cluster.Cluster.wait_ready" href="#codeflare_sdk.cluster.cluster.Cluster.wait_ready">wait_ready</a></code></li>
</ul>
Expand Down
5 changes: 5 additions & 0 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ <h2 class="section-title" id="header-submodules">Sub-modules</h2>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="codeflare_sdk.job" href="job/index.html">codeflare_sdk.job</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt><code class="name"><a title="codeflare_sdk.utils" href="utils/index.html">codeflare_sdk.utils</a></code></dt>
<dd>
<div class="desc"></div>
Expand All @@ -52,6 +56,7 @@ <h1>Index</h1>
<li><h3><a href="#header-submodules">Sub-modules</a></h3>
<ul>
<li><code><a title="codeflare_sdk.cluster" href="cluster/index.html">codeflare_sdk.cluster</a></code></li>
<li><code><a title="codeflare_sdk.job" href="job/index.html">codeflare_sdk.job</a></code></li>
<li><code><a title="codeflare_sdk.utils" href="utils/index.html">codeflare_sdk.utils</a></code></li>
</ul>
</li>
Expand Down
65 changes: 65 additions & 0 deletions docs/job/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" />
<meta name="generator" content="pdoc 0.10.0" />
<title>codeflare_sdk.job API documentation</title>
<meta name="description" content="" />
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/sanitize.min.css" integrity="sha256-PK9q560IAAa6WVRRh76LtCaI8pjTJ2z11v0miyNNjrs=" crossorigin>
<link rel="preload stylesheet" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/11.0.1/typography.min.css" integrity="sha256-7l/o7C8jubJiy74VsKTidCy1yBkRtiUGbVkYBylBqUg=" crossorigin>
<link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/styles/github.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:30px;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:1em 0 .50em 0}h3{font-size:1.4em;margin:25px 0 10px 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .3s ease-in-out}a:hover{color:#e82}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900}pre code{background:#f8f8f8;font-size:.8em;line-height:1.4em}code{background:#f2f2f1;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{background:#f8f8f8;border:0;border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0;padding:1ex}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-weight:bold;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em .5em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.item .name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul{padding-left:1.5em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.1/highlight.min.js" integrity="sha256-Uv3H6lx7dJmRfRvH8TH6kJD1TSK1aFcwgx+mdg3epi8=" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => hljs.initHighlighting())</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>codeflare_sdk.job</code></h1>
</header>
<section id="section-intro">
</section>
<section>
<h2 class="section-title" id="header-submodules">Sub-modules</h2>
<dl>
<dt><code class="name"><a title="codeflare_sdk.job.jobs" href="jobs.html">codeflare_sdk.job.jobs</a></code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
</section>
<section>
</section>
<section>
</section>
<section>
</section>
</article>
<nav id="sidebar">
<h1>Index</h1>
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="codeflare_sdk" href="../index.html">codeflare_sdk</a></code></li>
</ul>
</li>
<li><h3><a href="#header-submodules">Sub-modules</a></h3>
<ul>
<li><code><a title="codeflare_sdk.job.jobs" href="jobs.html">codeflare_sdk.job.jobs</a></code></li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.10.0</a>.</p>
</footer>
</body>
</html>
Loading