fgreg closed pull request #25: SDAP-126 Update docs
URL: https://github.com/apache/incubator-sdap-nexus/pull/25
This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:
As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):
diff --git a/client/.idea/client.iml b/client/.idea/client.iml
index 6711606..c366eea 100644
--- a/client/.idea/client.iml
+++ b/client/.idea/client.iml
@@ -2,7 +2,7 @@
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
- <orderEntry type="inheritedJdk" />
+ <orderEntry type="jdk" jdkName="Python 3.6 (nexuscli)" jdkType="Python
SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
diff --git a/client/.idea/misc.xml b/client/.idea/misc.xml
index bd9a126..ce3d6ed 100644
--- a/client/.idea/misc.xml
+++ b/client/.idea/misc.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
- <component name="ProjectRootManager" version="2" project-jdk-name="Python
3.5.0 virtualenv at ~/nexuscli" project-jdk-type="Python SDK" />
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python
3.6 (nexuscli)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
diff --git a/client/.idea/vcs.xml b/client/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/client/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+ </component>
+</project>
\ No newline at end of file
diff --git a/client/docs/nexuscli/index.html b/client/docs/nexuscli/index.html
index 0dead09..2338b98 100644
--- a/client/docs/nexuscli/index.html
+++ b/client/docs/nexuscli/index.html
@@ -1046,6 +1046,7 @@ <h1>Index</h1>
<li class="set"><h3><a href="#header-submodules">Sub-modules</a></h3>
<ul>
<li class="mono"><a href="nexuscli.m.html">nexuscli.nexuscli</a></li>
+ <li class="mono"><a
href="nexuscli_ow.m.html">nexuscli.nexuscli_ow</a></li>
<li class="mono"><a href="test/index.html">nexuscli.test</a></li>
</ul>
</li>
@@ -1065,11 +1066,30 @@ <h1 class="title"><span class="name">nexuscli</span>
module</h1>
<p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli', this);">Show source ≡</a></p>
<div id="source-nexuscli" class="source">
- <div class="codehilite"><pre><span></span><span class="n">rom</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">nexuscli</span> <span class="kn">import</span> <span
class="nn">TimeSeries</span>
-<span class="n">rom</span> <span class="n">nexuscli</span><span
class="o">.</span><span class="n">nexuscli</span> <span
class="kn">import</span> <span class="nn">set_target</span>
-<span class="n">rom</span> <span class="n">nexuscli</span><span
class="o">.</span><span class="n">nexuscli</span> <span
class="kn">import</span> <span class="nn">time_series</span>
-<span class="n">rom</span> <span class="n">nexuscli</span><span
class="o">.</span><span class="n">nexuscli</span> <span
class="kn">import</span> <span class="nn">dataset_list</span>
-<span class="n">rom</span> <span class="n">nexuscli</span><span
class="o">.</span><span class="n">nexuscli</span> <span
class="kn">import</span> <span class="nn">daily_difference_average</span>
+ <div class="codehilite"><pre><span></span><span class="c1"># Licensed to
the Apache Software Foundation (ASF) under one or more</span>
+<span class="c1"># contributor license agreements. See the NOTICE file
distributed with</span>
+<span class="c1"># this work for additional information regarding copyright
ownership.</span>
+<span class="c1"># The ASF licenses this file to You under the Apache License,
Version 2.0</span>
+<span class="c1"># (the "License"); you may not use this file except
in compliance with</span>
+<span class="c1"># the License. You may obtain a copy of the License at</span>
+<span class="c1">#</span>
+<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
+<span class="c1">#</span>
+<span class="c1"># Unless required by applicable law or agreed to in writing,
software</span>
+<span class="c1"># distributed under the License is distributed on an "AS
IS" BASIS,</span>
+<span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.</span>
+<span class="c1"># See the License for the specific language governing
permissions and</span>
+<span class="c1"># limitations under the License.</span>
+
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli</span> <span
class="kn">import</span> <span class="n">TimeSeries</span>
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli</span> <span
class="kn">import</span> <span class="n">set_target</span>
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli</span> <span
class="kn">import</span> <span class="n">time_series</span>
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli</span> <span
class="kn">import</span> <span class="n">dataset_list</span>
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli</span> <span
class="kn">import</span> <span class="n">daily_difference_average</span>
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli</span> <span
class="kn">import</span> <span class="n">subset</span>
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli_ow</span>
<span class="kn">import</span> <span class="n">set_target</span>
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli_ow</span>
<span class="kn">import</span> <span class="n">run_file</span>
+<span class="kn">from</span> <span class="nn">nexuscli.nexuscli_ow</span>
<span class="kn">import</span> <span class="n">run_str</span>
</pre></div>
</div>
@@ -1085,13 +1105,31 @@ <h2 class="section-title"
id="header-submodules">Sub-modules</h2>
<p class="name"><a href="nexuscli.m.html">nexuscli.nexuscli</a></p>
- <div class="desc"><p>This module provides a native python client interface
to the NEXUS (https://github.com/dataplumber/nexus)
+ <div class="desc"><p>This module provides a native python client interface
to the NEXUS (https://github.com/apache/incubator-sdap-nexus)
webservice API.</p>
<p>Usage:</p>
<div class="codehilite"><pre><span></span><span class="kn">import</span> <span
class="nn">nexuscli</span>
<span class="n">nexuscli</span><span class="o">.</span><span
class="n">set_target</span><span class="p">(</span><span
class="s2">"http://nexus-webapp:8083"</span><span class="p">)</span>
<span class="n">nexuscli</span><span class="o">.</span><span
class="n">dataset_list</span><span class="p">()</span>
+</pre></div></div>
+
+ </div>
+ <div class="item">
+ <p class="name"><a href="nexuscli_ow.m.html">nexuscli.nexuscli_ow</a></p>
+
+
+ <div class="desc"><p>This module provides a native python client interface
to the NEXUS Livy
+webservice API.</p>
+<p>Usage:</p>
+<div class="codehilite"><pre><span></span><span class="kn">from</span> <span
class="nn">nexuscli</span> <span class="kn">import</span> <span
class="n">nexuscli_ow</span>
+
+<span class="n">nexuscli_ow</span><span class="o">.</span><span
class="n">set_target</span><span class="p">(</span><span
class="s2">"http://host:port"</span><span class="p">)</span>
+
+<span class="n">filename</span> <span class="o">=</span> <span
class="s2">"mycode.py"</span>
+<span class="n">nexuscli_ow</span><span class="o">.</span><span
class="n">run_file</span><span class="p">(</span><span
class="n">filename</span><span class="p">)</span>
+
+<span class="n">The</span> <span class="n">code</span> <span
class="ow">in</span> <span class="n">the</span> <span class="nb">file</span>
<span class="n">passed</span> <span class="n">to</span> <span
class="n">run_file</span> <span class="n">must</span> <span
class="n">b</span><span class="o">...</span>
</pre></div></div>
</div>
diff --git a/client/docs/nexuscli/nexuscli.m.html
b/client/docs/nexuscli/nexuscli.m.html
index de5c2bc..e1129d7 100644
--- a/client/docs/nexuscli/nexuscli.m.html
+++ b/client/docs/nexuscli/nexuscli.m.html
@@ -4,7 +4,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1,
minimum-scale=1" />
<title>nexuscli.nexuscli API documentation</title>
- <meta name="description" content="This module provides a native python
client interface to the NEXUS (https://github.com/dataplumber/n..." />
+ <meta name="description" content="This module provides a native python
client interface to the NEXUS (https://github.com/apache/incuba..." />
<link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300'
rel='stylesheet' type='text/css'>
@@ -1056,6 +1056,7 @@ <h1>Index</h1>
<li class="mono"><a
href="#nexuscli.nexuscli.daily_difference_average">daily_difference_average</a></li>
<li class="mono"><a
href="#nexuscli.nexuscli.dataset_list">dataset_list</a></li>
<li class="mono"><a
href="#nexuscli.nexuscli.set_target">set_target</a></li>
+ <li class="mono"><a href="#nexuscli.nexuscli.subset">subset</a></li>
<li class="mono"><a
href="#nexuscli.nexuscli.time_series">time_series</a></li>
</ul>
@@ -1063,6 +1064,10 @@ <h1>Index</h1>
<li class="set"><h3><a href="#header-classes">Classes</a></h3>
<ul>
+ <li class="mono">
+ <span class="class_name"><a
href="#nexuscli.nexuscli.Point">Point</a></span>
+
+ </li>
<li class="mono">
<span class="class_name"><a
href="#nexuscli.nexuscli.TimeSeries">TimeSeries</a></span>
@@ -1082,7 +1087,7 @@ <h1>Index</h1>
<header id="section-intro">
<h1 class="title"><span class="name">nexuscli.nexuscli</span> module</h1>
- <p>This module provides a native python client interface to the NEXUS
(https://github.com/dataplumber/nexus)
+ <p>This module provides a native python client interface to the NEXUS
(https://github.com/apache/incubator-sdap-nexus)
webservice API.</p>
<p>Usage:</p>
<div class="codehilite"><pre><span></span><span class="kn">import</span> <span
class="nn">nexuscli</span>
@@ -1093,8 +1098,22 @@ <h1 class="title"><span
class="name">nexuscli.nexuscli</span> module</h1>
<p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.nexuscli', this);">Show source ≡</a></p>
<div id="source-nexuscli.nexuscli" class="source">
- <div class="codehilite"><pre><span></span><span
class="sd">"""</span>
-<span class="sd">This module provides a native python client interface to the
NEXUS (https://github.com/dataplumber/nexus) </span>
+ <div class="codehilite"><pre><span></span><span class="c1"># Licensed to
the Apache Software Foundation (ASF) under one or more</span>
+<span class="c1"># contributor license agreements. See the NOTICE file
distributed with</span>
+<span class="c1"># this work for additional information regarding copyright
ownership.</span>
+<span class="c1"># The ASF licenses this file to You under the Apache License,
Version 2.0</span>
+<span class="c1"># (the "License"); you may not use this file except
in compliance with</span>
+<span class="c1"># the License. You may obtain a copy of the License at</span>
+<span class="c1">#</span>
+<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
+<span class="c1">#</span>
+<span class="c1"># Unless required by applicable law or agreed to in writing,
software</span>
+<span class="c1"># distributed under the License is distributed on an "AS
IS" BASIS,</span>
+<span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.</span>
+<span class="c1"># See the License for the specific language governing
permissions and</span>
+<span class="c1"># limitations under the License.</span>
+<span class="sd">"""</span>
+<span class="sd">This module provides a native python client interface to the
NEXUS (https://github.com/apache/incubator-sdap-nexus)</span>
<span class="sd">webservice API.</span>
<span class="sd">Usage:</span>
@@ -1124,6 +1143,15 @@ <h1 class="title"><span
class="name">nexuscli.nexuscli</span> module</h1>
<span class="n">__pdoc__</span><span class="p">[</span><span
class="s1">'TimeSeries.minimum'</span><span class="p">]</span> <span
class="o">=</span> <span class="s2">"`numpy` array containing
minimums"</span>
<span class="n">__pdoc__</span><span class="p">[</span><span
class="s1">'TimeSeries.maximum'</span><span class="p">]</span> <span
class="o">=</span> <span class="s2">"`numpy` array containing
maximums"</span>
+<span class="n">Point</span> <span class="o">=</span> <span
class="n">namedtuple</span><span class="p">(</span><span
class="s1">'Point'</span><span class="p">,</span> <span
class="p">(</span><span class="s1">'time'</span><span
class="p">,</span> <span class="s1">'latitude'</span><span
class="p">,</span> <span class="s1">'longitude'</span><span
class="p">,</span> <span class="s1">'variable'</span><span
class="p">))</span>
+<span class="n">Point</span><span class="o">.</span><span
class="vm">__doc__</span> <span class="o">=</span> <span
class="s1">'''</span><span class="se">\</span>
+<span class="s1">An object containing Point attributes.</span>
+<span class="s1">'''</span>
+<span class="n">__pdoc__</span><span class="p">[</span><span
class="s1">'Point.time'</span><span class="p">]</span> <span
class="o">=</span> <span class="s2">"time value as `datetime`
object"</span>
+<span class="n">__pdoc__</span><span class="p">[</span><span
class="s1">'Point.latitude'</span><span class="p">]</span> <span
class="o">=</span> <span class="s2">"latitude value"</span>
+<span class="n">__pdoc__</span><span class="p">[</span><span
class="s1">'Point.longitude'</span><span class="p">]</span> <span
class="o">=</span> <span class="s2">"longitude value"</span>
+<span class="n">__pdoc__</span><span class="p">[</span><span
class="s1">'Point.variable'</span><span class="p">]</span> <span
class="o">=</span> <span class="s2">"dictionary of variable
values"</span>
+
<span class="n">ISO_FORMAT</span> <span class="o">=</span> <span
class="s2">"%Y-%m-</span><span class="si">%d</span><span
class="s2">T%H:%M:%SZ"</span>
<span class="n">target</span> <span class="o">=</span> <span
class="s1">'http://localhost:8083'</span>
@@ -1131,7 +1159,7 @@ <h1 class="title"><span
class="name">nexuscli.nexuscli</span> module</h1>
<span class="n">session</span> <span class="o">=</span> <span
class="n">requests</span><span class="o">.</span><span
class="n">session</span><span class="p">()</span>
-<span class="k">def</span> <span class="nf">set_target</span><span
class="p">(</span><span class="n">url</span><span class="p">):</span>
+<span class="k">def</span> <span class="nf">set_target</span><span
class="p">(</span><span class="n">url</span><span class="p">,</span> <span
class="n">use_session</span><span class="o">=</span><span
class="bp">True</span><span class="p">):</span>
<span class="sd">"""</span>
<span class="sd"> Set the URL for the NEXUS webapp endpoint. </span>
<span class="sd"> </span>
@@ -1141,6 +1169,10 @@ <h1 class="title"><span
class="name">nexuscli.nexuscli</span> module</h1>
<span class="k">global</span> <span class="n">target</span>
<span class="n">target</span> <span class="o">=</span> <span
class="n">url</span>
+ <span class="k">if</span> <span class="ow">not</span> <span
class="n">use_session</span><span class="p">:</span>
+ <span class="k">global</span> <span class="n">session</span>
+ <span class="n">session</span> <span class="o">=</span> <span
class="n">requests</span>
+
<span class="k">def</span> <span class="nf">dataset_list</span><span
class="p">():</span>
<span class="sd">"""</span>
@@ -1288,6 +1320,60 @@ <h1 class="title"><span
class="name">nexuscli.nexuscli</span> module</h1>
<span class="p">)</span>
<span class="k">return</span> <span class="n">time_series_result</span>
+
+
+<span class="k">def</span> <span class="nf">subset</span><span
class="p">(</span><span class="n">dataset</span><span class="p">,</span> <span
class="n">bounding_box</span><span class="p">,</span> <span
class="n">start_datetime</span><span class="p">,</span> <span
class="n">end_datetime</span><span class="p">,</span> <span
class="n">parameter</span><span class="p">,</span> <span
class="n">metadata_filter</span><span class="p">):</span>
+ <span class="sd">"""</span>
+<span class="sd"> Fetches point values for a given dataset and geographical
area or metadata criteria and time range.</span>
+
+<span class="sd"> __dataset__ Name of the dataset as a String </span>
+<span class="sd"> __bounding_box__ Bounding box for area of interest as a
`shapely.geometry.polygon.Polygon` </span>
+<span class="sd"> __start_datetime__ Start time as a `datetime.datetime`
</span>
+<span class="sd"> __end_datetime__ End time as a `datetime.datetime`
</span>
+<span class="sd"> __parameter__ The parameter of interest. One of
'sst', 'sss', 'wind' or None </span>
+<span class="sd"> __metadata_filter__ List of key:value String metadata
criteria </span>
+
+<span class="sd"> __return__ List of `nexuscli.nexuscli.Point`
namedtuples</span>
+<span class="sd"> """</span>
+ <span class="n">url</span> <span class="o">=</span> <span
class="s2">"{}/datainbounds?"</span><span class="o">.</span><span
class="n">format</span><span class="p">(</span><span
class="n">target</span><span class="p">)</span>
+
+ <span class="n">params</span> <span class="o">=</span> <span
class="p">{</span>
+ <span class="s1">'ds'</span><span class="p">:</span> <span
class="n">dataset</span><span class="p">,</span>
+ <span class="s1">'startTime'</span><span class="p">:</span>
<span class="n">start_datetime</span><span class="o">.</span><span
class="n">strftime</span><span class="p">(</span><span
class="n">ISO_FORMAT</span><span class="p">),</span>
+ <span class="s1">'endTime'</span><span class="p">:</span>
<span class="n">end_datetime</span><span class="o">.</span><span
class="n">strftime</span><span class="p">(</span><span
class="n">ISO_FORMAT</span><span class="p">),</span>
+ <span class="s1">'parameter'</span><span class="p">:</span>
<span class="n">parameter</span><span class="p">,</span>
+ <span class="p">}</span>
+ <span class="k">if</span> <span class="n">bounding_box</span><span
class="p">:</span>
+ <span class="n">params</span><span class="p">[</span><span
class="s1">'b'</span><span class="p">]</span> <span class="o">=</span>
<span class="s1">','</span><span class="o">.</span><span
class="n">join</span><span class="p">(</span><span class="nb">str</span><span
class="p">(</span><span class="n">b</span><span class="p">)</span> <span
class="k">for</span> <span class="n">b</span> <span class="ow">in</span> <span
class="n">bounding_box</span><span class="o">.</span><span
class="n">bounds</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">metadata_filter</span> <span
class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span
class="n">metadata_filter</span><span class="p">)</span> <span
class="o">></span> <span class="mi">0</span><span class="p">:</span>
+ <span class="n">params</span><span class="p">[</span><span
class="s1">'metadataFilter'</span><span class="p">]</span> <span
class="o">=</span> <span class="n">metadata_filter</span>
+
+ <span class="n">response</span> <span class="o">=</span> <span
class="n">session</span><span class="o">.</span><span class="n">get</span><span
class="p">(</span><span class="n">url</span><span class="p">,</span> <span
class="n">params</span><span class="o">=</span><span
class="n">params</span><span class="p">)</span>
+ <span class="n">response</span><span class="o">.</span><span
class="n">raise_for_status</span><span class="p">()</span>
+ <span class="n">response</span> <span class="o">=</span> <span
class="n">response</span><span class="o">.</span><span
class="n">json</span><span class="p">()</span>
+
+ <span class="n">data</span> <span class="o">=</span> <span
class="n">np</span><span class="o">.</span><span class="n">array</span><span
class="p">(</span><span class="n">response</span><span class="p">[</span><span
class="s1">'data'</span><span class="p">])</span><span
class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+
+ <span class="k">assert</span> <span class="nb">len</span><span
class="p">(</span><span class="n">data</span><span class="p">)</span> <span
class="o">></span> <span class="mi">0</span><span class="p">,</span> <span
class="s2">"No data found in {} between {} and {} for Datasets
{}."</span><span class="o">.</span><span class="n">format</span><span
class="p">(</span><span class="n">bounding_box</span><span
class="o">.</span><span class="n">wkt</span> <span class="k">if</span> <span
class="n">bounding_box</span> <span class="ow">is</span> <span
class="ow">not</span> <span class="bp">None</span> <span class="k">else</span>
<span class="n">metadata_filter</span><span class="p">,</span>
+
<span class="n">start_datetime</span><span class="o">.</span><span
class="n">strftime</span><span class="p">(</span>
+
<span class="n">ISO_FORMAT</span><span class="p">),</span>
+
<span class="n">end_datetime</span><span class="o">.</span><span
class="n">strftime</span><span class="p">(</span>
+
<span class="n">ISO_FORMAT</span><span class="p">),</span>
+
<span class="n">dataset</span><span class="p">)</span>
+
+ <span class="n">subset_result</span> <span class="o">=</span> <span
class="p">[]</span>
+ <span class="k">for</span> <span class="n">d</span> <span
class="ow">in</span> <span class="n">data</span><span class="p">:</span>
+ <span class="n">subset_result</span><span class="o">.</span><span
class="n">append</span><span class="p">(</span>
+ <span class="n">Point</span><span class="p">(</span>
+ <span class="n">time</span><span class="o">=</span><span
class="n">datetime</span><span class="o">.</span><span
class="n">utcfromtimestamp</span><span class="p">(</span><span
class="n">d</span><span class="p">[</span><span
class="s1">'time'</span><span class="p">])</span><span
class="o">.</span><span class="n">replace</span><span class="p">(</span><span
class="n">tzinfo</span><span class="o">=</span><span class="n">UTC</span><span
class="p">),</span>
+ <span class="n">longitude</span><span class="o">=</span><span
class="n">d</span><span class="p">[</span><span
class="s1">'longitude'</span><span class="p">],</span>
+ <span class="n">latitude</span><span class="o">=</span><span
class="n">d</span><span class="p">[</span><span
class="s1">'latitude'</span><span class="p">],</span>
+ <span class="n">variable</span><span class="o">=</span><span
class="n">d</span><span class="p">[</span><span
class="s1">'data'</span><span class="p">][</span><span
class="mi">0</span><span class="p">]</span>
+ <span class="p">)</span>
+ <span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">subset_result</span>
</pre></div>
</div>
@@ -1447,7 +1533,7 @@ <h2 class="section-title"
id="header-functions">Functions</h2>
<div class="item">
<div class="name def" id="nexuscli.nexuscli.set_target">
- <p>def <span class="ident">set_target</span>(</p><p>url)</p>
+ <p>def <span class="ident">set_target</span>(</p><p>url,
use_session=True)</p>
</div>
@@ -1459,7 +1545,7 @@ <h2 class="section-title"
id="header-functions">Functions</h2>
<div class="source_cont">
<p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.nexuscli.set_target', this);">Show source
≡</a></p>
<div id="source-nexuscli.nexuscli.set_target" class="source">
- <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">set_target</span><span class="p">(</span><span
class="n">url</span><span class="p">):</span>
+ <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">set_target</span><span class="p">(</span><span
class="n">url</span><span class="p">,</span> <span
class="n">use_session</span><span class="o">=</span><span
class="bp">True</span><span class="p">):</span>
<span class="sd">"""</span>
<span class="sd"> Set the URL for the NEXUS webapp endpoint. </span>
<span class="sd"> </span>
@@ -1468,6 +1554,89 @@ <h2 class="section-title"
id="header-functions">Functions</h2>
<span class="sd"> """</span>
<span class="k">global</span> <span class="n">target</span>
<span class="n">target</span> <span class="o">=</span> <span
class="n">url</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span
class="n">use_session</span><span class="p">:</span>
+ <span class="k">global</span> <span class="n">session</span>
+ <span class="n">session</span> <span class="o">=</span> <span
class="n">requests</span>
+</pre></div>
+
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="nexuscli.nexuscli.subset">
+ <p>def <span class="ident">subset</span>(</p><p>dataset, bounding_box,
start_datetime, end_datetime, parameter, metadata_filter)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Fetches point values for a given dataset and
geographical area or metadata criteria and time range.</p>
+<p><strong>dataset</strong> Name of the dataset as a String<br />
+<strong>bounding_box</strong> Bounding box for area of interest as a
<code>shapely.geometry.polygon.Polygon</code><br />
+<strong>start_datetime</strong> Start time as a
<code>datetime.datetime</code><br />
+<strong>end_datetime</strong> End time as a <code>datetime.datetime</code><br
/>
+<strong>parameter</strong> The parameter of interest. One of 'sst', 'sss',
'wind' or None<br />
+<strong>metadata_filter</strong> List of key:value String metadata criteria
</p>
+<p><strong>return</strong> List of <a
href="#nexuscli.nexuscli.Point"><code>Point</code></a> namedtuples</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.nexuscli.subset', this);">Show source
≡</a></p>
+ <div id="source-nexuscli.nexuscli.subset" class="source">
+ <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">subset</span><span class="p">(</span><span
class="n">dataset</span><span class="p">,</span> <span
class="n">bounding_box</span><span class="p">,</span> <span
class="n">start_datetime</span><span class="p">,</span> <span
class="n">end_datetime</span><span class="p">,</span> <span
class="n">parameter</span><span class="p">,</span> <span
class="n">metadata_filter</span><span class="p">):</span>
+ <span class="sd">"""</span>
+<span class="sd"> Fetches point values for a given dataset and geographical
area or metadata criteria and time range.</span>
+
+<span class="sd"> __dataset__ Name of the dataset as a String </span>
+<span class="sd"> __bounding_box__ Bounding box for area of interest as a
`shapely.geometry.polygon.Polygon` </span>
+<span class="sd"> __start_datetime__ Start time as a `datetime.datetime`
</span>
+<span class="sd"> __end_datetime__ End time as a `datetime.datetime`
</span>
+<span class="sd"> __parameter__ The parameter of interest. One of
'sst', 'sss', 'wind' or None </span>
+<span class="sd"> __metadata_filter__ List of key:value String metadata
criteria </span>
+
+<span class="sd"> __return__ List of `nexuscli.nexuscli.Point`
namedtuples</span>
+<span class="sd"> """</span>
+ <span class="n">url</span> <span class="o">=</span> <span
class="s2">"{}/datainbounds?"</span><span class="o">.</span><span
class="n">format</span><span class="p">(</span><span
class="n">target</span><span class="p">)</span>
+
+ <span class="n">params</span> <span class="o">=</span> <span
class="p">{</span>
+ <span class="s1">'ds'</span><span class="p">:</span> <span
class="n">dataset</span><span class="p">,</span>
+ <span class="s1">'startTime'</span><span class="p">:</span>
<span class="n">start_datetime</span><span class="o">.</span><span
class="n">strftime</span><span class="p">(</span><span
class="n">ISO_FORMAT</span><span class="p">),</span>
+ <span class="s1">'endTime'</span><span class="p">:</span>
<span class="n">end_datetime</span><span class="o">.</span><span
class="n">strftime</span><span class="p">(</span><span
class="n">ISO_FORMAT</span><span class="p">),</span>
+ <span class="s1">'parameter'</span><span class="p">:</span>
<span class="n">parameter</span><span class="p">,</span>
+ <span class="p">}</span>
+ <span class="k">if</span> <span class="n">bounding_box</span><span
class="p">:</span>
+ <span class="n">params</span><span class="p">[</span><span
class="s1">'b'</span><span class="p">]</span> <span class="o">=</span>
<span class="s1">','</span><span class="o">.</span><span
class="n">join</span><span class="p">(</span><span class="nb">str</span><span
class="p">(</span><span class="n">b</span><span class="p">)</span> <span
class="k">for</span> <span class="n">b</span> <span class="ow">in</span> <span
class="n">bounding_box</span><span class="o">.</span><span
class="n">bounds</span><span class="p">)</span>
+ <span class="k">else</span><span class="p">:</span>
+ <span class="k">if</span> <span class="n">metadata_filter</span> <span
class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span
class="n">metadata_filter</span><span class="p">)</span> <span
class="o">></span> <span class="mi">0</span><span class="p">:</span>
+ <span class="n">params</span><span class="p">[</span><span
class="s1">'metadataFilter'</span><span class="p">]</span> <span
class="o">=</span> <span class="n">metadata_filter</span>
+
+ <span class="n">response</span> <span class="o">=</span> <span
class="n">session</span><span class="o">.</span><span class="n">get</span><span
class="p">(</span><span class="n">url</span><span class="p">,</span> <span
class="n">params</span><span class="o">=</span><span
class="n">params</span><span class="p">)</span>
+ <span class="n">response</span><span class="o">.</span><span
class="n">raise_for_status</span><span class="p">()</span>
+ <span class="n">response</span> <span class="o">=</span> <span
class="n">response</span><span class="o">.</span><span
class="n">json</span><span class="p">()</span>
+
+ <span class="n">data</span> <span class="o">=</span> <span
class="n">np</span><span class="o">.</span><span class="n">array</span><span
class="p">(</span><span class="n">response</span><span class="p">[</span><span
class="s1">'data'</span><span class="p">])</span><span
class="o">.</span><span class="n">flatten</span><span class="p">()</span>
+
+ <span class="k">assert</span> <span class="nb">len</span><span
class="p">(</span><span class="n">data</span><span class="p">)</span> <span
class="o">></span> <span class="mi">0</span><span class="p">,</span> <span
class="s2">"No data found in {} between {} and {} for Datasets
{}."</span><span class="o">.</span><span class="n">format</span><span
class="p">(</span><span class="n">bounding_box</span><span
class="o">.</span><span class="n">wkt</span> <span class="k">if</span> <span
class="n">bounding_box</span> <span class="ow">is</span> <span
class="ow">not</span> <span class="bp">None</span> <span class="k">else</span>
<span class="n">metadata_filter</span><span class="p">,</span>
+
<span class="n">start_datetime</span><span class="o">.</span><span
class="n">strftime</span><span class="p">(</span>
+
<span class="n">ISO_FORMAT</span><span class="p">),</span>
+
<span class="n">end_datetime</span><span class="o">.</span><span
class="n">strftime</span><span class="p">(</span>
+
<span class="n">ISO_FORMAT</span><span class="p">),</span>
+
<span class="n">dataset</span><span class="p">)</span>
+
+ <span class="n">subset_result</span> <span class="o">=</span> <span
class="p">[]</span>
+ <span class="k">for</span> <span class="n">d</span> <span
class="ow">in</span> <span class="n">data</span><span class="p">:</span>
+ <span class="n">subset_result</span><span class="o">.</span><span
class="n">append</span><span class="p">(</span>
+ <span class="n">Point</span><span class="p">(</span>
+ <span class="n">time</span><span class="o">=</span><span
class="n">datetime</span><span class="o">.</span><span
class="n">utcfromtimestamp</span><span class="p">(</span><span
class="n">d</span><span class="p">[</span><span
class="s1">'time'</span><span class="p">])</span><span
class="o">.</span><span class="n">replace</span><span class="p">(</span><span
class="n">tzinfo</span><span class="o">=</span><span class="n">UTC</span><span
class="p">),</span>
+ <span class="n">longitude</span><span class="o">=</span><span
class="n">d</span><span class="p">[</span><span
class="s1">'longitude'</span><span class="p">],</span>
+ <span class="n">latitude</span><span class="o">=</span><span
class="n">d</span><span class="p">[</span><span
class="s1">'latitude'</span><span class="p">],</span>
+ <span class="n">variable</span><span class="o">=</span><span
class="n">d</span><span class="p">[</span><span
class="s1">'data'</span><span class="p">][</span><span
class="mi">0</span><span class="p">]</span>
+ <span class="p">)</span>
+ <span class="p">)</span>
+
+ <span class="k">return</span> <span class="n">subset_result</span>
</pre></div>
</div>
@@ -1570,6 +1739,70 @@ <h2 class="section-title"
id="header-functions">Functions</h2>
<h2 class="section-title" id="header-classes">Classes</h2>
+ <div class="item">
+ <p id="nexuscli.nexuscli.Point" class="name">class <span
class="ident">Point</span></p>
+
+
+ <div class="desc"><p>An object containing Point attributes.</p></div>
+ <div class="source_cont">
+</div>
+
+
+ <div class="class">
+ <h3>Ancestors (in MRO)</h3>
+ <ul class="class_list">
+ <li><a href="#nexuscli.nexuscli.Point">Point</a></li>
+ <li>builtins.tuple</li>
+ <li>builtins.object</li>
+ </ul>
+ <h3>Instance variables</h3>
+ <div class="item">
+ <p id="nexuscli.nexuscli.Point.latitude" class="name">var <span
class="ident">latitude</span></p>
+
+
+
+
+ <div class="desc"><p>latitude value</p></div>
+ <div class="source_cont">
+</div>
+
+ </div>
+ <div class="item">
+ <p id="nexuscli.nexuscli.Point.longitude" class="name">var <span
class="ident">longitude</span></p>
+
+
+
+
+ <div class="desc"><p>longitude value</p></div>
+ <div class="source_cont">
+</div>
+
+ </div>
+ <div class="item">
+ <p id="nexuscli.nexuscli.Point.time" class="name">var <span
class="ident">time</span></p>
+
+
+
+
+ <div class="desc"><p>time value as <code>datetime</code> object</p></div>
+ <div class="source_cont">
+</div>
+
+ </div>
+ <div class="item">
+ <p id="nexuscli.nexuscli.Point.variable" class="name">var <span
class="ident">variable</span></p>
+
+
+
+
+ <div class="desc"><p>dictionary of variable values</p></div>
+ <div class="source_cont">
+</div>
+
+ </div>
+ </div>
+ </div>
+
<div class="item">
<p id="nexuscli.nexuscli.TimeSeries" class="name">class <span
class="ident">TimeSeries</span></p>
diff --git a/client/docs/nexuscli/nexuscli_ow.m.html
b/client/docs/nexuscli/nexuscli_ow.m.html
new file mode 100644
index 0000000..1db2d0d
--- /dev/null
+++ b/client/docs/nexuscli/nexuscli_ow.m.html
@@ -0,0 +1,1311 @@
+<!doctype html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1,
minimum-scale=1" />
+
+ <title>nexuscli.nexuscli_ow API documentation</title>
+ <meta name="description" content="This module provides a native python
client interface to the NEXUS Livy
+webservice API.
+
+Usage:
+
+ ..." />
+
+ <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300'
rel='stylesheet' type='text/css'>
+
+ <style type="text/css">
+
+* {
+ box-sizing: border-box;
+}
+/*! normalize.css v1.1.1 | MIT License | git.io/normalize */
+
+/* ==========================================================================
+ HTML5 display definitions
+ ==========================================================================
*/
+
+/**
+ * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/**
+ * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
+ */
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+/**
+ * Prevent modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
+ * Known issue: no IE 6 support.
+ */
+
+[hidden] {
+ display: none;
+}
+
+/* ==========================================================================
+ Base
+ ==========================================================================
*/
+
+/**
+ * 1. Prevent system color scheme's background color being used in Firefox, IE,
+ * and Opera.
+ * 2. Prevent system color scheme's text color being used in Firefox, IE, and
+ * Opera.
+ * 3. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
+ * `em` units.
+ * 4. Prevent iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ background: #fff; /* 1 */
+ color: #000; /* 2 */
+ font-size: 100%; /* 3 */
+ -webkit-text-size-adjust: 100%; /* 4 */
+ -ms-text-size-adjust: 100%; /* 4 */
+}
+
+/**
+ * Address `font-family` inconsistency between `textarea` and other form
+ * elements.
+ */
+
+html,
+button,
+input,
+select,
+textarea {
+ font-family: sans-serif;
+}
+
+/**
+ * Address margins handled incorrectly in IE 6/7.
+ */
+
+body {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Links
+ ==========================================================================
*/
+
+/**
+ * Address `outline` inconsistency between Chrome and other browsers.
+ */
+
+a:focus {
+ outline: thin dotted;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Typography
+ ==========================================================================
*/
+
+/**
+ * Address font sizes and margins set differently in IE 6/7.
+ * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
+ * and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+h2 {
+ font-size: 1.5em;
+ margin: 0.83em 0;
+}
+
+h3 {
+ font-size: 1.17em;
+ margin: 1em 0;
+}
+
+h4 {
+ font-size: 1em;
+ margin: 1.33em 0;
+}
+
+h5 {
+ font-size: 0.83em;
+ margin: 1.67em 0;
+}
+
+h6 {
+ font-size: 0.67em;
+ margin: 2.33em 0;
+}
+
+/**
+ * Address styling not present in IE 7/8/9, Safari 5, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+blockquote {
+ margin: 1em 40px;
+}
+
+/**
+ * Address styling not present in Safari 5 and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ * Known issue: no IE 6/7 normalization.
+ */
+
+hr {
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+
+/**
+ * Address styling not present in IE 6/7/8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+p,
+pre {
+ margin: 1em 0;
+}
+
+/**
+ * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, serif;
+ _font-family: 'courier new', monospace;
+ font-size: 1em;
+}
+
+/**
+ * Improve readability of pre-formatted text in all browsers.
+ */
+
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+/**
+ * Address CSS quotes not supported in IE 6/7.
+ */
+
+q {
+ quotes: none;
+}
+
+/**
+ * Address `quotes` property not supported in Safari 4.
+ */
+
+q:before,
+q:after {
+ content: '';
+ content: none;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* ==========================================================================
+ Lists
+ ==========================================================================
*/
+
+/**
+ * Address margins set differently in IE 6/7.
+ */
+
+dl,
+menu,
+ol,
+ul {
+ margin: 1em 0;
+}
+
+dd {
+ margin: 0 0 0 40px;
+}
+
+/**
+ * Address paddings set differently in IE 6/7.
+ */
+
+menu,
+ol,
+ul {
+ padding: 0 0 0 40px;
+}
+
+/**
+ * Correct list images handled incorrectly in IE 7.
+ */
+
+nav ul,
+nav ol {
+ list-style: none;
+ list-style-image: none;
+}
+
+/* ==========================================================================
+ Embedded content
+ ==========================================================================
*/
+
+/**
+ * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
+ * 2. Improve image quality when scaled in IE 7.
+ */
+
+img {
+ border: 0; /* 1 */
+ -ms-interpolation-mode: bicubic; /* 2 */
+}
+
+/**
+ * Correct overflow displayed oddly in IE 9.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* ==========================================================================
+ Figures
+ ==========================================================================
*/
+
+/**
+ * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
+ */
+
+figure {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Forms
+ ==========================================================================
*/
+
+/**
+ * Correct margin displayed oddly in IE 6/7.
+ */
+
+form {
+ margin: 0;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct color not being inherited in IE 6/7/8/9.
+ * 2. Correct text not wrapping in Firefox 3.
+ * 3. Correct alignment displayed oddly in IE 6/7.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0;
+ white-space: normal; /* 2 */
+ *margin-left: -7px; /* 3 */
+}
+
+/**
+ * 1. Correct font size not being inherited in all browsers.
+ * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
+ * and Chrome.
+ * 3. Improve appearance and consistency in all browsers.
+ */
+
+button,
+input,
+select,
+textarea {
+ font-size: 100%; /* 1 */
+ margin: 0; /* 2 */
+ vertical-align: baseline; /* 3 */
+ *vertical-align: middle; /* 3 */
+}
+
+/**
+ * Address Firefox 3+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+button,
+input {
+ line-height: normal;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
+ */
+
+button,
+select {
+ text-transform: none;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ * `input` and others.
+ * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
+ * Known issue: inner spacing remains in IE 6.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+ *overflow: visible; /* 4 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+/**
+ * 1. Address box sizing set to content-box in IE 8/9.
+ * 2. Remove excess padding in IE 8/9.
+ * 3. Remove excess padding in IE 7.
+ * Known issue: excess padding remains in IE 6.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+ *height: 13px; /* 3 */
+ *width: 13px; /* 3 */
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
+ * on OS X.
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * Remove inner padding and border in Firefox 3+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/**
+ * 1. Remove default vertical scrollbar in IE 6/7/8/9.
+ * 2. Improve readability and alignment in all browsers.
+ */
+
+textarea {
+ overflow: auto; /* 1 */
+ vertical-align: top; /* 2 */
+}
+
+/* ==========================================================================
+ Tables
+ ==========================================================================
*/
+
+/**
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+ </style>
+
+ <style type="text/css">
+
+ html, body {
+ margin: 0;
+ padding: 0;
+ min-height: 100%;
+ }
+ body {
+ background: #fff;
+ font-family: "Source Sans Pro", "Helvetica Neueue", Helvetica, sans;
+ font-weight: 300;
+ font-size: 16px;
+ line-height: 1.6em;
+ }
+ #content {
+ width: 70%;
+ max-width: 850px;
+ float: left;
+ padding: 30px 60px;
+ border-left: 1px solid #ddd;
+ }
+ #sidebar {
+ width: 25%;
+ float: left;
+ padding: 30px;
+ overflow: hidden;
+ }
+ #nav {
+ font-size: 130%;
+ margin: 0 0 15px 0;
+ }
+
+ #top {
+ display: block;
+ position: fixed;
+ bottom: 5px;
+ left: 5px;
+ font-size: .85em;
+ text-transform: uppercase;
+ }
+
+ #footer {
+ font-size: .75em;
+ padding: 5px 30px;
+ border-top: 1px solid #ddd;
+ text-align: right;
+ }
+ #footer p {
+ margin: 0 0 0 30px;
+ display: inline-block;
+ }
+
+ h1, h2, h3, h4, h5 {
+ font-weight: 300;
+ }
+ h1 {
+ font-size: 2.5em;
+ line-height: 1.1em;
+ margin: 0 0 .50em 0;
+ }
+
+ h2 {
+ font-size: 1.75em;
+ margin: 1em 0 .50em 0;
+ }
+
+ h3 {
+ margin: 25px 0 10px 0;
+ }
+
+ h4 {
+ margin: 0;
+ font-size: 105%;
+ }
+
+ a {
+ color: #058;
+ text-decoration: none;
+ transition: color .3s ease-in-out;
+ }
+
+ a:hover {
+ color: #e08524;
+ transition: color .3s ease-in-out;
+ }
+
+ pre, code, .mono, .name {
+ font-family: "Ubuntu Mono", "Cousine", "DejaVu Sans Mono", monospace;
+ }
+
+ .title .name {
+ font-weight: bold;
+ }
+ .section-title {
+ margin-top: 2em;
+ }
+ .ident {
+ color: #900;
+ }
+
+ code {
+ background: #f9f9f9;
+ }
+
+ pre {
+ background: #fefefe;
+ border: 1px solid #ddd;
+ box-shadow: 2px 2px 0 #f3f3f3;
+ margin: 0 30px;
+ padding: 15px 30px;
+ }
+
+ .codehilite {
+ margin: 0 30px 10px 30px;
+ }
+
+ .codehilite pre {
+ margin: 0;
+ }
+ .codehilite .err { background: #ff3300; color: #fff !important; }
+
+ table#module-list {
+ font-size: 110%;
+ }
+
+ table#module-list tr td:first-child {
+ padding-right: 10px;
+ white-space: nowrap;
+ }
+
+ table#module-list td {
+ vertical-align: top;
+ padding-bottom: 8px;
+ }
+
+ table#module-list td p {
+ margin: 0 0 7px 0;
+ }
+
+ .def {
+ display: table;
+ }
+
+ .def p {
+ display: table-cell;
+ vertical-align: top;
+ text-align: left;
+ }
+
+ .def p:first-child {
+ white-space: nowrap;
+ }
+
+ .def p:last-child {
+ width: 100%;
+ }
+
+
+ #index {
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+ }
+ ul#index .class_name {
+ /* font-size: 110%; */
+ font-weight: bold;
+ }
+ #index ul {
+ margin: 0;
+ }
+
+ .item {
+ margin: 0 0 15px 0;
+ }
+
+ .item .class {
+ margin: 0 0 25px 30px;
+ }
+
+ .item .class ul.class_list {
+ margin: 0 0 20px 0;
+ }
+
+ .item .name {
+ background: #fafafa;
+ margin: 0;
+ font-weight: bold;
+ padding: 5px 10px;
+ border-radius: 3px;
+ display: inline-block;
+ min-width: 40%;
+ }
+ .item .name:hover {
+ background: #f6f6f6;
+ }
+
+ .item .empty_desc {
+ margin: 0 0 5px 0;
+ padding: 0;
+ }
+
+ .item .inheritance {
+ margin: 3px 0 0 30px;
+ }
+
+ .item .inherited {
+ color: #666;
+ }
+
+ .item .desc {
+ padding: 0 8px;
+ margin: 0;
+ }
+
+ .item .desc p {
+ margin: 0 0 10px 0;
+ }
+
+ .source_cont {
+ margin: 0;
+ padding: 0;
+ }
+
+ .source_link a {
+ background: #ffc300;
+ font-weight: 400;
+ font-size: .75em;
+ text-transform: uppercase;
+ color: #fff;
+ text-shadow: 1px 1px 0 #f4b700;
+
+ padding: 3px 8px;
+ border-radius: 2px;
+ transition: background .3s ease-in-out;
+ }
+ .source_link a:hover {
+ background: #FF7200;
+ text-shadow: none;
+ transition: background .3s ease-in-out;
+ }
+
+ .source {
+ display: none;
+ max-height: 600px;
+ overflow-y: scroll;
+ margin-bottom: 15px;
+ }
+
+ .source .codehilite {
+ margin: 0;
+ }
+
+ .desc h1, .desc h2, .desc h3 {
+ font-size: 100% !important;
+ }
+ .clear {
+ clear: both;
+ }
+
+ @media all and (max-width: 950px) {
+ #sidebar {
+ width: 35%;
+ }
+ #content {
+ width: 65%;
+ }
+ }
+ @media all and (max-width: 650px) {
+ #top {
+ display: none;
+ }
+ #sidebar {
+ float: none;
+ width: auto;
+ }
+ #content {
+ float: none;
+ width: auto;
+ padding: 30px;
+ }
+
+ #index ul {
+ padding: 0;
+ margin-bottom: 15px;
+ }
+ #index ul li {
+ display: inline-block;
+ margin-right: 30px;
+ }
+ #footer {
+ text-align: left;
+ }
+ #footer p {
+ display: block;
+ margin: inherit;
+ }
+ }
+
+ /*****************************/
+
+ </style>
+
+ <style type="text/css">
+ .codehilite .hll { background-color: #ffffcc }
+.codehilite { background: #f8f8f8; }
+.codehilite .c { color: #408080; font-style: italic } /* Comment */
+.codehilite .err { border: 1px solid #FF0000 } /* Error */
+.codehilite .k { color: #008000; font-weight: bold } /* Keyword */
+.codehilite .o { color: #666666 } /* Operator */
+.codehilite .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
+.codehilite .cm { color: #408080; font-style: italic } /* Comment.Multiline */
+.codehilite .cp { color: #BC7A00 } /* Comment.Preproc */
+.codehilite .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile
*/
+.codehilite .c1 { color: #408080; font-style: italic } /* Comment.Single */
+.codehilite .cs { color: #408080; font-style: italic } /* Comment.Special */
+.codehilite .gd { color: #A00000 } /* Generic.Deleted */
+.codehilite .ge { font-style: italic } /* Generic.Emph */
+.codehilite .gr { color: #FF0000 } /* Generic.Error */
+.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */
+.codehilite .gi { color: #00A000 } /* Generic.Inserted */
+.codehilite .go { color: #888888 } /* Generic.Output */
+.codehilite .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
+.codehilite .gs { font-weight: bold } /* Generic.Strong */
+.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
+.codehilite .gt { color: #0044DD } /* Generic.Traceback */
+.codehilite .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
+.codehilite .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
+.codehilite .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
+.codehilite .kp { color: #008000 } /* Keyword.Pseudo */
+.codehilite .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
+.codehilite .kt { color: #B00040 } /* Keyword.Type */
+.codehilite .m { color: #666666 } /* Literal.Number */
+.codehilite .s { color: #BA2121 } /* Literal.String */
+.codehilite .na { color: #7D9029 } /* Name.Attribute */
+.codehilite .nb { color: #008000 } /* Name.Builtin */
+.codehilite .nc { color: #0000FF; font-weight: bold } /* Name.Class */
+.codehilite .no { color: #880000 } /* Name.Constant */
+.codehilite .nd { color: #AA22FF } /* Name.Decorator */
+.codehilite .ni { color: #999999; font-weight: bold } /* Name.Entity */
+.codehilite .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
+.codehilite .nf { color: #0000FF } /* Name.Function */
+.codehilite .nl { color: #A0A000 } /* Name.Label */
+.codehilite .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
+.codehilite .nt { color: #008000; font-weight: bold } /* Name.Tag */
+.codehilite .nv { color: #19177C } /* Name.Variable */
+.codehilite .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
+.codehilite .w { color: #bbbbbb } /* Text.Whitespace */
+.codehilite .mb { color: #666666 } /* Literal.Number.Bin */
+.codehilite .mf { color: #666666 } /* Literal.Number.Float */
+.codehilite .mh { color: #666666 } /* Literal.Number.Hex */
+.codehilite .mi { color: #666666 } /* Literal.Number.Integer */
+.codehilite .mo { color: #666666 } /* Literal.Number.Oct */
+.codehilite .sa { color: #BA2121 } /* Literal.String.Affix */
+.codehilite .sb { color: #BA2121 } /* Literal.String.Backtick */
+.codehilite .sc { color: #BA2121 } /* Literal.String.Char */
+.codehilite .dl { color: #BA2121 } /* Literal.String.Delimiter */
+.codehilite .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
+.codehilite .s2 { color: #BA2121 } /* Literal.String.Double */
+.codehilite .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape
*/
+.codehilite .sh { color: #BA2121 } /* Literal.String.Heredoc */
+.codehilite .si { color: #BB6688; font-weight: bold } /*
Literal.String.Interpol */
+.codehilite .sx { color: #008000 } /* Literal.String.Other */
+.codehilite .sr { color: #BB6688 } /* Literal.String.Regex */
+.codehilite .s1 { color: #BA2121 } /* Literal.String.Single */
+.codehilite .ss { color: #19177C } /* Literal.String.Symbol */
+.codehilite .bp { color: #008000 } /* Name.Builtin.Pseudo */
+.codehilite .fm { color: #0000FF } /* Name.Function.Magic */
+.codehilite .vc { color: #19177C } /* Name.Variable.Class */
+.codehilite .vg { color: #19177C } /* Name.Variable.Global */
+.codehilite .vi { color: #19177C } /* Name.Variable.Instance */
+.codehilite .vm { color: #19177C } /* Name.Variable.Magic */
+.codehilite .il { color: #666666 } /* Literal.Number.Integer.Long */
+ </style>
+
+ <style type="text/css">
+
+/* ==========================================================================
+ EXAMPLE Media Queries for Responsive Design.
+ These examples override the primary ('mobile first') styles.
+ Modify as content requires.
+ ==========================================================================
*/
+
+@media only screen and (min-width: 35em) {
+ /* Style adjustments for viewports that meet the condition */
+}
+
+@media print,
+ (-o-min-device-pixel-ratio: 5/4),
+ (-webkit-min-device-pixel-ratio: 1.25),
+ (min-resolution: 120dpi) {
+ /* Style adjustments for high resolution devices */
+}
+
+/* ==========================================================================
+ Print styles.
+ Inlined to avoid required HTTP connection: h5bp.com/r
+ ==========================================================================
*/
+
+@media print {
+ * {
+ background: transparent !important;
+ color: #000 !important; /* Black prints faster: h5bp.com/s */
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ /*
+ * Don't show links for images, or javascript/internal links
+ */
+
+ .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; /* h5bp.com/t */
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page {
+ margin: 0.5cm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
+
+ </style>
+
+ <script type="text/javascript">
+ function toggle(id, $link) {
+ $node = document.getElementById(id);
+ if (!$node)
+ return;
+ if (!$node.style.display || $node.style.display == 'none') {
+ $node.style.display = 'block';
+ $link.innerHTML = 'Hide source ≢';
+ } else {
+ $node.style.display = 'none';
+ $link.innerHTML = 'Show source ≡';
+ }
+ }
+ </script>
+</head>
+<body>
+<a href="#" id="top">Top</a>
+
+<div id="container">
+
+
+ <div id="sidebar">
+ <h1>Index</h1>
+ <ul id="index">
+ <li class="set"><h3><a href="#header-variables">Module variables</a></h3>
+
+ <ul>
+ <li class="mono"><a href="#nexuscli.nexuscli_ow.session">session</a></li>
+ <li class="mono"><a href="#nexuscli.nexuscli_ow.target">target</a></li>
+ </ul>
+
+ </li>
+
+ <li class="set"><h3><a href="#header-functions">Functions</a></h3>
+
+ <ul>
+ <li class="mono"><a href="#nexuscli.nexuscli_ow.run_file">run_file</a></li>
+ <li class="mono"><a href="#nexuscli.nexuscli_ow.run_str">run_str</a></li>
+ <li class="mono"><a
href="#nexuscli.nexuscli_ow.set_target">set_target</a></li>
+ </ul>
+
+ </li>
+
+
+ </ul>
+ </div>
+
+ <article id="content">
+
+
+
+
+
+
+ <header id="section-intro">
+ <h1 class="title"><span class="name">nexuscli.nexuscli_ow</span> module</h1>
+ <p>This module provides a native python client interface to the NEXUS Livy
+webservice API.</p>
+<p>Usage:</p>
+<div class="codehilite"><pre><span></span><span class="kn">from</span> <span
class="nn">nexuscli</span> <span class="kn">import</span> <span
class="n">nexuscli_ow</span>
+
+<span class="n">nexuscli_ow</span><span class="o">.</span><span
class="n">set_target</span><span class="p">(</span><span
class="s2">"http://host:port"</span><span class="p">)</span>
+
+<span class="n">filename</span> <span class="o">=</span> <span
class="s2">"mycode.py"</span>
+<span class="n">nexuscli_ow</span><span class="o">.</span><span
class="n">run_file</span><span class="p">(</span><span
class="n">filename</span><span class="p">)</span>
+
+<span class="n">The</span> <span class="n">code</span> <span
class="ow">in</span> <span class="n">the</span> <span class="nb">file</span>
<span class="n">passed</span> <span class="n">to</span> <span
class="n">run_file</span> <span class="n">must</span> <span class="n">be</span>
<span class="n">valid</span> <span class="n">pyspark</span> <span
class="n">code</span><span class="o">.</span>
+<span class="n">Furthermore</span><span class="p">,</span> <span
class="n">it</span> <span class="n">must</span> <span class="n">have</span>
<span class="n">a</span> <span class="n">main</span> <span
class="n">function</span> <span class="n">that</span> <span
class="n">takes</span> <span class="n">exactly</span> <span class="n">one</span>
+<span class="n">argument</span><span class="p">,</span> <span
class="n">the</span> <span class="n">SparkContext</span><span
class="o">.</span> <span class="n">The</span> <span class="n">code</span>
<span class="n">can</span> <span class="n">make</span> <span
class="n">use</span> <span class="n">of</span> <span class="n">that</span>
<span class="n">SparkContext</span>
+<span class="n">variable</span><span class="p">,</span> <span
class="n">but</span> <span class="n">should</span> <span class="ow">not</span>
<span class="n">create</span> <span class="n">the</span> <span
class="n">SparkContext</span><span class="o">.</span>
+
+<span class="n">code</span> <span class="o">=</span> <span
class="s2">"1+1"</span>
+<span class="n">nexuscli_ow</span><span class="o">.</span><span
class="n">run_str</span><span class="p">(</span><span
class="n">code</span><span class="p">)</span>
+
+<span class="n">The</span> <span class="n">code</span> <span
class="n">passed</span> <span class="n">to</span> <span
class="n">run_str</span> <span class="n">can</span> <span class="n">also</span>
<span class="n">be</span> <span class="n">a</span> <span
class="n">multi</span><span class="o">-</span><span class="n">line</span> <span
class="n">string</span> <span class="n">containing</span>
+<span class="n">valid</span> <span class="n">python</span> <span
class="n">code</span><span class="o">.</span> <span class="n">It</span> <span
class="n">can</span> <span class="n">also</span> <span class="n">be</span>
<span class="n">a</span> <span class="n">multi</span><span
class="o">-</span><span class="n">line</span> <span class="n">string</span>
<span class="n">containing</span>
+<span class="n">valid</span> <span class="n">pyspark</span> <span
class="n">code</span><span class="o">.</span> <span class="n">For</span> <span
class="n">pyspark</span> <span class="n">code</span> <span class="n">the</span>
<span class="n">variable</span> <span class="n">sc</span> <span
class="n">may</span> <span class="n">be</span> <span class="n">used</span>
<span class="n">to</span>
+<span class="n">access</span> <span class="n">the</span> <span
class="n">SparkContext</span><span class="p">,</span> <span
class="n">but</span> <span class="n">it</span> <span class="n">should</span>
<span class="ow">not</span> <span class="n">create</span> <span
class="n">the</span> <span class="n">SparkContext</span><span class="o">.</span>
+</pre></div>
+
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.nexuscli_ow', this);">Show source
≡</a></p>
+ <div id="source-nexuscli.nexuscli_ow" class="source">
+ <div class="codehilite"><pre><span></span><span class="c1"># Licensed to
the Apache Software Foundation (ASF) under one or more</span>
+<span class="c1"># contributor license agreements. See the NOTICE file
distributed with</span>
+<span class="c1"># this work for additional information regarding copyright
ownership.</span>
+<span class="c1"># The ASF licenses this file to You under the Apache License,
Version 2.0</span>
+<span class="c1"># (the "License"); you may not use this file except
in compliance with</span>
+<span class="c1"># the License. You may obtain a copy of the License at</span>
+<span class="c1">#</span>
+<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
+<span class="c1">#</span>
+<span class="c1"># Unless required by applicable law or agreed to in writing,
software</span>
+<span class="c1"># distributed under the License is distributed on an "AS
IS" BASIS,</span>
+<span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.</span>
+<span class="c1"># See the License for the specific language governing
permissions and</span>
+<span class="c1"># limitations under the License.</span>
+<span class="sd">"""</span>
+<span class="sd">This module provides a native python client interface to the
NEXUS Livy</span>
+<span class="sd">webservice API.</span>
+
+<span class="sd">Usage:</span>
+
+<span class="sd"> from nexuscli import nexuscli_ow</span>
+<span class="sd"> </span>
+<span class="sd">
nexuscli_ow.set_target("http://host:port")</span>
+
+<span class="sd"> filename = "mycode.py"</span>
+<span class="sd"> nexuscli_ow.run_file(filename)</span>
+
+<span class="sd"> The code in the file passed to run_file must be valid
pyspark code.</span>
+<span class="sd"> Furthermore, it must have a main function that takes
exactly one</span>
+<span class="sd"> argument, the SparkContext. The code can make use of
that SparkContext</span>
+<span class="sd"> variable, but should not create the SparkContext.</span>
+
+<span class="sd"> code = "1+1"</span>
+<span class="sd"> nexuscli_ow.run_str(code)</span>
+
+<span class="sd"> The code passed to run_str can also be a multi-line
string containing </span>
+<span class="sd"> valid python code. It can also be a multi-line string
containing </span>
+<span class="sd"> valid pyspark code. For pyspark code the variable sc may
be used to </span>
+<span class="sd"> access the SparkContext, but it should not create the
SparkContext.</span>
+<span class="sd">"""</span>
+<span class="kn">import</span> <span class="nn">requests</span>
+<span class="kn">import</span> <span class="nn">ast</span>
+
+<span class="n">target</span> <span class="o">=</span> <span
class="s1">'http://localhost:8084'</span>
+
+<span class="n">session</span> <span class="o">=</span> <span
class="n">requests</span><span class="o">.</span><span
class="n">session</span><span class="p">()</span>
+
+
+<span class="k">def</span> <span class="nf">set_target</span><span
class="p">(</span><span class="n">url</span><span class="p">,</span> <span
class="n">use_session</span><span class="o">=</span><span
class="bp">True</span><span class="p">):</span>
+ <span class="sd">"""</span>
+<span class="sd"> Set the URL for the NEXUS webapp endpoint. </span>
+<span class="sd"> </span>
+<span class="sd"> __url__ URL for NEXUS webapp endpoint </span>
+<span class="sd"> __return__ None</span>
+<span class="sd"> """</span>
+ <span class="k">global</span> <span class="n">target</span>
+ <span class="n">target</span> <span class="o">=</span> <span
class="n">url</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span
class="n">use_session</span><span class="p">:</span>
+ <span class="k">global</span> <span class="n">session</span>
+ <span class="n">session</span> <span class="o">=</span> <span
class="n">requests</span>
+
+
+<span class="k">def</span> <span class="nf">run_file</span><span
class="p">(</span><span class="n">fname</span><span class="p">):</span>
+ <span class="n">files</span> <span class="o">=</span> <span
class="p">{</span><span class="s1">'file'</span><span
class="p">:</span> <span class="nb">open</span><span class="p">(</span><span
class="n">fname</span><span class="p">,</span> <span
class="s1">'rb'</span><span class="p">)}</span>
+ <span class="n">response</span> <span class="o">=</span> <span
class="n">session</span><span class="o">.</span><span
class="n">post</span><span class="p">(</span><span class="n">target</span><span
class="o">+</span><span class="s1">'/run_file'</span><span
class="p">,</span> <span class="n">files</span><span class="o">=</span><span
class="n">files</span><span class="p">)</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">response</span><span class="o">.</span><span
class="n">text</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">response</span><span
class="o">.</span><span class="n">text</span>
+
+
+<span class="k">def</span> <span class="nf">run_str</span><span
class="p">(</span><span class="n">code</span><span class="p">):</span>
+ <span class="n">response</span> <span class="o">=</span> <span
class="n">requests</span><span class="o">.</span><span
class="n">post</span><span class="p">(</span><span class="n">target</span><span
class="o">+</span><span class="s1">'/run_str'</span><span
class="p">,</span> <span class="n">data</span><span class="o">=</span><span
class="n">code</span><span class="p">)</span>
+ <span class="n">ans</span> <span class="o">=</span> <span
class="n">ast</span><span class="o">.</span><span
class="n">literal_eval</span><span class="p">(</span><span
class="n">response</span><span class="o">.</span><span
class="n">text</span><span class="p">)[</span><span
class="s1">'text/plain'</span><span class="p">]</span>
+ <span class="k">for</span> <span class="n">line</span> <span
class="ow">in</span> <span class="n">ans</span><span class="p">:</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">line</span><span class="p">,</span> <span class="n">end</span><span
class="o">=</span><span class="s2">" "</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">ans</span>
+</pre></div>
+
+ </div>
+
+ </header>
+
+ <section id="section-items">
+ <h2 class="section-title" id="header-variables">Module variables</h2>
+ <div class="item">
+ <p id="nexuscli.nexuscli_ow.session" class="name">var <span
class="ident">session</span></p>
+
+
+ <div class="source_cont">
+</div>
+
+ </div>
+ <div class="item">
+ <p id="nexuscli.nexuscli_ow.target" class="name">var <span
class="ident">target</span></p>
+
+
+ <div class="source_cont">
+</div>
+
+ </div>
+
+ <h2 class="section-title" id="header-functions">Functions</h2>
+
+ <div class="item">
+ <div class="name def" id="nexuscli.nexuscli_ow.run_file">
+ <p>def <span class="ident">run_file</span>(</p><p>fname)</p>
+ </div>
+
+
+
+
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.nexuscli_ow.run_file', this);">Show source
≡</a></p>
+ <div id="source-nexuscli.nexuscli_ow.run_file" class="source">
+ <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">run_file</span><span class="p">(</span><span
class="n">fname</span><span class="p">):</span>
+ <span class="n">files</span> <span class="o">=</span> <span
class="p">{</span><span class="s1">'file'</span><span
class="p">:</span> <span class="nb">open</span><span class="p">(</span><span
class="n">fname</span><span class="p">,</span> <span
class="s1">'rb'</span><span class="p">)}</span>
+ <span class="n">response</span> <span class="o">=</span> <span
class="n">session</span><span class="o">.</span><span
class="n">post</span><span class="p">(</span><span class="n">target</span><span
class="o">+</span><span class="s1">'/run_file'</span><span
class="p">,</span> <span class="n">files</span><span class="o">=</span><span
class="n">files</span><span class="p">)</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">response</span><span class="o">.</span><span
class="n">text</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">response</span><span
class="o">.</span><span class="n">text</span>
+</pre></div>
+
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="nexuscli.nexuscli_ow.run_str">
+ <p>def <span class="ident">run_str</span>(</p><p>code)</p>
+ </div>
+
+
+
+
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.nexuscli_ow.run_str', this);">Show source
≡</a></p>
+ <div id="source-nexuscli.nexuscli_ow.run_str" class="source">
+ <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">run_str</span><span class="p">(</span><span
class="n">code</span><span class="p">):</span>
+ <span class="n">response</span> <span class="o">=</span> <span
class="n">requests</span><span class="o">.</span><span
class="n">post</span><span class="p">(</span><span class="n">target</span><span
class="o">+</span><span class="s1">'/run_str'</span><span
class="p">,</span> <span class="n">data</span><span class="o">=</span><span
class="n">code</span><span class="p">)</span>
+ <span class="n">ans</span> <span class="o">=</span> <span
class="n">ast</span><span class="o">.</span><span
class="n">literal_eval</span><span class="p">(</span><span
class="n">response</span><span class="o">.</span><span
class="n">text</span><span class="p">)[</span><span
class="s1">'text/plain'</span><span class="p">]</span>
+ <span class="k">for</span> <span class="n">line</span> <span
class="ow">in</span> <span class="n">ans</span><span class="p">:</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">line</span><span class="p">,</span> <span class="n">end</span><span
class="o">=</span><span class="s2">" "</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">ans</span>
+</pre></div>
+
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def" id="nexuscli.nexuscli_ow.set_target">
+ <p>def <span class="ident">set_target</span>(</p><p>url,
use_session=True)</p>
+ </div>
+
+
+
+
+ <div class="desc"><p>Set the URL for the NEXUS webapp endpoint. </p>
+<p><strong>url</strong> URL for NEXUS webapp endpoint <br />
+<strong>return</strong> None</p></div>
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.nexuscli_ow.set_target', this);">Show source
≡</a></p>
+ <div id="source-nexuscli.nexuscli_ow.set_target" class="source">
+ <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">set_target</span><span class="p">(</span><span
class="n">url</span><span class="p">,</span> <span
class="n">use_session</span><span class="o">=</span><span
class="bp">True</span><span class="p">):</span>
+ <span class="sd">"""</span>
+<span class="sd"> Set the URL for the NEXUS webapp endpoint. </span>
+<span class="sd"> </span>
+<span class="sd"> __url__ URL for NEXUS webapp endpoint </span>
+<span class="sd"> __return__ None</span>
+<span class="sd"> """</span>
+ <span class="k">global</span> <span class="n">target</span>
+ <span class="n">target</span> <span class="o">=</span> <span
class="n">url</span>
+
+ <span class="k">if</span> <span class="ow">not</span> <span
class="n">use_session</span><span class="p">:</span>
+ <span class="k">global</span> <span class="n">session</span>
+ <span class="n">session</span> <span class="o">=</span> <span
class="n">requests</span>
+</pre></div>
+
+ </div>
+</div>
+
+ </div>
+
+
+
+ </section>
+
+ </article>
+ <div class="clear"> </div>
+ <footer id="footer">
+ <p>
+ Documentation generated by
+ <a href="https://github.com/BurntSushi/pdoc">pdoc 0.3.2</a>
+ </p>
+
+ <p>pdoc is in the public domain with the
+ <a href="http://unlicense.org">UNLICENSE</a></p>
+
+ <p>Design by <a href="http://nadh.in">Kailash Nadh</a></p>
+ </footer>
+</div>
+</body>
+</html>
diff --git a/client/docs/nexuscli/test/index.html
b/client/docs/nexuscli/test/index.html
index 296f5e9..443316e 100644
--- a/client/docs/nexuscli/test/index.html
+++ b/client/docs/nexuscli/test/index.html
@@ -1062,6 +1062,25 @@ <h1>Index</h1>
<h1 class="title"><span class="name">nexuscli.test</span> module</h1>
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test', this);">Show source ≡</a></p>
+ <div id="source-nexuscli.test" class="source">
+ <div class="codehilite"><pre><span></span><span class="c1"># Licensed to
the Apache Software Foundation (ASF) under one or more</span>
+<span class="c1"># contributor license agreements. See the NOTICE file
distributed with</span>
+<span class="c1"># this work for additional information regarding copyright
ownership.</span>
+<span class="c1"># The ASF licenses this file to You under the Apache License,
Version 2.0</span>
+<span class="c1"># (the "License"); you may not use this file except
in compliance with</span>
+<span class="c1"># the License. You may obtain a copy of the License at</span>
+<span class="c1">#</span>
+<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
+<span class="c1">#</span>
+<span class="c1"># Unless required by applicable law or agreed to in writing,
software</span>
+<span class="c1"># distributed under the License is distributed on an "AS
IS" BASIS,</span>
+<span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.</span>
+<span class="c1"># See the License for the specific language governing
permissions and</span>
+<span class="c1"># limitations under the License.</span>
+</pre></div>
+
+ </div>
</header>
diff --git a/client/docs/nexuscli/test/nexuscli_test.m.html
b/client/docs/nexuscli/test/nexuscli_test.m.html
index f411288..080e36c 100644
--- a/client/docs/nexuscli/test/nexuscli_test.m.html
+++ b/client/docs/nexuscli/test/nexuscli_test.m.html
@@ -1080,6 +1080,7 @@ <h1>Index</h1>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.assertNotIn">assertNotIn</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.assertNotIsInstance">assertNotIsInstance</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.assertNotRegex">assertNotRegex</a></li>
+ <li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.assertNotRegexpMatches">assertNotRegexpMatches</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.assertRaises">assertRaises</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.assertRaisesRegex">assertRaisesRegex</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.assertRaisesRegexp">assertRaisesRegexp</a></li>
@@ -1112,6 +1113,8 @@ <h1>Index</h1>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.subTest">subTest</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.tearDown">tearDown</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.test_daily_difference_average">test_daily_difference_average</a></li>
+ <li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.test_data_in_bounds_with_bounding_box">test_data_in_bounds_with_bounding_box</a></li>
+ <li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.test_data_in_bounds_with_metadata_filter">test_data_in_bounds_with_metadata_filter</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.test_list">test_list</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.test_time_series">test_time_series</a></li>
<li class="mono"><a
href="#nexuscli.test.nexuscli_test.TestCli.setUpClass">setUpClass</a></li>
@@ -1138,23 +1141,62 @@ <h1 class="title"><span
class="name">nexuscli.test.nexuscli_test</span> module</
<p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test.nexuscli_test', this);">Show source
≡</a></p>
<div id="source-nexuscli.test.nexuscli_test" class="source">
- <div class="codehilite"><pre><span></span><span class="n">mport</span>
<span class="n">unittest</span>
-<span class="n">rom</span> <span class="n">datetime</span> <span
class="kn">import</span> <span class="nn">datetime</span>
-<span class="n">rom</span> <span class="n">shapely</span><span
class="o">.</span><span class="n">geometry</span> <span
class="kn">import</span> <span class="nn">box</span>
-<span class="n">mport</span> <span class="n">nexuscli</span>
-<span class="n">lass</span> <span class="n">TestCli</span><span
class="p">(</span><span class="n">unittest</span><span class="o">.</span><span
class="n">TestCase</span><span class="p">):</span>
- <span class="k">def</span> <span class="nf">test_time_series</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="n">ts</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">time_series</span><span class="p">((</span><span
class="s2">"AVHRR_OI_L4_GHRSST_NCEI"</span><span class="p">,</span>
<span class="s2">"MEASURES_SLA_JPL_1603"</span><span
class="p">),</span> <span class="n">box</span><span class="p">(</span><span
class="o">-</span><span class="mi">150</span><span class="p">,</span> <span
class="mi">45</span><span class="p">,</span> <span class="o">-</span><span
class="mi">120</span><span class="p">,</span> <span class="mi">60</span><span
class="p">),</span>
- <span class="n">datetime</span><span
class="p">(</span><span class="mi">2016</span><span class="p">,</span> <span
class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span
class="p">),</span> <span class="n">datetime</span><span
class="p">(</span><span class="mi">2016</span><span class="p">,</span> <span
class="mi">12</span><span class="p">,</span> <span class="mi">31</span><span
class="p">))</span>
- <span class="bp">self</span><span class="o">.</span><span
class="n">assertEqual</span><span class="p">(</span><span
class="mi">2</span><span class="p">,</span> <span class="nb">len</span><span
class="p">(</span><span class="n">ts</span><span class="p">))</span>
- <span class="k">def</span> <span class="nf">test_list</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
- <span class="n">ds_list</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">dataset_list</span><span class="p">()</span>
- <span class="k">print</span><span class="p">(</span><span
class="n">ds_list</span><span class="p">)</span>
- <span class="bp">self</span><span class="o">.</span><span
class="n">assertTrue</span><span class="p">(</span><span
class="nb">len</span><span class="p">(</span><span
class="n">ds_list</span><span class="p">)</span> <span class="o">></span>
<span class="mi">0</span><span class="p">)</span>
- <span class="k">def</span> <span
class="nf">test_daily_difference_average</span><span class="p">(</span><span
class="bp">self</span><span class="p">):</span>
- <span class="n">ts</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">daily_difference_average</span><span class="p">(</span><span
class="s2">"AVHRR_OI_L4_GHRSST_NCEI"</span><span class="p">,</span>
<span class="n">box</span><span class="p">(</span><span class="o">-</span><span
class="mi">150</span><span class="p">,</span> <span class="mi">45</span><span
class="p">,</span> <span class="o">-</span><span class="mi">120</span><span
class="p">,</span> <span class="mi">60</span><span class="p">),</span>
- <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2013</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2014</span><span class="p">,</span> <span class="mi">12</span><span
class="p">,</span> <span class="mi">31</span><span class="p">))</span>
- <span class="bp">self</span><span class="o">.</span><span
class="n">assertEqual</span><span class="p">(</span><span
class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span
class="p">(</span><span class="n">ts</span><span class="p">))</span>
+ <div class="codehilite"><pre><span></span><span class="c1"># Licensed to
the Apache Software Foundation (ASF) under one or more</span>
+<span class="c1"># contributor license agreements. See the NOTICE file
distributed with</span>
+<span class="c1"># this work for additional information regarding copyright
ownership.</span>
+<span class="c1"># The ASF licenses this file to You under the Apache License,
Version 2.0</span>
+<span class="c1"># (the "License"); you may not use this file except
in compliance with</span>
+<span class="c1"># the License. You may obtain a copy of the License at</span>
+<span class="c1">#</span>
+<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
+<span class="c1">#</span>
+<span class="c1"># Unless required by applicable law or agreed to in writing,
software</span>
+<span class="c1"># distributed under the License is distributed on an "AS
IS" BASIS,</span>
+<span class="c1"># WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.</span>
+<span class="c1"># See the License for the specific language governing
permissions and</span>
+<span class="c1"># limitations under the License.</span>
+
+<span class="kn">import</span> <span class="nn">unittest</span>
+<span class="kn">from</span> <span class="nn">datetime</span> <span
class="kn">import</span> <span class="n">datetime</span>
+
+<span class="kn">from</span> <span class="nn">shapely.geometry</span> <span
class="kn">import</span> <span class="n">box</span>
+
+<span class="kn">import</span> <span class="nn">nexuscli</span>
+
+
+<span class="k">class</span> <span class="nc">TestCli</span><span
class="p">(</span><span class="n">unittest</span><span class="o">.</span><span
class="n">TestCase</span><span class="p">):</span>
+
+ <span class="k">def</span> <span class="nf">setUp</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="nb">super</span><span class="p">()</span><span
class="o">.</span><span class="n">setUp</span><span class="p">()</span>
+ <span class="n">nexuscli</span><span class="o">.</span><span
class="n">set_target</span><span class="p">(</span><span
class="s2">"http://localhost:8083"</span><span class="p">,</span>
<span class="n">use_session</span><span class="o">=</span><span
class="bp">False</span><span class="p">)</span>
+
+ <span class="k">def</span> <span class="nf">test_time_series</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">ts</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">time_series</span><span class="p">((</span><span
class="s2">"AVHRR_OI_L4_GHRSST_NCEI"</span><span class="p">,</span>
<span class="s2">"MEASURES_SLA_JPL_1603"</span><span
class="p">),</span> <span class="n">box</span><span class="p">(</span><span
class="o">-</span><span class="mi">150</span><span class="p">,</span> <span
class="mi">45</span><span class="p">,</span> <span class="o">-</span><span
class="mi">120</span><span class="p">,</span> <span class="mi">60</span><span
class="p">),</span>
+ <span class="n">datetime</span><span
class="p">(</span><span class="mi">2016</span><span class="p">,</span> <span
class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span
class="p">),</span> <span class="n">datetime</span><span
class="p">(</span><span class="mi">2016</span><span class="p">,</span> <span
class="mi">12</span><span class="p">,</span> <span class="mi">31</span><span
class="p">))</span>
+
+ <span class="bp">self</span><span class="o">.</span><span
class="n">assertEqual</span><span class="p">(</span><span
class="mi">2</span><span class="p">,</span> <span class="nb">len</span><span
class="p">(</span><span class="n">ts</span><span class="p">))</span>
+
+ <span class="k">def</span> <span class="nf">test_list</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">ds_list</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">dataset_list</span><span class="p">()</span>
+
+ <span class="k">print</span><span class="p">(</span><span
class="n">ds_list</span><span class="p">)</span>
+ <span class="bp">self</span><span class="o">.</span><span
class="n">assertTrue</span><span class="p">(</span><span
class="nb">len</span><span class="p">(</span><span
class="n">ds_list</span><span class="p">)</span> <span class="o">></span>
<span class="mi">0</span><span class="p">)</span>
+
+ <span class="k">def</span> <span
class="nf">test_daily_difference_average</span><span class="p">(</span><span
class="bp">self</span><span class="p">):</span>
+ <span class="n">ts</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">daily_difference_average</span><span class="p">(</span><span
class="s2">"AVHRR_OI_L4_GHRSST_NCEI"</span><span class="p">,</span>
<span class="n">box</span><span class="p">(</span><span class="o">-</span><span
class="mi">150</span><span class="p">,</span> <span class="mi">45</span><span
class="p">,</span> <span class="o">-</span><span class="mi">120</span><span
class="p">,</span> <span class="mi">60</span><span class="p">),</span>
+ <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2013</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2014</span><span class="p">,</span> <span class="mi">12</span><span
class="p">,</span> <span class="mi">31</span><span class="p">))</span>
+
+ <span class="bp">self</span><span class="o">.</span><span
class="n">assertEqual</span><span class="p">(</span><span
class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span
class="p">(</span><span class="n">ts</span><span class="p">))</span>
+
+ <span class="k">def</span> <span
class="nf">test_data_in_bounds_with_metadata_filter</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">subset</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">subset</span><span class="p">(</span><span
class="s2">"MUR-JPL-L4-GLOB-v4.1"</span><span class="p">,</span>
<span class="bp">None</span><span class="p">,</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">2</span><span class="p">),</span>
+ <span class="bp">None</span><span
class="p">,</span> <span class="p">[</span><span
class="s2">"id:60758e00-5721-3a6e-bf57-78448bb0aeeb"</span><span
class="p">])</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">subset</span><span class="p">)</span>
+
+ <span class="k">def</span> <span
class="nf">test_data_in_bounds_with_bounding_box</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">subset</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">subset</span><span class="p">(</span><span
class="s2">"MUR-JPL-L4-GLOB-v4.1"</span><span class="p">,</span>
<span class="n">box</span><span class="p">(</span><span class="o">-</span><span
class="mi">150</span><span class="p">,</span> <span class="mi">45</span><span
class="p">,</span> <span class="o">-</span><span class="mi">149</span><span
class="p">,</span> <span class="mi">46</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span>
+ <span class="n">datetime</span><span
class="p">(</span><span class="mi">2018</span><span class="p">,</span> <span
class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span
class="p">),</span> <span class="bp">None</span><span class="p">,</span> <span
class="bp">None</span><span class="p">)</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">subset</span><span class="p">)</span>
</pre></div>
</div>
@@ -1199,6 +1241,11 @@ <h2 class="section-title"
id="header-classes">Classes</h2>
<p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli', this);">Show
source ≡</a></p>
<div id="source-nexuscli.test.nexuscli_test.TestCli" class="source">
<div class="codehilite"><pre><span></span><span class="k">class</span>
<span class="nc">TestCli</span><span class="p">(</span><span
class="n">unittest</span><span class="o">.</span><span
class="n">TestCase</span><span class="p">):</span>
+
+ <span class="k">def</span> <span class="nf">setUp</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="nb">super</span><span class="p">()</span><span
class="o">.</span><span class="n">setUp</span><span class="p">()</span>
+ <span class="n">nexuscli</span><span class="o">.</span><span
class="n">set_target</span><span class="p">(</span><span
class="s2">"http://localhost:8083"</span><span class="p">,</span>
<span class="n">use_session</span><span class="o">=</span><span
class="bp">False</span><span class="p">)</span>
+
<span class="k">def</span> <span class="nf">test_time_series</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">ts</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">time_series</span><span class="p">((</span><span
class="s2">"AVHRR_OI_L4_GHRSST_NCEI"</span><span class="p">,</span>
<span class="s2">"MEASURES_SLA_JPL_1603"</span><span
class="p">),</span> <span class="n">box</span><span class="p">(</span><span
class="o">-</span><span class="mi">150</span><span class="p">,</span> <span
class="mi">45</span><span class="p">,</span> <span class="o">-</span><span
class="mi">120</span><span class="p">,</span> <span class="mi">60</span><span
class="p">),</span>
<span class="n">datetime</span><span
class="p">(</span><span class="mi">2016</span><span class="p">,</span> <span
class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span
class="p">),</span> <span class="n">datetime</span><span
class="p">(</span><span class="mi">2016</span><span class="p">,</span> <span
class="mi">12</span><span class="p">,</span> <span class="mi">31</span><span
class="p">))</span>
@@ -1216,6 +1263,16 @@ <h2 class="section-title"
id="header-classes">Classes</h2>
<span
class="n">datetime</span><span class="p">(</span><span
class="mi">2013</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2014</span><span class="p">,</span> <span class="mi">12</span><span
class="p">,</span> <span class="mi">31</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span
class="n">assertEqual</span><span class="p">(</span><span
class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span
class="p">(</span><span class="n">ts</span><span class="p">))</span>
+
+ <span class="k">def</span> <span
class="nf">test_data_in_bounds_with_metadata_filter</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">subset</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">subset</span><span class="p">(</span><span
class="s2">"MUR-JPL-L4-GLOB-v4.1"</span><span class="p">,</span>
<span class="bp">None</span><span class="p">,</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">2</span><span class="p">),</span>
+ <span class="bp">None</span><span
class="p">,</span> <span class="p">[</span><span
class="s2">"id:60758e00-5721-3a6e-bf57-78448bb0aeeb"</span><span
class="p">])</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">subset</span><span class="p">)</span>
+
+ <span class="k">def</span> <span
class="nf">test_data_in_bounds_with_bounding_box</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">subset</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">subset</span><span class="p">(</span><span
class="s2">"MUR-JPL-L4-GLOB-v4.1"</span><span class="p">,</span>
<span class="n">box</span><span class="p">(</span><span class="o">-</span><span
class="mi">150</span><span class="p">,</span> <span class="mi">45</span><span
class="p">,</span> <span class="o">-</span><span class="mi">149</span><span
class="p">,</span> <span class="mi">46</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span>
+ <span class="n">datetime</span><span
class="p">(</span><span class="mi">2018</span><span class="p">,</span> <span
class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span
class="p">),</span> <span class="bp">None</span><span class="p">,</span> <span
class="bp">None</span><span class="p">)</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">subset</span><span class="p">)</span>
</pre></div>
</div>
@@ -1394,9 +1451,10 @@ <h3>Static methods</h3>
<div class="desc"><p>Fail if the two objects are unequal as determined by
their
difference rounded to the given number of decimal places
(default 7) and comparing to zero, or by comparing that the
-between the two objects is more than the given delta.</p>
+difference between the two objects is more than the given
+delta.</p>
<p>Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most signficant digit).</p>
+as significant digits (measured from the most significant digit).</p>
<p>If the two objects compare equal then they will automatically
compare almost equal.</p></div>
<div class="source_cont">
@@ -1407,9 +1465,10 @@ <h3>Static methods</h3>
<span class="sd">"""Fail if the two objects are unequal as
determined by their</span>
<span class="sd"> difference rounded to the given number of decimal
places</span>
<span class="sd"> (default 7) and comparing to zero, or by comparing
that the</span>
-<span class="sd"> between the two objects is more than the given
delta.</span>
+<span class="sd"> difference between the two objects is more than the
given</span>
+<span class="sd"> delta.</span>
<span class="sd"> Note that decimal places (from zero) are usually not
the same</span>
-<span class="sd"> as significant digits (measured from the most
signficant digit).</span>
+<span class="sd"> as significant digits (measured from the most
significant digit).</span>
<span class="sd"> If the two objects compare equal then they will
automatically</span>
<span class="sd"> compare almost equal.</span>
<span class="sd"> """</span>
@@ -2063,9 +2122,9 @@ <h3>Static methods</h3>
<div class="desc"><p>Fail if the two objects are equal as determined by
their
difference rounded to the given number of decimal places
(default 7) and comparing to zero, or by comparing that the
-between the two objects is less than the given delta.</p>
+difference between the two objects is less than the given delta.</p>
<p>Note that decimal places (from zero) are usually not the same
-as significant digits (measured from the most signficant digit).</p>
+as significant digits (measured from the most significant digit).</p>
<p>Objects that are equal automatically fail.</p></div>
<div class="source_cont">
<p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli.assertNotAlmostEqual',
this);">Show source ≡</a></p>
@@ -2075,9 +2134,9 @@ <h3>Static methods</h3>
<span class="sd">"""Fail if the two objects are equal as
determined by their</span>
<span class="sd"> difference rounded to the given number of decimal
places</span>
<span class="sd"> (default 7) and comparing to zero, or by comparing
that the</span>
-<span class="sd"> between the two objects is less than the given
delta.</span>
+<span class="sd"> difference between the two objects is less than the
given delta.</span>
<span class="sd"> Note that decimal places (from zero) are usually not
the same</span>
-<span class="sd"> as significant digits (measured from the most
signficant digit).</span>
+<span class="sd"> as significant digits (measured from the most
significant digit).</span>
<span class="sd"> Objects that are equal automatically fail.</span>
<span class="sd"> """</span>
<span class="k">if</span> <span class="n">delta</span> <span
class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span>
<span class="ow">and</span> <span class="n">places</span> <span
class="ow">is</span> <span class="ow">not</span> <span
class="bp">None</span><span class="p">:</span>
@@ -2252,11 +2311,12 @@ <h3>Static methods</h3>
<span class="n">unexpected_regex</span> <span class="o">=</span> <span
class="n">re</span><span class="o">.</span><span class="n">compile</span><span
class="p">(</span><span class="n">unexpected_regex</span><span
class="p">)</span>
<span class="n">match</span> <span class="o">=</span> <span
class="n">unexpected_regex</span><span class="o">.</span><span
class="n">search</span><span class="p">(</span><span class="n">text</span><span
class="p">)</span>
<span class="k">if</span> <span class="n">match</span><span
class="p">:</span>
- <span class="n">msg</span> <span class="o">=</span> <span
class="n">msg</span> <span class="ow">or</span> <span class="s2">"Regex
matched"</span>
- <span class="n">msg</span> <span class="o">=</span> <span
class="s1">'</span><span class="si">%s</span><span class="s1">:
</span><span class="si">%r</span><span class="s1"> matches </span><span
class="si">%r</span><span class="s1"> in </span><span class="si">%r</span><span
class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span
class="n">msg</span><span class="p">,</span>
- <span class="n">text</span><span
class="p">[</span><span class="n">match</span><span class="o">.</span><span
class="n">start</span><span class="p">():</span><span
class="n">match</span><span class="o">.</span><span class="n">end</span><span
class="p">()],</span>
- <span
class="n">unexpected_regex</span><span class="o">.</span><span
class="n">pattern</span><span class="p">,</span>
- <span class="n">text</span><span
class="p">)</span>
+ <span class="n">standardMsg</span> <span class="o">=</span> <span
class="s1">'Regex matched: </span><span class="si">%r</span><span
class="s1"> matches </span><span class="si">%r</span><span class="s1"> in
</span><span class="si">%r</span><span class="s1">'</span> <span
class="o">%</span> <span class="p">(</span>
+ <span class="n">text</span><span class="p">[</span><span
class="n">match</span><span class="o">.</span><span class="n">start</span><span
class="p">()</span> <span class="p">:</span> <span class="n">match</span><span
class="o">.</span><span class="n">end</span><span class="p">()],</span>
+ <span class="n">unexpected_regex</span><span
class="o">.</span><span class="n">pattern</span><span class="p">,</span>
+ <span class="n">text</span><span class="p">)</span>
+ <span class="c1"># _formatMessage ensures the longMessage option is
respected</span>
+ <span class="n">msg</span> <span class="o">=</span> <span
class="bp">self</span><span class="o">.</span><span
class="n">_formatMessage</span><span class="p">(</span><span
class="n">msg</span><span class="p">,</span> <span
class="n">standardMsg</span><span class="p">)</span>
<span class="k">raise</span> <span class="bp">self</span><span
class="o">.</span><span class="n">failureException</span><span
class="p">(</span><span class="n">msg</span><span class="p">)</span>
</pre></div>
@@ -2266,6 +2326,30 @@ <h3>Static methods</h3>
</div>
+ <div class="item">
+ <div class="name def"
id="nexuscli.test.nexuscli_test.TestCli.assertNotRegexpMatches">
+ <p>def <span class="ident">assertNotRegexpMatches</span>(</p><p>*args,
**kwargs)</p>
+ </div>
+
+
+
+
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli.assertNotRegexpMatches',
this);">Show source ≡</a></p>
+ <div id="source-nexuscli.test.nexuscli_test.TestCli.assertNotRegexpMatches"
class="source">
+ <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">deprecated_func</span><span class="p">(</span><span
class="o">*</span><span class="n">args</span><span class="p">,</span> <span
class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
+ <span class="n">warnings</span><span class="o">.</span><span
class="n">warn</span><span class="p">(</span>
+ <span class="s1">'Please use {0} instead.'</span><span
class="o">.</span><span class="n">format</span><span class="p">(</span><span
class="n">original_func</span><span class="o">.</span><span
class="vm">__name__</span><span class="p">),</span>
+ <span class="ne">DeprecationWarning</span><span class="p">,</span>
<span class="mi">2</span><span class="p">)</span>
+ <span class="k">return</span> <span class="n">original_func</span><span
class="p">(</span><span class="o">*</span><span class="n">args</span><span
class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span
class="p">)</span>
+</pre></div>
+
+ </div>
+</div>
+
+ </div>
+
+
<div class="item">
<div class="name def"
id="nexuscli.test.nexuscli_test.TestCli.assertRaises">
<p>def <span class="ident">assertRaises</span>(</p><p>self,
expected_exception, *args, **kwargs)</p>
@@ -2322,7 +2406,11 @@ <h3>Static methods</h3>
<span class="sd"> self.assertEqual(the_exception.error_code,
3)</span>
<span class="sd"> """</span>
<span class="n">context</span> <span class="o">=</span> <span
class="n">_AssertRaisesContext</span><span class="p">(</span><span
class="n">expected_exception</span><span class="p">,</span> <span
class="bp">self</span><span class="p">)</span>
- <span class="k">return</span> <span class="n">context</span><span
class="o">.</span><span class="n">handle</span><span class="p">(</span><span
class="s1">'assertRaises'</span><span class="p">,</span> <span
class="n">args</span><span class="p">,</span> <span
class="n">kwargs</span><span class="p">)</span>
+ <span class="k">try</span><span class="p">:</span>
+ <span class="k">return</span> <span class="n">context</span><span
class="o">.</span><span class="n">handle</span><span class="p">(</span><span
class="s1">'assertRaises'</span><span class="p">,</span> <span
class="n">args</span><span class="p">,</span> <span
class="n">kwargs</span><span class="p">)</span>
+ <span class="k">finally</span><span class="p">:</span>
+ <span class="c1"># bpo-23890: manually break a reference cycle</span>
+ <span class="n">context</span> <span class="o">=</span> <span
class="bp">None</span>
</pre></div>
</div>
@@ -2415,8 +2503,10 @@ <h3>Static methods</h3>
<span class="k">assert</span> <span
class="n">expected_regex</span><span class="p">,</span> <span
class="s2">"expected_regex must not be empty."</span>
<span class="n">expected_regex</span> <span class="o">=</span> <span
class="n">re</span><span class="o">.</span><span class="n">compile</span><span
class="p">(</span><span class="n">expected_regex</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span
class="n">expected_regex</span><span class="o">.</span><span
class="n">search</span><span class="p">(</span><span class="n">text</span><span
class="p">):</span>
- <span class="n">msg</span> <span class="o">=</span> <span
class="n">msg</span> <span class="ow">or</span> <span class="s2">"Regex
didn't match"</span>
- <span class="n">msg</span> <span class="o">=</span> <span
class="s1">'</span><span class="si">%s</span><span class="s1">:
</span><span class="si">%r</span><span class="s1"> not found in </span><span
class="si">%r</span><span class="s1">'</span> <span class="o">%</span>
<span class="p">(</span><span class="n">msg</span><span class="p">,</span>
<span class="n">expected_regex</span><span class="o">.</span><span
class="n">pattern</span><span class="p">,</span> <span
class="n">text</span><span class="p">)</span>
+ <span class="n">standardMsg</span> <span class="o">=</span> <span
class="s2">"Regex didn't match: </span><span class="si">%r</span><span
class="s2"> not found in </span><span class="si">%r</span><span
class="s2">"</span> <span class="o">%</span> <span class="p">(</span>
+ <span class="n">expected_regex</span><span class="o">.</span><span
class="n">pattern</span><span class="p">,</span> <span
class="n">text</span><span class="p">)</span>
+ <span class="c1"># _formatMessage ensures the longMessage option is
respected</span>
+ <span class="n">msg</span> <span class="o">=</span> <span
class="bp">self</span><span class="o">.</span><span
class="n">_formatMessage</span><span class="p">(</span><span
class="n">msg</span><span class="p">,</span> <span
class="n">standardMsg</span><span class="p">)</span>
<span class="k">raise</span> <span class="bp">self</span><span
class="o">.</span><span class="n">failureException</span><span
class="p">(</span><span class="n">msg</span><span class="p">)</span>
</pre></div>
@@ -2526,7 +2616,7 @@ <h3>Static methods</h3>
<span class="k">break</span>
<span class="k">if</span> <span class="n">item1</span> <span
class="o">!=</span> <span class="n">item2</span><span class="p">:</span>
<span class="n">differing</span> <span class="o">+=</span>
<span class="p">(</span><span class="s1">'</span><span
class="se">\n</span><span class="s1">First differing element </span><span
class="si">%d</span><span class="s1">:</span><span class="se">\n</span><span
class="si">%s</span><span class="se">\n</span><span class="si">%s</span><span
class="se">\n</span><span class="s1">'</span> <span class="o">%</span>
- <span class="p">(</span><span
class="n">i</span><span class="p">,</span> <span class="n">item1</span><span
class="p">,</span> <span class="n">item2</span><span class="p">))</span>
+ <span class="p">((</span><span
class="n">i</span><span class="p">,)</span> <span class="o">+</span> <span
class="n">_common_shorten_repr</span><span class="p">(</span><span
class="n">item1</span><span class="p">,</span> <span
class="n">item2</span><span class="p">)))</span>
<span class="k">break</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="p">(</span><span
class="n">len1</span> <span class="o">==</span> <span class="n">len2</span>
<span class="ow">and</span> <span class="n">seq_type</span> <span
class="ow">is</span> <span class="bp">None</span> <span class="ow">and</span>
@@ -2538,7 +2628,7 @@ <h3>Static methods</h3>
<span class="s1">'elements.</span><span
class="se">\n</span><span class="s1">'</span> <span class="o">%</span>
<span class="p">(</span><span class="n">seq_type_name</span><span
class="p">,</span> <span class="n">len1</span> <span class="o">-</span> <span
class="n">len2</span><span class="p">))</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">differing</span> <span class="o">+=</span>
<span class="p">(</span><span class="s1">'First extra element </span><span
class="si">%d</span><span class="s1">:</span><span class="se">\n</span><span
class="si">%s</span><span class="se">\n</span><span class="s1">'</span>
<span class="o">%</span>
- <span class="p">(</span><span
class="n">len2</span><span class="p">,</span> <span class="n">seq1</span><span
class="p">[</span><span class="n">len2</span><span class="p">]))</span>
+ <span class="p">(</span><span
class="n">len2</span><span class="p">,</span> <span
class="n">safe_repr</span><span class="p">(</span><span
class="n">seq1</span><span class="p">[</span><span class="n">len2</span><span
class="p">])))</span>
<span class="k">except</span> <span class="p">(</span><span
class="ne">TypeError</span><span class="p">,</span> <span
class="ne">IndexError</span><span class="p">,</span> <span
class="ne">NotImplementedError</span><span class="p">):</span>
<span class="n">differing</span> <span class="o">+=</span>
<span class="p">(</span><span class="s1">'Unable to index element
</span><span class="si">%d</span><span class="s1"> '</span>
<span class="s1">'of first </span><span
class="si">%s</span><span class="se">\n</span><span class="s1">'</span>
<span class="o">%</span> <span class="p">(</span><span
class="n">len2</span><span class="p">,</span> <span
class="n">seq_type_name</span><span class="p">))</span>
@@ -2547,7 +2637,7 @@ <h3>Static methods</h3>
<span class="s1">'elements.</span><span
class="se">\n</span><span class="s1">'</span> <span class="o">%</span>
<span class="p">(</span><span class="n">seq_type_name</span><span
class="p">,</span> <span class="n">len2</span> <span class="o">-</span> <span
class="n">len1</span><span class="p">))</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">differing</span> <span class="o">+=</span>
<span class="p">(</span><span class="s1">'First extra element </span><span
class="si">%d</span><span class="s1">:</span><span class="se">\n</span><span
class="si">%s</span><span class="se">\n</span><span class="s1">'</span>
<span class="o">%</span>
- <span class="p">(</span><span
class="n">len1</span><span class="p">,</span> <span class="n">seq2</span><span
class="p">[</span><span class="n">len1</span><span class="p">]))</span>
+ <span class="p">(</span><span
class="n">len1</span><span class="p">,</span> <span
class="n">safe_repr</span><span class="p">(</span><span
class="n">seq2</span><span class="p">[</span><span class="n">len1</span><span
class="p">])))</span>
<span class="k">except</span> <span class="p">(</span><span
class="ne">TypeError</span><span class="p">,</span> <span
class="ne">IndexError</span><span class="p">,</span> <span
class="ne">NotImplementedError</span><span class="p">):</span>
<span class="n">differing</span> <span class="o">+=</span>
<span class="p">(</span><span class="s1">'Unable to index element
</span><span class="si">%d</span><span class="s1"> '</span>
<span class="s1">'of second </span><span
class="si">%s</span><span class="se">\n</span><span class="s1">'</span>
<span class="o">%</span> <span class="p">(</span><span
class="n">len1</span><span class="p">,</span> <span
class="n">seq_type_name</span><span class="p">))</span>
@@ -3174,8 +3264,11 @@ <h3>Static methods</h3>
<span class="k">finally</span><span class="p">:</span>
<span class="n">result</span><span class="o">.</span><span
class="n">stopTest</span><span class="p">(</span><span
class="bp">self</span><span class="p">)</span>
<span class="k">return</span>
- <span class="n">expecting_failure</span> <span class="o">=</span> <span
class="nb">getattr</span><span class="p">(</span><span
class="n">testMethod</span><span class="p">,</span>
- <span
class="s2">"__unittest_expecting_failure__"</span><span
class="p">,</span> <span class="bp">False</span><span class="p">)</span>
+ <span class="n">expecting_failure_method</span> <span class="o">=</span>
<span class="nb">getattr</span><span class="p">(</span><span
class="n">testMethod</span><span class="p">,</span>
+ <span
class="s2">"__unittest_expecting_failure__"</span><span
class="p">,</span> <span class="bp">False</span><span class="p">)</span>
+ <span class="n">expecting_failure_class</span> <span class="o">=</span>
<span class="nb">getattr</span><span class="p">(</span><span
class="bp">self</span><span class="p">,</span>
+ <span
class="s2">"__unittest_expecting_failure__"</span><span
class="p">,</span> <span class="bp">False</span><span class="p">)</span>
+ <span class="n">expecting_failure</span> <span class="o">=</span> <span
class="n">expecting_failure_class</span> <span class="ow">or</span> <span
class="n">expecting_failure_method</span>
<span class="n">outcome</span> <span class="o">=</span> <span
class="n">_Outcome</span><span class="p">(</span><span
class="n">result</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span
class="n">_outcome</span> <span class="o">=</span> <span
class="n">outcome</span>
@@ -3235,8 +3328,8 @@ <h3>Static methods</h3>
<p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli.setUp',
this);">Show source ≡</a></p>
<div id="source-nexuscli.test.nexuscli_test.TestCli.setUp" class="source">
<div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">setUp</span><span class="p">(</span><span
class="bp">self</span><span class="p">):</span>
- <span class="s2">"Hook method for setting up the test fixture before
exercising it."</span>
- <span class="k">pass</span>
+ <span class="nb">super</span><span class="p">()</span><span
class="o">.</span><span class="n">setUp</span><span class="p">()</span>
+ <span class="n">nexuscli</span><span class="o">.</span><span
class="n">set_target</span><span class="p">(</span><span
class="s2">"http://localhost:8083"</span><span class="p">,</span>
<span class="n">use_session</span><span class="o">=</span><span
class="bp">False</span><span class="p">)</span>
</pre></div>
</div>
@@ -3316,7 +3409,7 @@ <h3>Static methods</h3>
<p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli.subTest',
this);">Show source ≡</a></p>
<div id="source-nexuscli.test.nexuscli_test.TestCli.subTest" class="source">
<div class="codehilite"><pre><span></span><span
class="nd">@contextlib.contextmanager</span>
-<span class="k">def</span> <span class="nf">subTest</span><span
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span
class="n">msg</span><span class="o">=</span><span class="bp">None</span><span
class="p">,</span> <span class="o">**</span><span class="n">params</span><span
class="p">):</span>
+<span class="k">def</span> <span class="nf">subTest</span><span
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span
class="n">msg</span><span class="o">=</span><span
class="n">_subtest_msg_sentinel</span><span class="p">,</span> <span
class="o">**</span><span class="n">params</span><span class="p">):</span>
<span class="sd">"""Return a context manager that will
return the enclosed block</span>
<span class="sd"> of code in a subtest identified by the optional message
and</span>
<span class="sd"> keyword parameters. A failure in the subtest marks the
test</span>
@@ -3399,6 +3492,52 @@ <h3>Static methods</h3>
</div>
+ <div class="item">
+ <div class="name def"
id="nexuscli.test.nexuscli_test.TestCli.test_data_in_bounds_with_bounding_box">
+ <p>def <span
class="ident">test_data_in_bounds_with_bounding_box</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli.test_data_in_bounds_with_bounding_box',
this);">Show source ≡</a></p>
+ <div
id="source-nexuscli.test.nexuscli_test.TestCli.test_data_in_bounds_with_bounding_box"
class="source">
+ <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">test_data_in_bounds_with_bounding_box</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">subset</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">subset</span><span class="p">(</span><span
class="s2">"MUR-JPL-L4-GLOB-v4.1"</span><span class="p">,</span>
<span class="n">box</span><span class="p">(</span><span class="o">-</span><span
class="mi">150</span><span class="p">,</span> <span class="mi">45</span><span
class="p">,</span> <span class="o">-</span><span class="mi">149</span><span
class="p">,</span> <span class="mi">46</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span>
+ <span class="n">datetime</span><span
class="p">(</span><span class="mi">2018</span><span class="p">,</span> <span
class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span
class="p">),</span> <span class="bp">None</span><span class="p">,</span> <span
class="bp">None</span><span class="p">)</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">subset</span><span class="p">)</span>
+</pre></div>
+
+ </div>
+</div>
+
+ </div>
+
+
+ <div class="item">
+ <div class="name def"
id="nexuscli.test.nexuscli_test.TestCli.test_data_in_bounds_with_metadata_filter">
+ <p>def <span
class="ident">test_data_in_bounds_with_metadata_filter</span>(</p><p>self)</p>
+ </div>
+
+
+
+
+ <div class="source_cont">
+ <p class="source_link"><a href="javascript:void(0);"
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli.test_data_in_bounds_with_metadata_filter',
this);">Show source ≡</a></p>
+ <div
id="source-nexuscli.test.nexuscli_test.TestCli.test_data_in_bounds_with_metadata_filter"
class="source">
+ <div class="codehilite"><pre><span></span><span class="k">def</span> <span
class="nf">test_data_in_bounds_with_metadata_filter</span><span
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+ <span class="n">subset</span> <span class="o">=</span> <span
class="n">nexuscli</span><span class="o">.</span><span
class="n">subset</span><span class="p">(</span><span
class="s2">"MUR-JPL-L4-GLOB-v4.1"</span><span class="p">,</span>
<span class="bp">None</span><span class="p">,</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span
class="n">datetime</span><span class="p">(</span><span
class="mi">2018</span><span class="p">,</span> <span class="mi">1</span><span
class="p">,</span> <span class="mi">2</span><span class="p">),</span>
+ <span class="bp">None</span><span
class="p">,</span> <span class="p">[</span><span
class="s2">"id:60758e00-5721-3a6e-bf57-78448bb0aeeb"</span><span
class="p">])</span>
+ <span class="k">print</span><span class="p">(</span><span
class="n">subset</span><span class="p">)</span>
+</pre></div>
+
+ </div>
+</div>
+
+ </div>
+
+
<div class="item">
<div class="name def" id="nexuscli.test.nexuscli_test.TestCli.test_list">
<p>def <span class="ident">test_list</span>(</p><p>self)</p>
diff --git a/client/nexuscli/nexuscli.py b/client/nexuscli/nexuscli.py
index c431f46..8af07ba 100644
--- a/client/nexuscli/nexuscli.py
+++ b/client/nexuscli/nexuscli.py
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
"""
-This module provides a native python client interface to the NEXUS
(https://github.com/dataplumber/nexus)
+This module provides a native python client interface to the NEXUS
(https://github.com/apache/incubator-sdap-nexus)
webservice API.
Usage:
diff --git a/client/setup.py b/client/setup.py
index f7073b0..a216fae 100644
--- a/client/setup.py
+++ b/client/setup.py
@@ -22,9 +22,10 @@
name="nexuscli",
version=__version__,
packages=find_packages(),
- url="https://github.jpl.nasa.gov/thuang/nexus",
+ url="https://github.com/apache/incubator-sdap-nexus",
- author="Team Nexus",
+ author="Apache SDAP",
+ author_email="[email protected]",
description="NEXUS Client Module",
long_description=open('README.md').read(),
@@ -42,6 +43,6 @@
'Development Status :: 1 - Pre-Alpha',
'Intended Audience :: Developers',
'Operating System :: OS Independent',
- 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3.6',
]
)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services