ciocore 9.0.0b2__py2.py3-none-any.whl → 9.1.0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ciocore might be problematic. Click here for more details.

ciocore/VERSION CHANGED
@@ -1 +1 @@
1
- 9.0.0-beta.2
1
+ 9.1.0
ciocore/api_client.py CHANGED
@@ -489,23 +489,26 @@ def account_name_from_jwt(token):
489
489
  return None
490
490
 
491
491
 
492
- def request_instance_types(as_dict=False):
492
+ def request_instance_types(as_dict=False, filter_param=""):
493
493
  """
494
494
  Get the list of available instances types.
495
495
 
496
496
  Args:
497
497
  as_dict (bool): Whether or not to return the instance types as a dictionary.
498
+ filter_param (string): complex RHS string query ex:
499
+ "cpu=gte:8:int,operating_system=ne:windows,gpu.gpu_count=eq:1:int"
498
500
 
499
501
  Returns:
500
502
  list: The list of instance types.
501
503
  """
502
504
  api = ApiClient()
503
505
  response, response_code = api.make_request(
504
- "api/v1/instance-types", use_api_key=True, raise_on_error=False
506
+ "api/v1/instance-types", use_api_key=True, raise_on_error=False,
507
+ params={"filter":filter_param}
505
508
  )
506
509
  if response_code not in (200,):
507
510
  msg = "Failed to get instance types"
508
- msg += "\nError %s ...\n%s" % (response_code, response)
511
+ msg += "\nAPI responded with status code %s\n" % (response_code)
509
512
  raise Exception(msg)
510
513
 
511
514
  instance_types = json.loads(response).get("data", [])
@@ -555,7 +558,7 @@ def request_projects(statuses=("active",)):
555
558
  def request_software_packages():
556
559
  """
557
560
  Query Conductor for all software packages for the currently available sidecar.
558
-
561
+
559
562
  Returns:
560
563
  list: The list of software packages.
561
564
  """
ciocore/data.py CHANGED
@@ -51,12 +51,14 @@ def init(*products, **kwargs):
51
51
 
52
52
  __platforms__ = set(kwargs.get("platforms", ["windows", "linux"]))
53
53
 
54
- def data(force=False):
54
+ def data(force=False, instances_filter=""):
55
55
  """
56
56
  Provide projects, instance types, and software package data.
57
57
 
58
58
  Keyword Args:
59
59
  force: (bool) If `True`, then force the system to fetch fresh data -- Defaults to `False`.
60
+ instances_filter: (str) complex RHS string query ex:
61
+ "cpu=gte:8:int,operating_system=ne:windows,gpu.gpu_count=eq:1:int"
60
62
 
61
63
  Raises:
62
64
  ValueError: Module was not initialized with [init()](/data/#ciocore.data.init).
@@ -118,7 +120,7 @@ def data(force=False):
118
120
  # PROJECTS
119
121
  __data__["projects"] = sorted(api_client.request_projects())
120
122
  # INST_TYPES
121
- instance_types = api_client.request_instance_types()
123
+ instance_types = api_client.request_instance_types(filter_param=instances_filter)
122
124
  # SOFTWARE
123
125
  software = api_client.request_software_packages()
124
126
 
@@ -2394,7 +2394,7 @@ prompt the user to log in. </p>
2394
2394
 
2395
2395
 
2396
2396
  <h2 id="ciocore.api_client.request_instance_types" class="doc doc-heading">
2397
- <code class="highlight language-python"><span class="n">request_instance_types</span><span class="p">(</span><span class="n">as_dict</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
2397
+ <code class="highlight language-python"><span class="n">request_instance_types</span><span class="p">(</span><span class="n">as_dict</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">filter_param</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span></code>
2398
2398
 
2399
2399
 
2400
2400
  </h2>
@@ -2420,6 +2420,13 @@ prompt the user to log in. </p>
2420
2420
  <td><p>Whether or not to return the instance types as a dictionary.</p></td>
2421
2421
  <td><code>False</code></td>
2422
2422
  </tr>
2423
+ <tr>
2424
+ <td><code>filter_param</code></td>
2425
+ <td><code>string</code></td>
2426
+ <td><p>complex RHS string query ex:
2427
+ "cpu=gte:8:int,operating_system=ne:windows,gpu.gpu_count=eq:1:int"</p></td>
2428
+ <td><code>&#39;&#39;</code></td>
2429
+ </tr>
2423
2430
  </tbody>
2424
2431
  </table>
2425
2432
  <p><strong>Returns:</strong></p>
@@ -2439,23 +2446,26 @@ prompt the user to log in. </p>
2439
2446
  </table>
2440
2447
  <details class="quote">
2441
2448
  <summary>Source code in <code>ciocore/api_client.py</code></summary>
2442
- <div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">request_instance_types</span><span class="p">(</span><span class="n">as_dict</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
2449
+ <div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">request_instance_types</span><span class="p">(</span><span class="n">as_dict</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">filter_param</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
2443
2450
  <span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
2444
2451
  <span class="sd"> Get the list of available instances types.</span>
2445
2452
 
2446
2453
  <span class="sd"> Args:</span>
2447
2454
  <span class="sd"> as_dict (bool): Whether or not to return the instance types as a dictionary.</span>
2455
+ <span class="sd"> filter_param (string): complex RHS string query ex:</span>
2456
+ <span class="sd"> &quot;cpu=gte:8:int,operating_system=ne:windows,gpu.gpu_count=eq:1:int&quot;</span>
2448
2457
 
2449
2458
  <span class="sd"> Returns:</span>
2450
2459
  <span class="sd"> list: The list of instance types.</span>
2451
2460
  <span class="sd"> &quot;&quot;&quot;</span>
2452
2461
  <span class="n">api</span> <span class="o">=</span> <span class="n">ApiClient</span><span class="p">()</span>
2453
2462
  <span class="n">response</span><span class="p">,</span> <span class="n">response_code</span> <span class="o">=</span> <span class="n">api</span><span class="o">.</span><span class="n">make_request</span><span class="p">(</span>
2454
- <span class="s2">&quot;api/v1/instance-types&quot;</span><span class="p">,</span> <span class="n">use_api_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">raise_on_error</span><span class="o">=</span><span class="kc">False</span>
2463
+ <span class="s2">&quot;api/v1/instance-types&quot;</span><span class="p">,</span> <span class="n">use_api_key</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">raise_on_error</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>
2464
+ <span class="n">params</span><span class="o">=</span><span class="p">{</span><span class="s2">&quot;filter&quot;</span><span class="p">:</span><span class="n">filter_param</span><span class="p">}</span>
2455
2465
  <span class="p">)</span>
2456
2466
  <span class="k">if</span> <span class="n">response_code</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="mi">200</span><span class="p">,):</span>
2457
2467
  <span class="n">msg</span> <span class="o">=</span> <span class="s2">&quot;Failed to get instance types&quot;</span>
2458
- <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">Error </span><span class="si">%s</span><span class="s2"> ...</span><span class="se">\n</span><span class="si">%s</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">response_code</span><span class="p">,</span> <span class="n">response</span><span class="p">)</span>
2468
+ <span class="n">msg</span> <span class="o">+=</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">API responded with status code </span><span class="si">%s</span><span class="se">\n</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">response_code</span><span class="p">)</span>
2459
2469
  <span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
2460
2470
 
2461
2471
  <span class="n">instance_types</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">response</span><span class="p">)</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;data&quot;</span><span class="p">,</span> <span class="p">[])</span>
@@ -984,7 +984,7 @@
984
984
 
985
985
 
986
986
  <h2 id="ciocore.data.data" class="doc doc-heading">
987
- <code class="highlight language-python"><span class="n">data</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
987
+ <code class="highlight language-python"><span class="n">data</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">instances_filter</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span></code>
988
988
 
989
989
 
990
990
  </h2>
@@ -1008,6 +1008,12 @@
1008
1008
  <td></td>
1009
1009
  <td><p>(bool) If <code>True</code>, then force the system to fetch fresh data -- Defaults to <code>False</code>.</p></td>
1010
1010
  </tr>
1011
+ <tr>
1012
+ <td><code>instances_filter</code></td>
1013
+ <td></td>
1014
+ <td><p>(str) complex RHS string query ex:
1015
+ "cpu=gte:8:int,operating_system=ne:windows,gpu.gpu_count=eq:1:int"</p></td>
1016
+ </tr>
1011
1017
  </tbody>
1012
1018
  </table>
1013
1019
  <p><strong>Exceptions:</strong></p>
@@ -1079,12 +1085,14 @@ the software available at Conductor, or a subset based on specified products.</p
1079
1085
 
1080
1086
  <details class="quote">
1081
1087
  <summary>Source code in <code>ciocore/data.py</code></summary>
1082
- <div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span>
1088
+ <div class="highlight"><pre><span></span><code><span class="k">def</span> <span class="nf">data</span><span class="p">(</span><span class="n">force</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">instances_filter</span><span class="o">=</span><span class="s2">&quot;&quot;</span><span class="p">):</span>
1083
1089
  <span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
1084
1090
  <span class="sd"> Provide projects, instance types, and software package data.</span>
1085
1091
 
1086
1092
  <span class="sd"> Keyword Args:</span>
1087
1093
  <span class="sd"> force: (bool) If `True`, then force the system to fetch fresh data -- Defaults to `False`.</span>
1094
+ <span class="sd"> instances_filter: (str) complex RHS string query ex:</span>
1095
+ <span class="sd"> &quot;cpu=gte:8:int,operating_system=ne:windows,gpu.gpu_count=eq:1:int&quot;</span>
1088
1096
 
1089
1097
  <span class="sd"> Raises:</span>
1090
1098
  <span class="sd"> ValueError: Module was not initialized with [init()](/data/#ciocore.data.init).</span>
@@ -1146,7 +1154,7 @@ the software available at Conductor, or a subset based on specified products.</p
1146
1154
  <span class="c1"># PROJECTS</span>
1147
1155
  <span class="n">__data__</span><span class="p">[</span><span class="s2">&quot;projects&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">api_client</span><span class="o">.</span><span class="n">request_projects</span><span class="p">())</span>
1148
1156
  <span class="c1"># INST_TYPES</span>
1149
- <span class="n">instance_types</span> <span class="o">=</span> <span class="n">api_client</span><span class="o">.</span><span class="n">request_instance_types</span><span class="p">()</span>
1157
+ <span class="n">instance_types</span> <span class="o">=</span> <span class="n">api_client</span><span class="o">.</span><span class="n">request_instance_types</span><span class="p">(</span><span class="n">filter_param</span><span class="o">=</span><span class="n">instances_filter</span><span class="p">)</span>
1150
1158
  <span class="c1"># SOFTWARE</span>
1151
1159
  <span class="n">software</span> <span class="o">=</span> <span class="n">api_client</span><span class="o">.</span><span class="n">request_software_packages</span><span class="p">()</span>
1152
1160