Index: docs/sphinx-docs/build_sphinx.py
===================================================================
--- docs/sphinx-docs/build_sphinx.py	(revision 751f4bdb1383a4267910b9a189f51206749158e0)
+++ docs/sphinx-docs/build_sphinx.py	(revision 01f1e174e9a9bcc2a3ecebc3d6448a75d9028016)
@@ -6,4 +6,6 @@
 http://sphinx-doc.org/invocation.html
 """
+from __future__ import print_function
+
 import subprocess
 import os
@@ -12,6 +14,6 @@
 import shutil
 import imp
+
 from glob import glob
-
 from distutils.dir_util import copy_tree
 from distutils.util import get_platform
@@ -55,19 +57,4 @@
 SASMODELS_DEST_BUILDIMG = os.path.join(SASMODELS_DEST_PROLOG, "user", "models", "img")
 
-#if os.path.exists(SASMODELS_SOURCE_PROLOG):
-#    print "Found models prolog folder at ", SASMODELS_SOURCE_PROLOG
-#if os.path.exists(SASMODELS_SOURCE_REF_MODELS):
-#    print "Found models ref folder at ", SASMODELS_SOURCE_REF_MODELS
-#if os.path.exists(SASMODELS_SOURCE_MODELS):
-#    print "Found models folder at ", SASMODELS_SOURCE_MODELS
-#if os.path.exists(SASMODELS_SOURCE_IMG):
-#    print "Found img folder at ", SASMODELS_SOURCE_IMG
-#if os.path.exists(SASMODELS_DEST_REF_MODELS):
-#    print "Found models ref folder at ", SASMODELS_DEST_REF_MODELS
-#if os.path.exists(SASMODELS_DEST_MODELS):
-#    print "Found models folder at ", SASMODELS_DEST_MODELS
-#if os.path.exists(SASMODELS_DEST_IMG):
-#    print "Found img folder at ", SASMODELS_DEST_IMG
-#sys.exit()
 
 SPHINX_BUILD = os.path.join(CURRENT_SCRIPT_DIR, "build")
@@ -88,5 +75,5 @@
         s=open(filename).read()
         if old_string in s:
-                print 'Changing "{old_string}" to "{new_string}"'.format(**locals())
+                print('Changing "{old_string}" to "{new_string}"'.format(**locals()))
                 s=s.replace(old_string, new_string)
                 f=open(filename, 'w')
@@ -95,10 +82,10 @@
                 f.close()
         else:
-                print 'No occurences of "{old_string}" found.'.format(**locals())
+                print('No occurences of "{old_string}" found.'.format(**locals()))
 
 def _remove_dir(dir_path):
     """Removes the given directory."""
     if os.path.isdir(dir_path):
-        print "Removing \"%s\"... " % dir_path
+        print("Removing \"%s\"... " % dir_path)
         shutil.rmtree(dir_path)
 
@@ -107,5 +94,5 @@
     Clean the sphinx build directory.
     """
-    print "=== Cleaning Sphinx Build ==="
+    print("=== Cleaning Sphinx Build ===")
     _remove_dir(SASVIEW_DOCS)
     _remove_dir(SPHINX_BUILD)
@@ -120,7 +107,7 @@
     Copy the source toctrees to new folder for assembling the sphinx-docs
     """
-    print "=== Copying Source toctrees ==="
+    print("=== Copying Source toctrees ===")
     if os.path.exists(SASVIEW_TOC_SOURCE):
-       print "Found docs folder at ", SASVIEW_TOC_SOURCE
+       print("Found docs folder at", SASVIEW_TOC_SOURCE)
        shutil.copytree(SASVIEW_TOC_SOURCE, SPHINX_SOURCE)
 
@@ -141,5 +128,5 @@
     so that Sphinx may pick it up when generating the documentation.
     """
-    print "=== Retrieve User Docs ==="
+    print("=== Retrieve User Docs ===")
 
     # Copy documentation files from their "source" to their "destination".
@@ -148,5 +135,5 @@
 
             docs = os.path.abspath(os.path.join(root, dirname))
-            print "Found docs folder at \"%s\"." % docs
+            print("Found docs folder at \"%s\"." % docs)
 
             dest_dir_part = os.path.dirname(os.path.relpath(docs, SASVIEW_SRC))
@@ -158,47 +145,48 @@
 
     # Now pickup testdata_help.rst
-#    print os.path.abspath(SASVIEW_TEST)
-#    print os.path.abspath(SPHINX_SOURCE_TEST)
-    print "=== Including Test Data Docs ==="
+    print("=== Including Test Data Docs ===")
     if os.path.exists(SASVIEW_TEST):
-       print "Found docs folder at ", SASVIEW_TEST
+       print("Found docs folder at", SASVIEW_TEST)
        shutil.copytree(SASVIEW_TEST, SPHINX_SOURCE_TEST)
 
-    print "=== And the Sasmodels Docs ==="
+    print("=== And the Sasmodels Docs ===")
     # Make sure we have the relevant images for the new sasmodels documentation
     # First(!) we'll make a local reference copy for SasView (/new-models will be cleaned each build)
     if os.path.exists(SASMODELS_SOURCE_IMG):
-        print "Found img  folder SASMODELS_SOURCE_IMG    at ", SASMODELS_SOURCE_IMG
+        print("Found img folder SASMODELS_SOURCE_IMG at", SASMODELS_SOURCE_IMG)
         if not os.path.exists(SASMODELS_DEST_IMG):
-            print "Missing docs folder SASMODELS_DEST_IMG at ", SASMODELS_DEST_IMG
+            print("Missing docs folder SASMODELS_DEST_IMG at", SASMODELS_DEST_IMG)
             os.makedirs(SASMODELS_DEST_IMG)
-            print "created SASMODELS_DEST_BUILDIMG at ", SASMODELS_DEST_BUILDIMG
-        else: print "Found img  folder SASMODELS_DEST_IMG      at ", SASMODELS_DEST_IMG
-        print "Copying sasmodels model image files..."
+            print("created SASMODELS_DEST_BUILDIMG at", SASMODELS_DEST_BUILDIMG)
+        else:
+            print("Found img folder SASMODELS_DEST_IMG at", SASMODELS_DEST_IMG)
+        print("Copying sasmodels model image files...")
         for files in os.listdir(SASMODELS_SOURCE_IMG):
             fromhere=os.path.join(SASMODELS_SOURCE_IMG,files)
             tohere=os.path.join(SASMODELS_DEST_IMG,files)
             shutil.copy(fromhere,tohere)
-    else: print "cannot find SASMODELS_SOURCE_IMG", SASMODELS_SOURCE_IMG
+    else:
+        print("no source directory",SASMODELS_SOURCE_IMG,"was found")
 
     if os.path.exists(SASMODELS_SOURCE_AUTOIMG):
-        print "Found img  folder SASMODELS_SOURCE_AUTOIMG    at ", SASMODELS_SOURCE_AUTOIMG
+        print("Found img folder SASMODELS_SOURCE_AUTOIMG at", SASMODELS_SOURCE_AUTOIMG)
         if not os.path.exists(SASMODELS_DEST_IMG):
-            print "Missing docs folder SASMODELS_DEST_IMG at ", SASMODELS_DEST_IMG
+            print("Missing docs folder SASMODELS_DEST_IMG at", SASMODELS_DEST_IMG)
             os.makedirs(SASMODELS_DEST_BUILDIMG)
-            print "created SASMODELS_DEST_BUILDIMG at ", SASMODELS_DEST_BUILDIMG
-        print "Copying sasmodels model auto-generated image files..."
+            print("created SASMODELS_DEST_BUILDIMG at", SASMODELS_DEST_BUILDIMG)
+        print("Copying sasmodels model auto-generated image files...")
         for files in os.listdir(SASMODELS_SOURCE_AUTOIMG):
             fromhere=os.path.join(SASMODELS_SOURCE_AUTOIMG,files)
             tohere=os.path.join(SASMODELS_DEST_IMG,files)
             shutil.copy(fromhere,tohere)
-    else: print "no source directory",SASMODELS_SOURCE_AUTOIMG ,"was found"
+    else:
+        print("no source directory",SASMODELS_SOURCE_AUTOIMG ,"was found")
 
     # And the rst prolog with the unit substitutions
     if os.path.exists(SASMODELS_SOURCE_PROLOG):
-        print "Found prolog folder SASMODELS_SOURCE_PROLOG at ", SASMODELS_SOURCE_PROLOG
+        print("Found prolog folder SASMODELS_SOURCE_PROLOG at", SASMODELS_SOURCE_PROLOG)
         if os.path.exists(SASMODELS_DEST_PROLOG):
-            print "Found docs folder SASMODELS_DEST_PROLOG   at ", SASMODELS_DEST_PROLOG
-            print "Copying sasmodels rst_prolog file..."
+            print("Found docs folder SASMODELS_DEST_PROLOG at", SASMODELS_DEST_PROLOG)
+            print("Copying sasmodels rst_prolog file...")
             for files in os.listdir(SASMODELS_SOURCE_PROLOG):
                 if files.startswith("rst"):
@@ -206,10 +194,12 @@
                     tohere=os.path.join(SASMODELS_DEST_PROLOG,files)
                     shutil.copy(fromhere,tohere)
+    else:
+        print("no source directory",SASMODELS_SOURCE_PROLOG, "was found")
 
     if os.path.exists(SASMODELS_SOURCE_GPU):
-        print "Found docs folder SASMODELS_SOURCE_GPU at ", SASMODELS_SOURCE_GPU
+        print("Found docs folder SASMODELS_SOURCE_GPU at", SASMODELS_SOURCE_GPU)
         if os.path.exists(SPHINX_SOURCE_USER):
-            print "Found docs folder SPHINX_SOURCE_USER      at ", SPHINX_SOURCE_USER
-            print "Copying sasmodels gpu files..."
+            print("Found docs folder SPHINX_SOURCE_USER at", SPHINX_SOURCE_USER)
+            print("Copying sasmodels gpu files...")
             for files in os.listdir(SASMODELS_SOURCE_GPU):
                 if files.endswith(".rst"):
@@ -217,10 +207,12 @@
                     tohere=os.path.join(SPHINX_SOURCE_USER,files)
                     shutil.copy(fromhere,tohere)
+    else:
+        print("no source directory",SASMODELS_SOURCE_GPU,"was found")
 
     if os.path.exists(SASMODELS_SOURCE_SESANS):
-        print "Found docs folder SASMODELS_SOURCE_SESANS at ", SASMODELS_SOURCE_SESANS
+        print("Found docs folder SASMODELS_SOURCE_SESANS at", SASMODELS_SOURCE_SESANS)
         if os.path.exists(SPHINX_SOURCE_USER):
-            print "Found docs folder SPHINX_SOURCE_USER      at ", SPHINX_SOURCE_USER
-            print "Copying sasmodels sesans files..."
+            print("Found docs folder SPHINX_SOURCE_USER at", SPHINX_SOURCE_USER)
+            print("Copying sasmodels sesans files...")
             for files in os.listdir(SASMODELS_SOURCE_SESANS):
                 if files.endswith(".rst"):
@@ -228,10 +220,12 @@
                     tohere=os.path.join(SPHINX_SOURCE_USER,files)
                     shutil.copy(fromhere,tohere)
+    else:
+        print("no source directory",SASMODELS_SOURCE_SESANS,"was found")
 
     if os.path.exists(SASMODELS_SOURCE_MAGNETISM):
-        print "Found docs folder SASMODELS_SOURCE_MAGNETISM at ", SASMODELS_SOURCE_MAGNETISM
+        print("Found docs folder SASMODELS_SOURCE_MAGNETISM at", SASMODELS_SOURCE_MAGNETISM)
         if os.path.exists(SASMODELS_DEST_REF_MODELS):
-            print "Found docs folder SASMODELS_DEST_REF_MODELS   at ", SASMODELS_DEST_REF_MODELS
-            print "Copying sasmodels model toctree files..."
+            print("Found docs folder SASMODELS_DEST_REF_MODELS at", SASMODELS_DEST_REF_MODELS)
+            print("Copying sasmodels model toctree files...")
             for files in os.listdir(SASMODELS_SOURCE_MAGNETISM):
                 if files.endswith(".rst"):
@@ -239,36 +233,40 @@
                     tohere=os.path.join(SASMODELS_DEST_REF_MODELS,files)
                     shutil.copy(fromhere,tohere)
+    else:
+        print("no source directory",SASMODELS_SOURCE_MAGNETISM,"was found")
 
     if os.path.exists(SASMODELS_SOURCE_MAGIMG):
-        print "Found img folder SASMODELS_SOURCE_MAGIMG   at ", SASMODELS_SOURCE_MAGIMG
+        print("Found img folder SASMODELS_SOURCE_MAGIMG   at", SASMODELS_SOURCE_MAGIMG)
         if not os.path.exists(SASMODELS_DEST_MAGIMG):
-            print "Missing img folder SASMODELS_DEST_MAGIMG at ", SASMODELS_DEST_MAGIMG
+            print("Missing img folder SASMODELS_DEST_MAGIMG at", SASMODELS_DEST_MAGIMG)
             os.makedirs(SASMODELS_DEST_MAGIMG)
-            print "created SASMODELS_DEST_MAGIMG at ", SASMODELS_DEST_MAGIMG
-        print "Copying sasmodels mag image files..."
+            print("created SASMODELS_DEST_MAGIMG at", SASMODELS_DEST_MAGIMG)
+        print("Copying sasmodels mag image files...")
         for files in os.listdir(SASMODELS_SOURCE_MAGIMG):
             fromhere=os.path.join(SASMODELS_SOURCE_MAGIMG,files)
             tohere=os.path.join(SASMODELS_DEST_MAGIMG,files)
             shutil.copy(fromhere,tohere)
-    else: print "no source directory",SASMODELS_SOURCE_MAGIMG ,"was found"
+    else:
+        print("no source directory",SASMODELS_SOURCE_MAGIMG ,"was found")
 
     if os.path.exists(SASMODELS_SOURCE_SESANSIMG):
-        print "Found img folder SASMODELS_SOURCE_SESANSIMG   at ", SASMODELS_SOURCE_SESANSIMG
+        print("Found img folder SASMODELS_SOURCE_SESANSIMG at", SASMODELS_SOURCE_SESANSIMG)
         if not os.path.exists(SASMODELS_DEST_SESANSIMG):
-            print "Missing img folder SASMODELS_DEST_SESANSIMG at ", SASMODELS_DEST_SESANSIMG
+            print("Missing img folder SASMODELS_DEST_SESANSIMG at", SASMODELS_DEST_SESANSIMG)
             os.makedirs(SASMODELS_DEST_SESANSIMG)
-            print "created SASMODELS_DEST_SESANSIMG at ", SASMODELS_DEST_SESANSIMG
-        print "Copying sasmodels sesans image files..."
+            print("created SASMODELS_DEST_SESANSIMG at", SASMODELS_DEST_SESANSIMG)
+        print("Copying sasmodels sesans image files...")
         for files in os.listdir(SASMODELS_SOURCE_SESANSIMG):
             fromhere=os.path.join(SASMODELS_SOURCE_SESANSIMG,files)
             tohere=os.path.join(SASMODELS_DEST_SESANSIMG,files)
             shutil.copy(fromhere,tohere)
-    else: print "no source directory",SASMODELS_SOURCE_SESANSIMG ,"was found"
+    else:
+        print("no source directory",SASMODELS_SOURCE_SESANSIMG ,"was found")
 
     if os.path.exists(SASMODELS_SOURCE_REF_MODELS):
-        print "Found docs folder SASMODELS_SOURCE_REF_MODELS at ", SASMODELS_SOURCE_REF_MODELS
+        print("Found docs folder SASMODELS_SOURCE_REF_MODELS at", SASMODELS_SOURCE_REF_MODELS)
         if os.path.exists(SASMODELS_DEST_REF_MODELS):
-            print "Found docs folder SASMODELS_DEST_REF_MODELS   at ", SASMODELS_DEST_REF_MODELS
-            print "Copying sasmodels model toctree files..."
+            print("Found docs folder SASMODELS_DEST_REF_MODELS at", SASMODELS_DEST_REF_MODELS)
+            print("Copying sasmodels model toctree files...")
             for files in os.listdir(SASMODELS_SOURCE_REF_MODELS):
                 if files.endswith(".rst"):
@@ -276,25 +274,27 @@
                     tohere=os.path.join(SASMODELS_DEST_REF_MODELS,files)
                     shutil.copy(fromhere,tohere)
-    # But need to change the path to the model docs in the tocs
-    for files in os.listdir(SASMODELS_DEST_REF_MODELS):
-#        print files
-        if files.startswith("shape"):
-            print "Changing toc paths in", files
-            inplace_change(os.path.join(SASMODELS_DEST_REF_MODELS,files), "../../model/", "models/")
-        if files.startswith("sphere"):
-            print "Changing toc paths in", files
-            inplace_change(os.path.join(SASMODELS_DEST_REF_MODELS,files), "../../model/", "models/")
-        if files.startswith("custom"):
-            print "Changing toc paths in", files
-            inplace_change(os.path.join(SASMODELS_DEST_REF_MODELS,files), "../../model/", "models/")
-        if files.startswith("structure"):
-            print "Changing toc paths in", files
-            inplace_change(os.path.join(SASMODELS_DEST_REF_MODELS,files), "../../model/", "models/")
+            # But need to change the path to the model docs in the tocs
+            for files in os.listdir(SASMODELS_DEST_REF_MODELS):
+        #        print files
+                if files.startswith("shape"):
+                    print("Changing toc paths in", files)
+                    inplace_change(os.path.join(SASMODELS_DEST_REF_MODELS,files), "../../model/", "models/")
+                if files.startswith("sphere"):
+                    print("Changing toc paths in", files)
+                    inplace_change(os.path.join(SASMODELS_DEST_REF_MODELS,files), "../../model/", "models/")
+                if files.startswith("custom"):
+                    print("Changing toc paths in", files)
+                    inplace_change(os.path.join(SASMODELS_DEST_REF_MODELS,files), "../../model/", "models/")
+                if files.startswith("structure"):
+                    print("Changing toc paths in", files)
+                    inplace_change(os.path.join(SASMODELS_DEST_REF_MODELS,files), "../../model/", "models/")
+    else:
+        print("no source directory",SASMODELS_SOURCE_REF_MODELS," was found")
 
     if os.path.exists(SASMODELS_SOURCE_MODELS):
-        print "Found docs folder SASMODELS_SOURCE_MODELS at ", SASMODELS_SOURCE_MODELS
+        print("Found docs folder SASMODELS_SOURCE_MODELS at", SASMODELS_SOURCE_MODELS)
         if os.path.exists(SASMODELS_DEST_MODELS):
-            print "Found docs folder SASMODELS_DEST_MODELS   at ", SASMODELS_DEST_MODELS
-            print "Copying sasmodels model files..."
+            print("Found docs folder SASMODELS_DEST_MODELS at", SASMODELS_DEST_MODELS)
+            print("Copying sasmodels model files...")
             for files in os.listdir(SASMODELS_SOURCE_MODELS):
                 if files.endswith(".rst"):
@@ -303,10 +303,10 @@
                     shutil.copy(fromhere,tohere)
         else:
-            print "Missing docs folder SASMODELS_DEST_MODELS at ", SASMODELS_DEST_MODELS
+            print("Missing docs folder SASMODELS_DEST_MODELS at", SASMODELS_DEST_MODELS)
             os.makedirs(SASMODELS_DEST_MODELS)
             if not os.path.exists(SASMODELS_DEST_BUILDIMG):
                 os.makedirs(SASMODELS_DEST_BUILDIMG)
-            print "Created docs folder SASMODELS_DEST_MODELS at ", SASMODELS_DEST_MODELS
-            print "Copying model files for build..."
+            print("Created docs folder SASMODELS_DEST_MODELS at", SASMODELS_DEST_MODELS)
+            print("Copying model files for build...")
             for files in os.listdir(SASMODELS_SOURCE_MODELS):
                 if files.endswith(".rst"):
@@ -315,9 +315,12 @@
                     shutil.copy(fromhere,tohere)
             # No choice but to do this because model files are all coded for images in /models/img
-            print "Copying image files for build..."
+            print("Copying image files for build...")
             for files in os.listdir(SASMODELS_DEST_IMG):
                 fromhere=os.path.join(SASMODELS_DEST_IMG,files)
                 tohere=os.path.join(SASMODELS_DEST_BUILDIMG,files)
                 shutil.copy(fromhere,tohere)
+    else:
+        print("no source directory",SASMODELS_SOURCE_MODELS,"was found.")
+        print("!!!!NO MODEL DOCS WILL BE BUILT!!!!")
 
 
@@ -327,19 +330,18 @@
     """
     if os.path.exists(BUMPS_DOCS):
-        print "=== Retrieve BUMPS Docs ==="
+        print("=== Retrieve BUMPS Docs ===")
         filenames = [os.path.join(BUMPS_DOCS, "optimizer.rst")]
         filenames += glob(os.path.join(BUMPS_DOCS, "dream-*.png"))
         filenames += glob(os.path.join(BUMPS_DOCS, "fit-*.png"))
         for f in filenames:
-            print "Copying file", f
+            print("Copying file", f)
             shutil.copy(f, BUMPS_TARGET)
     else:
-        print """
-*** Error *** missing directory %s
+        print("""
+======= Error =======
+missing directory %s
 The documentation will not include the optimizer selection section.
 Checkout the bumps source tree and rebuild the docs.
-
-
-""" % BUMPS_DOCS
+""" % BUMPS_DOCS)
 
 def apidoc():
@@ -348,5 +350,5 @@
     in the SasView build directory.
     """
-    print "=== Generate API Rest Files ==="
+    print("=== Generate API Rest Files ===")
 
     # Clean directory before generating a new version.
@@ -362,5 +364,5 @@
     Runs sphinx-build.  Reads in all .rst files and spits out the final html.
     """
-    print "=== Build HTML Docs from Rest Files ==="
+    print("=== Build HTML Docs from Rest Files ===")
     subprocess.call(["sphinx-build",
                      "-b", "html", # Builder name. TODO: accept as arg to setup.py.
@@ -369,5 +371,5 @@
                      os.path.join(SPHINX_BUILD, "html")])
 
-    print "=== Copy HTML Docs to Build Directory ==="
+    print("=== Copy HTML Docs to Build Directory ===")
     html = os.path.join(SPHINX_BUILD, "html")
     copy_tree(html, SASVIEW_DOCS)
@@ -381,5 +383,5 @@
     build()
 
-    print "=== Done ==="
+    print("=== Done ===")
 
 if __name__ == "__main__":
Index: docs/sphinx-docs/source/conf.py
===================================================================
--- docs/sphinx-docs/source/conf.py	(revision 6394851e9ff662a22e84b744274580762e427d72)
+++ docs/sphinx-docs/source/conf.py	(revision 6394851e9ff662a22e84b744274580762e427d72)
Index: docs/sphinx-docs/source/dev/dev.rst
===================================================================
--- docs/sphinx-docs/source/dev/dev.rst	(revision e8447d82edfcf624e2172ed2f2c9c2a43227d231)
+++ docs/sphinx-docs/source/dev/dev.rst	(revision 959eb0181ad06828a748f04512f953aad5b31659)
Index: docs/sphinx-docs/source/user/analysis.rst
===================================================================
--- docs/sphinx-docs/source/user/analysis.rst	(revision 46dfee919e5cbf28591740398aa6ddeda7d16acf)
+++ docs/sphinx-docs/source/user/analysis.rst	(revision 959eb0181ad06828a748f04512f953aad5b31659)
Index: docs/sphinx-docs/source/user/marketplace.rst
===================================================================
--- docs/sphinx-docs/source/user/marketplace.rst	(revision a65042bd96bdece9c866aeca17a5521fcd38cc69)
+++ docs/sphinx-docs/source/user/marketplace.rst	(revision 959eb0181ad06828a748f04512f953aad5b31659)
Index: docs/sphinx-docs/source/user/menu_bar.rst
===================================================================
--- docs/sphinx-docs/source/user/menu_bar.rst	(revision 46dfee919e5cbf28591740398aa6ddeda7d16acf)
+++ docs/sphinx-docs/source/user/menu_bar.rst	(revision 959eb0181ad06828a748f04512f953aad5b31659)
Index: docs/sphinx-docs/source/user/tools.rst
===================================================================
--- docs/sphinx-docs/source/user/tools.rst	(revision 46dfee919e5cbf28591740398aa6ddeda7d16acf)
+++ docs/sphinx-docs/source/user/tools.rst	(revision 959eb0181ad06828a748f04512f953aad5b31659)
Index: docs/sphinx-docs/source/user/user.rst
===================================================================
--- docs/sphinx-docs/source/user/user.rst	(revision 46dfee919e5cbf28591740398aa6ddeda7d16acf)
+++ docs/sphinx-docs/source/user/user.rst	(revision 959eb0181ad06828a748f04512f953aad5b31659)
