This is an automated email from the ASF dual-hosted git repository.

fgreg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-nexus.git


The following commit(s) were added to refs/heads/master by this push:
     new 107438a  Updated docs. (#25)
107438a is described below

commit 107438af45b479348ffb75a667b276ee3c81f9da
Author: fgreg <[email protected]>
AuthorDate: Tue Jul 17 22:40:57 2018 -0700

    Updated docs. (#25)
---
 client/.idea/client.iml                            |   2 +-
 client/.idea/misc.xml                              |   2 +-
 client/.idea/vcs.xml                               |   6 +
 client/docs/nexuscli/index.html                    |  50 ++++-
 client/docs/nexuscli/nexuscli.m.html               | 247 +++++++++++++++++++-
 .../nexuscli/{index.html => nexuscli_ow.m.html}    | 250 ++++++++++++++++++---
 client/docs/nexuscli/test/index.html               |  19 ++
 client/docs/nexuscli/test/nexuscli_test.m.html     | 221 ++++++++++++++----
 client/nexuscli/nexuscli.py                        |   2 +-
 client/setup.py                                    |   7 +-
 10 files changed, 716 insertions(+), 90 deletions(-)

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 @@ table {
     <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 @@ table {
   
   <p class="source_link"><a href="javascript:void(0);" 
onclick="toggle('source-nexuscli', this);">Show source &equiv;</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 &quot;License&quot;); 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 &quot;AS 
IS&quot; 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,7 +1105,7 @@ table {
       <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>
@@ -1096,6 +1116,24 @@ webservice API.</p>
 
       </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">&quot;http://host:port&quot;</span><span class="p">)</span>
+
+<span class="n">filename</span> <span class="o">=</span> <span 
class="s2">&quot;mycode.py&quot;</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>
+      <div class="item">
       <p class="name"><a href="test/index.html">nexuscli.test</a></p>
       
   
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 @@ table {
     <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>
 
@@ -1064,6 +1065,10 @@ table {
     <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>
         
         </li>
@@ -1082,7 +1087,7 @@ table {
 
   <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 @@ webservice API.</p>
   
   <p class="source_link"><a href="javascript:void(0);" 
onclick="toggle('source-nexuscli.nexuscli', this);">Show source &equiv;</a></p>
   <div id="source-nexuscli.nexuscli" class="source">
-    <div class="codehilite"><pre><span></span><span 
class="sd">&quot;&quot;&quot;</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 &quot;License&quot;); 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 &quot;AS 
IS&quot; 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">&quot;&quot;&quot;</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 @@ webservice API.</p>
 <span class="n">__pdoc__</span><span class="p">[</span><span 
class="s1">&#39;TimeSeries.minimum&#39;</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">&quot;`numpy` array containing 
minimums&quot;</span>
 <span class="n">__pdoc__</span><span class="p">[</span><span 
class="s1">&#39;TimeSeries.maximum&#39;</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">&quot;`numpy` array containing 
maximums&quot;</span>
 
+<span class="n">Point</span> <span class="o">=</span> <span 
class="n">namedtuple</span><span class="p">(</span><span 
class="s1">&#39;Point&#39;</span><span class="p">,</span> <span 
class="p">(</span><span class="s1">&#39;time&#39;</span><span 
class="p">,</span> <span class="s1">&#39;latitude&#39;</span><span 
class="p">,</span> <span class="s1">&#39;longitude&#39;</span><span 
class="p">,</span> <span class="s1">&#39;variable&#39;</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">&#39;&#39;&#39;</span><span class="se">\</span>
+<span class="s1">An object containing Point attributes.</span>
+<span class="s1">&#39;&#39;&#39;</span>
+<span class="n">__pdoc__</span><span class="p">[</span><span 
class="s1">&#39;Point.time&#39;</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">&quot;time value as `datetime` 
object&quot;</span>
+<span class="n">__pdoc__</span><span class="p">[</span><span 
class="s1">&#39;Point.latitude&#39;</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">&quot;latitude value&quot;</span>
+<span class="n">__pdoc__</span><span class="p">[</span><span 
class="s1">&#39;Point.longitude&#39;</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">&quot;longitude value&quot;</span>
+<span class="n">__pdoc__</span><span class="p">[</span><span 
class="s1">&#39;Point.variable&#39;</span><span class="p">]</span> <span 
class="o">=</span> <span class="s2">&quot;dictionary of variable 
values&quot;</span>
+
 <span class="n">ISO_FORMAT</span> <span class="o">=</span> <span 
class="s2">&quot;%Y-%m-</span><span class="si">%d</span><span 
class="s2">T%H:%M:%SZ&quot;</span>
 
 <span class="n">target</span> <span class="o">=</span> <span 
class="s1">&#39;http://localhost:8083&#39;</span>
@@ -1131,7 +1159,7 @@ webservice API.</p>
 <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">&quot;&quot;&quot;</span>
 <span class="sd">    Set the URL for the NEXUS webapp endpoint.  </span>
 <span class="sd">    </span>
@@ -1141,6 +1169,10 @@ webservice API.</p>
     <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">&quot;&quot;&quot;</span>
@@ -1288,6 +1320,60 @@ webservice API.</p>
             <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">&quot;&quot;&quot;</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 
&#39;sst&#39;, &#39;sss&#39;, &#39;wind&#39; 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">    &quot;&quot;&quot;</span>
+    <span class="n">url</span> <span class="o">=</span> <span 
class="s2">&quot;{}/datainbounds?&quot;</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">&#39;ds&#39;</span><span class="p">:</span> <span 
class="n">dataset</span><span class="p">,</span>
+        <span class="s1">&#39;startTime&#39;</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">&#39;endTime&#39;</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">&#39;parameter&#39;</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">&#39;b&#39;</span><span class="p">]</span> <span class="o">=</span> 
<span class="s1">&#39;,&#39;</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">.</spa [...]
+    <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">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">params</span><span class="p">[</span><span 
class="s1">&#39;metadataFilter&#39;</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">&#39;data&#39;</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">&gt;</span> <span class="mi">0</span><span class="p">,</span> <span 
class="s2">&quot;No data found in {} between {} and {} for Datasets 
{}.&quot;</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">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">&#39;time&#39;</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">&#39;longitude&#39;</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">&#39;latitude&#39;</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">&#39;data&#39;</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 @@ webservice API.</p>
       
   <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 @@ webservice API.</p>
   <div class="source_cont">
   <p class="source_link"><a href="javascript:void(0);" 
onclick="toggle('source-nexuscli.nexuscli.set_target', this);">Show source 
&equiv;</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">&quot;&quot;&quot;</span>
 <span class="sd">    Set the URL for the NEXUS webapp endpoint.  </span>
 <span class="sd">    </span>
@@ -1468,6 +1554,89 @@ webservice API.</p>
 <span class="sd">    &quot;&quot;&quot;</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 
&equiv;</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">&quot;&quot;&quot;</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 
&#39;sst&#39;, &#39;sss&#39;, &#39;wind&#39; 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">    &quot;&quot;&quot;</span>
+    <span class="n">url</span> <span class="o">=</span> <span 
class="s2">&quot;{}/datainbounds?&quot;</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">&#39;ds&#39;</span><span class="p">:</span> <span 
class="n">dataset</span><span class="p">,</span>
+        <span class="s1">&#39;startTime&#39;</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">&#39;endTime&#39;</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">&#39;parameter&#39;</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">&#39;b&#39;</span><span class="p">]</span> <span class="o">=</span> 
<span class="s1">&#39;,&#39;</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">.</spa [...]
+    <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">&gt;</span> <span class="mi">0</span><span class="p">:</span>
+            <span class="n">params</span><span class="p">[</span><span 
class="s1">&#39;metadataFilter&#39;</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">&#39;data&#39;</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">&gt;</span> <span class="mi">0</span><span class="p">,</span> <span 
class="s2">&quot;No data found in {} between {} and {} for Datasets 
{}.&quot;</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">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">&#39;time&#39;</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">&#39;longitude&#39;</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">&#39;latitude&#39;</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">&#39;data&#39;</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>
@@ -1571,6 +1740,70 @@ webservice API.</p>
     <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/index.html 
b/client/docs/nexuscli/nexuscli_ow.m.html
similarity index 57%
copy from client/docs/nexuscli/index.html
copy to client/docs/nexuscli/nexuscli_ow.m.html
index 0dead09..1db2d0d 100644
--- a/client/docs/nexuscli/index.html
+++ b/client/docs/nexuscli/nexuscli_ow.m.html
@@ -3,8 +3,13 @@
   <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 API documentation</title>
-    <meta name="description" content="" />
+    <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'>
   
@@ -1040,15 +1045,26 @@ table {
   <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 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="test/index.html">nexuscli.test</a></li>
-      </ul>
     </li>
+
+
     </ul>
   </div>
 
@@ -1060,16 +1076,109 @@ table {
 
 
   <header id="section-intro">
-  <h1 class="title"><span class="name">nexuscli</span> module</h1>
-  
+  <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">&quot;http://host:port&quot;</span><span class="p">)</span>
+
+<span class="n">filename</span> <span class="o">=</span> <span 
class="s2">&quot;mycode.py&quot;</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">&quot;1+1&quot;</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', this);">Show source &equiv;</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>
+  <p class="source_link"><a href="javascript:void(0);" 
onclick="toggle('source-nexuscli.nexuscli_ow', this);">Show source 
&equiv;</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 &quot;License&quot;); 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 &quot;AS 
IS&quot; 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">&quot;&quot;&quot;</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(&quot;http://host:port&quot;)</span>
+
+<span class="sd">    filename = &quot;mycode.py&quot;</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 = &quot;1+1&quot;</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">&quot;&quot;&quot;</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">&#39;http://localhost:8084&#39;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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">&#39;file&#39;</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">&#39;rb&#39;</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">&#39;/run_file&#39;</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">&#39;/run_str&#39;</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">&#39;text/plain&#39;</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">&quot; &quot;</span><span class="p">)</span>
+    <span class="k">return</span> <span class="n">ans</span>
 </pre></div>
 
   </div>
@@ -1077,30 +1186,111 @@ table {
   </header>
 
   <section id="section-items">
-
-
-
-    <h2 class="section-title" id="header-submodules">Sub-modules</h2>
+    <h2 class="section-title" id="header-variables">Module variables</h2>
       <div class="item">
-      <p class="name"><a href="nexuscli.m.html">nexuscli.nexuscli</a></p>
+      <p id="nexuscli.nexuscli_ow.session" class="name">var <span 
class="ident">session</span></p>
       
   
-    <div class="desc"><p>This module provides a native python client interface 
to the NEXUS (https://github.com/dataplumber/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">&quot;http://nexus-webapp:8083&quot;</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 class="source_cont">
+</div>
 
       </div>
       <div class="item">
-      <p class="name"><a href="test/index.html">nexuscli.test</a></p>
+      <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 
&equiv;</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">&#39;file&#39;</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">&#39;rb&#39;</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">&#39;/run_file&#39;</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 
&equiv;</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">&#39;/run_str&#39;</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">&#39;text/plain&#39;</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">&quot; &quot;</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 
&equiv;</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">&quot;&quot;&quot;</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">    &quot;&quot;&quot;</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>
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 @@ table {
   <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 &equiv;</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 &quot;License&quot;); 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 &quot;AS 
IS&quot; 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 @@ table {
     <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 @@ table {
     <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 @@ table {
   
   <p class="source_link"><a href="javascript:void(0);" 
onclick="toggle('source-nexuscli.test.nexuscli_test', this);">Show source 
&equiv;</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">&quot;AVHRR_OI_L4_GHRSST_NCEI&quot;</span><span class="p">,</span> 
<span class="s2">&quot;MEASURES_SLA_JPL_1603&quot;</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="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">&gt;</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">&quot;AVHRR_OI_L4_GHRSST_NCEI&quot;</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</s [...]
-                                              <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 &quot;License&quot;); 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 &quot;AS 
IS&quot; 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">&quot;http://localhost:8083&quot;</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">&quot;AVHRR_OI_L4_GHRSST_NCEI&quot;</span><span class="p">,</span> 
<span class="s2">&quot;MEASURES_SLA_JPL_1603&quot;</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="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">&gt;</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">&quot;AVHRR_OI_L4_GHRSST_NCEI&quot;</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 
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">&quot;MUR-JPL-L4-GLOB-v4.1&quot;</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><spa [...]
+                                 <span class="bp">None</span><span 
class="p">,</span> <span class="p">[</span><span 
class="s2">&quot;id:60758e00-5721-3a6e-bf57-78448bb0aeeb&quot;</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">&quot;MUR-JPL-L4-GLOB-v4.1&quot;</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= [...]
+                                 <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 @@ in order to be run.</p>
   <p class="source_link"><a href="javascript:void(0);" 
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli', this);">Show 
source &equiv;</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">&quot;http://localhost:8083&quot;</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">&quot;AVHRR_OI_L4_GHRSST_NCEI&quot;</span><span class="p">,</span> 
<span class="s2">&quot;MEASURES_SLA_JPL_1603&quot;</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="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 @@ in order to be run.</p>
                                                <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">&quot;MUR-JPL-L4-GLOB-v4.1&quot;</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><spa [...]
+                                 <span class="bp">None</span><span 
class="p">,</span> <span class="p">[</span><span 
class="s2">&quot;id:60758e00-5721-3a6e-bf57-78448bb0aeeb&quot;</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">&quot;MUR-JPL-L4-GLOB-v4.1&quot;</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= [...]
+                                 <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 @@ their own type equality functions to provide nicer error 
messages.</p>
     <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 @@ compare almost equal.</p></div>
     <span class="sd">&quot;&quot;&quot;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">    &quot;&quot;&quot;</span>
@@ -2063,9 +2122,9 @@ self.assertEqual(cm.output, [&#39;INFO:foo:first 
message&#39;,
     <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 &equiv;</a></p>
@@ -2075,9 +2134,9 @@ as significant digits (measured from the most signficant 
digit).</p>
     <span class="sd">&quot;&quot;&quot;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">    &quot;&quot;&quot;</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 @@ operator.</p></div>
         <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">&quot;Regex 
matched&quot;</span>
-        <span class="n">msg</span> <span class="o">=</span> <span 
class="s1">&#39;</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">&#39;</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">&#39;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">&#39;</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>
 
@@ -2267,6 +2327,30 @@ operator.</p></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 &equiv;</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">&#39;Please use {0} instead.&#39;</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>
     </div>
@@ -2322,7 +2406,11 @@ self.assertEqual(the_exception.error_code, 3)
 <span class="sd">           self.assertEqual(the_exception.error_code, 
3)</span>
 <span class="sd">    &quot;&quot;&quot;</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">&#39;assertRaises&#39;</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">&#39;assertRaises&#39;</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 @@ self.assertEqual(the_exception.error_code, 3)
         <span class="k">assert</span> <span 
class="n">expected_regex</span><span class="p">,</span> <span 
class="s2">&quot;expected_regex must not be empty.&quot;</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">&quot;Regex 
didn&#39;t match&quot;</span>
-        <span class="n">msg</span> <span class="o">=</span> <span 
class="s1">&#39;</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">&#39;</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" [...]
+        <span class="n">standardMsg</span> <span class="o">=</span> <span 
class="s2">&quot;Regex didn&#39;t match: </span><span class="si">%r</span><span 
class="s2"> not found in </span><span class="si">%r</span><span 
class="s2">&quot;</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 @@ which can be indexed, has a length, and has an equality 
operator.</p>
                 <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">&#39;</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">&#39;</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 @@ which can be indexed, has a length, and has an equality 
operator.</p>
                          <span class="s1">&#39;elements.</span><span 
class="se">\n</span><span class="s1">&#39;</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">&#39;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">&#39;</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">&#39;Unable to index element 
</span><span class="si">%d</span><span class="s1"> &#39;</span>
                               <span class="s1">&#39;of first </span><span 
class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</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 @@ which can be indexed, has a length, and has an equality 
operator.</p>
                          <span class="s1">&#39;elements.</span><span 
class="se">\n</span><span class="s1">&#39;</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">&#39;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">&#39;</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">&#39;Unable to index element 
</span><span class="si">%d</span><span class="s1"> &#39;</span>
                               <span class="s1">&#39;of second </span><span 
class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</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 @@ tearDown.</p></div>
         <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">&quot;__unittest_expecting_failure__&quot;</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">&quot;__unittest_expecting_failure__&quot;</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">&quot;__unittest_expecting_failure__&quot;</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 @@ tearDown.</p></div>
   <p class="source_link"><a href="javascript:void(0);" 
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli.setUp', 
this);">Show source &equiv;</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">&quot;Hook method for setting up the test fixture before 
exercising it.&quot;</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">&quot;http://localhost:8083&quot;</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 @@ block, allowing further test code to be 
executed.</p></div>
   <p class="source_link"><a href="javascript:void(0);" 
onclick="toggle('source-nexuscli.test.nexuscli_test.TestCli.subTest', 
this);">Show source &equiv;</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">&quot;&quot;&quot;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>
@@ -3400,6 +3493,52 @@ block, allowing further test code to be 
executed.</p></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 &equiv;</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">&quot;MUR-JPL-L4-GLOB-v4.1&quot;</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 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 &equiv;</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">&quot;MUR-JPL-L4-GLOB-v4.1&quot;</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 cl [...]
+                             <span class="bp">None</span><span 
class="p">,</span> <span class="p">[</span><span 
class="s2">&quot;id:60758e00-5721-3a6e-bf57-78448bb0aeeb&quot;</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>
     </div>
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 @@ setup(
     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 @@ setup(
         'Development Status :: 1 - Pre-Alpha',
         'Intended Audience :: Developers',
         'Operating System :: OS Independent',
-        'Programming Language :: Python :: 2.7',
+        'Programming Language :: Python :: 3.6',
     ]
 )

Reply via email to